{"version":3,"sources":["assets/images/logos/Logo-01-white.png","assets/i18n/bg.ts","assets/i18n/en.ts","common/functions/translate.ts","common/enums.ts","common/constants.ts","common/functions/helperFunctions.ts","models/user/userForGridModel.ts","models/user/userAuthModel.ts","services/authService.ts","common/components/alertMessage/growlContent.tsx","common/components/alertMessage/growl.tsx","common/components/confirmDialog/confirmDialog.tsx","components/navigation/mainNavigation.tsx","store/actionTypes.ts","components/medicines/medicinesList.tsx","services/medicineService.ts","services/activeIngredientService.ts","common/components/spinner/spinner.tsx","models/medicineFilterSettings.ts","common/components/alphabeticalFilter/alphabeticalFilter.tsx","models/medicineModel.ts","models/activeIngredientModel.ts","models/medicineBasicModel.ts","models/drugToDrugInteractionModel.ts","models/drugToDiseaseInteraction.ts","models/drugToFoodAlcoholInteraction.ts","models/interactionsDataModel.ts","models/interactionsSummaryBasicModel.ts","models/fileModel.ts","models/pregnancyAndBreastfeedingModel.ts","models/medicineForListModel.ts","models/diseaseForGridModel.ts","models/diseaseFilterSettingsModel.ts","models/driveAndMachineContentModel.ts","components/medicines/medicinesContainer.tsx","components/home/home.tsx","common/components/alertMessage/alertMessage.tsx","components/medicines/MedicineNavigation/overViewTab.tsx","components/medicines/MedicineNavigation/sideEffectsTab.tsx","components/medicines/MedicineNavigation/dosageTab.tsx","components/medicines/MedicineCommon/interactionsSeverityFunctions.tsx","common/modalDialog.tsx","components/user/userFamily/userFamilyComponent.tsx","services/interactionsService.ts","components/medicines/MedicineInteractions/interactionDrugToDrugDialog.tsx","components/medicines/MedicineInteractions/drugToDrugInteractions.tsx","components/medicines/MedicineInteractions/interactionDrugToFoodDialog.tsx","components/medicines/MedicineInteractions/drugToFoodInteractions.tsx","components/medicines/MedicineInteractions/interactionDrugToDseaseDialog.tsx","components/medicines/MedicineInteractions/drugToDiseaseInteractions.tsx","components/medicines/MedicineCommon/drugInteractionsLegend.tsx","components/medicines/MedicineNavigation/interactionsTab.tsx","services/fileService.ts","components/medicines/MedicineNavigation/leafletTab.tsx","components/medicines/MedicineNavigation/pregnancyTab.tsx","components/medicines/MedicineNavigation/driveMachineTab.tsx","components/medicines/medicineDetails.tsx","models/user/userModel.ts","models/fbUserModel.ts","components/login/loginComponent.tsx","models/user/userChangePasswordModel.ts","services/loginService.ts","services/mailService.ts","components/login/forgotPasswordComponent.tsx","components/login/createNewAccountComponent.tsx","components/pages/cookiePolicyComponent.tsx","components/pages/personalDataPolicyComponent.tsx","services/userService.ts","components/user/userProfile/userAccountTab.tsx","models/user/userPersonalDataModel.ts","services/userPersonalDataService.ts","components/user/userProfile/userPersonalDataTab.tsx","components/user/userProfile/userChangePasswordTab.tsx","components/user/userProfile/userInformationTab.tsx","components/user/userProfile/userProfileComponent.tsx","models/user/userMedicineModel.ts","models/user/userMedicineHistoryModel.ts","components/user/userMedicines/medicineFilter.tsx","common/components/paginator/paginator.tsx","components/user/userMedicines/medicineSearchDialog.tsx","components/user/userMedicines/userMedicineHistoryAddEditDialog.tsx","models/user/userNotificationModel.ts","components/user/userNotification/userNotificationAddEditDialog.tsx","components/user/userNotification/userNotificationListDialog.tsx","models/user/userMedicineWithHistoryWrapper.ts","models/user/userMedicineSettingsModel.ts","common/components/expandingList/expandingList.tsx","components/user/userMedicines/userMedicinesComponent.tsx","models/user/userDiseaseModel.ts","models/user/userDiseaseHistoryModel.ts","models/user/userDiseaseWithHistoryModel.ts","services/diseaseService.ts","components/user/userDiseases/diseaseFilter.tsx","components/user/userDiseases/diseaseListDialog.tsx","components/user/userDiseases/userDiseaseHistoryAddEditDialog.tsx","models/user/userDiseaseSettingsModel.ts","components/user/userDiseases/userDiseasesComponent.tsx","models/user/userPrescriptionModel.ts","components/user/userPrescriptions/userPrescriptionAddEditDialog.tsx","components/interactions/medicineFilter.tsx","components/user/userPrescriptions/medicinesListDialog.tsx","components/user/userPrescriptions/userMedicineAddEditDialog.tsx","components/user/userPrescriptions/prescriptionMedicineListDialog.tsx","components/user/userPrescriptions/diseasesListDialog.tsx","components/user/userPrescriptions/userDiseaseAddEditDialog.tsx","components/user/userPrescriptions/prescriptionDiseaseListDialog.tsx","components/user/userPrescriptions/userPrescriptionComponent.tsx","components/login/newPasswordComponent.tsx","components/pages/notAuthenticatedComponent.tsx","components/user/userFamily/userFamilyAddEditComponent.tsx","components/user/userCondition/userConditionBars.tsx","components/interactions/medicinesList.tsx","components/interactions/diseasesList.tsx","models/interactions/interactionsModel.ts","components/interactions/medicineSearchDialog.tsx","components/interactions/interactionDrugToDrugDialog.tsx","components/interactions/interactionsResultsDrugToDrug.tsx","components/interactions/interactionDrugToDseaseDialog.tsx","components/interactions/interactionsResultsDrugToDisease.tsx","components/interactions/interactionDrugToPregnancyDialog.tsx","components/interactions/interactionDrugToProfessionDialog.tsx","components/interactions/interactionsResultsDrugToOthers.tsx","components/interactions/interactionsResultsComponent.tsx","models/interactions/interactionsResultModel.ts","components/interactions/interactionsComponent.tsx","services/userConditionService.ts","models/user/userConditionModel.ts","components/user/userCondition/userConditionList.tsx","models/user/userConditionTypeModel.ts","services/bluetoothService.ts","components/user/userCondition/userConditionCharts.tsx","models/user/conditionUnitRangeModel.ts","models/dropdownModel.ts","models/user/userConditionTypeFilterModel.ts","components/user/userCondition/userConditionAddEditComponent.tsx","models/user/userConditionListFilterModel.ts","models/user/userPersonalConditionModel.ts","components/user/userCondition/userConditionComponent.tsx","components/settings/settingsComponent.tsx","components/test/testComponent.tsx","components/user/userNotification/userNotificationAcceptanceDialog.tsx","components/user/userNotification/userNotificationList.tsx","components/diseases/diseaseList.tsx","components/diseases/diseaseComponent.tsx","services/disposalPlacesService.ts","components/disposalPlaces/disposalPlacesContainer.tsx","components/login/confirmContainer.tsx","services/chatBotService.ts","components/chatBot/chatMobileComponent.tsx","services/userLaboratoryResultService.ts","models/user/userLaboratoryResultModel.ts","models/user/laboratoryResultTypeModel.ts","models/user/personalLaboratoryResultModel.ts","components/user/laboratoryResults/laboratoryResultsAddEditComponent.tsx","models/user/userLaboratoryResultFilterModel.ts","components/user/laboratoryResults/laboratoryResultsComponent.tsx","services/graphqlService.ts","models/user/userDashboardModel.ts","components/user/userDashboard/userDashboard.tsx","components/content/content.tsx","components/header/notificationComponent.tsx","components/navigation/menuNavigation.tsx","components/header/headerComponent.tsx","common/components/offlineStatus/offlineStatusComponent.tsx","components/footer/footer.tsx","components/chatBot/chatComponent.tsx","App.tsx","registerServiceWorker.ts","store/reducers/commonReducer.ts","index.tsx","assets/images/logos/Logo-01-icon.png","assets/images/logos/web_hi_res_512.png","assets/images/icons/filetypes/tempsnip.png","assets/images/icons/markers/location-icon-transparent-background-1.jpg","assets/images/icons/filetypes/pdf-icon.png","assets/images/icons/filetypes/xls-icon.png","assets/images/icons/filetypes/word-doc-icon.png","assets/images/icons/filetypes/txt-icon.png","assets/images/icons/filetypes/zip-icon.png","assets/images/icons/filetypes/jpg-icon.png","assets/images/icons/filetypes/png-icon.png"],"names":["module","exports","bg","Home","Add","Edit","Adding","Editing","Delete","Save","Cancel","Close","Open","View","Remove","Medicines","Medicine","OverviewAbout","OverviewBeforeIntake","OverviewDosage","OverviewSideEffects","OverviewSafetyData","OverviewAdditionalInfo","LeafletUserInfo","WhatIsInLeaflet","WhatIsInProduct","ActiveIngredients","WhatLooksAndPackageContents","FirstSideImprint","NotAllPackagesMarketed","MarketingAuthorisationHolderAndManufacturer","MarketingAuthorisationHolder","Manufacturer","BrandName","GenericName","Overview","SideEffects","Dosage","Professional","Interactions","Interactions with","interactions","Leaflet","InactiveIngredients","LeafletForUser","SmPC","Leaflets","FilesForDownload","PharmaceuticalForm","Imprint","Strength","Color","Size","Shape","Packiging","PackegeSize","DDD","RouteOfAdministration","ProductInformation","ProductType","ItemCode","Name","BasisOfStrength","ProductCharacteristics","MarketingInformation","FirstAuthorizationDate","LastAuthorizationDate","Score","Flavor","Contains","MedicineIndexAtoZ","MedicineBrowseText","BrowseAllMedicine","CheckMedicineInteractions","SearchMedicineInDatabase","BrowseAlphabetically","BrowseMedicinesByCategory","Top40MedicineSearches","Pregnancy","Breastfeeding","Pregnancy&Breastfeeding","EnterMedicineName","MedicineListDescription","MedicineListDescriptionStartWith","MedicineListDescriptionBySearchText","MedXchangeDescription","CanNotFindYourMedicine","ResulFound","Major","Moderate","Minor","Unknown","DrugInteractionClassification","DrugInteractionClassificationDescription","DrugInteractionClassificationMajor","DrugInteractionClassificationModerate","DrugInteractionClassificationMinor","DrugInteractionClassificationUnknown","DrugInteractionClassificationDoNotStop","DrugInteractions","Alcohol/FoodInteractions","DriveMachineInteractions","drive/machineInteractions","DiseaseInteractions","A total of %s drugs (%s brand and generic names) are known to interact with ","drug interactions","brand and generic names","Show all medications in the database that may interact with","with","Alcohol and food interactions with","Disease interactions with","There are","Drug interactions between %s and %s","Switch to professional interaction data","Switch to consumer interaction data","Consumer","Drug interactions with","Summary","For the Consumer","Overdose Description","For Healthcare Professionals","Other Information","Other Comments","Precautions","Dose Adjustments","Very Common","Common","Uncommon","Rare","Very rare","Frequency not reported","Postmarketing reports","10% or more","1% to 10%","0.1% to 1%","0.01% to 0.1%","0.001% to 0.01","usual dose for","Adult","Pediatric","Comments","Uses","Maximum dose","Duration of therapy","Implant","Inhalation","Instillation","Nasal","Oral","Parenteral","Rectal","Sublingual/buccal/oromucosal","Transdermal","Vaginal","Human drug","Login","Email","Password","New to MedXchange?","or login with","Forgot password?","Create a New Account","Confirm Password","Create","Please accept personal data private Policy","Accept","personal data protection policy","Please enter your email.","Send","Invalid E-mail or Password.","Invalid E-mail.","4000","4001","4002","4003","4004","4005","4006","Change","Change Password","Old Password","New Password","Please enter Old Password","Please enter New Password","Please enter Confirm Password","New Password and Confirm Password are different","Password and Confirm Password are different","Profile","My Medicine","My Medicines","My Diseases","Logout","Please enter Password","Please enter Email","Please enter valid Email","Please enter Name","You have successfully changed your Password.","You have successfully saved your data.","You have successfully logged in.","You have successfully created a new account.","Now you can go to ","Check your E-mail box to confirm registration and activate your account.","You have successfully activated your account.","Sorry but your activation link is not valid or expired.","We have sent an E-mail to you.","Please check your E-mail box and click on confirmation link to change your password.","Enter new Password","Disease","Disease Type","Start Date","End Date","Actions","Select","Save & Close","No Selection","Disease code","Disease name","Filter","Clear","InfectiousDisease","DeficiencyDisease","HereditaryDisease","PhysiologicalDisease","ChronicDisease","Single Dose","Frequency Of Intake","Intake Conditions","Alarms","Medicine Number","Number","Additional Title","Diseases","Prescriptions","My Prescriptions","Profession","Driver","MachineOperator","Prescription","Doctor","Hospital","All Medicines","All Diseases","Selected","Your Information","Download Your Information","DownloadYourInformationDescription","Download","Delete Account","Permanently Delete Account","DeleteAccountPermanentlyDescription","Are you sure that you want to delete your Account permanently?","Confirm Dialog","Yes","No","5000","5001","Disease History","Medicine History","5002","5003","My Family","Cookies Policy","Personal Data Policy","Check","Result","Start with","Selected medicine already exist in list.","Male","Female","ZeroNeagtive","ZeroPositive","ANegative","APositive","BNegative","BPositive","ABNegative","ABPositive","Gender","Blood Type","Personal Data","Account","Height (cm)","Weight (kg)","Birthdate","Other parameters","Add medicine to check interactions.","Other parameters interactions","There is no drug interactions.","There is no diseases interactions.","There is no other interactions.","EnterDiseaseName","EnterDiseaseCode","StartEndDate","DoseTake","ToMyFriends","Son","Daughter","Father","Mother","Sister","Brother","Husband","Wife","Other","RelationType","AddindFamily","Description","Recurrency Type","Notification Type","Notifications","Date","Time","Notes","Active","Frequency","Occurs once at","Occurs every hour(s)","Starting at","Ending at","Recurs every","Recurs every(f)","day(s)","week(s)","month(s)","OneTime","Recurring","Daily","Weekly","Monthly","Occurs on","at","Occurs every","Schedule will be used between","and","Schedule will be used starting on","day","week","month","every","hour(s) between","EditingFamily","UserInfo","InfoForUser","Information","DriveMachine","When driving","When using machine","My Condition","My Profile","Settings","BloodPressure","HeartRate","Height","Weight","On","Every","Notification","Once at","Every hour(s)","AddCondition","EditCondition","Condition","Value","ConditionInList","ConditionConfirm","See","Unit","EnterHeight","EnterWeight","EnterBloodPressure","EnterHeartRate","EnterDesc","EnterHemoglobin","for","medicine","prescription","ViewCond","Language","AddNewCondition","Filters","NotAllEntered","MedicinesForPrescription","DiseasesForPrescription","Legend","PushNotification","Receive Push Notifications","User Settings","You have to be logged in to activate Notifications.","Bulgarian","English","You have successfully subscribed for Notifications.","You have successfully unsubscribed from Notifications.","Failed to unsubscribe from Push Notifications:","Failed to subscribe for Push Notifications:","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","sunday","monday","tuesday","wednesday","thursday","friday","saturday","on","Every(f)","Hourly","Alarm Time","hour(s)","hour","between","starting on","from","ActiveА","NotActive","Deleted Successfully","Data Saved Successfully","Medicines of","Diseases of","Menu","Of","Confirm Message","This record","And medicines diseases notifications","Are you sure you want to logout","No disease selected","No medicine selected","5004","5005","5006","5007","6000","6001","6002","6003","6004","6005","6006","6007","6008","6009","Do you want to activate notification on this device","Alarm time cannot be empty","Date cannot be empty","Alarm date and/or time","are lesser than current time","Alarm will never execute","Please choose frequency","Please choose counter","Start date cannot be empty","Start date is greater than end date","End date is lesser than today","5008","Are you sure that you want to delete this record"," Medicine will be removed from prescription "," Disease will be removed from prescription ","Please select disease","Please select medicine","6010","6011","6012","6013","6014","6015","6016","Please enter a valid e-mail address.","Please enter personal name.","6 characters or more, at least 1 alphabetical and 1 numeric.","Please enter password again.","Password must be at least 6 characters and contain at least 1 alphabetical and 1 numeric character","You have to take medicines at","oclock on date","5009","5010","No records found","total records.","current medicine history.","current disease count.","have to take his/hers medicines at","current prescriptions.","You don't have new notifications","You don't have old notifications","See All","Search","Check medicine interactions","List of all Diseases","Find nearest Pharmacy","Pharmacies","Choose characteristic","Name of characteristic","New characteristic","DateTimeFormat","DateFormat","SearchDiseaseInDatabase","Characteristic already exist","Your characteristics","Characteristic is used","Test is used","BeforeEating","WhileEating","AfterEating","Choose acceptance","Specification of intake","No Intake","Mark all as seen","SendNotification","IfItsNotTaken","Five","Ten","Fifteen","Twenty","Thirty","Sixty","UserCreated","Caretaker","SearchUserInDatabase","EnterUserName","AlreadyExist","You have successfully accept invitation","Confirm","taken at","Waiting","Approved","EnterAddressOrCity","DisposalPlaces","Find nearest Disposal place","Your location","Not allowed food and drinks","Information about","ATC code","Мolecular Formula","starts with","contain text","All medicines","contain","Recommended food and drinks","Treatment recommendations","Course of treatment","Start date course of treatment","End date course of treatment","Allergies","Porduct Number","Filtering","Authorised","Withdrawn","Refused","Pending","Suspended","From","To","Prescription From Doctor","This medicine is attached to prescription","This disease is attached to prescription","Temperature","BloodSugar","EnterTemperature","EnterBloodSugar","PersonalConditionConfirm","Characteristic","Characteristics","All conditions","DataSource","EMA","BDA","New","Old","Add Characteristic","New Characteristic","Chatbot","Doctors prescriptions","Doctors prescription","Diet","Life mode","Hemoglobin","Laboratory result","Add Laboratory result","Edit laboratory Result","Add Lab result","New laboratory test","Choose test","LaboratoryResultConfirm","PersonalTestConfirm","Files","Add files","FileRemove","Allowed file types are","File size is greater than","Min","Max","laboratoryResultInList","AgeAbb","Over","Under","Age","Reference values","All Laboratory Results","Yours reference values","Allowed formats","Max total file size","TotalCholesterol","HighDensityLipoproteinCholesterol","LowDensityLipoproteinCholesterol","Triglycerides","EnterTotalCholesterol","EnterHDL","EnterLDL","EnterTriglycerides","LabTest","Enter valid value","Scan","The connection was interrupted","Connect with a device","Current value","No current value","BloodPresureValid","BloodPresureExample","BottomNumber","TopNumber","AddValue","ConditionTypeConfirm","11003","Enter name or select alpha index","TotalResults","ReceivingData","ReceivedData","BottomNumberBigger","OneDay","OneWeek","OneMonth","ThreeMonths","SixMonths","OneYear","Advanced","Period","All Results","Snooze","min.","snoozed for","Take","Minutes","InCaseThat","SendNotificationsTo","NormInfoPopMessage","User Functionalities","Pregnancy and Breastfeeding","DrivingAndUsingMachines","EPAR","All diseases","Enter birht date","Locations","4007","current doctors prescriptions.","doctor","Doctors prescription from doctor","en","Translate","DrugTypes","DrugGroups","MedicineTabs","MedicineLeafletTypes","DiseaseType","NotificationScheduleType","NotificationAlarmType","NotificationFrequency","ProfessionType","PregnancyType","GenderType","BloodType","UserConditionType","UnitType","InteractionType","AcceptanceType","MinutesForIntake","UserType","RequestStatus","Lang","AuthorisationStatus","DataSourceType","LaboratoryTestType","FileSystemType","TimePresetType","DayOfWeek","DayOfWeekOneLetterAbbr","DayOfWeekThreeLetterAbbr","key","lang","localStorage","getItem","setItem","apiUrl","process","tokenUrl","MedicinesUrl","PrescriptionUrl","SnoozeMinutes","dataPickerWithChekbox","createMuiTheme","overrides","MuiFormControl","root","width","marginNormal","marginTop","marginBottom","paddingLeft","MuiIconButton","padding","palette","primary","blue","buttonSmallBadge","MuiButton","contained","color","containedSecondary","minWidth","minHeight","secondary","main","MuiBadge","badge","top","right","height","fontSize","snackbar","MuiDialog","paper","margin","maxWidth","MuiSnackbarContent","alignItems","action","paddingTop","display","message","MuiSnackbar","notificationDrawer","MuiDrawer","paperAnchorTop","maxHeight","inputWithButton","input","marginLeft","flex","iconButton","divider","chatDialogTheme","pointerEvents","scrollPaper","justifyContent","MuiPaper","smallDialogTheme","paginatoorButtons","sizeSmall","boxShadow","device","desktop","tablet","phone","getIconByFileType","fileType","toLowerCase","pdfIcon","xlsIcon","wordIcon","txtIcon","zipIcon","jpgIcon","pngIcon","getErrorMessage","error","response","data","Data","ErrorCode","concat","Message","status","statusText","groupByReturnArray","objectArray","property","reduce","acc","obj","push","formatBytes","bytes","decimals","dm","i","Math","floor","log","parseFloat","pow","toFixed","fomatDateAsString","date","getFullYear","toString","getMonth","getDate","fomatDatesStringWithLang","fomatDateTimeAsString","getHours","slice","getMinutes","getSeconds","fomatDateTimeAsStringWithLang","fomatDateTimeSecondsAsStringWithLang","fomatDateAsStringWithLang","fomatTimeAsStringWithoutSeconds","validateEmail","email","test","String","enumToDropdownArray","enumName","withTranslation","enumAsArray","n","value","label","getEnumLabel","id","enumElement","Object","keys","find","fomatTimeWithoutSecondsAsString","formatAlarmTime","alarmTime","length","getNotificationSummary","currentUserNotification","notificationScheduleTypeId","oneTimeExecutionDate","startDate","endDate","periodLabel","notificationFrequencyCounter","notificationFrequencyId","urlB64ToUint8Array","base64String","base64","repeat","replace","rawData","window","atob","outputArray","Uint8Array","charCodeAt","getURLParameter","name","results","RegExp","exec","location","href","decodeURI","getLangId","getUnitByConditionType","condType","getMonthsEarlier","currentDate","months","d","setMonth","getDaysEarlier","days","setDate","getDayslater","UserForGridModel","classCallCheck","this","userId","birthDate","createdOn","updatedOn","lastLogged","isDeleted","isActive","relationType","medicineCount","diseasesCount","userTypeId","requestStatusId","notAllowedFoods","allergies","UserAuthModel","loginName","AuthService","userName","password","_this","getUser","then","access_token","setToken","catch","Promise","reject","HelperFunctions","accToken","_this2","bodyFormData","FormData","set","axios","url","Constants","method","headers","Content-Type","res","tokenId","googleUserId","_this3","append","removeItem","token","getToken","expiresAt","JSON","parse","undefined","getTime","err","getRefreshToken","_this4","getLoginName","authResult","stringify","expires_in","jwtDecode","userAuth","profile","getProfile","variantIcon","success","CheckCircleIcon","warning","WarningIcon","ErrorIcon","info","InfoIcon","withStyles","theme","backgroundColor","green","dark","amber","default","icon","iconVariant","opacity","marginRight","spacing","props","classes","className","onClose","variant","other","objectWithoutProperties","Icon","react","MuiThemeProvider","SnackbarContent","assign","classNames","aria-describedby","IconButton","aria-label","close","onClick","Close_default","a","Growl","possibleConstructorReturn","getPrototypeOf","call","handleClose","setState","isOpen","state","summary","severity","Snackbar","anchorOrigin","vertical","horizontal","open","autoHideDuration","alertMessage_growlContent","React","confirmDialog","Dialog","isVisible","noClick","DialogTitle","headerTitle","DialogContent","children","DialogActions","Button","size","style","index_es","faTimes","yesClick","faCheck","MainNavigation","аuthService","growl","handleMenuItemClick","menuUrl","history","handleLogout","isVisibleConfirmDialog","logoutConfirmClick","logout","onUserLogout","isAuthenticated","userMenu","prevProps","isUserLogged","medicineSearchLetter","onSearchLetterClick","encodeURI","medicineSearchName","onSearchNameClick","ref","el","react_router_dom","exact","to","faHome","faTablets","faPills","faSignOutAlt","faUser","components_confirmDialog_confirmDialog","withRouter","connect","common","isUserJustLogged","dispatch","type","setUserJustLoggedToFalse","medicinesList","listItems","isTopList","medicines","map","m","medicineId","brandName","additionalTitle","substr","e","charAt","activeIngredientName","faChevronRight","MedicineService","defaults","baseURL","Pragma","langId","numberOfRows","medicineSettings","seenCount","arguments","firstId","typeId","secondId","ActiveIngredientService","spinner","inlineSpinner","MedicineFilterSettings","title","number","alphaIndex","activeIngredientId","alphaEnIndex","alphaBgIndex","alphabeticalFilter","enFilter","filters","indexOf","letter","buttonStyle","primereact_button","letterClassName","activeLetter","borderColor","handleAlphaIndexChange","bgFilter","MedicineModel","medicineNumber","overviewSummary","overviewAboutMedicine","overviewBeforeIntake","overviewDosage","overviewSideEffects","overviewSafetyData","overviewAdditionalInfo","fullDescription","activeIngredients","inactiveIngredients","medicineSpecifications","safetyData","manufacturer","authorisationHolder","ActiveIngredientModel","genericINNName","commonChemicalName","IUPACChemicalName","molecularFormula","shortDescription","description","currentActiveToMedStrength","image","atcCode","MedicineBasicModel","authorisationStatus","dataSourceTypeId","medicineDataURL","medicineTabs","generics","emaProductNumber","DrugToDrugInteractionModel","selectedIngredientId","selectedIngredientName","interactionIngredientId","interactionIngredientName","interactionIngredientBrandNames","interactionTypeId","consumerDecscription","professionalDecscription","DrugToDiseaseInteraction","diseaseId","diseaseName","DrugToFoodAlcoholInteraction","foodAlcoholId","foodAlcoholNameBG","foodAlcoholNameEN","foodAlcoholName","InteractionsDataModel","genericName","allDrugsInteractionsCount","allFoodAlcoholInteractionsCount","allDiseaseInteractionsCount","drugToDrugInteractions","drugToDiseaseInteractions","drugToFoodAlcoholInteractions","InteractionsSummaryBasicModel","allAlcoholFoodInteractionsCount","medicineInteractionsContent","FileModel","fileId","fileContent","fileName","fileSizeInBytes","medicineLeafletTypeId","PregnancyAndBreastfeedingModel","PregnancyAndBreastfeedingId","breastfeedingContent","pregnancyContent","MedicineForListModel","medicineHistoryCount","hasActiveHistory","DiseaseForGridModel","diseaseCode","diseaseHistoryCount","DiseaseFilterSettingsModel","DriveAndMachineContentModel","driveAndMachineContentId","driveDescription","machineDescription","initFrom","MedicinesContainer","medicineService","activeIngredientService","messages","onScroll","scrollY","pageYOffset","innerHeight","document","body","offsetHeight","totalRecordsCount","isLoading","paginatorClick","first","isInit","getAllFilteredMedicines","toggleDrawer","handleChange","searchText","handleSearchButtonClick","searchTextTrim","trim","handleKeyPress","drawer","handleShowAllClick","event","preventDefault","validationMessage","Array","page","numberOfPages","activeIngredient","topList","getAllMedicines","addEventListener","removeEventListener","search","parseInt","getActiveIngredient","show","pageUrl","objectSpread","toConsumableArray","activeIngredientInfo","_this$state","titleText","showAllLink","accordion","multiple","header","imageId","src","imageName","border","Fab","focusRipple","Search_default","medicines_medicinesList","components_spinner_spinner","Drawer","anchor","tabIndex","role","Paper","elevation","InputBase","placeholder","onChange","target","onKeyPress","components_alphabeticalFilter_alphabeticalFilter","HomeComponent","inputStyle","innerWidth","faStethoscope","faMapMarkedAlt","textAlign","faPrescription","faHeartbeat","faUsers","faVial","medicinesContainer","alertMessage","dangerouslySetInnerHTML","__html","overViewTab","currentMedicine","getMedicine","safetyDataElement","adiitinalContentElement","overViewHeader","overViewElement","leafletContentElement","overViewContent","medicineNameAndTitle","storagePrecautions","shelfLife","productDisposal","join","shape","imprint","packaging","packageSize","address","lastAuthorizationDate","sectionTitle","sectionLabel","fullContent","sectionsContentArray","sideEffectsTab","getSideEffects","sideEffects","sideEffectContent","sideEffectElement","sideEffectDescrContent","sideEffectFooter","sideEffectDataList","professionalDescription","overdoseDescription","ingredientSideEffectReactions","grouped","groupArray","currentGroupTitle","groupHeader","anatomicalSystem","anatomicalSystemName","currentGroup","currentGroupData","ingredientSideEffectReactionId","frequencyOfReaction","frequencyName","frequencyDescription","otherInformation","components_alertMessage_alertMessage","dosageTab","getDosageContent","dosageContent","dosageElement","dosageDescrContent","dosageDataList","doseAdjustments","precautions","dosageLevels","groupedByAge","ageGroup","diseaseGroups","j","diseaseGroup","currentDiseaseGroup","currentGroupFooter","ageGroupName","disease","comments","uses","dosageLevelId","roaType","roatypeDescr","singleDose","minMaxTimeBetweenIntakes","maxDailyDose","minMaxTitration","getInteractionSeverity","paddingRight","getInteractionSeverityIcon","getInteractionSeverityIconAndText","getInteractionSeverityStatusLabel","dialogTitleStyles","MuiButtonBase","borderBottom","closeButton","position","grey","disableTypography","MuiDialogContent","borderTop","MuiDialogActions","MyFriendEditTabs","InteractionsService","authService","Authorization","pregnancyType","professionType","InteractionDrugToDrugDialog","interactionsService","handleCloseButton","closeClick","tabActiveIndex","drugToDrugDescription","getInteractionDescription","drugToDrugInteraction","getDrugToDrugInteraction","fullWidth","modalDialog_DialogTitle","modalDialog_DialogContent","overflowY","tabview","activeIndex","onTabChange","index","modalDialog_DialogActions","interactionsData","getDrugToDrugData","currentInteractionsList","handleInteractionTabClick","medicineName","isVisibleInteractionDialog","currentDrugToDrugInteraction","currentMedicineName","handleCloseDialogClick","random","interactionDrugToDrugDialog","InteractionDrugToFoodDialog","drugToFoodAlcoholDescription","drugToFoodAlcoholInteraction","getDrugToFooodInteraction","drugToFoodInteractions","getDrugToFoodData","currentDrugToFoodAlcoholInteraction","interactionDrugToFoodDialog","InteractionDrugToDseaseDialog","drugToDiseaseDescription","drugToDiseaseInteraction","getDrugToDiseaseInteraction","getDrugToDiseaseData","currentDrugToDiseaseInteraction","interactionDrugToDseaseDialog","drugInteractionsLegend","legendElement","fontWeight","interactionsTab","getInteractionsCounts","getInteractionsCountsBasic","interactionsSymmary","handleTabMenuchange","interactionsContentElement","MedicineInteractions_drugToDrugInteractions","MedicineInteractions_drugToDiseaseInteractions","MedicineInteractions_drugToFoodInteractions","MedicineCommon_drugInteractionsLegend","FileService","fileSystemTypeId","responseType","leafletTab","fileService","getMedicineLeaflets","leaflets","file","leafletElement","float","Helperfunction","getLeafletTypeName","toUpperCase","PregnancyTab","getPregnancyContent","pregnancy","pregnancyElement","DriveMachineTab","getDriveMachineContent","driveMachine","driveElement","medicineDetails","redirect","showUpIcon","getTabComponent","tabName","menuTabs","activeRouteName","tabRouteName","MedicineNavigation_overViewTab","MedicineNavigation_sideEffectsTab","MedicineNavigation_dosageTab","MedicineNavigation_interactionsTab","match","pregnancyTab","driveMachineTab","MedicineNavigation_leafletTab","searchMedicinesByActiveIngredient","genericId","params","MedicineId","getMedicineBasic","initializeTabs","tabEnum","tabNames","k","currentTabObjects","TabName","findIndex","_this$state2","g","item","fontStyle","scrollTo","faChevronUp","UserModel","confirmPassword","facebookUserId","acceptPersonalDataPrivatePolicy","FBUserModel","expiresIn","LoginComponent","user","handleCreateNewAccount","handleLoginButton","isValidAddEditForm","login","isLogged","redirectAfterLogin","handleFacebookResponse","facebookLogin","accessToken","handleGoogleResponse","googleLogin","googleId","handleGoogleFailureResponse","fbUser","onUserLogin","returnUrlParam","returnUrl","TextField","facebook_login_with_button_default","appId","autoLoad","fields","callback","cssClass","textButton","google_login","clientId","render","renderProps","faGoogle","buttonText","onSuccess","onFailure","UserChangePasswordModel","oldPassword","newPassword","activationCode","LoginService","confirmCode","MailService","emailData","ForgotPasswordComponent","loginService","mailService","handleSendButton","forgotPassword","mode","resultHtml","forgotPasswordHtml","helperText","sendConfirmEmailHtml","CreateNewAccountComponent","passwordStrongRegex","passwordMediumRegex","emailError","passError","confPassError","handleCreateButton","createUser","result","confirmCodeUrl","decodeURIComponent","validateConfirmCode","validateAndActivate","registrationFormHtml","autoComplete","required","Checkbox","successRegistrationHtml","successRegistrationWithEmailHtml","validConfirmCodeHtml","notValidConfirmCodeHtml","contentBg","contentEn","CookiePolicyComponent","PersonalDataPolicyComponent","UserService","settings","userDisease","historyId","userDiseaseHistoryModel","userDiseaseHistoryId","medSettings","userMedicine","medHistoryId","userMedicineHistoryModel","userMedicineHistoryId","childUserId","userPrescriptionId","userPrescription","userMedicineId","userNotification","userNotificationId","userDiseaseId","subscription","schedulerId","acceptanceType","acceptanceDate","snoozeMinutes","snoozeDate","rows","UserAccountTab","userService","handleSaveButton","updateUser","getUserData","getUserId","onCancelClick","UserPersonalDataModel","userPersonalDataId","weight","genderTypeId","bloodTypeId","pregnancyTypeId","professionTypeId","UserPersonalDataService","UserPersonalDataTab","userPersonalDataService","userPersonalData","updateUserPersonalData","onSave","clearDate","professionTypeDropdown","pregnancyTypeDropdown","bloodTypeDropdown","genderTypeDropdown","getUserPersonalData","InputLabel","htmlFor","DatePicker","format","inputProps","FormControl","MenuItem","UserChangePasswordTab","handleChangeButtonClick","changePassword","UserInformationTab","handleGetAccounInfoButton","getAccountInfo","Blob","navigator","msSaveOrOpenBlob","URL","createObjectURL","FileSaver","saveAs","handleDeleteAccountButton","deleleteAccount","deleteAccountPermanently","setTimeout","Card","CardContent","CardActions","faFile","faDownload","UserProfileComponent","userAccountTab","userPersonalDataTab","userChangePasswordTab","userInformationTab","UserMedicineModel","userMedicineHistory","UserMedicineHistoryModel","frequencyOfIntake","intakeConditions","prescriptionName","userNotifications","notificationsCount","prescriptionDoctor","prescriptionId","MedicineFilter","_React$Component","currentSettings","fiterText","generateFilterText","filterText","checked","searchByName","onSearchClick","handleClearButtonClick","onClearClick","selectedType","selectedGroup","inherits","createClass","inputtext","paginator","items","pageItems","pagingItems","onlyArrows","_paginator","_paginator2","startEl","disabled","paginataorClick","faAngleRight","faAngleDoubleRight","endEl","faAngleDoubleLeft","faAngleLeft","splice","apply","_paginator3","_paginator4","MedicineSearchDialog","handleAddButton","usermedicine","selectedMedicine","addMedicineClick","handleCancelButton","cancelClick","handleSelectionChange","getAllFilteredItems","handleClearClick","currentFilterSettings","dialogError","medicineFilter","Radio","components_paginator_paginator","UserMedicineHistoryAddEditDialog","currentUserMedicineHistory","updateClick","addClick","handleMedicineSaveButton","currentUserMedicine","isVisibleSearchMedicineDialog","handleCancelSearchMedicine","searchDialogError","clearDialogError","medicineInputButton","classInput","handleMedicineRemoveClick","faTimesCircle","handleMedicineAddEditClick","Add_default","isAdd","medicineSearchDialog","UserNotificationModel","notificationAlarmTypeId","isSingleDailyOccurance","dailyFrequencyCounter","startTime","endTime","canBeActivated","minutesForIntake","caretakerUserId","timeZoneOffsetInMinutes","cronExpression","caretakerName","UserNotificationAddEditDialog","today","theNextHour","setHours","toUTCString","isFrequencyButtonDisabled","handleSummaryContent","handleDateTimeChange","datePart","hadleObjectValidation","saveClick","handleWeekdayChipClick","weekDayChips","clickedIndex","c","isSelected","handleWeekDayCheckBox","isWeekdaySelected","selectedUserNotification","notificationScheduleTypeDropdown","notificationAlarmTypeDropdown","notificationFrequencyDropdown","summaryContent","caretakers","getAllCaretakers","firstElement","initData","weekDayObjArray","dayValueFromOne","allSelected","weekDayEnumToObjArray","currentDateTime","alarmDateTime","FrequencyCounterLabel","getFrequencyCounterLabel","oneTimeExecutionElement","TimePicker","ampm","globalFrequencyElement","Chip","clickable","dailyFrequencyContainer","MuiSwitch","switchBase","UserNotificationListDialog","getMedicineNotifications","getHistoryNotifications","setCurrentMedicineHistory","userHasPushSubscription","showUserNotificationDialog","isVisibleNotificationAddEditDDialog","handleUserNotificationAddClick","newUserNotification","currentMedicineHistory","getTimezoneOffset","currrentUserNotification","handleUserNotificationDialogCancelButton","catchErrorFailedToSubscribe","handleUserNotificationAddDialogSaveButton","addNotification","isActivePushNotifications","isVisibleNotificationConfirm","handleNotificationActivationButton","updateNotification","handleNotificationDeleteClick","deleteNotification","serviceWorker","getRegistration","registration","pushManager","getSubscription","applicationServerPublicKey","subscribe","userVisibleOnly","applicationServerKey","createPushSubscription","dialogHeader","contentHeader","FormControlLabel","control","Switch","userNotificationAddEditDialog","subscribeForPushNotifications","UserMedicineWithHistoryWrapper","UserMedicineSettingsModel","expandedList","keyItem","cursor","expandData","infoStyle","itemName","itemDesc","itemActions","isExpandable","expandedPanel","UserMedicinesComponent","totalRecords","userMedicines","getAllUserMedicines","handleUserMedicineDeleteClick","medHistory","deleteValidationMessage","selectedMedicineHistory","handleUserMedicineHistoryClick","userMedHistory","getUserMedicine","setCurrentUserMedicine","isVisibleUserMedicineHistoryAddEditDialog","isAddHistory","handleUserMedicineInfoClick","handleAddClick","handleUserNotificationButtonClick","showUserNotificationListDialog","console","isVisibleUserNotificationListDialog","handleUserNotificationListDialogCloseButton","handleHistoryAddButton","medWrapp","addUserMedicine","handleUserMedicineHistoryCancelClick","handleHistoryUpdateButton","updateMedicineHistory","expanedData","rowData","verticalAlign","faBell","rowExpansionTemplate","CSSTransition_default","in","expandedMedicine","some","r","timeout","mountOnEnter","unmountOnExit","filter","handleFilterChange","userFilter","clearFilters","isVisiblefilters","selectedTime","filterByDates","handleFilter","toISOString","getMonthEarlier","filterClick","timeDr","timeDropdown","getFiltersummary","nameSet","startSet","endSet","handleTimeDropdownChange","canChooseDates","goToPrescriptions","perscriptionId","faCheckCircle","faCalendarAlt","faChevronDown","activeUserMedicineCount","isMyFamily","numUser","getAllUserMedicinesWithHistory","medhistoryId","_this5","deleteUserMedicine","_this6","faFilter","expandingList","userNotificationListDialog","userMedicineHistoryAddEditDialog","aria-labelledby","MuiPickersUtilsProvider","utils","DateFnsUtils","UserDiseaseModel","userDiseaseHistory","UserDiseaseHistoryModel","diseaseTypeId","UserDiseaseWithHistoryModel","DiseaseService","DiseaseFilter","diseaseSettings","content","clear","onKeyDown","DiseaseListDialog","diseaseService","userdisease","currentDisease","handleFilterButtonClick","handleOnClearClick","diseases","selectedDisease","getAllDiseases","Boolean","diseaseFilter","UserDiseaseHistoryAddEditDialog","currentUserDiseaseHistory","handleAddSaveButton","currentUserDisease","isVisibleSearchDiseaseDialog","handleDiseaseListDialogCancelButton","diseaseInputButton","handleDiseaseRemoveClick","handleDiseaseAddEditClick","diseaseListDialog","UserDiseaseSettingsModel","UserDiseasesComponent","userDiseases","getAllUserDisease","wrapper","addUserDisease","isVisibleDiseaseListDialog","getUserDisease","setCurrentUserDisease","handleUserDiseaseDeleteClick","selectedUserDiseaseHistory","diseaseHistory","updateDiseaseHistory","handleUserDiseaseHistoryClick","expandedDiseases","activeUserDiseaseCount","getAllUserDiseasesWithHistoryCount","deleteUserDisease","faNotesMedical","userDiseaseHistoryAddEditDialog","UserPrescriptionModel","hospital","recommendedFoods","recommendedTreatment","UserPrescriptionAddEditDialog","currentUserPrescription","MedicinesListDialog","handleCurrentMedicineSelection","onSelectMedicine","interactions_medicineFilter","UserMedicineAddEditDialog","handleMedicineListDialogAddButton","isVisibleMedicineListDialog","handleMedicineListDialogCancelButton","isMedicineButtonDisabled","medicinesListDialog","PrescriptionMedicineListDialog","getPrescriptionMedicines","setCurrentUserPrescription","handleUserMedicineAddEditClick","currrentUserMedicineHistory","showUserMedicineAddEditDialog","isButtonDisabled","isVisibleUserMedcineAddEditDialog","handleUserMedicineAddEditDialogCancelButton","handleUserMedicineSave","selectedUserMedicine","updatePrescriptionMedicine","addPrescriptionMedicine","deletePrescriptionMedicine","expandedData","data-tip","borderRadius","Notifications_default","faUserMd","userMedicineAddEditDialog","DiseasesListDialog","handleCurrentDiseaseSelection","onSelectDisease","allDiseases","UserDiseaseAddEditDialog","handleDiseaseListDialogAddButton","currentDiseaseHistory","selectedDiseaseHistory","isDiseaseButtonDisabled","diseasesListDialog","PrescriptionDiseaseListDialog","getPrescriptionDiseases","handleUserDiseaseAddEditClick","currrentUserDiseaseHistory","showUserDiseaseAddEditDialog","isVisibleUserDisaeseAddEditDialog","handleUserDiseaseAddEditDialogCancelButton","handleUserDiseaseSave","selectedUserDisease","updatePrescriptionDisease","addPrescriptionDisease","deletePrescriptionDisease","userDiseaseAddEditDialog","UserPrescriptionComponent","userPrescriptions","getAllUserPrescriptions","showEditDialog","isVisibleUserPrescriptionAddEditDialog","updateUserPrescription","addUserPrescription","getUserPrescription","handleUserPrescriptionDeleteClick","handleUserPrescriptionAddEditClick","handlePrescriptionMedicinesButtonClick","currentUserPrescriptionId","showPrescriptionMedicinesListDialog","handlePrescriptionMedicinesCloseButton","isVisiblePrescriptionMedicinesListDialog","handlePrescriptionDiseasesButtonClick","showPrescriptionDiseaseListDialog","handlePrescriptionDisaeseCloseButton","isVisiblePrescriptionDiseaseListDialog","expandedPrescription","isActiveNow","faHospital","faUtensils","faExclamationTriangle","userMedicineCount","userDiseaseCount","activePrescriptionCount","countVisible","getUserPrescriptionFromLink","prescriptions","deleteUserPrescription","userPrescriptionAddEditDialog","prescriptionMedicineListDialog","prescriptionDiseaseListDialog","NewPasswordComponent","newPasswordHtml","successPaswordChangedHtml","NotAuthenticatedComponent","pathname","UserFamilyAddEditDialog","currentUser","handleCaretakerSaveButton","selectedUser","saveCaretakerClick","handleSearchChange","userTypes","users","getFilteredUsers","maxBorder","UserFamilyComponent","handleOnPageClick","handleAddAndEditClick","getUserFromMyFamily","setCurrentUser","handleMedicines","handleDiseases","handleaccount","selectedUserId","isVisiblePersonalData","selectedUserName","handleAddEditSaveClick","addMemberInMyFamily","handleCloseAddEditClick","getAllFriends","updateMyMemberFromFamily","handleAddCaretakerSaveClick","addCaretaker","handleDeleteRelationClick","isVisibleConfirmCaretakerDialog","deleteValidationCaretakerMessage","handleDeleteClick","deleteUserFriend","deleteUserFromFamily","deleteUserCaretaker","deleteCaretaker","isVisibleDialog","toMyFriends","isVisibleMyFriendEdit","handleOnSave","expandedUsers","faAllergies","getMyFamily","PersonalData","userFamilyAddEditComponent","withRemoveAction","onRemoveClick","diseasesList","InteractionsModel","drivingAndMachine","pregnancyAndBreastfeeding","InteractionsResultsDrugToDrug","drugToDrugInteractionsResults","listStyleType","paddingBottom","interactions_interactionDrugToDrugDialog","InteractionsResultsDrugToDisease","drugToDiseaseInteractionsResult","interactions_interactionDrugToDseaseDialog","InteractionDrugToPregnancyDialog","interactionDescription","_this$props","getDrugToPregnancyInteraction","_this$props2","InteractionDrugToProfessionDialog","getDrugToProffesionInteraction","InteractionsResultsDrugToOthers","handlePregnancyInteractionTabClick","isVisiblePregnancyDialog","currentMedicineId","currentPregnancyType","handleProfessionInteractionTabClick","profession","isVisibleProfessionDialog","currentProfessionyType","drugToOtherParametersResults","interactionDrugToPregnancyDialog","interactionDrugToProfessionDialog","InteractionsResultsComponent","panel","expanded","interactionsResult","drugMajorInteractionCount","drugModerateInteractionCount","drugMinorInteractionCount","drugUnknownInteractionCount","diseaseMajorInteractionCount","diseaseModerateInteractionCount","diseaseMinorInteractionCount","diseaseUnknownInteractionCount","drugToDiseaseInteractionsResults","interactionsResultsDrugToDrug","interactionsResultsDrugToDisease","interactionsResultsDrugToOthers","InteractionsResultModel","drugToDrugInteractionsCount","drugToDiseaseInteractionsCount","drugToOtherParametersCount","InteractionsComponent","cookies","Cookies","getUserName","handleProfileChange","currentProfileUserId","handleAddMedicineToList","path","isVisibleInteractionsResults","handleRemoveMedicineClick","handleCheckInteractions","getMedicineInteractions","handleCancelClick","coikieMedicines","get","getUserAuth","userFamilyDropdown","activeIndexOtherParams","isDriver","isMachineOperator","getUserFamily","getUserMedicines","getUserDiseases","getUserProfile","getUserFamilyDropdownList","inter","interactionFormHtml","interactions_medicinesList","interactions_diseasesList","flexWrap","interactionsResultsComponent","interactions_medicineSearchDialog","UserConditionService","conditionId","condition","conditionTypes","conditionTypeId","personalCondition","UserConditionModel","userConditionId","userConditionTypes","userConditionTypeId","userConditionUnit","isSystemType","personalMinValue","personalMaxValue","userConditionList","userConditions","UserConditionTypeModel","userConditionToUserConditionTypeId","userConditionValue","conditionDate","BluetoothService","getValue","servicesName","characteristicName","isFloat","services","bluetooth","requestDevice","gatt","server","getPrimaryService","service","getCharacteristic","characteristic","readValue","buffer","DataView","getFloat32","getUint8","parseHeartRate","flags","heartRate","getUint16","contactDetected","energyExpended","rrIntervals","byteLength","parseTemparature","isFahrenheit","unit","temperature","getMinAndMax","userCondition","isMin","minMarker","maxMarker","isThereMarkers","val","blPressure","split","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","Symbol","iterator","next","done","bPressure","return","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","uType","currentPointFromLine","UserConditionCharts","typeRange","typeRanges","arr","topBLine","strokeWidth","bottomBLine","sort","b","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","x","y","newLine","sortedItems","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","chartData","markers","minValue","maxValue","axis","lineStyle","stroke","strokeDasharray","legend","textStyle","secondMinValue","legendPosition","secondMaxValue","minVal","maxVal","delta","nivo_line_esm","lineWidth","bottom","left","xScale","yScale","stacked","min","max","axisBottom","tickSize","tickPadding","tickRotation","legendOffset","renderTick","textBaseline","textAnchor","textX","textY","transform","alignmentBaseline","maxLineLength","maxLines","assembleLines","word","currLine","lines","allLines","dy","forEach","lineText","getTspanGroups","axisLeft","colors","curve","enableCrosshair","animate","motionStiffness","motionDamping","enableSlices","pointSize","pointColor","getPointColor","pointBorderWidth","pointBorderColor","legends","direction","justify","translateX","translateY","itemsSpacing","itemDirection","itemWidth","itemHeight","itemOpacity","symbolSize","symbolShape","effects","itemBackground","ConditionUnitRangeModel","conditionUnitRangeId","conditionUnitRangeSystemTypeId","minAge","maxAge","DropdownModel","UserConditionTypeFilterModel","BarModel","valueColor","secondValue","secondValueColor","UserConditionBars","cond","ucond","barData","nivo_bar_esm","groupMode","indexBy","_ref","axisTop","axisRight","labelSkipWidth","labelSkipHeight","labelTextColor","tooltip","_ref2","UserConditionAddEditDialog","growlSecond","growlBluetooth","userConditionService","bluetoothService","heartRateCharacteristic","temperatureCharacteristic","secInterval","stopNotifications","currentCondition","updateUserCondition","getCondition","rangesToDropdown","conditionUnitRanges","ranges","allItems","found","dropDown","getGender","userGender","userAge","isVisibleDropdown","rangesDropdown","selectedRangeID","selectedRange","newrange","gender","selectedConditionId","clearInterval","conditions","founded","addNewToList","addNew","handleCancelAddNewButton","newConditionType","bottomNumber","topNumber","handleUserConditionTypeRemoveClick","condIndex","isVisibleConfirmTypeDialog","handleUserConditionBluetoothClick","isLoadingBluetooth","serviceName","getBateryValue","userConditionType","startNotifications","char","onHeartRateChanged","onTemperatureChanged","isBluetoothLogStart","condTypes","heartRateChangeArray","bluetoothValue","temp","round","changeBluetoothValue","handleDateChange","handleValueChange","handleSaveAddButton","handleClick","popover","anchorEl","currentTarget","disconnect","disconnectCharacteristic","connected","handleCancelBluetoothButton","bluetoothDialog","addBluetoothValue","currentCond","currentTypes","newTypes","scannDevices","openBluetoothDialog","deleteConditionType","onDeleteConditionType","deleteCondition","handleDropdownChange","unitRange","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","currentFilters","onEnter","handleBloodPresusreValueChange","isBottom","getColor","returnedString","toggleFilterDialog","isVisibleFilterDialog","showFilters","openInfoPopover","infoPopover","infoAchor","handleInfoClose","changeView","view","isChartsView","isLoadingSecond","personalConditions","ConditionDropdownModel","locStoChart","isChartView","option","charts","overflow","userConditionCharts","userConditionBars","faChartLine","faChartBar","flexDirection","faInfoCircle","Popover","transformOrigin","faBluetooth","faCircle","DateTimePicker","autoOk","disableFuture","getPlaceHolder","faStop","faPlay","isSystem","UserConditionListFilterModel","UserPersonalConditionModel","personalConditionTypeId","personalConditionTypeName","UserConditionComponent","userCondtitions","condId","currentConditionId","getCond","getConditions","handleChekbox","dateEarly","prevState","handleCloseView","isVisibleView","selectedConditionValue","conditionType","handleDropChange","currentConditionValue","selectedTypes","newCondition","selectTypes","isChecked","uCondition","addUserCondition","handleDeletePersonalClick","isVisibleConfirmPersonalDialog","minResult","maxResult","handleAddCharacteristicKeyPress","toLocaleLowerCase","newPersonal","createPersonalCondition","newConditionChange","openDialog","getPersonalConditions","conditionEnumToDropdownArray","addPersonalsToDropdown","isFromDelete","removePersonalCondition","deletePersonalCondition","changeMinAndMax","expandedConditions","getAllUserConditions","userCondition_userConditionList","userConditionAddEditComponent","SettingsComponent","handleChangeLang","onLangChange","currentLang","catchErrorFailedToUnsubscribe","unsubscribeFromPushNotifications","unsubscribe","discardPushSubscription","btoa","endpoint","selectbutton","options","handleSwitchPushNotifications","ScrollableTabsButtonAuto","handleChangeIndex","react_default","createElement","Tabs","indicatorColor","textColor","scrollButtons","tabsRoot","indicator","tabsIndicator","Tab","tabRoot","selected","tabSelected","react_swipeable_views_lib_default","onChangeIndex","Component","flexGrow","background","&:hover","&$tabSelected","&:focus","typography","UserNotificationAcceptance","acceptance","selectedAcceptanceType","takenAt","handleSave","saveTaken","handleSnooze","saveSnoozed","setTakenNotification","notifiicationSchedulerId","setSnoozedNotification","handleSliderChange","isTaken","isSnoozed","getNotificationScheduler","takeTypeId","buttonFontsize","faClock","UserNotificationList","intervalId","notifications","getNotifications","selectedId","notificationSchedulerId","acceptanceShow","closeDialog","getAllNotifications","logo01white","alt","nextExecutionDate","faCheckSquare","executedAt","userNotificationAcceptanceDialog","DiseaseComponent","diseaseList","DisposalPlacesService","searchedString","L","Default","prototype","_getIconUrl","mergeOptions","iconRetinaUrl","require","iconUrl","shadowUrl","suitcasePoint","iconAnchor","popupAnchor","iconSize","shadowSize","shadowAnchor","DisposalPlacesContainer","disposalPlacesService","mymap","getLocation","geolocation","getCurrentPosition","showPosition","setView","latitude","longitude","coords","getDisposals","fromFilter","getAllDisposalPlaces","minLat","maxLat","minLong","longtitude","maxLong","place","fitBounds","disposalPlaces","selectedDisposalPlace","handleSearch","myPositionClick","Map","TileLayer","attribution","Marker","Popup","p","disposalPlaceId","city","region","interval","flexFlow","boxSizing","MyLocation_default","ConfirmContainerComponent","validateCaretaker","caretakerConfirm","notValidLink","ChatBotService","ChatMobileComponent","chatBotService","chat","getChatToken","nextProps","nextState","store","createStore","payload","language","botframework_webchat_lib_default","locale","directLine","createDirectLine","styleOptions","sendTypingIndicator","hideUploadButton","bubbleFromUserBackground","bubbleFromUserTextColor","bubbleBorderRadius","bubbleFromUserBorderRadius","botAvatarImage","logoCircle","userAvatarImage","capture","userID","username","LaboratoryResultsService","laboratoryResultId","laboratoryResult","personal","UserLaboratoryResultModel","userLaboratoryResultId","laboratoryResultDate","userLaboratoryResultTypes","fileResults","LaboratoryResultTypeModel","laboratoryResultTypeId","laboratoryResultTypeValue","laboratoryResultTypeUnit","personalLaboratoryResult","PersonalLaboratoryResultModel","personalLaboratoryResultId","personalLaboratoryResultName","LaboratoryResultAddEditDialog","userLaboratoryResultService","UserLaboratoryResultService","refLefletFile","currentFile","personalLaboratoryResults","laboratoryResults","LaboratoryResultDropdownModel","laboratoryResultType","currentLaboratoryResult","addToList","newLaboratoryResult","names","_loop","getUnitBylaboratoryResultType","handleLabResultTypeRemoveClick","getInputElement","getHelperText","helperTextLabel","expandedlaboratoryResultTypes","newLaboratoryResultChange","createPersonallaboratoryResult","removepersonalLaboratoryResult","deletePersonallaboratoryResult","laboratoryResultEnumToDropdownArray","getpersonalLaboratoryResults","getPersonallaboratoryResults","unitRanges","laboratoryResultSystemTypeId","unitInfo","handleFileRemoveClick","selectedFile","isVisibleFileConfirmDialog","deleteFileValidationMessage","removeFile","atachedFiles","getPersonalLabel","rValues","range","isGenderEqual","isMinAgeValid","isMaxAgeEqual","downoladFile","openFile","LaboratoryResults","selectedLaboratoryResult","tempId","bind","assertThisInitialized","laboratoryResultUnitRanges","files","valid","fileExtension","lastIndexOf","allSize","reader","FileReader","labResult","readAsDataURL","ext","faFileImage","faFileWord","faFileExcel","faFilePdf","faFileArchive","laboratoryResultUnitRangeId","handleOnChange","click","getDocIcon","pop","textOverflow","UserLaboratoryResultFilterModel","userLaboratoryResultType","UserlaboratoryResultComponent","laboratoryResultsService","userLaboratoryResults","handleViewClick","getlaboratoryResult","setCurrentlaboratoryResult","userLaboratoryResult","addlaboratoryResults","getlaboratoryResults","updatelaboratoryResults","selectedLaboratoryResultId","deletelaboratoryResult","expandedLaboratoryResult","handleExpandChange","currentlaboratoryResultValue","selectedLaboratoryResultValue","downloadFile","getFile","u","currentlaboratoryResult","getAllLaboratoryResults","personalCond","personallaboratoryResults","list","condValue","laboratoryResultsAddEditComponent","GraphQLService","query","variables","errors","Error","extensions","code","UserDashboardModel","myMedicine","myCondition","myDisease","myFamily","myLabResult","myPrescription","GET_DATA","UserDashboardComoponent","grapqlSerice","getData","userDashboard","activeMedicinesCount","allMedicinesCount","activeDiseasesCount","allDiseasesCount","activePrescriptionsCount","allPrescriptionsCount","allConditionsCount","allMemebersCount","allLabResultsCount","NoMatch","Content","react_router","component","DiseasesComponent","MedicineDetails","ConfirmContainer","TestComponent","LaboratoryResultsComponent","UserDashboardComponent","NotificationComponent","getNotSeenNotifications","updateCount","errorShow","onAllNotificationsClick","closeDrawer","markAllAsSeen","returnNotificationList","stringForEmptyMessage","newNotifications","seenAt","oldNotifications","overflowX","MenuNavigation","onDrawarMenuLogoutClick","UserMenus","faCookie","faDatabase","faCog","HeaderComponent","getAllUserNotifications","isNotificationUpdated","setNotifications","repeatGetData","setInterval","checkForRefreshToken","updateNotifications","isSearchDrawerOpen","handleBackClick","goBack","notificationError","isNotificationDrawerOpen","openNotificationDrawer","handleLogin","isDrawerOpen","scroll","life","SearchContent","faSearch","NotificationContent","Badge","badgeContent","LogoutContent","LoginContent","backButton","faChevronLeft","zIndex","faBars","Tooltip","nativeEvent","notificationComponent","listElm","menuNavigation","offlineStatusComponent","offlineStatus","offlineMode","onLine","FooterComponent","faFacebook","ChatComponent","userInitials","chatbot","userNameSplit","fromlocalstorage","fullScreen","disableBackdropClick","hideBackdrop","logo01icon","userAvatarInitials","MuiFormControlLabel","MuiTypography","h6","paperFullWidth","MuiFab","App","isVisibleChat","isChatbotMobilePath","content_content","Chat_default","chatComponent","headerComponent","offlineStatus_offlineStatusComponent","mainNavigation","footer","build_default","cookieName","expires","isLocalhost","hostname","registerValidSW","swUrl","register","onupdatefound","installingWorker","installing","onstatechange","controller","initialState","medicineSearchActiveIngredient","commonReducer","rootReducer","combineReducers","composeEnhancers","compose","applyMiddleware","ReactDOM","es","src_App","getElementById","origin","fetch","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker","__webpack_require__"],"mappings":"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","file":"static/js/main.48224a04.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","const bg = {\r\n \"Home\": \"Начало\",\r\n \"Add\": \"Добави\",\r\n \"Edit\": \"Редакция\",\r\n \"Adding\": \"Добавяне на\",\r\n \"Editing\": \"Редактиране на\",\r\n \"Delete\": \"Изтрий\",\r\n \"Save\": \"Запази\",\r\n \"Cancel\": \"Откажи\",\r\n \"Close\": \"Затвори\",\r\n \"Open\": \"Отвори\",\r\n 'View': 'Преглед',\r\n 'Remove': 'Премахни',\r\n 'Medicines': 'Лекарства',\r\n 'Medicine': 'Лекарство',\r\n 'OverviewAbout': 'Какво представлява и за какво се използва',\r\n 'OverviewBeforeIntake': 'Какво трябва да знаете преди да използвате',\r\n 'OverviewDosage': 'Как да използвате',\r\n 'OverviewSideEffects': 'Възможни нежелани реакции',\r\n 'OverviewSafetyData': ' Как да съхранявате',\r\n 'OverviewAdditionalInfo': 'Съдържание на опаковката и допълнителна информация',\r\n 'LeafletUserInfo': 'Листовка: информация за потребителя',\r\n 'WhatIsInLeaflet': 'Какво съдържа тази листовка:',\r\n 'WhatIsInProduct': 'Какво съдържа',\r\n 'ActiveIngredients': 'Активни съставки',\r\n 'WhatLooksAndPackageContents': 'Как изглежда и какво съдържа опаковка',\r\n 'FirstSideImprint': 'означени от едната страна с',\r\n 'NotAllPackagesMarketed': 'Не всички видове опаковки могат да бъдат пуснати в продажба.',\r\n 'MarketingAuthorisationHolderAndManufacturer': 'Притежател на разрешението за употреба и производител',\r\n 'MarketingAuthorisationHolder': 'Притежател на разрешението за употреба',\r\n 'Manufacturer': 'Производител',\r\n 'BrandName': 'Търговско име',\r\n 'GenericName': 'Генерично име',\r\n 'Overview': 'Описание',\r\n 'SideEffects': 'Странични ефекти',\r\n 'Dosage': 'Дозировка',\r\n 'Professional': 'За специалисти',\r\n 'Interactions': 'Взаимодействия',\r\n 'Interactions with': 'Взаимодействия с',\r\n 'interactions': 'взаимодействия',\r\n 'Leaflet': 'Листовка',\r\n 'InactiveIngredients': 'Неактивни съставки',\r\n 'LeafletForUser': 'Листовка за пациента',\r\n 'SmPC': 'Кратка характеристика на продукта',\r\n 'Leaflets': 'Листовки',\r\n 'FilesForDownload': 'Файлове за сваляне',\r\n 'PharmaceuticalForm': 'Фармацевтична форма',\r\n 'Imprint': 'Oтпечатък',\r\n 'Strength': 'Сила',\r\n 'Color': 'Цвят',\r\n 'Size': 'Размер',\r\n 'Shape': 'Форма',\r\n 'Packiging': 'Опаковка',\r\n 'PackegeSize': 'Брой в опаковка',\r\n 'DDD': 'Дневна доза',\r\n 'RouteOfAdministration': 'Начина на приемане',\r\n 'ProductInformation': 'Информация за продукта',\r\n 'ProductType': 'Тип на продукта',\r\n 'ItemCode': 'Код',\r\n 'Name': 'Име',\r\n 'BasisOfStrength': 'Основа на силата',\r\n 'ProductCharacteristics': 'Характеристика на продукта',\r\n 'MarketingInformation': 'Маркетингова информация',\r\n 'FirstAuthorizationDate': 'Дата на първо одобрение',\r\n 'LastAuthorizationDate': 'Дата на последно одобрение',\r\n 'Score': 'Разделяне',\r\n 'Flavor': 'Вкус',\r\n 'Contains': 'Съдържа',\r\n 'MedicineIndexAtoZ': 'Лекарства от А до Я',\r\n 'MedicineBrowseText': 'Различните начини на търсене по-долу ще ви помогнат за по-лесното откриване на информация за търсения лекарствен продукт. Наличната информация за над 24 000 лекарства отпускани със и без рецепта, е както за потребители, така и за здравни специалисти.',\r\n 'BrowseAllMedicine': 'Списък с всички лекарства',\r\n 'CheckMedicineInteractions': 'Взаимодействия между лекарства',\r\n 'SearchMedicineInDatabase': 'Търсене по име на лекарство или активна съставка',\r\n 'BrowseAlphabetically': 'Азбучен указател',\r\n 'BrowseMedicinesByCategory': 'Лекарства по категории',\r\n 'Top40MedicineSearches': '10 най-търсени лекарства',\r\n 'Pregnancy': 'Бременност',\r\n 'Breastfeeding': 'Кърмене',\r\n 'Pregnancy&Breastfeeding': 'Бременност и кърмене',\r\n 'EnterMedicineName': 'Лекарство или активна съставка',\r\n 'MedicineListDescription': 'Списък на лекарства и медикаменти по търговско или генерично име.',\r\n 'MedicineListDescriptionStartWith': 'Списък на лекарства и медикаменти по търговско или генерично име започващи с буквата',\r\n 'MedicineListDescriptionBySearchText': 'Списък на лекарства и медикаменти по търговско или генерично име съдържащи търсения текст',\r\n 'MedXchangeDescription': 'MedXchange е помощник в процеса на лечение, който предоставя подробна информация за съдържанието и взаимодействието на веществата в лекарствените продукти с други лекарства, храни и заболявания.',\r\n 'CanNotFindYourMedicine': 'Не си открил твоето лекарство?',\r\n 'ResulFound': 'намерени резултата.',\r\n 'Major': 'Силни',\r\n 'Moderate': 'Умерени',\r\n 'Minor': 'Маловажни',\r\n 'Unknown': 'Неизвестни',\r\n 'DrugInteractionClassification': 'Класификация на взаимодействието с лекарствата',\r\n 'DrugInteractionClassificationDescription': 'Класификациите по-долу са само общи насоки. Трудно е да се определи значението на дадено лекарствено взаимодействие за всяко лице, имайки предвид големия брой фактори.',\r\n 'DrugInteractionClassificationMajor': 'Изключително клинична значимост. Избягвайте комбинации; рискът от взаимодействие надхвърля ползата.',\r\n 'DrugInteractionClassificationModerate': 'Умерена клинична значимост. Добре е да избягвате комбинации. Използвайте го само при специални обстоятелства.',\r\n 'DrugInteractionClassificationMinor': 'Минимална клинична значимост. Минимизиране на риска, да се прецени и помилси за алтернативенo лекарство, да се предприемат стъпки за заобикаляне на риска от взаимодействие и/или да се създаде план за наблюдение.',\r\n 'DrugInteractionClassificationUnknown': 'Няма налична информация.',\r\n 'DrugInteractionClassificationDoNotStop': 'Не приемайте каквито и да е лекарства преди да се консултирате с вашия лекар.',\r\n 'DrugInteractions': 'Взаимодействия с лекарства',\r\n 'Alcohol/FoodInteractions': 'Взаимодействия с алкохол и храни',\r\n 'DriveMachineInteractions': \"Взаимодействия при шофиране и машини\",\r\n 'drive/machineInteractions': \"взаимодействия при шофиране и машини\",\r\n 'DiseaseInteractions': 'Взаимодействия със заболявания',\r\n 'A total of %s drugs (%s brand and generic names) are known to interact with ': 'Общо %s лекарства (%s търговски и генерични имена) взаимодействат с ',\r\n 'drug interactions': 'взаимодействия с лекарства',\r\n 'brand and generic names': 'търговски и генерични имена',\r\n 'Show all medications in the database that may interact with': 'Всички лекарства, които могат да взаимодействат с',\r\n 'with': 'c',\r\n 'Alcohol and food interactions with': 'Алкохол и храни, които взаимодействат с',\r\n 'Disease interactions with': 'Заболявания, които имат взаимодействие с',\r\n 'There are': 'Има',\r\n 'Drug interactions between %s and %s': 'Взаимодействия между %s и %s',\r\n 'Switch to professional interaction data': 'Информация за специалисти',\r\n 'Switch to consumer interaction data': 'Информация за потребители',\r\n 'Consumer': 'За потребители',\r\n 'Drug interactions with': 'Лекарства, които имат взаимодействие с',\r\n 'Summary': 'Резюме',\r\n 'For the Consumer': 'За потребители',\r\n 'Overdose Description': 'Предозиране',\r\n 'For Healthcare Professionals': 'За медицински специалисти',\r\n 'Other Information': 'Друга информация',\r\n 'Other Comments': 'Други коментари',\r\n 'Precautions': 'Предпазни мерки',\r\n 'Dose Adjustments': 'Дозировка',\r\n 'Very Common': 'Много често',\r\n 'Common': 'Често',\r\n 'Uncommon': 'Нечесто',\r\n 'Rare': 'Рядко',\r\n 'Very rare': 'Много рядко',\r\n 'Frequency not reported': 'Не е отчетена',\r\n 'Postmarketing reports': 'Отчетена след пускането на пазара',\r\n '10% or more': '10% и повече',\r\n '1% to 10%': 'от 1% до 10%',\r\n '0.1% to 1%': 'от 0.1% до 1%',\r\n '0.01% to 0.1%': 'от 0.01% до 0.1%',\r\n '0.001% to 0.01': 'от 0.001% до 0.01',\r\n 'usual dose for': 'обичайна доза за',\r\n 'Adult': 'Възрастни',\r\n 'Pediatric': 'Деца',\r\n 'Comments': 'Коментари',\r\n 'Uses': 'Употреба',\r\n 'Maximum dose': 'Максимална доза',\r\n 'Duration of therapy': 'Пордължителност на терапията',\r\n 'Implant': 'Имплантация',\r\n 'Inhalation': 'Инхалация',\r\n 'Instillation': 'Внушаване',\r\n 'Nasal': 'Назално',\r\n 'Oral': 'Устно',\r\n 'Parenteral': 'Parenteral',\r\n 'Rectal': 'Ректално',\r\n 'Sublingual/buccal/oromucosal': 'Сублингвално/букално/устна лигавица',\r\n 'Transdermal': 'Трансдермално',\r\n 'Vaginal': 'Влагалищно',\r\n 'Human drug': 'Лекарство за хора',\r\n 'Login': 'Вход',\r\n 'Email': 'Електронна поща',\r\n 'Password': 'Парола',\r\n 'New to MedXchange?': 'Нов потребител ли сте в MedXchange?',\r\n 'or login with': 'или влезте с',\r\n 'Forgot password?': 'Забравил си паролата?',\r\n 'Create a New Account': 'Създаване на нов акаунт',\r\n 'Confirm Password': 'Потвърди парола',\r\n 'Create': 'Създай',\r\n 'Please accept personal data private Policy': 'Моля потвърдете политиката за защита на личните данни.',\r\n 'Accept': 'Потвърди',\r\n 'personal data protection policy': 'политика за защита на личните данни',\r\n 'Please enter your email.': 'Моля въведете вашия Email.',\r\n 'Send': 'Изпрати',\r\n 'Invalid E-mail or Password.': 'Невалидни \"Електронна поща\" или \"Парола\".',\r\n 'Invalid E-mail.': 'Невалидна \"Електронна поща\".',\r\n '4000': 'Несъществуващ потребител.',\r\n '4001': 'Невалидна стара парола.',\r\n '4002': 'Новата и потвърдената пароли не са еднакви.',\r\n '4003': 'Вече има регистриран потребител с тази Електронна поща.',\r\n '4004': 'Невалидна Електорнна поща.',\r\n '4005': 'Невалиден линк или изтекал срок на валидност на линка.',\r\n '4006': 'Невалиднa Електорнна поща за този линк.',\r\n 'Change': 'Смени',\r\n 'Change Password': 'Смени парола',\r\n 'Old Password': 'Стара парола',\r\n 'New Password': 'Нова парола',\r\n 'Please enter Old Password': 'Моля въведете старата парола',\r\n 'Please enter New Password': 'Моля въведете новата парола',\r\n 'Please enter Confirm Password': 'Моля въведете Потвърди парола',\r\n 'New Password and Confirm Password are different': 'Новата и потвърдената пароли са различни',\r\n 'Password and Confirm Password are different': 'Парола и Потвърди парола са различни',\r\n 'Profile': 'Профил',\r\n 'My Medicine': 'Моето лекарство',\r\n 'My Medicines': 'Моите лекарства',\r\n 'My Diseases': 'Моите заболявания',\r\n 'Logout': 'Изход',\r\n 'Please enter Password': 'Моля въведете Парола',\r\n 'Please enter Email': 'Моля въведете Електронна поща',\r\n 'Please enter valid Email': 'Моля въведете валидна Електронна поща',\r\n 'Please enter Name': 'Моля въведете Име',\r\n 'You have successfully changed your Password.': 'Вие успешно променихте паролата си.',\r\n 'You have successfully saved your data.': 'Вие успешно записахте данните.',\r\n 'You have successfully logged in.': 'Вие влязохте успешно.',\r\n 'You have successfully created a new account.': 'Вие успешно създадохте нов акаунт.',\r\n 'Now you can go to ': 'Сега можете да отидете на ',\r\n 'Check your E-mail box to confirm registration and activate your account.': 'Проверете Електронната си поща, за да потвърдите регистрацията и активирате Вашият акаунт.',\r\n 'You have successfully activated your account.': 'Вие успешно създадохте нов акаунт.',\r\n 'Sorry but your activation link is not valid or expired.': 'Вашият линк за активация не е валиден или е с изтекал период.',\r\n 'We have sent an E-mail to you.': 'Изпратихме Ви E-mail за потвърждение.',\r\n 'Please check your E-mail box and click on confirmation link to change your password.': 'Моля проверете Вашият E-mail и натиснете на линка за потвърждение, за да смените паролата си.',\r\n 'Enter new Password': 'Въведете новата парола',\r\n 'Disease': 'Заболяване',\r\n 'Disease Type': 'Тип заболяване',\r\n 'Start Date': 'Начална дата',\r\n 'End Date': 'Крайна дата',\r\n 'Actions': 'Действия',\r\n 'Select': 'Изберете',\r\n 'Save & Close': 'Запис и Затваряне',\r\n 'No Selection': 'Няма избор',\r\n 'Disease code': 'Код на заболяването',\r\n 'Disease name': 'Име на заболяването',\r\n 'Filter': 'Филтър',\r\n 'Clear': 'Изчисти',\r\n 'InfectiousDisease': 'Инфекциозно заболяване',\r\n 'DeficiencyDisease': 'Дефицитно заболяване',\r\n 'HereditaryDisease': 'Наследствено заболяване',\r\n 'PhysiologicalDisease': 'Физиологично заболяване',\r\n 'ChronicDisease': 'Хронично заболяване',\r\n 'Single Dose': 'Единична доза',\r\n 'Frequency Of Intake': 'Честота на приемане',\r\n 'Intake Conditions': 'Условия на приемане',\r\n 'Alarms': 'Аларми',\r\n 'Medicine Number': 'Номер на лекарство',\r\n 'Number': 'Номер',\r\n 'Additional Title': 'Допълнително описание',\r\n 'Diseases': 'Заболявания',\r\n 'Prescriptions': 'Рецепти',\r\n 'My Prescriptions': 'Моите рецепти',\r\n 'Profession': 'Професия',\r\n 'Driver': 'Шофиране',\r\n 'MachineOperator': 'Оператор на машина',\r\n 'Prescription': 'Рецепта',\r\n 'Doctor': 'Доктор',\r\n 'Hospital': 'Лечебно заведение',\r\n 'All Medicines': 'Всички лекарства',\r\n 'All Diseases': 'Всички заболявания',\r\n 'Selected': 'Избрани',\r\n 'Your Information': 'Моята информация',\r\n 'Download Your Information': 'Свалете вашата информация',\r\n 'DownloadYourInformationDescription': \"Можете да изтеглите копие от информацията си в MedXchange по всяко време. Можете да изтеглите цялата информация наведнъж в JSON формат, който може да позволи на друга услуга да я импортира по-лесно. Ако искате да видите информацията си, без да я изтеглите, можете да осъществите достъп до информацията си по всяко време.\",\r\n 'Download': 'Свалете',\r\n 'Delete Account': 'Изтрий акаунт',\r\n 'Permanently Delete Account': 'Изтрийте Вашият акаунт',\r\n 'DeleteAccountPermanentlyDescription': \"Може да изтриете акаунта си в MedXchange по всяко време. След като процесът на изтриване започне, няма да можете да активирате отново профила си или да изтеглите съдържанието или информацията, която сте добавили.\",\r\n 'Are you sure that you want to delete your Account permanently?': 'Сигурни ли сте, че искате да изтриете Вашият акаунт завинаги?',\r\n 'Confirm Dialog': 'Диалог за потвърждение',\r\n 'Yes': 'Да',\r\n 'No': 'Не',\r\n '5000': 'Избраното заболяване вече е добавено.',\r\n '5001': 'Избраното лекарството вече е добавено.',\r\n 'Disease History': 'Хронология на заболяването',\r\n 'Medicine History': 'Прием на лекарство',\r\n '5002': 'Несъществуващо заболяване.',\r\n '5003': 'Несъществуващо лекарство.',\r\n 'My Family': 'Моето семейство',\r\n 'Cookies Policy': 'Политика за бисквитките',\r\n 'Personal Data Policy': 'Политика за личните данни',\r\n 'Check': 'Провери',\r\n 'Result': 'Резултата',\r\n 'Start with': 'Започващи с',\r\n 'Selected medicine already exist in list.': 'Избраното лекарство вече е добавено.',\r\n 'Male': 'Мъж',\r\n 'Female': 'Жена',\r\n 'ZeroNeagtive': '0-',\r\n 'ZeroPositive': '0+',\r\n 'ANegative': 'A-',\r\n 'APositive': 'А+',\r\n 'BNegative': 'B-',\r\n 'BPositive': 'B+',\r\n 'ABNegative': 'AB-',\r\n 'ABPositive': 'AB+',\r\n 'Gender': 'Пол',\r\n 'Blood Type': 'Кръвна група',\r\n 'Personal Data': 'Лични данни',\r\n 'Account': 'Акаунт',\r\n 'Height (cm)': 'Височина (см)',\r\n 'Weight (kg)': 'Тегло (кг)',\r\n 'Birthdate': 'Дата на раждане',\r\n 'Other parameters': 'Други параметри',\r\n 'Add medicine to check interactions.': 'Добави лекарства, за да провериш взаимодействията им.',\r\n 'Other parameters interactions': 'Взаимодействия с други параметри',\r\n 'There is no drug interactions.': 'Няма взаимодействия с лекарства.',\r\n 'There is no diseases interactions.': 'Няма взаимодействия със заболявания.',\r\n 'There is no other interactions.': 'Няма ваимодействия с други параметри.',\r\n 'EnterDiseaseName': 'Въведете име на болеста',\r\n 'EnterDiseaseCode': 'Въведете код на болеста',\r\n 'StartEndDate': 'Начална - крайна дата',\r\n 'DoseTake': 'Доза - приемане',\r\n 'ToMyFriends': 'Всички',\r\n 'Son': 'Син',\r\n 'Daughter': 'Дъщеря',\r\n 'Father': 'Баща',\r\n 'Mother': 'Майка',\r\n 'Sister': 'Сестра',\r\n 'Brother': 'Брат',\r\n 'Husband': 'Съпруг',\r\n 'Wife': 'Съпруга',\r\n 'Other': 'Друг',\r\n 'RelationType': 'Роднинска връзка',\r\n 'AddindFamily': 'Добавяне на роднина',\r\n 'Description': 'Описание',\r\n 'Recurrency Type': 'Тип повтаряемост',\r\n 'Notification Type': 'Тип на известието',\r\n 'Notifications': 'Известия',\r\n 'Date': 'Дата',\r\n 'Time': 'Време',\r\n 'Notes': 'Бележки',\r\n 'Active': 'Активен',\r\n 'Frequency': 'Честота',\r\n 'Occurs once at': 'Случва се веднъж в',\r\n 'Occurs every hour(s)': 'Случва се на всеки час(а)',\r\n 'Starting at': 'Започва в',\r\n 'Ending at': 'Приключва в',\r\n 'Recurs every': 'На всеки',\r\n 'Recurs every(f)': 'На всяка',\r\n 'day(s)': 'ден(а)',\r\n 'week(s)': 'седмица(и)',\r\n 'month(s)': 'месец(и)',\r\n 'OneTime': 'Единична',\r\n 'Recurring': 'Повтаряща се',\r\n 'Daily': 'Дневна',\r\n 'Weekly': 'Седмична',\r\n 'Monthly': 'Месечна',\r\n 'Occurs on': 'Случва се',\r\n 'at': 'в',\r\n 'Occurs every': 'Случва се всеки',\r\n 'Schedule will be used between': 'Графикът ще бъде използван между',\r\n 'and': 'и',\r\n 'Schedule will be used starting on': 'Графикът ще бъде използван започвайки от',\r\n 'day': 'ден',\r\n 'week': 'седмица',\r\n 'month': 'месец',\r\n 'every': 'всеки',\r\n 'hour(s) between': 'час(а) между',\r\n 'EditingFamily': 'Редакция на роднина',\r\n 'UserInfo': 'Информация за потребител',\r\n 'InfoForUser': 'Информация за ',\r\n 'Information': 'Информация',\r\n 'DriveMachine': 'Шофиране и работа с машини',\r\n 'When driving': 'При шофиране',\r\n 'When using machine': 'При работа с машини',\r\n 'My Condition': 'Моето състояние',\r\n 'My Profile': 'Моят профил',\r\n 'Settings': 'Настройки',\r\n 'BloodPressure': 'Кръвно налягане',\r\n 'HeartRate': 'Пулс',\r\n 'Height': 'Височина',\r\n 'Weight': 'Тегло',\r\n 'On': 'На',\r\n 'Every': 'Всеки',\r\n 'Notification': 'Известие',\r\n 'Once at': 'Веднъж в',\r\n 'Every hour(s)': 'На всеки час(а)',\r\n 'AddCondition': 'Добавяне на състояние',\r\n 'EditCondition': 'Редакция на състояние',\r\n 'Condition': 'Състояние',\r\n 'Value': 'Стойност',\r\n 'ConditionInList': 'Следното/е състояние/я вече съществуват във вашия списък',\r\n 'ConditionConfirm': 'Сигурни ли сте, че искате да изтриете характеристиката и всички нейни стойности',\r\n 'See': 'Виж',\r\n 'Unit': 'Мерна единица',\r\n 'EnterHeight': 'Въведете височина (170)',\r\n 'EnterWeight': 'Въведете тегло (70)',\r\n 'EnterBloodPressure': 'Въведете кръвно налягане (140/80)',\r\n 'EnterHeartRate': 'Въведете пулс (60)',\r\n 'EnterDesc': 'Описание (главоболие, болки в корема)',\r\n 'EnterHemoglobin': 'Въведете хемоглобин (140)',\r\n 'for': 'за',\r\n 'medicine': 'лекарство',\r\n 'prescription': 'рецепта',\r\n 'ViewCond': 'Преглед на състояние',\r\n 'Language': 'Език',\r\n 'AddNewCondition': 'Добавяне на ново състояние',\r\n 'Filters': 'Филтри',\r\n 'NotAllEntered': 'Моля въведете всички стойности',\r\n 'MedicinesForPrescription': \"Лекарства към рецепта\",\r\n 'DiseasesForPrescription': \"Заболявания към рецепта\",\r\n 'Legend': 'Легенда',\r\n 'PushNotification': 'Известие',\r\n 'Receive Push Notifications': 'Получаване на известия',\r\n 'User Settings': 'Потребителски настройки',\r\n 'You have to be logged in to activate Notifications.': 'Трябва да се логнете, за да управлявате известията.',\r\n 'Bulgarian': 'Български',\r\n 'English': 'Английски',\r\n 'You have successfully subscribed for Notifications.': 'Вие успешно се записахте за известия.',\r\n 'You have successfully unsubscribed from Notifications.': 'Вие успешно се отписахте от известия.',\r\n 'Failed to unsubscribe from Push Notifications:': 'Неуспешно отписване от известия:',\r\n 'Failed to subscribe for Push Notifications:': 'Неуспешно записване за известия:',\r\n 'Sunday': 'Неделя',\r\n 'Monday': 'Понеделник',\r\n 'Tuesday': 'Вторник',\r\n 'Wednesday': 'Сряда',\r\n 'Thursday': 'Четвъртък',\r\n 'Friday': 'Петък',\r\n 'Saturday': 'Събота',\r\n 'sunday': 'неделя',\r\n 'monday': 'понеделник',\r\n 'tuesday': 'вторник',\r\n 'wednesday': 'сряда',\r\n 'thursday': 'четвъртък',\r\n 'friday': 'петък',\r\n 'saturday': 'събота',\r\n 'on': 'на',\r\n 'Every(f)': 'Всяка',\r\n 'Hourly': 'Часова',\r\n 'Alarm Time': 'Час на аларма',\r\n 'hour(s)': 'час(а)',\r\n 'hour': 'час',\r\n 'between': 'между',\r\n 'starting on': 'започвайки от',\r\n 'from': 'от',\r\n \"ActiveА\": \"Активна\",\r\n \"NotActive\": \"Неактивна\",\r\n 'Deleted Successfully': \"Изтриването беше успешно\",\r\n 'Data Saved Successfully': \"Данните бяха записани успешно\",\r\n 'Medicines of': \"Лекарства на\",\r\n 'Diseases of': 'Заболявания на',\r\n 'Menu': 'Меню',\r\n 'Of': 'на',\r\n 'Confirm Message': 'Сигурни ли сте, че искате да изтриете',\r\n 'This record': 'този запис',\r\n 'And medicines diseases notifications': 'и лекарствата, заболяванията и алармите към нея',\r\n 'Are you sure you want to logout': 'Сигурни ли сте, че искате да излезете?',\r\n 'No disease selected': 'Няма избрано заболяване',\r\n 'No medicine selected': 'Няма избрано лекарство',\r\n '5004': 'Несъществуваща рецепта',\r\n '5005': 'Несъществуваща аларма',\r\n '5006': 'Невалидна дата на аларма',\r\n '5007': 'Несъществуващ график на аларма',\r\n '6000': 'Несъществуваща активна съставка',\r\n '6001': 'Невалидни странични ефекти',\r\n '6002': 'Невалидни дозировки',\r\n '6003': 'Несъществуваща болест',\r\n '6004': 'Несъществуващи храна или алкохол',\r\n '6005': 'Несъществуваща неактвина съставка',\r\n '6006': 'Несъществуващ производител',\r\n '6007': 'Невалидни бременност или кърмене',\r\n '6008': 'Невалидни шофьор или машина',\r\n '6009': 'Невалидни данни за сигурност',\r\n 'Do you want to activate notification on this device': 'Искате ли да активирате известията на това устройство',\r\n 'Alarm time cannot be empty': 'Часът на алармата не може да бъде празен',\r\n 'Date cannot be empty': 'Датата не може да бъде празна',\r\n 'Alarm date and/or time': 'Датата и/или часът',\r\n 'are lesser than current time': 'са по-малки от настоящата дата',\r\n 'Alarm will never execute': 'Алармата няма как да се изпълни',\r\n 'Please choose frequency': 'Моля изберете \"Тип повтаряемост\"',\r\n 'Please choose counter': 'Моля изберете \"На всеки ден(а)\"',\r\n 'Start date cannot be empty': 'Началната дата не може да бъде празна',\r\n 'Start date is greater than end date': 'Началната дата е по-голяма от крайната',\r\n 'End date is lesser than today': 'Крайната дата е по-малка от настоящата',\r\n '5008': 'Датата на алармата е изтекла',\r\n 'Are you sure that you want to delete this record': 'Сигурни ли сте, че искате да изтриете този запис?',\r\n ' Medicine will be removed from prescription ': ' Лекарството ще бъде изтрито от рецепта ',\r\n ' Disease will be removed from prescription ': ' Болестта ще бъде изтрита от рецепта ',\r\n 'Please select disease': 'Моля изберете заболяване',\r\n 'Please select medicine': 'Моля изберете лекарство',\r\n '6010': 'Несъществуващ файл',\r\n '6011': 'Несъществуващи данни за специалисти',\r\n '6012': 'Несъществуващи данни за бременност и кърмене',\r\n '6013': 'Несъществуващи данни за шофьор и машина',\r\n '6014': 'Несъществуващи данни за странични ефекти',\r\n '6015': 'Несъществуващи данни за дозировка',\r\n '6016': 'Несъществуващи данни за взаимодействие',\r\n 'Please enter a valid e-mail address.': 'Моля въведете валидна електронна поща.',\r\n 'Please enter personal name.': 'Моля въвдете вашето име.',\r\n '6 characters or more, at least 1 alphabetical and 1 numeric.': 'Минимум 6 символа, с поне една буква и една цифра.',\r\n 'Please enter password again.': 'Моля въведете паролата отново.',\r\n 'Password must be at least 6 characters and contain at least 1 alphabetical and 1 numeric character': 'Паролата трябва да е минимум 6 символа, с поне една буква и една цифра',\r\n 'You have to take medicines at': 'Имате да приемате лекарства в',\r\n 'oclock on date': 'часа на дата',\r\n '5009': 'Несъществуващ запис към лекарство',\r\n '5010': 'Несъществуващ запис към болест',\r\n 'No records found': 'Няма намерени записи.',\r\n 'total records.': 'резултат(а) общо.',\r\n 'current medicine history.': 'прием(а) на лекарство към настоящия момент.',\r\n 'current disease count.': 'заболявания към настоящия момент.',\r\n 'have to take his/hers medicines at': 'има да приема лекарства в',\r\n 'current prescriptions.': 'рецепта(и) към настоящия момент.',\r\n 'You don\\'t have new notifications': 'Нямате нови известия.',\r\n 'You don\\'t have old notifications': 'Нямате стари известия',\r\n 'See All': 'Виж всички',\r\n 'Search': \"Търсене\",\r\n 'Check medicine interactions': 'Провери взаимодействията на лекарства',\r\n 'List of all Diseases': 'Списък на всички заболявания',\r\n 'Find nearest Pharmacy': 'Намери най-близката аптека',\r\n 'Pharmacies': 'Аптеки',\r\n 'Choose characteristic': 'Изберете характеристика',\r\n 'Name of characteristic': 'Име на характеристика',\r\n 'New characteristic': 'Нова характеристика',\r\n 'DateTimeFormat': \"dd.MM.yyyy г. HH:mm ч.\",\r\n 'DateFormat': 'dd.MM.yyyy г.',\r\n 'SearchDiseaseInDatabase': 'Търсене по име на заболяване',\r\n 'Characteristic already exist': 'Вече има характеристика с такова име',\r\n 'Your characteristics': 'Вашите характеристики',\r\n 'Characteristic is used': 'Тази характеристика се използва в предишно/и състояние/я и не може да бъде изтрита',\r\n 'Test is used': 'Това изследване се използва в предишен/и резултат/и и не може да бъде изтрито',\r\n 'BeforeEating': 'Преди хранене',\r\n 'WhileEating': 'По време на хранене',\r\n 'AfterEating': 'След хранене',\r\n 'Choose acceptance': 'Лекарството е прието',\r\n 'Specification of intake': 'Прием на лекарство',\r\n 'No Intake': 'Няма записан прием',\r\n 'Mark all as seen': 'Маркирай всички като видени',\r\n 'SendNotification': 'Изпрати известие и на',\r\n 'IfItsNotTaken': 'Ако не е прието след',\r\n 'Five': '5 минути',\r\n 'Ten': '10 минути',\r\n 'Fifteen': '15 минути',\r\n 'Twenty': '20 минути',\r\n 'Thirty': '30 минути',\r\n 'Sixty': '1 час',\r\n 'UserCreated': 'Създаване на нов потребител',\r\n 'Caretaker': 'Избор на асистент',\r\n 'SearchUserInDatabase': 'Търсене по имейл',\r\n 'EnterUserName': 'Име или имейл',\r\n 'AlreadyExist': 'Потребителят вече го има във вашият списък',\r\n 'You have successfully accept invitation': 'Вие успешно приехте поканата за асистиране',\r\n 'Confirm': 'Потвърждение',\r\n 'taken at': 'приетo на',\r\n 'Waiting': 'Очаква се потвърждение',\r\n 'Approved': 'Асистент',\r\n 'EnterAddressOrCity': 'Адрес или град',\r\n 'DisposalPlaces': 'Места за събиране на медикаменти',\r\n 'Find nearest Disposal place': 'Намери най-близкото място',\r\n 'Your location': 'Вашето местоположение',\r\n 'Not allowed food and drinks': 'Непозволени храни и напитки',\r\n 'Information about': 'Информация за',\r\n 'ATC code': 'ATC код',\r\n 'Мolecular Formula': 'Молекулна формула',\r\n 'starts with': 'започващи с',\r\n 'contain text': 'съдържащи текста',\r\n 'All medicines': 'Всички лекарства',\r\n 'contain': 'съдържащи',\r\n 'Recommended food and drinks': 'Препоръчителни храни и напитки',\r\n 'Treatment recommendations': 'Препоръки за лечение',\r\n 'Course of treatment': 'Курс на лечение',\r\n 'Start date course of treatment': 'Начална дата на курса на лечение',\r\n 'End date course of treatment': 'Крайна дата на курса на лечение',\r\n 'Allergies': 'Алергии',\r\n 'Porduct Number': 'Номер на продукта',\r\n 'Filtering': 'Филтрирай',\r\n 'Authorised': 'Авторизирано',\r\n 'Withdrawn': 'Изтеглено',\r\n 'Refused': 'Отказано',\r\n 'Pending': 'Изчакващо',\r\n 'Suspended': 'Преустановено',\r\n 'From': 'От',\r\n 'To': 'До',\r\n 'Prescription From Doctor': 'Рецепта от доктор',\r\n 'This medicine is attached to prescription': 'Това лекарство е закачено към рецепта от доктор',\r\n 'This disease is attached to prescription': 'Това заболяване е закачено към рецепта от доктор',\r\n 'Temperature': 'Температура',\r\n 'BloodSugar': 'Кръвна захар',\r\n 'EnterTemperature': 'Въведете температура (36.6)',\r\n 'EnterBloodSugar': 'Въведете кръвна захар (4.8)',\r\n 'PersonalConditionConfirm': 'Сигурни ли сте, че искате да изтриете избраната лична характеристика?',\r\n 'Characteristic': 'Характеристика',\r\n 'Characteristics': 'Характеристики',\r\n 'All conditions': 'Всички състояния',\r\n 'DataSource': 'Източник на информация',\r\n 'EMA': 'Европейска агенция по лекарства',\r\n 'BDA': 'Изпълнителната агенция по лекарства',\r\n 'New': 'Нови',\r\n 'Old': 'Стари',\r\n 'Add Characteristic': 'Въведете стойности.',\r\n 'New Characteristic': 'Нова характеристика',\r\n 'Chatbot': 'Чатбот',\r\n 'Doctors prescriptions': 'Лекарски предписания',\r\n 'Doctors prescription': 'Лекарско предписание',\r\n 'Diet': 'Хранителен режим',\r\n 'Life mode': 'Жизнен режим',\r\n 'Hemoglobin': 'Хемоглобин',\r\n 'Laboratory result': 'Резултати от изследвания',\r\n 'Add Laboratory result': 'Добавете резултати от изследване',\r\n 'Edit laboratory Result': 'Редактиране на резултати от изследване',\r\n 'Add Lab result': 'Добавете изследвания',\r\n 'New laboratory test': 'Ново изследване',\r\n 'Choose test': 'Изберете изследване',\r\n 'LaboratoryResultConfirm': 'Сигурни ли сте, че искате да изтриете избрания резултат от изследвания за ',\r\n 'PersonalTestConfirm': 'Сигурни ли сте, че искате да изтриете избраното лично изследване?',\r\n 'Files': 'Файлове',\r\n 'Add files': 'Добавете файлове',\r\n 'FileRemove': 'Сигурни ли сте, че искате да премахнете избрания файл?',\r\n 'Allowed file types are': 'Позволените разширения са',\r\n 'File size is greater than': 'Файлът е с размер по голям от разрешения',\r\n 'Min': 'Минимална стойност',\r\n 'Max': 'Максимална стойност',\r\n 'laboratoryResultInList': 'Изследването вече е в листа',\r\n 'AgeAbb': 'год.',\r\n 'Over': 'над',\r\n 'Under': 'под',\r\n 'Age': 'Възраст',\r\n 'Reference values': 'Референтни стойности',\r\n 'All Laboratory Results': 'Всички резултати от изследвания',\r\n 'Yours reference values': 'Вашите референтни стойности',\r\n 'Allowed formats': 'Позволени формати',\r\n 'Max total file size': 'Макс. общ размер на файловете',\r\n 'TotalCholesterol': 'Общ холестерол',\r\n 'HighDensityLipoproteinCholesterol': 'HDL холестерол',\r\n 'LowDensityLipoproteinCholesterol': 'LDL холестерол',\r\n 'Triglycerides': 'Триглицериди',\r\n 'EnterTotalCholesterol': 'Въведете общ холестерол(3.2)',\r\n 'EnterHDL': 'Въведете HDL-холестерол(2.1)',\r\n 'EnterLDL': 'Въведете LDL-холестерол(2.5)',\r\n 'EnterTriglycerides': 'Въведете триглицериди(4.3)',\r\n 'LabTest': 'Изследване',\r\n 'Enter valid value': 'Въведете валидни стойности',\r\n 'Scan': 'Сканирай',\r\n 'The connection was interrupted': 'Връзката беше прекъсната',\r\n 'Connect with a device': 'Връзка с Bluetooth (LE) устройства',\r\n 'Current value': 'Текуща стойност',\r\n 'No current value': 'Сканирайте за налични устройства. От списъка с налични устройства изберете желаното и се сдвоете с него (Pair)',\r\n 'BloodPresureValid': 'Уверете се че стойноста е правилно въведена (140/80)',\r\n 'BloodPresureExample': 'Пример: 140/80',\r\n 'BottomNumber': 'Долна граница',\r\n 'TopNumber': 'Горна граница',\r\n 'AddValue': 'Добавете стойност',\r\n 'ConditionTypeConfirm': 'Сигурни ли сте, че искате да изтриете избраният запис?',\r\n '11003': 'Несъществуващи данни за лабораторен резултат',\r\n 'Enter name or select alpha index': 'Въведете име или изберете буква',\r\n 'TotalResults': 'резултата общо',\r\n 'ReceivingData': 'Получаване на данни...',\r\n 'ReceivedData': 'Получени данни',\r\n 'BottomNumberBigger': 'Долната граница не може да бъде с по-голяма стойност от горната граница',\r\n 'OneDay': '1 ден',\r\n 'OneWeek': '1 седмица',\r\n 'OneMonth': '1 месец',\r\n 'ThreeMonths': '3 месеца',\r\n 'SixMonths': '6 месеца',\r\n 'OneYear': '1 година',\r\n 'Advanced': 'Разширено',\r\n 'Period': 'Период',\r\n 'All Results': 'Всички резултата',\r\n 'Snooze': 'Отложи',\r\n 'min.': 'мин.',\r\n 'snoozed for': 'отложено за',\r\n 'Take': 'Прием',\r\n 'Minutes': 'минути',\r\n 'InCaseThat': 'в случай, че лекарството не е прието след',\r\n 'SendNotificationsTo': 'Изпращане на известие и на',\r\n 'NormInfoPopMessage': 'Изборът на норма се определя от личните ви данни',\r\n 'User Functionalities': 'Потребителски функционалности',\r\n 'Pregnancy and Breastfeeding': 'Бременност, кърмене и фертилитет',\r\n 'DrivingAndUsingMachines': 'Шофиране и работа с машини',\r\n 'EPAR': 'Кратка характеристика на продукта и Листовка за пациента',\r\n 'All diseases': 'Всички заболявания',\r\n 'Enter birht date': 'Изберете рожденна дата',\r\n 'Locations': 'Локации',\r\n '4007': 'Потребителят не е аутентикиран',\r\n 'current doctors prescriptions.': 'предписание(я) към настоящия момент.',\r\n 'doctor': 'доктор',\r\n 'Doctors prescription from doctor': 'Лекарско предписание от доктор',\r\n}\r\n\r\n\r\nexport default bg;","const en = {\r\n \"Home\": \"Home\",\r\n \"Add\": \"Add\",\r\n \"Adding\": \"Adding\",\r\n \"Editing\": \"Editing\",\r\n \"Edit\": \"Edit\",\r\n \"Delete\": \"Delete\",\r\n \"Save\": \"Save\",\r\n \"Cancel\": \"Cancel\",\r\n \"Close\": \"Close\",\r\n \"Open\": \"Open\",\r\n 'View': 'View',\r\n 'Remove': 'Remove',\r\n 'Medicines': 'Medicines',\r\n 'Medicine': 'Medicine',\r\n 'OverviewAbout': 'What is and what it is used for',\r\n 'OverviewBeforeIntake': 'What you need to know before your child receives',\r\n 'OverviewDosage': 'How is given',\r\n 'OverviewSideEffects': 'Possible side effects',\r\n 'OverviewSafetyData': 'How to store',\r\n 'OverviewAdditionalInfo': 'Contents of the pack and other information',\r\n 'LeafletUserInfo': 'Package leaflet: Information for the user',\r\n 'WhatIsInLeaflet': 'What is in this leaflet:',\r\n 'WhatIsInProduct': 'What is in',\r\n 'ActiveIngredients': 'Active ingredients',\r\n 'WhatLooksAndPackageContents': 'What looks like and contents of the pack',\r\n 'FirstSideImprint': 'imprinted on one side with',\r\n 'NotAllPackagesMarketed': 'Не всички видове опаковки могат да бъдат пуснати в продажба.',\r\n 'MarketingAuthorisationHolderAndManufacturer': 'Marketing Authorisation Holder and Manufacturer',\r\n 'MarketingAuthorisationHolder': 'Marketing Authorisation Holder',\r\n 'Manufacturer': 'Manufacturer',\r\n 'BrandName': 'Brand Name',\r\n 'GenericName': 'Generic Name',\r\n 'Overview': 'Overview',\r\n 'SideEffects': 'Side Effects',\r\n 'Dosage': 'Dosage',\r\n 'Professional': 'Professional',\r\n 'Interactions': 'Interactions',\r\n 'Interactions with': 'Interactions with',\r\n 'interactions': 'interactions',\r\n 'Leaflet': 'Leaflet',\r\n 'InactiveIngredients': 'Inactive ingredients',\r\n 'LeafletForUser': 'User Leaflet',\r\n 'SmPC': 'Summary of product characteristics',\r\n 'Leaflets': 'Leaflets',\r\n 'FilesForDownload': 'Files for download',\r\n 'PharmaceuticalForm': 'Pharmaceutical Form',\r\n 'Imprint': 'Imprint',\r\n 'Strength': 'Strength',\r\n 'Color': 'Color',\r\n 'Size': 'Size',\r\n 'Shape': 'Shape',\r\n 'Packiging': 'Packiging',\r\n 'PackegeSize': 'Packege Size',\r\n 'DDD': 'DDD',\r\n 'RouteOfAdministration': 'Route of Administration',\r\n 'ProductInformation': 'Product Information',\r\n 'ProductType': 'Product Type',\r\n 'ItemCode': 'Item Code',\r\n 'Name': 'Name',\r\n 'BasisOfStrength': 'Basis of Strength',\r\n 'ProductCharacteristics': 'Product characteristics',\r\n 'MarketingInformation': 'Marketing information',\r\n 'FirstAuthorizationDate': 'First authorization date',\r\n 'LastAuthorizationDate': 'Last authorization date',\r\n 'Score': 'Score',\r\n 'Flavor': 'Flavor',\r\n 'Contains': 'Contains',\r\n 'MedicineIndexAtoZ': 'Medicine Index A to Z',\r\n 'MedicineBrowseText': 'The resources below have been provided to help narrow your search to specific, targeted drug information. Information is available for both consumers and healthcare professionals on over 24,000 prescription and over the counter medicines.',\r\n 'BrowseAllMedicine': 'All medicines list',\r\n 'CheckMedicineInteractions': 'Check medicines interactions',\r\n 'SearchMedicineInDatabase': 'Search by medicine name or active ingredient name',\r\n 'BrowseAlphabetically': 'Browse Alphabetically',\r\n 'BrowseMedicinesByCategory': 'Browse Medicines by Category',\r\n 'Top40MedicineSearches': 'Top 10 Medicine Searches',\r\n 'Pregnancy': 'Pregnancy',\r\n 'Breastfeeding': 'Breastfeeding',\r\n 'Pregnancy&Breastfeeding': 'Pregnancy & Breastfeeding',\r\n 'EnterMedicineName': 'Medicine or active ingredient',\r\n 'MedicineListDescription': 'Drugs and medications listed by brand and/or generic name.',\r\n 'MedicineListDescriptionStartWith': 'Drugs and medications listed by brand and/or generic name starting with the letter',\r\n 'MedicineListDescriptionBySearchText': 'Drugs and medications listed by brand and/or generic name which contain searched text',\r\n 'MedXchangeDescription': 'MedXchange is a treatment assistant that provides detailed information on the content and interaction of substances in medicinal products with other medicines, foods and diseases.',\r\n 'CanNotFindYourMedicine': 'Can\\'t find your medication?',\r\n 'ResulFound': 'records found.',\r\n 'Major': 'Major',\r\n 'Moderate': 'Moderate',\r\n 'Minor': 'Minor',\r\n 'Unknown': 'Unknown',\r\n 'DrugInteractionClassification': 'Drug Interaction Classification',\r\n 'DrugInteractionClassificationDescription': 'The classifications below are a general guideline only. It is difficult to determine the relevance of a particular drug interaction to any individual given the large number of variables.',\r\n 'DrugInteractionClassificationMajor': 'Highly clinically significant. Avoid combinations; the risk of the interaction outweighs the benefit.',\r\n 'DrugInteractionClassificationModerate': 'Moderately clinically significant. Usually avoid combinations; use it only under special circumstances.',\r\n 'DrugInteractionClassificationMinor': 'Minimally clinically significant. Minimize risk; assess risk and consider an alternative drug, take steps to circumvent the interaction risk and/or institute a monitoring plan.',\r\n 'DrugInteractionClassificationUnknown': 'No information available.',\r\n 'DrugInteractionClassificationDoNotStop': 'Do not stop taking any medications without consulting your healthcare provider.',\r\n 'DrugInteractions': 'Drug Interactions',\r\n 'Alcohol/FoodInteractions': 'Alcohol/Food Interactions',\r\n 'DiseaseInteractions': 'Disease Interactions',\r\n 'DriveMachineInteractions': \"Drive/Machine Interactions\",\r\n 'drive/machineInteractions': \"drive/machine interactions\",\r\n 'A total of %s drugs (%s brand and generic names) are known to interact with ': 'A total of %s drugs (%s brand and generic names) are known to interact with ',\r\n 'drug interactions': 'drug interactions',\r\n 'brand and generic names': 'brand and generic names',\r\n 'Show all medications in the database that may interact with': 'Show all medications in the database that may interact with',\r\n 'with': 'with',\r\n 'Alcohol and food interactions with': 'Alcohol and food interactions with',\r\n 'Disease interactions with': 'Disease interactions with',\r\n 'There are': 'There are',\r\n 'Drug interactions between %s and %s': 'Drug interactions between %s and %s',\r\n 'Switch to professional interaction data': 'Switch to professional interaction data',\r\n 'Switch to consumer interaction data': 'Switch to consumer interaction data',\r\n 'Consumer': 'Consumer',\r\n 'Drug interactions with': 'Drug interactions with',\r\n 'Summary': 'Summary',\r\n 'For the Consumer': 'For the Consumer',\r\n 'Overdose Description': 'Overdose Description',\r\n 'For Healthcare Professionals': 'For Healthcare Professionals',\r\n 'Other Information': 'Other Information',\r\n 'Other Comments': 'Other Comments',\r\n 'Precautions': 'Precautions',\r\n 'Dose Adjustments': 'Dose Adjustments',\r\n 'Very Common': 'Very Common',\r\n 'Common': 'Common',\r\n 'Uncommon': 'Uncommon',\r\n 'Rare': 'Rare',\r\n 'Very rare': 'Very rare',\r\n 'Frequency not reported': 'Frequency not reported',\r\n 'Postmarketing reports': 'Postmarketing reports',\r\n '10% or more': '10% or more',\r\n '1% to 10%': '1% to 10%',\r\n '0.1% to 1%': '0.1% to 1%',\r\n '0.01% to 0.1%': '0.01% to 0.1%',\r\n '0.001% to 0.01': '0.001% to 0.01',\r\n 'usual dose for': 'usual dose for',\r\n 'Adult': 'Adult',\r\n 'Pediatric': 'Pediatric',\r\n 'Comments': 'Comments',\r\n 'Uses': 'Uses',\r\n 'Maximum dose': 'Maximum dose',\r\n 'Duration of therapy': 'Duration of therapy',\r\n 'Implant': 'Implant',\r\n 'Inhalation': 'Inhalation',\r\n 'Instillation': 'Instillation',\r\n 'Nasal': 'Nasal',\r\n 'Oral': 'Oral',\r\n 'Parenteral': 'Parenteral',\r\n 'Rectal': 'Rectal',\r\n 'Sublingual/buccal/oromucosal': 'Sublingual/buccal/oromucosal',\r\n 'Transdermal': 'Transdermal',\r\n 'Vaginal': 'Vaginal',\r\n 'Human drug': 'Human drug',\r\n 'Login': 'Login',\r\n 'Email': 'Email',\r\n 'Password': 'Password',\r\n 'New to MedXchange?': 'New to MedXchange?',\r\n 'or login with': 'or login with',\r\n 'Forgot password?': 'Forgot password?',\r\n 'Create a New Account': 'Create a New Account',\r\n 'Confirm Password': 'Confirm Password',\r\n 'Create': 'Create',\r\n 'Please accept personal data private Policy': 'Please accept personal data private Policy',\r\n 'Accept': 'Accept',\r\n 'personal data protection policy': 'personal data protection policy',\r\n 'Please enter your email.': 'Please enter your email.',\r\n 'Send': 'Send',\r\n 'Invalid E-mail or Password.': 'Invalid E-mail or Password.',\r\n 'Invalid E-mail.': 'Invalid E-mail.',\r\n '4000': 'User item not found.',\r\n '4001': 'Old Password is invalid',\r\n '4002': 'New Password nad Confirm Password are not same.',\r\n '4003': 'Already exist User with this Email',\r\n '4004': 'Not valid e-mail address',\r\n '4005': 'Not valid or expired link',\r\n '4006': 'Not valid E-mail for this link',\r\n 'Change': 'Change',\r\n 'Change Password': 'Change Password',\r\n 'Old Password': 'Old Password',\r\n 'New Password': 'New Password',\r\n 'Please enter Old Password': 'Please enter Old Password',\r\n 'Please enter New Password': 'Please enter New Password',\r\n 'Please enter Confirm Password': 'Please enter Confirm Password',\r\n 'New Password and Confirm Password are different': 'New Password and Confirm Password are different',\r\n 'Password and Confirm Password are different': 'Password and Confirm Password are different',\r\n 'Profile': 'Profile',\r\n 'My Medicine': 'My Medicine',\r\n 'My Medicines': 'My Medicines',\r\n 'My Diseases': 'My Diseases',\r\n 'Logout': 'Logout',\r\n 'Please enter Password': 'Please enter Password',\r\n 'Please enter Email': 'Please enter Email',\r\n 'Please enter valid Email': 'Please enter valid Email',\r\n 'Please enter Name': 'Please enter Name',\r\n 'You have successfully changed your Password.': 'You have successfully changed your Password.',\r\n 'You have successfully saved your data.': 'You have successfully saved your data.',\r\n 'You have successfully logged in.': 'You have successfully logged in.',\r\n 'You have successfully created a new account.': 'You have successfully created a new account.',\r\n 'Now you can go to ': 'Now you can go to ',\r\n 'Check your E-mail box to confirm registration and activate your account.': 'Check your E-mail box to confirm registration and activate your account.',\r\n 'You have successfully activated your account.': 'You have successfully activated your account.',\r\n 'Sorry but your activation link is not valid or expired.': 'Sorry but your activation link is not valid or expired.',\r\n 'We have sent an E-mail to you.': 'We have sent an E-mail to you.',\r\n 'Please check your E-mail box and click on confirmation link to change your password.': 'Please check your E-mail box and click on confirmation link to change your password.',\r\n 'Enter new Password': 'Enter new Password',\r\n 'Disease': 'Disease',\r\n 'Disease Type': 'Disease Type',\r\n 'Start Date': 'Start Date',\r\n 'End Date': 'End Date',\r\n 'Actions': 'Actions',\r\n 'Select': 'Select',\r\n 'Save & Close': 'Save & Close',\r\n 'No Selection': 'No Selection',\r\n 'Disease code': 'Disease Code',\r\n 'Disease name': 'Disease Name',\r\n 'Filter': 'Filter',\r\n 'Clear': 'Clear',\r\n 'InfectiousDisease': 'Infectious Disease',\r\n 'DeficiencyDisease': 'Deficiency Disease',\r\n 'HereditaryDisease': 'Hereditary Disease',\r\n 'PhysiologicalDisease': 'Physiological Disease',\r\n 'ChronicDisease': 'Chronic Disease',\r\n 'Single Dose': 'Single Dose',\r\n 'Frequency Of Intake': 'Frequency Of Intake',\r\n 'Intake Conditions': 'Intake Conditions',\r\n 'Alarms': 'Alarms',\r\n 'Medicine Number': 'Medicine Number',\r\n 'Number': 'Number',\r\n 'Additional Title': 'Additional Title',\r\n 'Diseases': 'Diseases',\r\n 'Prescriptions': 'Prescriptions',\r\n 'My Prescriptions': 'Recommendations from Doctor',\r\n 'Profession': 'Profession',\r\n 'Driver': 'Driver',\r\n 'MachineOperator': 'Machine Operator',\r\n 'Prescription': 'Prescription',\r\n 'Doctor': 'Doctor',\r\n 'Hospital': 'Hospital',\r\n 'All Medicines': 'All Medicines',\r\n 'All Diseases': 'All Diseases',\r\n 'Selected': 'Selected',\r\n 'Your Information': 'My Information',\r\n 'Download Your Information': 'Download Your Information',\r\n 'DownloadYourInformationDescription': \"You can download a copy of your MedXchange information at any time. You can download all of it at once in a JSON format, which could allow another service to more easily import it. If you'd like to view your information without downloading it, you can access your information at any time.\",\r\n 'Download': 'Download',\r\n 'Delete Account': 'Delete Account',\r\n 'Permanently Delete Account': 'Permanently Delete Account',\r\n 'DeleteAccountPermanentlyDescription': \"You can permanently delete your MedXchange account at any time. Once the deletion process begins, you won't be able to reactivate your account or retrieve any of the content or information you have added.\",\r\n 'Are you sure that you want to delete your Account permanently?': 'Are you sure that you want to delete your Account permanently?',\r\n 'Confirm Dialog': 'Confirm Dialog',\r\n 'Yes': 'Yes',\r\n 'No': 'No',\r\n '5000': 'Selected disease already exists in user list.',\r\n '5001': 'Selected medicine already exists in user list.',\r\n 'Disease History': 'Disease History',\r\n 'Medicine History': 'Medicine History',\r\n '5002': 'User disease not found.',\r\n '5003': 'User medicine not found.',\r\n 'My Family': 'My Family',\r\n 'Cookies Policy': 'Cookies Policy',\r\n 'Personal Data Policy': 'Personal Data Policy',\r\n 'Check': 'Check',\r\n 'Result': 'Result',\r\n 'Start with': 'Start with',\r\n 'Selected medicine already exist in list.': 'Selected medicine already exist in list.',\r\n 'Male': 'Male',\r\n 'Female': 'Female',\r\n 'ZeroNeagtive': '0-',\r\n 'ZeroPositive': '0+',\r\n 'ANegative': 'A-',\r\n 'APositive': 'А+',\r\n 'BNegative': 'B-',\r\n 'BPositive': 'B+',\r\n 'ABNegative': 'AB-',\r\n 'ABPositive': 'AB+',\r\n 'Gender': 'Gender',\r\n 'Blood Type': 'Blood Type',\r\n 'Personal Data': 'Personal Data',\r\n 'Account': 'Account',\r\n 'Height (cm)': 'Height (cm)',\r\n 'Weight (kg)': 'Weight (kg)',\r\n 'Birthdate': 'Birthdate',\r\n 'Other parameters': 'Other parameters',\r\n 'Add medicine to check interactions.': 'Add medicine to check interactions.',\r\n 'Other parameters interactions': 'Other parameters interactions',\r\n 'There is no drug interactions.': 'There is no drug interactions.',\r\n 'There is no diseases interactions.': 'There is no diseases interactions.',\r\n 'There is no other interactions.': 'There is no other interactions.',\r\n 'EnterDiseaseName': 'Enter Disease Name',\r\n 'EnterDiseaseCode': 'Enter Disease Code',\r\n 'StartEndDate': 'Start - end date',\r\n 'DoseTake': 'Dose - acceptance',\r\n 'Description': 'Description',\r\n 'Recurrency Type': 'Recurrency Type',\r\n 'Notification Type': 'Notification Type',\r\n 'Notifications': 'Notifications',\r\n 'Date': 'Date',\r\n 'Time': 'Time',\r\n 'Notes': 'Notes',\r\n 'Active': 'Active',\r\n 'Frequency': 'Frequency',\r\n 'Occurs once at': 'Occurs once at',\r\n 'Occurs every hour(s)': 'Occurs every hour(s)',\r\n 'Starting at': 'Starting at',\r\n 'Ending at': 'Ending at',\r\n 'Recurs every': 'Recurs every',\r\n 'Recurs every(f)': 'Recurs every',\r\n 'day(s)': 'day(s)',\r\n 'week(s)': 'week(s)',\r\n 'month(s)': 'month(s)',\r\n 'OneTime': 'One Time',\r\n 'Recurring': 'Recurring',\r\n 'Daily': 'Daily',\r\n 'Weekly': 'Weekly',\r\n 'Monthly': 'Monthly',\r\n 'ToMyFriends': 'Relation\\'s list ',\r\n 'Son': 'Son',\r\n 'Daughter': 'Daughter',\r\n 'Father': 'Father',\r\n 'Mother': 'Mother',\r\n 'Sister': 'Sister',\r\n 'Brother': 'Brother',\r\n 'Husband': 'Husband',\r\n 'Wife': 'Wife',\r\n 'Other': 'Other',\r\n 'RelationType': 'Relation Type',\r\n 'AddindFamily': 'Adding relation',\r\n 'Occurs on': 'Occurs on',\r\n 'at': 'at',\r\n 'Occurs every': 'Occurs every',\r\n 'Schedule will be used between': 'Schedule will be used between',\r\n 'and': 'and',\r\n 'Schedule will be used starting on': 'Schedule will be used starting on',\r\n 'day': 'day',\r\n 'week': 'week',\r\n 'month': 'month',\r\n 'every': 'every',\r\n 'hour(s) between': 'hour(s) between',\r\n 'EditingFamily': 'Edit relation',\r\n 'UserInfo': 'User information',\r\n 'InfoForUser': 'Information for ',\r\n 'Information': 'Information',\r\n 'DriveMachine': 'Driving / Machine',\r\n 'When driving': 'When driving',\r\n 'When using machine': 'When using machine',\r\n 'My Condition': 'My Condition',\r\n 'My Profile': 'My Profile',\r\n 'Settings': 'Settings',\r\n 'BloodPressure': 'Blood Pressure',\r\n 'HeartRate': 'Heart Rate',\r\n 'Height': 'Height',\r\n 'Weight': 'Weight',\r\n 'On': 'On',\r\n 'Every': 'Every',\r\n 'Notification': 'Notification',\r\n 'Once at': 'Once at',\r\n 'Every hour(s)': 'Every hour(s)',\r\n 'AddCondition': 'Add Condition',\r\n 'EditCondition': 'Edit Condition',\r\n 'Condition': 'Condition',\r\n 'Value': 'Value',\r\n 'ConditionInList': 'The following condtition/s is/are already in your list',\r\n 'ConditionConfirm': 'Are you sure, that you want to delete the characteristic and all values',\r\n 'See': 'See',\r\n 'Unit': 'Unit',\r\n 'EnterHeight': 'Enter height (170)',\r\n 'EnterWeight': 'Enter weight (70)',\r\n 'EnterBloodPressure': 'Enter blood pressure (140/80)',\r\n 'EnterHeartRate': 'Enter heart rate (60)',\r\n 'EnterDesc': 'Description (headache, stomach ache)',\r\n 'EnterHemoglobin': 'Enter Hemoglobin (140)',\r\n 'ViewCond': 'View condition',\r\n 'for': 'for',\r\n 'medicine': 'medicine',\r\n 'prescription': 'prescription',\r\n 'Language': 'Language',\r\n 'AddNewCondition': 'Add new condition',\r\n 'Filters': 'Filters',\r\n 'NotAllEntered': 'Please enter all values',\r\n 'MedicinesForPrescription': \"Medicines for prescription\",\r\n 'DiseasesForPrescription': \"Diseases for prescription\",\r\n 'Legend': 'Legend',\r\n 'PushNotification': 'Notification',\r\n 'Receive Push Notifications': 'Receive Push Notifications',\r\n 'User Settings': 'User Settings',\r\n 'You have to be logged in to activate Notifications.': 'You have to be logged in to activate Notifications.',\r\n 'Bulgarian': 'Bulgarian',\r\n 'English': 'English',\r\n 'You have successfully subscribed for Notifications.': 'You have successfully subscribed for Notifications.',\r\n 'You have successfully unsubscribed from Notifications.': 'You have successfully unsubscribed from Notifications.',\r\n 'Failed to unsubscribe from Push Notifications:': 'Failed to unsubscribe from Push Notifications:',\r\n 'Failed to subscribe for Push Notifications:': 'Failed to subscribe for Push Notifications:',\r\n 'Sunday': 'Sunday',\r\n 'Monday': 'Monday',\r\n 'Tuesday': 'Tuesday',\r\n 'Wednesday': 'Wednesday',\r\n 'Thursday': 'Thursday',\r\n 'Friday': 'Friday',\r\n 'Saturday': 'Saturday',\r\n 'sunday': 'sunday',\r\n 'monday': 'monday',\r\n 'tuesday': 'tuesday',\r\n 'wednesday': 'wednesday',\r\n 'thursday': 'thursday',\r\n 'friday': 'friday',\r\n 'saturday': 'saturday',\r\n 'on': 'on',\r\n 'Every(f)': 'Every',\r\n 'Hourly': 'Hourly',\r\n 'Alarm Time': 'Alarm Time',\r\n 'hour(s)': 'hour(s)',\r\n 'hour': 'hour',\r\n 'between': 'between',\r\n 'starting on': 'starting on',\r\n 'from': 'from',\r\n \"ActiveА\": \"Active\",\r\n \"NotActive\": \"Not Active\",\r\n 'Deleted Successfully': \"Deleted Successfully\",\r\n 'Data Saved Successfully': \"Data Saved Successfully\",\r\n 'Medicines of': \"Medicines of\",\r\n 'Diseases of': 'Diseases of',\r\n 'Menu': 'Menu',\r\n 'Of': 'of',\r\n 'Confirm Message': 'Are you sure, that you want to delete',\r\n 'This record': 'this record',\r\n 'And medicines diseases notifications': ' and its medicines, notifications and diseases',\r\n 'Are you sure you want to logout': 'Are you sure you want to logout?',\r\n 'No disease selected': 'No disease selected',\r\n 'No medicine selected': 'No medicine selected',\r\n '5004': 'User prescription not found',\r\n '5005': 'User notification not found',\r\n '5006': 'Alarm date not valid',\r\n '5007': 'Notification scheduler not found',\r\n '6000': 'Active ingredient not found',\r\n '6001': 'Side effect item not valid',\r\n '6002': 'Dosage content item not valid',\r\n '6003': 'Disease not found',\r\n '6004': 'Food or alcohol item not found',\r\n '6005': 'Inactive ingredient not found',\r\n '6006': 'Manufacturer not found',\r\n '6007': 'Pregnancy or breastfeeding item not valid',\r\n '6008': 'Drive or machine item not valid',\r\n '6009': 'Safety data item not valid',\r\n 'Do you want to activate notification on this device': 'Do you want to activate notification on this device',\r\n 'Alarm time cannot be empty': 'Alarm time cannot be empty',\r\n 'Date cannot be empty': 'Date cannot be empty',\r\n 'Alarm date and/or time': 'Alarm date and/or time',\r\n 'are lesser than current time': 'are lesser than current time',\r\n 'Alarm will never execute': 'Alarm will never execute',\r\n 'Please choose frequency': 'Please choose frequency',\r\n 'Please choose counter': 'Please choose counter',\r\n 'Start date cannot be empty': 'Start date cannot be empty',\r\n 'Start date is greater than end date': 'Start date is greater than end date',\r\n 'End date is lesser than today': 'End date is lesser than today',\r\n '5008': 'Alarm date has expired',\r\n 'Are you sure that you want to delete this record': 'Are you sure that you want to delete this record?',\r\n ' Medicine will be removed from prescription ': ' Medicine will be removed from prescription ',\r\n ' Disease will be removed from prescription ': ' Disease will be removed from prescription ',\r\n 'Please select disease': 'Please select disease',\r\n 'Please select medicine': 'Please select medicine',\r\n '6010': 'File not found',\r\n '6011': 'Professional content not found',\r\n '6012': 'Pregnancy and breastfeeding item not found',\r\n '6013': 'Drive and machine item not found',\r\n '6014': 'Side effect item not found',\r\n '6015': 'Dosage content item not found',\r\n '6016': 'Interaction item not found',\r\n 'Please enter a valid e-mail address.': 'Please enter a valid e-mail address.',\r\n 'Please enter personal name.': 'Please enter personal name.',\r\n '6 characters or more, at least 1 alphabetical and 1 numeric.': '6 characters or more, at least 1 alphabetical and 1 numeric.',\r\n 'Please enter password again.': 'Please enter password again.',\r\n 'Password must be at least 6 characters and contain at least 1 alphabetical and 1 numeric character': 'Password must be at least 6 characters and contain at least 1 alphabetical and 1 numeric character',\r\n 'You have to take medicines at': 'You have to take medicines at',\r\n 'oclock on date': \"o'clock on date\",\r\n '5009': 'Medicine history item not found',\r\n '5010': 'Disease history item not found',\r\n 'No records found': 'No records found',\r\n 'total records.': 'total records.',\r\n 'current medicine history.': 'current medicine history.',\r\n 'current disease count.': 'current disease count.',\r\n 'have to take his/hers medicines at': 'have to take his/hers medicines at',\r\n 'current prescriptions.': 'current prescriptions.',\r\n 'You don\\'t have new notifications': 'You don\\'t have new notifications.',\r\n 'You don\\'t have old notifications': 'You don\\'t have old notifications.',\r\n 'See All': 'See all',\r\n 'Search': \"Search\",\r\n 'Check medicine interactions': 'Check medicine interactions',\r\n 'List of all Diseases': 'List of all Diseases',\r\n 'Find nearest Pharmacy': 'Find nearest Pharmacy',\r\n 'Pharmacies': 'Pharmacies',\r\n 'Choose characteristic': 'Choose characteristic',\r\n 'Name of characteristic': 'Name of characteristic',\r\n 'New characteristic': 'New characteristic',\r\n 'DateTimeFormat': 'dd/MM/yyyy HH:mm',\r\n 'DateFormat': 'dd/MM/yyyy',\r\n 'SearchDiseaseInDatabase': 'Search by disease name',\r\n 'Characteristic already exist': 'Characteristic already exist',\r\n 'Your characteristics': 'Your characteristics',\r\n 'Characteristic is used': 'Characteristic is used in previous condition/s and can not be deleted',\r\n 'Test is used': 'Test is used in previous lab result/s and can not be deleted',\r\n 'BeforeEating': 'Before Eating',\r\n 'WhileEating': 'While Eating',\r\n 'AfterEating': 'After Eating',\r\n 'Choose acceptance': 'The medicine is taken',\r\n 'Specification of intake': 'Medicine intake',\r\n 'No Intake': 'There is no recorded intake',\r\n 'Mark all as seen': 'Mark all as seen',\r\n 'SendNotification': 'Send notification to',\r\n 'IfItsNotTaken': 'If it is not taken after',\r\n 'Five': '5 minutes',\r\n 'Ten': '10 minutes',\r\n 'Fifteen': '15 minutes',\r\n 'Twenty': '20 minutes',\r\n 'Thirty': '30 minutes',\r\n 'Sixty': '1 hour',\r\n 'UserCreated': 'Create new user',\r\n 'Caretaker': 'Choose assistant',\r\n 'SearchUserInDatabase': 'Search by email',\r\n 'EnterUserName': 'Name or email',\r\n 'AlreadyExist': 'The user is already in your list',\r\n 'You have successfully accept invitation': 'You have successfully accept invitation',\r\n 'Confirm': 'Confirmation',\r\n 'taken at': 'taken at',\r\n 'Waiting': 'Waiting for confirmation',\r\n 'Approved': 'Assistant',\r\n 'EnterAddressOrCity': 'Address or city',\r\n 'DisposalPlaces': 'Places to dispose of drugs',\r\n 'Find nearest Disposal place': 'Find nearest disposal place',\r\n 'Your location': 'Your location',\r\n 'Not allowed food and drinks': 'Not allowed food and drinks',\r\n 'Information about': 'Information about',\r\n 'ATC code': 'ATC code',\r\n 'Мolecular Formula': 'Мolecular Formula',\r\n 'starts with': 'starts with',\r\n 'contain text': 'contain text',\r\n 'All medicines': 'All medicines',\r\n 'contain': 'contain',\r\n 'Recommended food and drinks': 'Recommended food and drinks',\r\n 'Treatment recommendations': 'Treatment recommendations',\r\n 'Course of treatment': 'Course of treatment',\r\n 'Start date course of treatment': 'Start date course of treatment',\r\n 'End date course of treatment': 'End date course of treatment',\r\n 'Allergies': 'Allergies',\r\n 'Porduct Number': 'Porduct Number',\r\n 'Filtering': 'Filter',\r\n 'Authorised': 'Authorised',\r\n 'Withdrawn': 'Withdrawn',\r\n 'Refused': 'Refused',\r\n 'Pending': 'Pending',\r\n 'Suspended': 'Suspended',\r\n 'From': 'From',\r\n 'To': 'To',\r\n 'Prescription From Doctor': 'Prescription from doctor',\r\n 'This medicine is attached to prescription': 'This medicine is attached to precsctiption from doctor',\r\n 'This disease is attached to prescription': 'This disease is attached to precsctiption from doctor',\r\n 'Temperature': 'Temperature',\r\n 'BloodSugar': 'Blood Sugar',\r\n 'EnterTemperature': 'Enter Temperature (36.6)',\r\n 'EnterBloodSugar': 'Enter Blood Sugar (4.8)',\r\n 'PersonalConditionConfirm': 'Are you sure that you want to delete the selected personal characteristic?',\r\n 'Characteristic': 'Characteristic',\r\n 'Characteristics': 'Characteristics',\r\n 'All conditions': 'All conditions',\r\n 'DataSource': 'Data Source',\r\n 'EMA': 'European Medicines Agency',\r\n 'BDA': 'Bulgarian Drug Agency',\r\n 'New': 'New',\r\n 'Old': 'Old',\r\n 'Add Characteristic': 'Add values',\r\n 'New Characteristic': 'New Characteristic',\r\n 'Chatbot': 'Chatbot',\r\n 'Doctors prescriptions': 'Doctors prescriptions',\r\n 'Doctors prescription': 'Doctors prescription',\r\n 'Diet': 'Diet',\r\n 'Life mode': 'Life mode',\r\n 'Hemoglobin': 'Hemoglobin',\r\n 'Laboratory result': 'Laboratory result',\r\n 'Add Laboratory result': 'Add laboratory result',\r\n 'Edit laboratory Result': 'Edit laboratory result',\r\n 'Add Lab result': 'Add laboratory result',\r\n 'New laboratory test': 'New laboratory test',\r\n 'Choose test': 'Choose test',\r\n 'LaboratoryResultConfirm': 'Are you sure you want to delete laboratory result for',\r\n 'PersonalTestConfirm': 'Are you sure you want to delete the selected personal laboratory test?',\r\n 'Files': 'Files',\r\n 'Add files': 'Add files',\r\n 'FileRemove': 'Are you sure you want to remove the selected file?',\r\n 'Allowed file types are': 'Allowed file types are',\r\n 'File size is greater than': 'File size is greater than',\r\n 'Min': 'Min value',\r\n 'Max': 'Max value',\r\n 'laboratoryResultInList': 'The test is already in list',\r\n 'AgeAbb': 'age',\r\n 'Age': 'Age',\r\n 'Reference values': 'Reference values',\r\n 'All Laboratory Results': 'All Laboratory Results',\r\n 'Yours reference values': 'Yours reference values',\r\n 'Allowed formats': 'Allowed formats',\r\n 'Max total file size': 'Max total file size',\r\n 'TotalCholesterol': 'Total Cholesterol',\r\n 'HighDensityLipoproteinCholesterol': 'HDL Cholesterol',\r\n 'LowDensityLipoproteinCholesterol': 'LDL Cholesterol',\r\n 'Triglycerides': 'Triglycerides',\r\n 'EnterTotalCholesterol': 'Enter Total Cholesterol(3.2)',\r\n 'EnterHDL': 'Enter HDL-Cholesterol(2.1)',\r\n 'EnterLDL': 'Enter LDL-Cholesterol(2.5)',\r\n 'EnterTriglycerides': 'Enter Triglycerides(4.3)',\r\n 'LabTest': 'Test',\r\n 'Enter valid value': 'Enter valid value',\r\n 'Scan': 'Scan',\r\n 'The connection was interrupted': 'The connection was interrupted',\r\n 'Connect with a device': 'Connect with a Bluetooth (LE) devices',\r\n 'Current value': 'Current value',\r\n 'No current value': 'Scan for devices. From the list of available devices choose the desired and pair with it',\r\n 'BloodPresureValid': 'Make sure the value is correctly entered (140/80)',\r\n 'BloodPresureExample': 'Example: 140/80',\r\n 'BottomNumber': 'Bottom number',\r\n 'TopNumber': 'Top number',\r\n 'AddValue': 'Add value',\r\n '11003': 'User lab result item not found',\r\n 'Enter name or select alpha index': 'Enter name or select letter',\r\n 'TotalResults': 'total results',\r\n 'ReceivingData': 'Receiving data...',\r\n 'ReceivedData': 'Received data',\r\n 'BottomNumberBigger': 'Bottom number can not be with bigger value than the top number',\r\n 'OneDay': '1 day',\r\n 'OneWeek': '1 week',\r\n 'OneMonth': '1 month',\r\n 'ThreeMonths': '3 months',\r\n 'SixMonths': '6 months',\r\n 'OneYear': '1 year',\r\n 'Advanced': 'Advanced',\r\n 'Period': 'Period',\r\n 'All Results': 'All results',\r\n 'Snooze': 'Snooze',\r\n 'min.': 'min',\r\n 'snoozed for': 'snoozed for',\r\n 'Take': 'Take',\r\n 'Minutes': 'minutes',\r\n 'InCaseThat': 'if the medicine is not taken after',\r\n 'SendNotificationsTo': 'Send a notification to',\r\n 'NormInfoPopMessage': 'Norm selection is determined by your personal data',\r\n 'User Functionalities': 'User\\'s Functionalities',\r\n 'Pregnancy and Breastfeeding': 'Pregnancy, breastfeeding and fertility',\r\n 'DrivingAndUsingMachines': 'Diving and using machine',\r\n 'EPAR': 'Summary of product characteristics and Package leaflet',\r\n 'All diseases': 'All diseases',\r\n 'Enter birht date': 'Enter birht date',\r\n 'Locations': 'Locations',\r\n '4007': 'User not authenticated',\r\n 'current doctors prescriptions.': 'current prescription(s).',\r\n 'doctor': 'doctor',\r\n 'Doctors prescription from doctor': 'Prescription from doctor',\r\n};\r\n\r\nexport default en;","import bg from '../../assets/i18n/bg';\r\nimport en from '../../assets/i18n/en';\r\n\r\nfunction Translate(key) {\r\n\r\n if (typeof key === 'string') {\r\n let lang = localStorage.getItem('lang');\r\n if (!lang) {\r\n lang = 'bg';\r\n localStorage.setItem('lang', 'bg');\r\n }\r\n switch (lang) {\r\n case 'bg':\r\n return (bg[key] ? bg[key] : key);\r\n case 'en':\r\n return (en[key] ? en[key] : key);\r\n }\r\n } else {\r\n return key;\r\n }\r\n}\r\n\r\nexport default Translate;\r\n","export enum DrugTypes {\r\n Synthetic = 1,\r\n Biotech = 2\r\n};\r\n\r\nexport enum DrugGroups {\r\n Approved = 1,\r\n VetApproved = 2,\r\n Nutraceutical = 3,\r\n Illicit = 4,\r\n Withdrawn = 5,\r\n Investigational = 6,\r\n Experimental = 7\r\n}\r\n\r\nexport enum MedicineTabs {\r\n Overview = 1,\r\n SideEffects = 2,\r\n Dosage = 3,\r\n Interactions = 4,\r\n Pregnancy = 5,\r\n DriveMachine = 6,\r\n Professional = 7,\r\n Leaflets = 8\r\n}\r\n\r\nexport enum MedicineLeafletTypes {\r\n LeafletForUser = 1,\r\n SmPC = 2,\r\n EPAR = 3\r\n}\r\n\r\nexport enum DiseaseType {\r\n InfectiousDisease = 1,\r\n DeficiencyDisease = 2,\r\n HereditaryDisease = 3,\r\n PhysiologicalDisease = 4,\r\n ChronicDisease = 5\r\n}\r\n\r\nexport enum NotificationScheduleType {\r\n OneTime = 1,\r\n Recurring = 2\r\n}\r\n\r\nexport enum NotificationAlarmType {\r\n Email = 1,\r\n PushNotification = 2\r\n}\r\n\r\nexport enum NotificationFrequency {\r\n Hourly = 1,\r\n Daily = 2,\r\n //Weekly = 3\r\n // Monthly = 4\r\n}\r\n\r\nexport enum ProfessionType {\r\n Driver = 1,\r\n MachineOperator = 2\r\n}\r\n\r\nexport enum PregnancyType {\r\n Pregnancy = 1,\r\n Breastfeeding = 2\r\n}\r\n\r\nexport enum GenderType {\r\n Male = 1,\r\n Female = 2\r\n}\r\n\r\nexport enum BloodType {\r\n ZeroNeagtive = 1,\r\n ZeroPositive = 2,\r\n ANegative = 3,\r\n APositive = 4,\r\n BNegative = 5,\r\n BPositive = 6,\r\n ABNegative = 7,\r\n ABPositive = 8\r\n}\r\n\r\nexport enum RelationType {\r\n Son = 1,\r\n Daughter = 2,\r\n Father = 3,\r\n Mother = 4,\r\n Sister = 5,\r\n Brother = 6,\r\n Husband = 7,\r\n Wife = 8,\r\n Other = 9\r\n}\r\n\r\nexport enum UserConditionType {\r\n Height = 1,\r\n Weight = 2,\r\n BloodPressure = 3,\r\n HeartRate = 4,\r\n Temperature = 5,\r\n BloodSugar = 6\r\n}\r\n\r\nexport enum UnitType {\r\n g = 1,\r\n mg = 2,\r\n mcg = 3,\r\n U = 4,\r\n TU = 5,\r\n MU = 6,\r\n mmol = 7,\r\n ml = 8\r\n}\r\n\r\nexport enum InteractionType {\r\n Major = 1,\r\n Moderate = 2,\r\n Minor = 3,\r\n Unknown = 4\r\n}\r\n\r\nexport enum AcceptanceType {\r\n BeforeEating = 1,\r\n WhileEating = 2,\r\n AfterEating = 3\r\n}\r\n\r\nexport enum MinutesForIntake {\r\n Five = 5,\r\n Ten = 10,\r\n Fifteen = 15,\r\n Twenty = 20,\r\n Thirty = 30,\r\n Sixty = 60\r\n}\r\n\r\nexport enum UserType {\r\n UserCreated = 1,\r\n Caretaker = 2\r\n}\r\n\r\nexport enum RequestStatus {\r\n Waiting = 1,\r\n Approved = 2\r\n}\r\n\r\nexport enum Lang {\r\n bg = 1,\r\n en = 2\r\n}\r\n\r\nexport enum AuthorisationStatus {\r\n Authorised = 1,\r\n Withdrawn = 2,\r\n Refused = 3,\r\n Pending = 4,\r\n Suspended = 5\r\n}\r\n\r\nexport enum DataSourceType {\r\n EMA = 1,\r\n BDA = 2\r\n}\r\n\r\nexport enum LaboratoryTestType {\r\n Hemoglobin = 1,\r\n TotalCholesterol = 2,\r\n HighDensityLipoproteinCholesterol = 3,\r\n LowDensityLipoproteinCholesterol = 4,\r\n Triglycerides = 5,\r\n BloodSugar = 6\r\n}\r\n\r\nexport enum FileSystemType {\r\n Leaflets = 1,\r\n LaboratoryResults = 2\r\n}\r\n\r\nexport enum TimePresetType {\r\n OneDay = 1,\r\n OneWeek = 2,\r\n OneMonth = 3,\r\n ThreeMonths = 4,\r\n SixMonths = 5,\r\n OneYear = 6,\r\n Advanced = 7\r\n}\r\n\r\n//There is helper func that shifts enum to obje with param startsWithOne\r\nexport enum DayOfWeek {\r\n Monday = 0,\r\n Tuesday = 1,\r\n Wednesday = 2,\r\n Thursday = 3,\r\n Friday = 4,\r\n Saturday = 5,\r\n Sunday = 6\r\n}\r\n\r\nexport enum DayOfWeekOneLetterAbbr {\r\n M = 0,\r\n T = 1,\r\n W = 2,\r\n R = 3,\r\n F = 4,\r\n S = 5,\r\n U = 6\r\n}\r\n\r\nexport enum DayOfWeekThreeLetterAbbr {\r\n Mon = 0,\r\n Tue = 1,\r\n Wed = 2,\r\n Thu = 3,\r\n Fri = 4,\r\n Sat = 5,\r\n Sun = 6\r\n}","export const apiUrl = process.env.REACT_APP_API_URL;\r\nexport const tokenUrl = process.env.REACT_APP_TOKEN_URL;\r\nexport const chatApiUrl = process.env.REACT_APP_CHAT_API_URL;\r\nexport const MedicinesUrl = '/medicines';\r\nexport const InteractionsUrl = '/interactions';\r\nexport const CreateNewAccountUrl = '/create-new-account';\r\nexport const NewPasswordUrl = '/new-password';\r\nexport const sendRegistrationConfirmEmail = true;\r\nexport const applicationServerPublicKey = 'BNib7rKZgicU_HCETJYAsrhhI1PKCzSTV1Mu6bc75ynLs4P8ZSVvAeLGHdrqHvH5SeaozqCVJdECrtOZp6w1xoY';\r\nexport const DiseaseUrl = '/diseases';\r\nexport const DisposalPlaces = '/disposal-places';\r\nexport const PrescriptionUrl = '/user/prescriptions';\r\nexport const MaxFileUploadSize = 5242880; // 5 MB\r\nexport const MaxLabResultFileSize = process.env.REACT_APP_MAX_LAB_RESULT_FILE_SIZE;\r\nexport const SnoozeMinutes = 10;\r\nexport const BdaUrl = 'https://www.bda.bg/bg/регистри/листовки-за-пациента';\r\n\r\n/* Theme constants */\r\nimport { createMuiTheme } from '@material-ui/core';\r\nimport blue from '@material-ui/core/colors/blue';\r\n\r\nexport const TabStyles = theme => ({\r\n root: {\r\n flexGrow: 1,\r\n backgroundColor: theme.palette.background.paper,\r\n },\r\n tabsRoot: {\r\n borderBottom: '1px solid #ccc',\r\n marginBottom: '10px',\r\n backgroundColor: '#f5f5f5'\r\n },\r\n tabsIndicator: {\r\n backgroundColor: '#1890ff',\r\n },\r\n tabRoot: {\r\n // textTransform: 'initial',\r\n minWidth: 72,\r\n fontWeight: 500,\r\n marginRight: theme.spacing(2),\r\n color: '#444',\r\n // fontFamily: [\r\n // '-apple-system',\r\n // 'BlinkMacSystemFont',\r\n // '\"Segoe UI\"',\r\n // 'Roboto',\r\n // '\"Helvetica Neue\"',\r\n // 'Arial',\r\n // 'sans-serif',\r\n // '\"Apple Color Emoji\"',\r\n // '\"Segoe UI Emoji\"',\r\n // '\"Segoe UI Symbol\"',\r\n // ].join(','),\r\n '&:hover': {\r\n color: '#40a9ff',\r\n opacity: 1,\r\n },\r\n '&$tabSelected': {\r\n color: '#1890ff',\r\n fontWeight: 500,\r\n },\r\n '&:focus': {\r\n color: '#40a9ff',\r\n },\r\n },\r\n tabSelected: {},\r\n typography: {\r\n padding: theme.spacing(3),\r\n },\r\n});\r\n\r\nexport const dataPickerWithChekbox = createMuiTheme({\r\n overrides: {\r\n MuiFormControl: {\r\n root: {\r\n width: '80%'\r\n },\r\n marginNormal: {\r\n marginTop: 5,\r\n marginBottom: 0,\r\n paddingLeft: '10px'\r\n },\r\n },\r\n MuiIconButton: {\r\n root: {\r\n padding: '10px 0 0 0 !important'\r\n }\r\n },\r\n\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\nexport const smallButtonForAdd = createMuiTheme({\r\n overrides: {\r\n MuiButton: {\r\n contained: {\r\n padding: '7px 7px 7px 11px',\r\n width: '32px',\r\n color: 'white'\r\n },\r\n containedSecondary: {\r\n color: 'white'\r\n },\r\n root: {\r\n minWidth: '32px',\r\n minHeight: '32px'\r\n }\r\n }\r\n },\r\n palette: {\r\n secondary: { main: '#35a436' },\r\n primary: { main: 'rgb(233, 18, 36)' }\r\n },\r\n});\r\n\r\n\r\nexport const buttonBadge = createMuiTheme({\r\n overrides: {\r\n MuiBadge: {\r\n badge: { top: -5, right: -5 }\r\n }\r\n },\r\n\r\n});\r\n\r\nexport const buttonSmallBadge = createMuiTheme({\r\n overrides: {\r\n MuiBadge: {\r\n badge: {\r\n top: 0,\r\n right: -1,\r\n height: '15px',\r\n minWidth: '15px',\r\n fontSize: '0.65rem'\r\n }\r\n }\r\n },\r\n});\r\n\r\nexport const buttonBadgeMaterialIcon = createMuiTheme({\r\n overrides: {\r\n MuiBadge: {\r\n badge: { right: -2 }\r\n }\r\n },\r\n\r\n});\r\n\r\nexport const fullWidthDialog = createMuiTheme({\r\n overrides: {\r\n MuiDialog: {\r\n paper: {\r\n margin: 0,\r\n maxWidth: '100%'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n }\r\n});\r\n\r\nexport const snackbar = createMuiTheme({\r\n overrides: {\r\n MuiSnackbarContent: {\r\n root: {\r\n width: '90%',\r\n alignItems: 'start'\r\n },\r\n action: {\r\n paddingTop: 5,\r\n paddingLeft: 0,\r\n display: 'flow-root'\r\n },\r\n message: {\r\n width: '90%'\r\n }\r\n },\r\n MuiSnackbar: {\r\n root: {\r\n alignItems: \"start\"\r\n }\r\n },\r\n MuiIconButton: {\r\n root: {\r\n padding: 0\r\n }\r\n }\r\n\r\n }\r\n});\r\n\r\nexport const notificationDrawer = createMuiTheme({\r\n overrides: {\r\n MuiDrawer: {\r\n paperAnchorTop: {\r\n maxHeight: '40%'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n }\r\n});\r\n\r\nexport const inputWithButton = {\r\n root: {\r\n padding: '2px 4px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n width: '100%'\r\n },\r\n input: {\r\n marginLeft: 8,\r\n flex: 1,\r\n },\r\n iconButton: {\r\n padding: 10,\r\n },\r\n divider: {\r\n width: 1,\r\n height: 28,\r\n margin: 4,\r\n },\r\n};\r\n\r\nexport const chatDialogTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: 5,\r\n marginBottom: 0,\r\n width: '100%'\r\n },\r\n root: {\r\n width: '100%'\r\n }\r\n },\r\n MuiDialog: {\r\n root: {\r\n pointerEvents: 'none'\r\n },\r\n paper: {\r\n margin: '0 20px 130px 0',\r\n minWidth: '335px'\r\n },\r\n scrollPaper: {\r\n alignItems: 'flex-end',\r\n justifyContent: 'flex-end'\r\n }\r\n },\r\n MuiIconButton: {\r\n root: {\r\n padding: 0\r\n }\r\n },\r\n MuiPaper: {\r\n root: {\r\n pointerEvents: 'auto'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue,\r\n },\r\n});\r\n\r\nexport const smallDialogTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: 5,\r\n marginBottom: 0,\r\n width: '100%'\r\n },\r\n root: {\r\n width: '100%'\r\n }\r\n },\r\n MuiDialog: {\r\n paper: {\r\n margin: 0,\r\n maxWidth: '50% !important',\r\n minWidth: '335px'\r\n }\r\n },\r\n MuiIconButton: {\r\n root: {\r\n padding: 0\r\n }\r\n },\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\nexport const paginatoorButtons = createMuiTheme({\r\n overrides: {\r\n MuiButton: {\r\n sizeSmall: {\r\n minWidth: 40,\r\n minHeight: 30\r\n },\r\n contained: {\r\n boxShadow: 'unset'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\nexport const chartsButtonTheme = createMuiTheme({\r\n overrides: {\r\n MuiButton: {\r\n root: {\r\n minWidth: 50\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n }\r\n})\r\n\r\nexport const device = {\r\n desktop: 1025,\r\n tablet: 768,\r\n phone: 500\r\n}","import pdfIcon from \"../../assets/images/icons/filetypes/pdf-icon.png\";\nimport xlsIcon from \"../../assets/images/icons/filetypes/xls-icon.png\";\nimport wordIcon from \"../../assets/images/icons/filetypes/word-doc-icon.png\";\nimport txtIcon from \"../../assets/images/icons/filetypes/txt-icon.png\";\nimport zipIcon from \"../../assets/images/icons/filetypes/zip-icon.png\";\nimport jpgIcon from \"../../assets/images/icons/filetypes/jpg-icon.png\";\nimport pngIcon from \"../../assets/images/icons/filetypes/png-icon.png\";\nimport Translate from \"../../common/functions/translate\";\nimport { Lang, UserConditionType } from \"../enums\";\n\nexport function getIconByFileType(fileType: string) {\n switch (fileType.toLowerCase()) {\n case \"pdf\":\n return pdfIcon;\n case \"xls\":\n case \"xlsx\":\n return xlsIcon;\n case \"doc\":\n case \"docx\":\n return wordIcon;\n case \"txt\":\n return txtIcon;\n case \"zip\":\n return zipIcon;\n case \"jpg\":\n return jpgIcon;\n case \"png\":\n return pngIcon;\n }\n}\n\nexport function clone(item) {\n return (\n // return cloned copy so that the item is passed by value instead of by reference\n JSON.parse(JSON.stringify(item))\n );\n}\n\nexport function getErrorMessage(error) {\n if (error.response) {\n if (\n error.response.data &&\n error.response.data.Data &&\n error.response.data.Data.ErrorCode\n ) {\n return { message: Translate(`${error.response.data.Data.ErrorCode}`) };\n }\n\n if (\n error.response.data &&\n error.response.data.Data &&\n error.response.data.Data.Message\n ) {\n return { message: `${error.response.data.Data.Message}` };\n }\n\n if (error.response.data) {\n return { message: Translate(`${error.response.data}`) };\n }\n\n return { message: `${error.response.status} ${error.response.statusText}` };\n } else {\n return { message: Translate(`${error.message}`) };\n }\n}\n\nexport function getQueryStringParams(query: string) {\n return query\n ? (/^[?#]/.test(query) ? query.slice(1) : query)\n .split(\"&\")\n .reduce((params, param) => {\n let [key, value] = param.split(\"=\");\n params[key] = value\n ? decodeURIComponent(value.replace(/\\+/g, \" \"))\n : \"\";\n return params;\n }, {})\n : {};\n}\n\nexport function createDrugToDrugQueryString(\n firstId: number,\n typeId: number,\n secondId: number\n) {\n return `?firstId=${firstId}&typeId=${typeId}&secondId=${secondId}`;\n}\n\n//Groups array by objects property and returns object of arrays\nexport function groupByReturnObject(objectArray, property) {\n return objectArray.reduce(function (acc, obj) {\n var key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, {});\n}\n\n//Groups array by objects property and returns array of arrays\nexport function groupByReturnArray(objectArray, property) {\n return objectArray.reduce(function (acc, obj) {\n var key = obj[property];\n if (!acc[key]) {\n acc[key] = [];\n }\n acc[key].push(obj);\n return acc;\n }, []);\n}\n\nexport function formatBytes(bytes, decimals) {\n if (bytes == 0) return \"0 Bytes\";\n var k = 1024,\n dm = decimals <= 0 ? 0 : decimals || 2,\n sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\", \"TB\", \"PB\", \"EB\", \"ZB\", \"YB\"],\n i = Math.floor(Math.log(bytes) / Math.log(k));\n return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + \" \" + sizes[i];\n}\n\nexport function fomatDateAsString(date: Date) {\n return (\n date.getFullYear().toString() +\n \"-\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"-\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString())\n );\n}\n\nexport function fomatDateAsStringNotifications(date: Date) {\n return (\n date.getFullYear().toString() +\n \"/\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"/\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString())\n );\n}\n\nexport function fomatDatesStringWithLang(date: Date, lang: string) {\n switch (lang) {\n case \"bg\":\n return (\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \".\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \".\" +\n date.getFullYear().toString() +\n \" г.\"\n );\n\n case \"en\":\n return (\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"/\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \"/\" +\n date.getFullYear().toString()\n );\n }\n}\n\nexport function fomatDateTimeAsString(date: Date) {\n return (\n date.getFullYear().toString() +\n \"/\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"/\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \" \" +\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2) +\n \":\" +\n (\"0\" + date.getSeconds()).slice(-2)\n );\n}\n\nexport function fomatDateTimeAsStringWithLang(date: Date, lang: string) {\n switch (lang) {\n case \"bg\":\n return (\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \".\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \".\" +\n date.getFullYear().toString() +\n \" г. \" +\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2)\n );\n\n case \"en\":\n return (\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"/\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \"/\" +\n date.getFullYear().toString() +\n \" \" +\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2)\n );\n }\n}\n\nexport function fomatDateTimeSecondsAsStringWithLang(date: Date, lang: string) {\n switch (lang) {\n case \"bg\":\n return (\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \".\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \".\" +\n date.getFullYear().toString() +\n \" \" +\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2) +\n \":\" +\n (\"0\" + date.getSeconds()).slice(-2)\n );\n\n case \"en\":\n return (\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"/\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \"/\" +\n date.getFullYear().toString() +\n \" \" +\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2) +\n \":\" +\n (\"0\" + date.getSeconds()).slice(-2)\n );\n }\n}\n\nexport function fomatDateAsStringWithLang(date: Date, lang: string) {\n switch (lang) {\n case \"bg\":\n return (\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \".\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \".\" +\n date.getFullYear().toString() +\n \" г.\"\n );\n\n case \"en\":\n return (\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \"/\" +\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \"/\" +\n date.getFullYear().toString()\n );\n\n default:\n return (\n (date.getDate() < 10\n ? \"0\" + date.getDate().toString()\n : date.getDate().toString()) +\n \".\" +\n (date.getMonth() < 9\n ? \"0\" + (date.getMonth() + 1).toString()\n : (date.getMonth() + 1).toString()) +\n \".\" +\n date.getFullYear().toString() +\n \" г.\"\n );\n }\n}\n\nexport function fomatTimeAsString(date: Date) {\n return (\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2) +\n \":\" +\n (\"0\" + date.getSeconds()).slice(-2)\n );\n}\n\nexport function fomatTimeAsStringWithoutSeconds(date: Date) {\n return (\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2)\n );\n}\n\nexport function validateEmail(email) {\n var re = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n}\n\nexport function enumToDropdownArray(enumName, withTranslation?: boolean) {\n let enumAsArray: Array<{ value: number; label: string }> = [];\n for (var n in enumName) {\n if (typeof enumName[n] === \"number\") {\n enumAsArray.push({\n value: +enumName[n],\n label: withTranslation ? Translate(n) : n\n });\n }\n }\n return enumAsArray;\n}\n\nexport function weekDayEnumToObjArray(\n enumName,\n withTranslation?: boolean,\n dayValueFromOne?: boolean,\n allSelected?: boolean\n) {\n let enumAsArray: Array<{\n value: number;\n label: string;\n isSelected: boolean;\n }> = [];\n for (var n in enumName) {\n if (typeof enumName[n] === \"number\") {\n enumAsArray.push({\n value: +enumName[n] + (dayValueFromOne ? 1 : 0),\n label: withTranslation ? Translate(n) : n,\n isSelected: allSelected ? allSelected : false\n });\n }\n }\n return enumAsArray;\n}\n\nexport function getEnumLabel(\n id: number,\n enumName: any,\n withTranslation?: boolean\n) {\n let enumElement = Object.keys(enumName).find(key => enumName[key] === id);\n\n if (withTranslation) {\n return Translate(enumElement);\n } else {\n return enumElement;\n }\n}\n\nexport function getFrequencyCounterLabel(\n value?: number,\n withTranslation?: boolean\n) {\n switch (value) {\n case 1:\n return withTranslation\n ? Translate(\"Recurs every\") + \" \" + Translate(\"hour(s)\")\n : Translate(\"Recurs every\");\n case 2:\n return withTranslation\n ? Translate(\"Recurs every\") + \" \" + Translate(\"day(s)\")\n : Translate(\"Recurs every\");\n case 3:\n return withTranslation\n ? Translate(\"Recurs every(f)\") + \" \" + Translate(\"week(s)\")\n : Translate(\"Recurs every\");\n case 4:\n return withTranslation\n ? Translate(\"Recurs every\") + \" \" + Translate(\"month(s)\")\n : Translate(\"Recurs every\");\n default:\n return withTranslation ? Translate(\"Recurs every\") : \"Recurs every\";\n }\n}\n\nexport function fomatTimeWithoutSecondsAsString(date: Date) {\n return (\n (\"0\" + date.getHours()).slice(-2) +\n \":\" +\n (\"0\" + date.getMinutes()).slice(-2)\n );\n}\n\nexport function fomatTimeStringWithoutSecondsAsString(time: string) {\n return time.slice(0, 5);\n}\n\nexport function formatAlarmTime(alarmTime: any) {\n if (typeof alarmTime === \"string\") {\n if (alarmTime.length > 8) {\n return fomatTimeWithoutSecondsAsString(new Date(alarmTime));\n } else {\n return fomatTimeStringWithoutSecondsAsString(alarmTime);\n }\n } else {\n return fomatTimeWithoutSecondsAsString(new Date(alarmTime));\n }\n}\n\nexport function getNotificationSummary(\n currentUserNotification: any,\n lang: string\n) {\n let summaryContent = \"\";\n let alarmTime = formatAlarmTime(currentUserNotification.alarmTime);\n\n if (currentUserNotification.notificationScheduleTypeId === 1) {\n let oneTimeExecutionDate = \"\";\n if (currentUserNotification.oneTimeExecutionDate) {\n oneTimeExecutionDate = fomatDateAsStringWithLang(\n new Date(currentUserNotification.oneTimeExecutionDate),\n lang\n );\n } else {\n oneTimeExecutionDate = fomatDateAsStringWithLang(new Date(), lang);\n }\n\n summaryContent =\n Translate(\"On\") +\n \" \" +\n oneTimeExecutionDate +\n \" \" +\n Translate(\"at\") +\n \" \" +\n alarmTime +\n \".\";\n return summaryContent;\n } else {\n let startDate = \"\";\n if (currentUserNotification.startDate) {\n startDate = fomatDateAsStringWithLang(\n new Date(currentUserNotification.startDate),\n lang\n );\n } else {\n startDate = fomatDateAsStringWithLang(new Date(), lang);\n }\n\n let endDate = \"\";\n if (currentUserNotification.endDate) {\n endDate = fomatDateAsStringWithLang(\n new Date(currentUserNotification.endDate),\n lang\n );\n }\n\n let periodLabel = \"\";\n if (currentUserNotification.notificationFrequencyCounter) {\n switch (currentUserNotification.notificationFrequencyId) {\n case 1:\n periodLabel =\n currentUserNotification.notificationFrequencyCounter > 1\n ? currentUserNotification.notificationFrequencyCounter +\n \" \" +\n Translate(\"hour(s)\")\n : Translate(\"hour\");\n break;\n case 2:\n periodLabel =\n currentUserNotification.notificationFrequencyCounter > 1\n ? currentUserNotification.notificationFrequencyCounter +\n \" \" +\n Translate(\"day(s)\")\n : Translate(\"day\");\n break;\n case 3:\n periodLabel =\n currentUserNotification.notificationFrequencyCounter > 1\n ? currentUserNotification.notificationFrequencyCounter +\n \" \" +\n Translate(\"week(s)\")\n : Translate(\"week\");\n break;\n case 4:\n periodLabel =\n currentUserNotification.notificationFrequencyCounter > 1\n ? currentUserNotification.notificationFrequencyCounter +\n \" \" +\n Translate(\"month(s)\")\n : Translate(\"month\");\n break;\n }\n }\n\n if (endDate) {\n summaryContent =\n Translate(\"Every\") +\n \" \" +\n periodLabel +\n \" \" +\n (currentUserNotification.notificationFrequencyId === 1\n ? Translate(\"from\")\n : Translate(\"at\")) +\n \" \" +\n alarmTime +\n \", \" +\n Translate(\"between\") +\n \" \" +\n startDate +\n \" \" +\n Translate(\"and\") +\n \" \" +\n endDate +\n (lang === \"bg\" ? \"\" : \".\");\n } else {\n summaryContent =\n Translate(\"Every\") +\n \" \" +\n periodLabel +\n \" \" +\n (currentUserNotification.notificationFrequencyId === 1\n ? Translate(\"from\")\n : Translate(\"at\")) +\n \" \" +\n alarmTime +\n \", \" +\n Translate(\"starting on\") +\n \" \" +\n startDate +\n (lang === \"bg\" ? \"\" : \".\");\n }\n }\n\n return summaryContent;\n}\n\nexport function urlB64ToUint8Array(base64String: string) {\n const padding = \"=\".repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding)\n .replace(/\\-/g, \"+\")\n .replace(/_/g, \"/\");\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n}\n\nexport function getURLParameter(name) {\n var results = new RegExp(\"[?&]\" + name + \"=([^&#]*)\").exec(\n window.location.href\n );\n if (results == null) {\n return null;\n } else {\n return decodeURI(results[1]) || 0;\n }\n}\n\nexport function getLangId(lang: string) {\n switch (lang) {\n case \"bg\":\n return Lang.bg;\n case \"en\":\n return Lang.en;\n }\n}\n\nexport function formatDateToUTC(dateString) {\n var date = new Date(dateString);\n date.setHours(0, 0, 0);\n return date.toUTCString();\n}\n\nexport function getUnitByConditionType(condType: UserConditionType) {\n switch (condType) {\n case UserConditionType.Height:\n return \"cm\";\n case UserConditionType.Weight:\n return \"kg\";\n case UserConditionType.BloodPressure:\n return \"mmHg\";\n case UserConditionType.HeartRate:\n return \"bpm\";\n case UserConditionType.Temperature:\n return \"C\";\n case UserConditionType.BloodSugar:\n return \"mmol/L\";\n default:\n return \"\";\n }\n}\n\nexport function getMonthsEarlier(currentDate: string, months: number) {\n let d = new Date(currentDate);\n d.setMonth(d.getMonth() - months);\n return d;\n}\n\nexport function getDaysEarlier(currentDate: string, days: number) {\n let d = new Date(currentDate);\n d.setDate(d.getDate() - days);\n return d;\n}\n\nexport function getDayslater(currentDate: string, days: number) {\n let d = new Date(currentDate);\n d.setDate(d.getDate() + days);\n return d;\n}\n","export class UserForGridModel {\r\n public userId: number;\r\n public name: string;\r\n public email: string;\r\n public birthDate: string;\r\n public createdOn: string;\r\n public updatedOn: string;\r\n public lastLogged: string;\r\n public isDeleted: boolean;\r\n public isActive: boolean;\r\n public relationType: number;\r\n public medicineCount: number;\r\n public diseasesCount: number;\r\n public userTypeId: number;\r\n public requestStatusId: number;\r\n public notAllowedFoods: string;\r\n public allergies: string;\r\n}","export class UserAuthModel {\r\n public userId: number;\r\n public name: string;\r\n public loginName: string;\r\n}","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { UserAuthModel } from '../models/user';\r\nimport jwtDecode from 'jwt-decode';\r\n\r\nclass AuthService {\r\n\r\n // constructor() {\r\n // axios.defaults.baseURL = `${Constants.tokenUrl}`;\r\n // }\r\n\r\n login(userName: string, password: string) {\r\n return this.getUser(userName, password)\r\n .then(\r\n data => {\r\n if (data.access_token) {\r\n this.setToken(data)\r\n return true;\r\n }\r\n return false;\r\n })\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n );\r\n }\r\n\r\n facebookLogin(accToken: string) {\r\n let bodyFormData = new FormData();\r\n bodyFormData.set('facebookLogin', 'true');\r\n bodyFormData.set('accToken', accToken);\r\n\r\n return axios({\r\n url: `${Constants.tokenUrl}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: bodyFormData\r\n })\r\n .then(res => {\r\n if (res.data.access_token) {\r\n this.setToken(res.data)\r\n return true;\r\n }\r\n return false;\r\n })\r\n .catch(error =>\r\n Promise.reject(error)\r\n )\r\n }\r\n\r\n googleLogin(tokenId: string, googleUserId: string) {\r\n let bodyFormData = new FormData();\r\n bodyFormData.set('googleLogin', 'true');\r\n bodyFormData.set('googleTokenId', tokenId);\r\n bodyFormData.set('googleUserId', googleUserId);\r\n\r\n return axios({\r\n url: `${Constants.tokenUrl}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: bodyFormData\r\n })\r\n .then(res => {\r\n if (res.data.access_token) {\r\n this.setToken(res.data)\r\n return true;\r\n }\r\n return false;\r\n })\r\n .catch(error =>\r\n Promise.reject(error)\r\n )\r\n }\r\n\r\n getUser(loginName: string, password: string) {\r\n\r\n let bodyFormData = new FormData();\r\n bodyFormData.append('loginname', loginName);\r\n bodyFormData.append('password', password);\r\n\r\n return axios({\r\n url: `${Constants.tokenUrl}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: bodyFormData\r\n })\r\n .then(res => res.data)\r\n .catch(error =>\r\n Promise.reject(error)\r\n )\r\n }\r\n\r\n logout() {\r\n // Clear access token and ID token from local storage \r\n localStorage.removeItem('id_token');\r\n localStorage.removeItem('expires_at');\r\n // navigate to the home route\r\n //history.replace('/feed');\r\n //window.location.reload();\r\n }\r\n\r\n isAuthenticated() {\r\n try {\r\n let token = this.getToken();\r\n let expiresAt = localStorage['expires_at'] ? JSON.parse(localStorage['expires_at']) : undefined;\r\n\r\n if (token && token !== \"undefined\" && expiresAt) {\r\n\r\n if (new Date().getTime() < expiresAt) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n return false;\r\n }\r\n catch (err) {\r\n return false;\r\n }\r\n }\r\n\r\n checkForRefreshToken() {\r\n let expiresAt = localStorage['expires_at'] ? JSON.parse(localStorage['expires_at']) : undefined;\r\n\r\n if (new Date().getTime() > (expiresAt - 5 * 60 * 1000)) {\r\n return this.getRefreshToken();\r\n }\r\n }\r\n\r\n getRefreshToken() {\r\n\r\n let token: any = this.getToken();\r\n let bodyFormData = new FormData();\r\n\r\n bodyFormData.append('getRefreshToken', 'true');\r\n bodyFormData.append('loginname', this.getLoginName());\r\n bodyFormData.append('token', token);\r\n\r\n return axios({\r\n url: `${Constants.tokenUrl}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: bodyFormData\r\n })\r\n .then(res => {\r\n if (res.data.access_token) {\r\n this.setToken(res.data)\r\n return true;\r\n }\r\n return false;\r\n })\r\n .catch(error => {\r\n return false;\r\n })\r\n }\r\n\r\n setToken(authResult) {\r\n // Saves user token to localStorage \r\n localStorage.setItem('id_token', authResult.access_token);\r\n let expiresAt = JSON.stringify((authResult.expires_in * 1000) + new Date().getTime());\r\n localStorage.setItem('expires_at', expiresAt);\r\n }\r\n\r\n getToken() {\r\n // Retrieves the user token from localStorage \r\n return localStorage.getItem('id_token')\r\n }\r\n\r\n getProfile() {\r\n // Using jwt-decode npm package to decode the token\r\n const token = this.getToken();\r\n if (token && token !== \"undefined\") {\r\n return jwtDecode(token);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n getUserAuth() {\r\n let userAuth = new UserAuthModel();\r\n\r\n let profile = this.getProfile();\r\n if (profile) {\r\n userAuth.userId = profile['id'] ? profile['id'] : undefined;\r\n userAuth.loginName = profile['loginName'] ? profile['loginName'] : '';\r\n userAuth.name = profile['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'] ?\r\n profile['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'] : '';\r\n }\r\n return userAuth;\r\n }\r\n\r\n getUserName() {\r\n let profile = this.getProfile();\r\n return profile && profile['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'] ?\r\n profile['http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name'] : ''\r\n }\r\n\r\n getLoginName() {\r\n let profile = this.getProfile();\r\n return profile && profile['loginName'] ? profile['loginName'] : ''\r\n }\r\n\r\n getUserId() {\r\n let profile = this.getProfile();\r\n return profile && profile['id'] ? profile['id'] : undefined\r\n }\r\n\r\n}\r\n\r\nexport default AuthService;","import * as React from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport green from '@material-ui/core/colors/green';\r\nimport amber from '@material-ui/core/colors/amber';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport classNames from 'classnames';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { MuiThemeProvider } from '@material-ui/core';\r\nimport * as Constants from '../../constants';\r\n\r\nconst variantIcon = {\r\n success: CheckCircleIcon,\r\n warning: WarningIcon,\r\n error: ErrorIcon,\r\n info: InfoIcon\r\n};\r\n\r\n\r\nconst growlContent = (props) => {\r\n\r\n // type: success, warning, error, info\r\n const { classes, className, message, onClose, variant, ...other } = props;\r\n const Icon = variantIcon[variant];\r\n\r\n return (\r\n \r\n \r\n {variant ? : null}\r\n {message}\r\n \r\n }\r\n action={[\r\n \r\n {props.onClose ? : null}\r\n ,\r\n ]}\r\n {...other}\r\n />\r\n \r\n );\r\n}\r\n\r\n\r\nconst styles1 = theme => ({\r\n success: {\r\n backgroundColor: green[600],\r\n },\r\n error: {\r\n backgroundColor: theme.palette.error.dark,\r\n },\r\n info: {\r\n backgroundColor: theme.palette.primary.dark,\r\n },\r\n warning: {\r\n backgroundColor: amber[700],\r\n },\r\n default: {\r\n backgroundColor: \"rgb(49, 49, 49)\",\r\n },\r\n icon: {\r\n fontSize: 20,\r\n },\r\n iconVariant: {\r\n opacity: 0.9,\r\n marginRight: theme.spacing(1),\r\n },\r\n message: {\r\n display: 'flex',\r\n },\r\n});\r\n\r\nexport default withStyles(styles1)(growlContent);","import * as React from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport GrowlContent from './growlContent';\r\n\r\ninterface IProps {\r\n\r\n}\r\n\r\ninterface IState {\r\n isOpen: boolean,\r\n summary: string,\r\n severity: string\r\n}\r\n\r\nclass Growl extends React.Component {\r\n\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n isOpen: false,\r\n summary: '',\r\n severity: 'default'\r\n }\r\n }\r\n\r\n show(value) {\r\n this.setState({ isOpen: true, summary: value.summary, severity: value.severity });\r\n }\r\n\r\n handleClose = () => {\r\n this.setState({ isOpen: false });\r\n }\r\n // type: success, warning, error, info\r\n render() {\r\n return (\r\n\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default Growl;","import * as React from 'react';\r\nimport Translate from '../../functions/translate';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nconst confirmDialog = (props) => {\r\n return (\r\n \r\n \r\n {props.headerTitle}\r\n \r\n \r\n {props.children}\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default confirmDialog;","import * as React from 'react';\r\nimport { BrowserRouter, Route, Link, Switch, Redirect, withRouter, NavLink } from \"react-router-dom\";\r\nimport Translate from '../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\nimport * as Constants from '../../common/constants';\r\nimport * as actionTypes from '../../store/actionTypes';\r\nimport AuthService from '../../services/authService';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faHome, faTablets, faPills, faCog, faUser, faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\r\nimport { Menubar } from 'primereact/menubar';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport ConfirmDialog from '../../common/components/confirmDialog/confirmDialog';\r\n\r\ninterface IProps {\r\n lang: string,\r\n medicineSearchLetter: string,\r\n medicineSearchName: string,\r\n history: any,\r\n onSearchLetterClick: any,\r\n onSearchNameClick: any,\r\n isUserLogged: boolean\r\n onUserLogout: any,\r\n isUserJustLogged: boolean,\r\n setUserJustLoggedToFalse: any\r\n}\r\n\r\ninterface IState {\r\n userMenu: any,\r\n isAuthenticated: boolean,\r\n isVisibleConfirmDialog: boolean;\r\n}\r\n\r\nclass MainNavigation extends React.Component {\r\n\r\n аuthService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isAuthenticated: this.аuthService.isAuthenticated(),\r\n userMenu: null,\r\n isVisibleConfirmDialog: false,\r\n };\r\n }\r\n\r\n handleMenuItemClick = (menuUrl) => {\r\n this.props.history.push(menuUrl);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.isUserLogged != this.props.isUserLogged) {\r\n this.setState({\r\n isAuthenticated: this.аuthService.isAuthenticated()\r\n })\r\n }\r\n\r\n if (this.props.medicineSearchLetter) {\r\n this.props.onSearchLetterClick('');\r\n this.props.history.push(`${Constants.MedicinesUrl}?letter=${encodeURI(this.props.medicineSearchLetter)}`);\r\n }\r\n\r\n if (this.props.medicineSearchName) {\r\n this.props.onSearchNameClick('');\r\n this.props.history.push(`${Constants.MedicinesUrl}?searchText=${encodeURI(this.props.medicineSearchName)}`);\r\n }\r\n }\r\n\r\n handleLogout = () => {\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n logoutConfirmClick = () => {\r\n this.аuthService.logout();\r\n this.props.onUserLogout();\r\n this.props.history.push('/');\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isAuthenticated: this.аuthService.isAuthenticated()\r\n })\r\n }\r\n\r\n public render() {\r\n\r\n const { isAuthenticated } = this.state;\r\n\r\n return (\r\n <>\r\n this.growl = el} />\r\n\r\n \r\n
\r\n \r\n {Translate('Home')}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n {Translate('Medicines')}\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n {Translate('Interactions')}\r\n
\r\n
\r\n\r\n {/* \r\n
\r\n \r\n {Translate('Settings')}\r\n
\r\n
*/}\r\n\r\n {\r\n isAuthenticated && this.аuthService.isAuthenticated() ?\r\n // \r\n //
\r\n // \r\n // {/* */}\r\n // {this.аuthService.getUserName()}\r\n //
\r\n //
\r\n
\r\n
\r\n \r\n {Translate('Logout')}\r\n
\r\n
\r\n :\r\n \r\n
\r\n \r\n {Translate('Login')}\r\n
\r\n
\r\n }\r\n\r\n {this.state.isVisibleConfirmDialog ?\r\n { this.logoutConfirmClick() }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Are you sure you want to logout\")}\r\n \r\n : null}\r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang,\r\n medicineSearchLetter: state.common.medicineSearchLetter,\r\n medicineSearchName: state.common.medicineSearchName,\r\n isUserLogged: state.common.isUserLogged,\r\n isUserJustLogged: state.common.isUserJustLogged\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onSearchNameClick: (medicineSearchName) => dispatch({ type: actionTypes.MEDICINE_SEARCH_BY_NAME, medicineSearchName: medicineSearchName }),\r\n onSearchLetterClick: (medicineSearchLetter) => dispatch({ type: actionTypes.MEDICINE_SEARCH_BY_LETTER, medicineSearchLetter: medicineSearchLetter }),\r\n onUserLogout: () => dispatch({ type: actionTypes.USER_LOGOUT }),\r\n setUserJustLoggedToFalse: () => dispatch({ type: actionTypes.SET_USER_JUST_LOGGED_TO_FALSE })\r\n }\r\n}\r\n\r\nexport default withRouter(connect(mapsStateToProps, mapDispatchToProps)(MainNavigation));","export const LANG_CHANGE = 'LANG_CHANGE';\r\nexport const MEDICINE_SEARCH_BY_LETTER = 'MEDICINE_SEARCH_BY_LETTER';\r\nexport const MEDICINE_SEARCH_BY_NAME = 'MEDICINE_SEARCH_BY_NAME';\r\nexport const USER_LOGIN = 'USER_LOGIN';\r\nexport const USER_LOGOUT = 'USER_LOGOUT';\r\nexport const SET_USER_JUST_LOGGED_TO_FALSE = 'SET_USER_JUST_LOGGED_TO_FALSE';\r\nexport const SET_USER_NOTIFICATIONS = 'SET_USER_NOTIFICATIONS';\r\nexport const NOTIFICATION_ADDED = 'NOTIFICATION_ADDED';\r\nexport const MEDICINE_SEARCH_BY_ACTIVE_INGREDIENT = 'MEDICINE_SEARCH_BY_ACTIVE_INGREDIENT';\r\n","import * as React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { MedicineForListModel } from \"../../models\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight, faChevronDown, faChevronCircleDown } from '@fortawesome/free-solid-svg-icons';\r\nimport Translate from '../../common/functions/translate';\r\n\r\nconst medicinesList = (props) => {\r\n\r\n\tconst listItems =\r\n\t\tprops.isTopList ?\r\n\t\t\tprops.medicines.map((m: MedicineForListModel) =>\r\n\t\t\t\t
  • \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{m.brandName ? m.brandName : ''}\r\n\t\t\t\t\t\t{m.additionalTitle ?\r\n\t\t\t\t\t\t\t' - ' + (m.additionalTitle.length > 30 ? m.additionalTitle.substr(0, 30) + '...' : m.additionalTitle)\r\n\t\t\t\t\t\t\t: ''}\r\n\t\t\t\t\t\r\n\t\t\t\t
  • )\r\n\t\t\t:\r\n\t\t\tprops.medicines.map((m: MedicineForListModel) =>\r\n\t\t\t\t
  • \r\n\t\t\t\t\tprops.history.push('/medicines/' + m.medicineId)\r\n\t\t\t\t}>\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{m.brandName ? m.brandName.charAt(0) : '?'}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{m.brandName ? m.brandName : ''}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{m.additionalTitle ?\r\n\t\t\t\t\t\t\t\tm.additionalTitle\r\n\t\t\t\t\t\t\t\t//m.additionalTitle.length > 25 ? m.additionalTitle.substr(0, 50) + '...' : m.additionalTitle\r\n\t\t\t\t\t\t\t\t: ''}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{m.activeIngredientName ? Translate('GenericName') + \": \" + m.activeIngredientName : null}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t
  • );\r\n\r\n\treturn (\r\n\t\tprops.isTopList ?\r\n\t\t\t
      \r\n\t\t\t\t{listItems}\r\n\t\t\t
    :\r\n\t\t\t
      \r\n\t\t\t\t{listItems}\r\n\t\t\t
    \r\n\t)\r\n}\r\n\r\nexport default medicinesList;\r\n","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { MedicineFilterSettings } from \"../models/medicineFilterSettings\";\r\n\r\nclass MedicineService {\r\n\r\n\tconstructor(lang?) {\r\n\t\taxios.defaults.baseURL = `${Constants.apiUrl}/`;\r\n\t\taxios.defaults.headers = {\r\n\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\tPragma: 'no-cache',\r\n\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t}\r\n\t}\r\n\r\n\tgetAllMedicine() {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getAllMeds/`,\r\n\t\t\tmethod: 'get', headers: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\"\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetAllMedicines(from: number, numberOfRows: number, medicineSettings: MedicineFilterSettings, lang: string, seenCount: boolean = false) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getAllList/${from}/${numberOfRows}/${seenCount}`,\r\n\t\t\tmethod: 'post',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t},\r\n\t\t\tdata: JSON.stringify(medicineSettings)\r\n\t\t})\r\n\t\t\t.then(res => res.data.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetMedicineBasic(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getMedBasicById/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetMedicine(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getMedById/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetSideEffects(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getSideEffects/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetDosageContent(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDosage/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetInteractionsCountsFull(id: number) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/fullIntrCount/${id}`,\r\n\t\t\tmethod: 'get'\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetInteractionsCountsBasic(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/basicIntrCount/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetDrugToDrugData(id: number, lang: string, from: number, numberOfRows: number) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDrugToDrugData/${id}/${from}/${numberOfRows}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache',\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetDrugToFoodData(id: number) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDrugToFoodData/${id}`,\r\n\t\t\tmethod: 'get'\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetDrugToDriveData(id: number) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDrugToDriveData/${id}`,\r\n\t\t\tmethod: 'get'\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\r\n\tgetDrugToDiseaseData(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDrugToDiseaseData/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetDrugToDrug(firstId: number, typeId: number, secondId: number) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDrugToDrug/${firstId}/${typeId}/${secondId}`,\r\n\t\t\tmethod: 'get'\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetProfessionalContent(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getProfessional/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetPregnancyContent(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getPregnancy/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n\tgetDriveMachineContent(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `medicine/getDriveMachine/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n}\r\n\r\nexport default MedicineService;\r\n","import axios from 'axios';\r\nimport * as Constants from \"../common/constants\";\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { ActiveIngredientModel } from \"../models\";\r\n\r\nclass ActiveIngredientService {\r\n\tconstructor() {\r\n\t\taxios.defaults.baseURL = `${Constants.apiUrl}/`;\r\n\t\taxios.defaults.headers = {\r\n\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\tPragma: 'no-cache'\r\n\t\t}\r\n\t}\r\n\r\n\tgetActiveIngredient(id: number, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `${Constants.apiUrl}/activeIngredient/getById/${id}`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t}\r\n\t\t})\r\n\t\t\t.then(res => res.data.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n}\r\n\r\nexport default ActiveIngredientService;\r\n","import * as React from 'react';\r\nimport './spinner.css';\r\n\r\nconst spinner = (props) => {\r\n if (props.inlineSpinner) {\r\n return
    \r\n }\r\n else {\r\n return
    \r\n }\r\n}\r\n\r\nexport default spinner;","export class MedicineFilterSettings {\r\n public name: string;\r\n public title: string;\r\n public number: string;\r\n public alphaIndex: string;\r\n public activeIngredientId: number;\r\n}","import * as React from 'react';\r\nimport { Button } from \"primereact/button\";\r\n\r\nconst alphaEnIndex = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];\r\nconst alphaBgIndex = ['А', 'Б', 'В', 'Г', 'Д', 'Е', 'Ж', 'З', 'И', 'Й', 'К', 'Л', 'М', 'Н', 'О', 'П', 'Р', 'С', 'Т', 'У', 'Ф', 'Х', 'Ц', 'Ч', 'Ш', 'Щ', 'Ъ', 'Ю', 'Я'];\r\n\r\nconst alphabeticalFilter = (props) => {\r\n const enFilter = props.filters.indexOf('en') > -1 ?\r\n alphaEnIndex.map(letter => {\r\n return (\r\n props.buttonStyle ?\r\n props.handleAlphaIndexChange(e, letter)}\r\n /> :\r\n props.handleAlphaIndexChange(e, letter)}\r\n className={props.letterClassName}>\r\n {letter}\r\n \r\n )\r\n }) : null;\r\n\r\n const bgFilter = props.filters.indexOf('bg') > -1 ?\r\n alphaBgIndex.map(letter => {\r\n return (\r\n props.buttonStyle ?\r\n props.handleAlphaIndexChange(e, letter)}\r\n /> :\r\n props.handleAlphaIndexChange(e, letter)}\r\n className={props.letterClassName}>\r\n {letter}\r\n \r\n )\r\n }) : null;\r\n\r\n return (\r\n
    \r\n {props.filters.indexOf('en') > -1 ?\r\n props.buttonStyle ?\r\n
    \r\n {enFilter}\r\n
    :\r\n
    \r\n {enFilter}\r\n
    \r\n : null}\r\n {props.filters.indexOf('bg') > -1 ?\r\n
    \r\n {bgFilter}\r\n
    : null}\r\n
    \r\n )\r\n}\r\n\r\nexport default alphabeticalFilter;","import { ManufacturerModel } from \"./manufacturerModel\";\r\nimport { MedicineSpecificationModel } from \"./medicineSpecificationModel\";\r\nimport { ActiveIngredientViewModel } from \"./activeIngredientViewModel\";\r\nimport { SafetyDataModel } from \"./safetyDataModel\";\r\nimport { InactiveIngredientModel } from \"./inactiveIngredientModel\";\r\n\r\nexport class MedicineModel {\r\n public medicineId: number;\r\n public brandName: string;\r\n public medicineNumber: string;\r\n public additionalTitle: string;\r\n public overviewSummary: string;\r\n public overviewAboutMedicine: string;\r\n public overviewBeforeIntake: string;\r\n public overviewDosage: string;\r\n public overviewSideEffects: string;\r\n public overviewSafetyData: string;\r\n public overviewAdditionalInfo: string;\r\n public fullDescription: string;\r\n\r\n // public ingredientSideEffect: IngredientSideEffectModel;\r\n // public dosageContent: DosageContentModel;\r\n\r\n public activeIngredients: Array;\r\n public inactiveIngredients: Array;\r\n public medicineSpecifications: MedicineSpecificationModel;\r\n public safetyData: SafetyDataModel;\r\n public manufacturer: ManufacturerModel;\r\n public authorisationHolder: ManufacturerModel;\r\n}","import { ImageModel } from \"./imageModel\";\r\nimport { ATCCodeModel } from \"./atcCodeModel\";\r\n\r\nexport class ActiveIngredientModel {\r\n public activeIngredientId: number;\r\n public activeIngredientName: string;\r\n public genericINNName: string;\r\n public commonChemicalName: string;\r\n public IUPACChemicalName: string;\r\n public molecularFormula: string;\r\n public shortDescription: string;\r\n public description: string;\r\n public currentActiveToMedStrength: string;\r\n public image: ImageModel;\r\n public atcCode: ATCCodeModel;\r\n}\r\n","import { MedicineTabs, DataSourceType } from '../common/enums';\r\nimport { GenericBasicModel } from './genericBasicModel';\r\nimport { string } from 'prop-types';\r\n\r\nexport class MedicineBasicModel {\r\n public medicineId: number;\r\n public brandName: string;\r\n public additionalTitle: string;\r\n public authorisationStatus: number;\r\n public dataSourceTypeId: DataSourceType;\r\n public medicineDataURL: string;\r\n public medicineTabs: Array;\r\n public generics: Array;\r\n public medicineNumber: string;\r\n public emaProductNumber: string;\r\n}","export class DrugToDrugInteractionModel {\r\n public selectedIngredientId: number;\r\n public selectedIngredientName: string;\r\n public interactionIngredientId: number;\r\n public interactionIngredientName: string;\r\n public interactionIngredientBrandNames: string;\r\n public interactionTypeId: number;\r\n public consumerDecscription: string;\r\n public professionalDecscription: string;\r\n}","export class DrugToDiseaseInteraction {\r\n public selectedIngredientId: number;\r\n public selectedIngredientName: string;\r\n public diseaseId: number;\r\n public diseaseName: string;\r\n public interactionTypeId: number;\r\n public consumerDecscription: string;\r\n public professionalDecscription: string;\r\n}","export class DrugToFoodAlcoholInteraction {\r\n public selectedIngredientId: number;\r\n public selectedIngredientName: string;\r\n public foodAlcoholId: number;\r\n public foodAlcoholNameBG: string;\r\n public foodAlcoholNameEN: string;\r\n public foodAlcoholName: string;\r\n public interactionTypeId: number;\r\n public consumerDecscription: string;\r\n public professionalDecscription: string;\r\n}","import { DrugToDrugInteractionModel } from \"./drugToDrugInteractionModel\";\r\nimport { DrugToDiseaseInteraction } from \"./drugToDiseaseInteraction\";\r\nimport { DrugToFoodAlcoholInteraction } from \"./drugToFoodAlcoholInteraction\";\r\n\r\nexport class InteractionsDataModel {\r\n public medicineId: number;\r\n public brandName: string;\r\n public genericName: string;\r\n\r\n public allDrugsInteractionsCount: number;\r\n public allFoodAlcoholInteractionsCount: number;\r\n public allDiseaseInteractionsCount: number;\r\n\r\n public drugToDrugInteractions: Array;\r\n public drugToDiseaseInteractions: Array;\r\n public drugToFoodAlcoholInteractions: Array;\r\n}","export class InteractionsSummaryBasicModel {\r\n public allDrugsInteractionsCount: number;\r\n public allAlcoholFoodInteractionsCount: number;\r\n public allDiseaseInteractionsCount: number;\r\n public medicineInteractionsContent: string;\r\n}","export class FileModel {\r\n public fileId: number;\r\n public fileContent: any;\r\n public fileType: string;\r\n public fileName: string;\r\n public fileSizeInBytes: number;\r\n public medicineLeafletTypeId: number;\r\n}","export class PregnancyAndBreastfeedingModel {\r\n public PregnancyAndBreastfeedingId: number;\r\n public medicineId: number;\r\n public breastfeedingContent: string;\r\n public pregnancyContent: string;\r\n}","export class MedicineForListModel {\r\n public medicineId: number;\r\n public brandName: string;\r\n public medicineNumber: string;\r\n public additionalTitle: string;\r\n public medicineHistoryCount: number;\r\n public hasActiveHistory: boolean;\r\n public activeIngredientName: string;\r\n}","export class DiseaseForGridModel {\r\n public diseaseId: number;\r\n public diseaseName: string;\r\n public diseaseCode: string;\r\n public diseaseHistoryCount: number;\r\n public hasActiveHistory: boolean;\r\n}","export class DiseaseFilterSettingsModel {\r\n public diseaseName: string;\r\n public diseaseCode: string;\r\n public alphaIndex: string;\r\n}","export class DriveAndMachineContentModel {\r\n public driveAndMachineContentId: number;\r\n public medicineId: number;\r\n public driveDescription: string;\r\n public machineDescription: string;\r\n}","import * as React from \"react\";\r\nimport { MedicineForListModel } from \"../../models\";\r\nimport MedicinesList from './medicinesList';\r\nimport MedicineService from '../../services/medicineService';\r\nimport ActiveIngredientService from '../../services/activeIngredientService';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport { MedicineFilterSettings } from \"../../models/medicineFilterSettings\";\r\nimport * as Constants from '../../common/constants';\r\nimport AlphabeticalFilter from '../../common/components/alphabeticalFilter/alphabeticalFilter';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\nimport { connect } from 'react-redux';\r\nimport { ActiveIngredientModel } from \"../../models\";\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\n\r\ninterface IProps {\r\n\thistory?: any,\r\n\tlocation?: any,\r\n\ttopList: number,\r\n\tlang: string,\r\n}\r\n\r\ninterface IState {\r\n\tmedicines: Array;\r\n\tisLoading: boolean;\r\n\tvalidationMessage: string;\r\n\tfrom: number;\r\n\tnumberOfRows: number;\r\n\ttotalRecordsCount: number;\r\n\tmedicineSettings: MedicineFilterSettings;\r\n\tpage: number;\r\n\tnumberOfPages: number;\r\n\tdrawer: boolean;\r\n\tsearchText: string;\r\n\tactiveIngredient: ActiveIngredientModel;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 20;\r\n\r\nclass MedicinesContainer extends React.Component {\r\n\r\n\tmedicineService = new MedicineService(this.props.lang);\r\n\tactiveIngredientService = new ActiveIngredientService();\r\n\tmessages: any;\r\n\tgrowl: any;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tvalidationMessage: '',\r\n\t\t\tmedicines: new Array(0),\r\n\t\t\tisLoading: false,\r\n\t\t\tfrom: initFrom,\r\n\t\t\tnumberOfRows: numberOfRows,\r\n\t\t\ttotalRecordsCount: 0,\r\n\t\t\tmedicineSettings: new MedicineFilterSettings(),\r\n\t\t\tpage: 1,\r\n\t\t\tnumberOfPages: 1,\r\n\t\t\tdrawer: false,\r\n\t\t\tsearchText: '',\r\n\t\t\tactiveIngredient: new ActiveIngredientModel()\r\n\t\t};\r\n\t}\r\n\r\n\t// events\r\n\tcomponentDidMount() {\r\n\t\tif (this.props.topList) {\r\n\t\t\tthis.setState({ from: 0, numberOfRows: this.props.topList });\r\n\t\t\tthis.getAllMedicines(0, this.props.topList, true, true);\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\twindow.addEventListener('scroll', this.onScroll);\r\n\r\n\t\tthis.getAllFilteredMedicines(true);\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('scroll', this.onScroll);\r\n\t}\r\n\r\n\tonScroll = () => {\r\n\t\tlet scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n\t\tif (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n\t\t\tthis.state.totalRecordsCount > this.state.medicines.length && !this.state.isLoading) {\r\n\t\t\tthis.paginatorClick({ first: this.state.from + this.state.numberOfRows }, false);\r\n\t\t}\r\n\t};\r\n\r\n\tcomponentDidUpdate(prevProps) {\r\n\t\tif (prevProps.location && prevProps.location.search != location.search) {\r\n\t\t\tthis.getAllFilteredMedicines(true);\r\n\t\t}\r\n\t}\r\n\r\n\tgetAllFilteredMedicines(isInit: boolean) {\r\n\t\tconst { medicineSettings } = this.state;\r\n\t\tmedicineSettings.alphaIndex = '';\r\n\t\tmedicineSettings.name = '';\r\n\r\n\t\tlet letter = HelperFunctions.getURLParameter('letter');\r\n\r\n\t\tif (letter) {\r\n\t\t\tmedicineSettings.alphaIndex = letter + '';\r\n\t\t}\r\n\r\n\t\tlet searchText = HelperFunctions.getURLParameter('searchText');\r\n\r\n\t\tif (searchText) {\r\n\t\t\tmedicineSettings.name = searchText + '';\r\n\t\t}\r\n\r\n\t\tlet activeIngredient = HelperFunctions.getURLParameter('activeIngredient');\r\n\r\n\t\tif (activeIngredient) {\r\n\t\t\tmedicineSettings.activeIngredientId = parseInt(activeIngredient + '');\r\n\t\t\tthis.activeIngredientService.getActiveIngredient(medicineSettings.activeIngredientId, this.props.lang).then(\r\n\t\t\t\t(data: any) => {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tactiveIngredient: data\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t)\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\tlet page = 1;\r\n\r\n\t\tlet pageUrl = HelperFunctions.getURLParameter('page') + '';\r\n\r\n\t\tif (pageUrl) {\r\n\t\t\tpage = parseInt(pageUrl);\r\n\t\t}\r\n\r\n\t\t//let from = (page - 1) * this.state.numberOfRows;\r\n\r\n\t\tthis.setState({ medicineSettings: { ...medicineSettings }, page: page },\r\n\t\t\t() => this.getAllMedicines(this.state.from, this.state.numberOfRows, isInit, false));\r\n\r\n\t}\r\n\r\n\t// methods\r\n\tgetAllMedicines(from: number, numberOfRows: number, isInit: boolean, seenCount: boolean) {\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\r\n\t\tconst { medicineSettings } = this.state;\r\n\r\n\t\tthis.medicineService.getAllMedicines(from, numberOfRows, medicineSettings, this.props.lang, seenCount).then(\r\n\t\t\t(data: any) => {\r\n\t\t\t\tif (isInit) {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tfrom: from,\r\n\t\t\t\t\t\tmedicines: data.medicines,\r\n\t\t\t\t\t\ttotalRecordsCount: data.totalRecordsCount,\r\n\t\t\t\t\t\tnumberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n\t\t\t\t\t\t\tdata.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tmedicines: [...this.state.medicines, ...data.medicines],\r\n\t\t\t\t\t\ttotalRecordsCount: data.totalRecordsCount,\r\n\t\t\t\t\t\tnumberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n\t\t\t\t\t\t\tdata.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(error => {\r\n\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tisLoading: false\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t}\r\n\r\n\tpaginatorClick = (e, isInit: boolean) => {\r\n\t\tthis.setState({ from: e.first }, () => this.getAllFilteredMedicines(isInit));\r\n\t}\r\n\r\n\t// paginataorClick = (page) => {\r\n\t// \tconst qs = QueryString.parse(location.search);\r\n\t// \tqs['page'] = page;\r\n\t// \tthis.props.history.push(`${Constants.MedicinesUrl}?${QueryString.stringify(qs)}`);\r\n\t// }\r\n\r\n\thandleAlphaIndexChange = (e, letter: string) => {\r\n\t\tthis.setState({ from: 0 });\r\n\t\tthis.props.history.push(`${Constants.MedicinesUrl}?letter=${encodeURI(letter)}`);\r\n\t\tthis.toggleDrawer(false);\r\n\t}\r\n\r\n\r\n\thandleChange = (key, value) => {\r\n\t\tthis.setState({ searchText: value });\r\n\t};\r\n\r\n\thandleSearchButtonClick = () => {\r\n\r\n\t\tconst { searchText } = this.state;\r\n\r\n\t\tlet searchTextTrim = searchText.trim();\r\n\r\n\t\tif (searchTextTrim) {\r\n\t\t\tthis.setState({ from: 0 });\r\n\t\t\tthis.props.history.push(`${Constants.MedicinesUrl}?searchText=${encodeURI(searchTextTrim)}`);\r\n\t\t\tthis.toggleDrawer(false);\r\n\t\t}\r\n\t}\r\n\r\n\thandleKeyPress = (e) => {\r\n\t\tif (e.key === 'Enter') {\r\n\t\t\tthis.setState({ from: 0 }, this.handleSearchButtonClick);\r\n\t\t\tthis.toggleDrawer(false);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleDrawer = (open) => {\r\n\t\tthis.setState({\r\n\t\t\tdrawer: open\r\n\t\t});\r\n\t};\r\n\r\n\thandleShowAllClick = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({\r\n\t\t\tmedicineSettings: new MedicineFilterSettings()\r\n\t\t});\r\n\t\tthis.props.history.push('/medicines');\r\n\t}\r\n\r\n\t// render\r\n\tpublic render() {\r\n\r\n\t\tconst { medicines, isLoading, medicineSettings, totalRecordsCount, numberOfPages, page, searchText, activeIngredient } = this.state;\r\n\t\tlet titleText = '';\r\n\t\tlet activeIngredientInfo;\r\n\t\tlet showAllLink = false;\r\n\r\n\t\tif (medicineSettings && medicineSettings.alphaIndex) {\r\n\t\t\ttitleText = ` ${Translate('starts with')} '${medicineSettings.alphaIndex}' `;\r\n\t\t\tshowAllLink = true;\r\n\t\t}\r\n\r\n\t\tif (medicineSettings && medicineSettings.name) {\r\n\t\t\ttitleText = ` ${Translate('contain text')} '${medicineSettings.name}' `;\r\n\t\t\tshowAllLink = true;\r\n\t\t}\r\n\r\n\t\tif (medicineSettings && medicineSettings.activeIngredientId && activeIngredient.activeIngredientName) {\r\n\t\t\tshowAllLink = true;\r\n\t\t\ttitleText = ` ${Translate('contain')} '${activeIngredient.activeIngredientName}' `;\r\n\t\t\tactiveIngredientInfo =\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{activeIngredient.activeIngredientName ?\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{Translate(\"Name\")}: {activeIngredient.activeIngredientName}\r\n\t\t\t\t\t\t\t
    : null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{activeIngredient.atcCode && activeIngredient.atcCode.atcCode ?\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{Translate(\"ATC code\")}: {activeIngredient.atcCode.atcCode}\r\n\t\t\t\t\t\t\t
    : null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{activeIngredient.molecularFormula ?\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{Translate(\"Мolecular Formula\")}: {activeIngredient.molecularFormula}\r\n\t\t\t\t\t\t\t
    : null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{activeIngredient.image && activeIngredient.image.imageId ?\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    : null\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t{activeIngredient.description ?
    {activeIngredient.description}
    : null}\r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\r\n\t\t\t\t this.growl = el} />\r\n\r\n\t\t\t\t{!this.props.topList ?\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t

    {Translate('Medicines')}{titleText}

    \r\n\t\t\t\t\t\r\n\t\t\t\t\t: null}\r\n\r\n\t\t\t\t{!this.props.topList ?\r\n\t\t\t\t\t this.toggleDrawer(true)} className=\"floating-action-button\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t: null}\r\n\r\n\t\t\t\t{!isLoading && !this.props.topList ?\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{totalRecordsCount} {Translate('ResulFound')}\r\n\t\t\t\t\t
    : null}\r\n\r\n\t\t\t\t{showAllLink ?\r\n\t\t\t\t\t : null}\r\n\r\n\t\t\t\t{activeIngredientInfo ? activeIngredientInfo : null}\r\n\r\n\r\n\r\n\t\t\t\t\r\n\r\n\t\t\t\t{isLoading ? : null}\r\n\r\n\t\t\t\t{\r\n\t\t\t\t\t!this.props.topList ?\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t{/* {numberOfPages > 1 ?\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t: null} */}\r\n\r\n\t\t\t\t\t\t\t{/*

    {Translate('CanNotFindYourMedicine')}

    */}\r\n\t\t\t\t\t\t\t this.toggleDrawer(false)}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t

    {Translate('SearchMedicineInDatabase')}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleChange('searchByName', e.target['value'])}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tonKeyPress={this.handleKeyPress}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={searchText ? searchText : \"\"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t

    {Translate('BrowseAlphabetically')}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: null\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n\treturn {\r\n\t\tlang: state.common.lang\r\n\t};\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(MedicinesContainer);\r\n","import * as React from \"react\";\r\nimport Translate from '../../common/functions/translate';\r\nimport * as Constants from '../../common/constants';\r\nimport Button from '@material-ui/core/Button';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport { connect } from 'react-redux';\r\nimport * as actionTypes from '../../store/actionTypes';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport MedicinesContainer from '../medicines/medicinesContainer';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTablets, faStethoscope, faPills, faPrescription, faMapMarkedAlt, faHeartbeat, faUsers, faVial } from '@fortawesome/free-solid-svg-icons';\r\nimport { textAlign } from \"@material-ui/system\";\r\n\r\ninterface IProps {\r\n history: any,\r\n classes: any,\r\n}\r\n\r\ninterface IState {\r\n searchText: string\r\n}\r\n\r\nclass HomeComponent extends React.Component {\r\n\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n searchText: ''\r\n }\r\n }\r\n\r\n handleAlphaIndexChange = (e, letter: string) => {\r\n this.props.history.push(`${Constants.MedicinesUrl}?letter=${encodeURI(letter)}`);\r\n }\r\n\r\n handleChange = (key, value) => {\r\n this.setState({ searchText: value });\r\n };\r\n\r\n handleSearchButtonClick = () => {\r\n\r\n const { searchText } = this.state;\r\n\r\n let searchTextTrim = searchText.trim();\r\n\r\n if (searchTextTrim) {\r\n this.props.history.push(`${Constants.MedicinesUrl}?searchText=${encodeURI(searchTextTrim)}`);\r\n }\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick();\r\n }\r\n }\r\n\r\n handleMenuItemClick = (menuUrl) => {\r\n this.props.history.push(menuUrl);\r\n }\r\n\r\n render() {\r\n const { searchText } = this.state;\r\n const { classes } = this.props;\r\n\r\n let inputStyle = window.innerWidth < Constants.device.desktop ? { maxWidth: 600 } : { maxWidth: 600, margin: '0 auto' }\r\n\r\n return (\r\n
    \r\n\r\n
    \r\n\r\n
    \r\n\r\n this.growl = el} />\r\n\r\n {window.innerWidth < Constants.device.desktop ?\r\n
    \r\n

    MedXchange

    \r\n

    {Translate('MedXchangeDescription')}

    \r\n
    : null}\r\n\r\n

    {Translate('SearchMedicineInDatabase')}

    \r\n\r\n
    \r\n \r\n this.handleChange('searchByName', e.target['value'])}\r\n onKeyPress={this.handleKeyPress}\r\n value={searchText ? searchText : \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n\r\n {window.innerWidth >= Constants.device.tablet ?\r\n <>\r\n
    \r\n

    MedXchange

    \r\n

    {Translate('MedXchangeDescription')}

    \r\n
    \r\n\r\n
    \r\n
    \r\n
    this.handleMenuItemClick(Constants.MedicinesUrl)}>\r\n
    \r\n = Constants.device.desktop ? \"3x\" : \"2x\"} />\r\n
    \r\n
    \r\n
    {Translate('Medicines')}
    \r\n
    {Translate('BrowseAllMedicine')}
    \r\n
    \r\n
    \r\n\r\n
    this.handleMenuItemClick(Constants.InteractionsUrl)}>\r\n
    \r\n = Constants.device.desktop ? \"3x\" : \"2x\"} />\r\n
    \r\n
    \r\n
    {Translate('Interactions')}
    \r\n
    {Translate('Check medicine interactions')}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick(Constants.DiseaseUrl)}>\r\n
    \r\n = Constants.device.desktop ? \"3x\" : \"2x\"} />\r\n
    \r\n
    \r\n
    {Translate('Diseases')}
    \r\n
    {Translate('List of all Diseases')}
    \r\n
    \r\n
    \r\n\r\n
    this.handleMenuItemClick(Constants.DisposalPlaces)}>\r\n
    \r\n = Constants.device.desktop ? \"3x\" : \"2x\"} />\r\n
    \r\n
    \r\n
    {Translate('Locations')}
    \r\n
    {Translate('DisposalPlaces')}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n :\r\n
    \r\n
    \r\n
    this.handleMenuItemClick(Constants.MedicinesUrl)}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    {Translate('Medicines')}
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick(Constants.InteractionsUrl)}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    {Translate('Interactions')}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick(Constants.DiseaseUrl)}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    {Translate('Diseases')}
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick(Constants.DisposalPlaces)}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    {Translate('Locations')}
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n }\r\n
    \r\n

    {Translate('User Functionalities')}

    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/medicines')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n {Translate('My Medicines')}\r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/diseases')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n {Translate('My Diseases')}\r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/prescriptions')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n {Translate('Doctors prescriptions')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/condition')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n {Translate('My Condition')}\r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/family')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n {Translate('My Family')}\r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/labresults')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n {Translate('Laboratory result')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n {window.innerWidth >= Constants.device.desktop ?\r\n
    \r\n

    {Translate('Top40MedicineSearches')}

    \r\n \r\n
    : null}\r\n\r\n {window.innerWidth < Constants.device.desktop ?\r\n
    \r\n \r\n
    \r\n : null}\r\n\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default withStyles(Constants.inputWithButton)(HomeComponent);","import * as React from 'react';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport Button from '@material-ui/core/Button';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport SnackbarContent from '@material-ui/core/SnackbarContent';\r\nimport green from '@material-ui/core/colors/green';\r\nimport amber from '@material-ui/core/colors/amber';\r\n\r\nconst alertMessage = (props) => {\r\n // const styles1 = theme => ({\r\n // success: {\r\n // backgroundColor: green[600],\r\n // },\r\n // error: {\r\n // backgroundColor: theme.palette.error.dark,\r\n // },\r\n // info: {\r\n // backgroundColor: theme.palette.primary.dark,\r\n // },\r\n // warning: {\r\n // backgroundColor: amber[700],\r\n // },\r\n // icon: {\r\n // fontSize: 20,\r\n // },\r\n // iconVariant: {\r\n // opacity: 0.9,\r\n // marginRight: theme.spacing.unit,\r\n // },\r\n // message: {\r\n // display: 'flex',\r\n // alignItems: 'center',\r\n // },\r\n // });\r\n\r\n // type: primary, secondary, success, danger, warning, info, light, dark\r\n return (\r\n
    \r\n
    \r\n
    \r\n\r\n // \r\n // \r\n // {props.message}\r\n // \r\n // }\r\n // action={[\r\n // \r\n // \r\n // ,\r\n // ]}\r\n // />\r\n // \r\n\r\n\r\n // {props.message}} \r\n // action={[\r\n // // ,\r\n // \r\n // \r\n // ,\r\n // ]}\r\n // />\r\n )\r\n}\r\n\r\nexport default alertMessage;","import * as React from 'react';\r\nimport Translate from '../../../common/functions/translate';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport { MedicineModel, ActiveIngredientModel } from \"../../../models\";\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n currentMedicine: MedicineModel;\r\n}\r\n\r\nclass overViewTab extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n let currentMedicine = new MedicineModel();\r\n currentMedicine.activeIngredients = new Array(0);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n currentMedicine: currentMedicine\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getMedicine();\r\n }\r\n\r\n getMedicine() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getMedicine(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n currentMedicine: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n\r\n public render() {\r\n\r\n const { medicineId, isLoading, error, currentMedicine } = this.state;\r\n\r\n let medicineName = currentMedicine.brandName ? currentMedicine.brandName : '';\r\n let additionalTitle = currentMedicine.additionalTitle ? currentMedicine.additionalTitle : '';\r\n\r\n let medicineNameAndTitle = medicineName + ' ' + additionalTitle;\r\n\r\n let safetyDataElement: any;\r\n if (currentMedicine.overviewSafetyData || currentMedicine.safetyData) {\r\n safetyDataElement =\r\n
    \r\n {currentMedicine.overviewSafetyData ?
    : null}\r\n {currentMedicine.safetyData\r\n ?
    \r\n

    {currentMedicine.safetyData.storagePrecautions}

    \r\n

    {currentMedicine.safetyData.shelfLife}

    \r\n

    {currentMedicine.safetyData.productDisposal}

    \r\n
    \r\n : null\r\n }\r\n
    ;\r\n } else {\r\n null;\r\n }\r\n\r\n let adiitinalContentElement: any;\r\n if (currentMedicine.overviewAdditionalInfo ||\r\n currentMedicine.manufacturer ||\r\n currentMedicine.medicineSpecifications ||\r\n currentMedicine.activeIngredients.length > 0) {\r\n adiitinalContentElement =\r\n
    \r\n {currentMedicine.overviewAdditionalInfo ?
    : null}\r\n {currentMedicine.activeIngredients.length > 0 ?\r\n
    \r\n

    {Translate('WhatIsInProduct')} {medicineNameAndTitle}

    \r\n

    {Translate('ActiveIngredients')}: \r\n {currentMedicine.activeIngredients.map(m => m.activeIngredientName).join(\", \")}\r\n

    \r\n

    {Translate('InactiveIngredients')}: \r\n {currentMedicine.inactiveIngredients.map(m => m.name).join(\", \")}\r\n

    \r\n
    : null\r\n }\r\n\r\n {currentMedicine.medicineSpecifications ?\r\n
    \r\n

    {Translate('WhatLooksAndPackageContents')} {medicineNameAndTitle}

    \r\n
    \r\n

    \r\n {currentMedicine.medicineSpecifications.color ? currentMedicine.medicineSpecifications.color + ', ' : null}\r\n {currentMedicine.medicineSpecifications.shape ? currentMedicine.medicineSpecifications.shape + ', ' : null}\r\n {currentMedicine.medicineSpecifications.size ? currentMedicine.medicineSpecifications.size + ', ' : null}\r\n {currentMedicine.medicineSpecifications.imprint ? Translate('FirstSideImprint') + ' ' + currentMedicine.medicineSpecifications.imprint + '.' : null}\r\n

    \r\n

    \r\n {currentMedicine.medicineSpecifications.packaging ? currentMedicine.medicineSpecifications.packaging + ', ' : null}\r\n {currentMedicine.medicineSpecifications.packageSize ? currentMedicine.medicineSpecifications.packageSize + ', ' : null}\r\n

    \r\n

    {Translate('NotAllPackagesMarketed')}

    \r\n
    \r\n
    : null\r\n }\r\n {currentMedicine.authorisationHolder && (currentMedicine.authorisationHolder.name || currentMedicine.authorisationHolder.address) ?\r\n
    \r\n {/*

    {Translate('MarketingAuthorisationHolderAndManufacturer')}:

    */}\r\n

    {Translate('MarketingAuthorisationHolder')}:

    \r\n

    {currentMedicine.authorisationHolder.name}, {currentMedicine.authorisationHolder.address}

    \r\n
    : null}\r\n\r\n {currentMedicine.manufacturer && (currentMedicine.manufacturer.name || currentMedicine.manufacturer.address) ?\r\n
    \r\n

    {Translate('Manufacturer')}:

    \r\n

    {currentMedicine.manufacturer.name}, {currentMedicine.manufacturer.address}

    \r\n
    : null}\r\n\r\n {currentMedicine.medicineSpecifications && currentMedicine.medicineSpecifications.lastAuthorizationDate ?\r\n
    \r\n

    {Translate('LastAuthorizationDate')}: \r\n {HelperFunctions.fomatDateAsString(new Date(currentMedicine.medicineSpecifications.lastAuthorizationDate))}\r\n

    \r\n
    \r\n : null\r\n }\r\n
    ;\r\n } else {\r\n null;\r\n }\r\n\r\n let overViewHeader: any;\r\n if (currentMedicine.brandName &&\r\n currentMedicine.activeIngredients.length > 0) {\r\n overViewHeader =\r\n
    \r\n {/*

    {Translate('LeafletUserInfo')}

    */}\r\n

    {medicineNameAndTitle}

    \r\n

    {currentMedicine.activeIngredients.map(m => m.activeIngredientName).join(\" / \")}

    \r\n
    ;\r\n } else if (currentMedicine.brandName) {\r\n overViewHeader =

    {medicineNameAndTitle}

    \r\n } else {\r\n null;\r\n }\r\n\r\n let overViewElement: any;\r\n let leafletContentElement: any;\r\n let overViewContent: any;\r\n if (currentMedicine.overviewAboutMedicine ||\r\n currentMedicine.overviewBeforeIntake ||\r\n currentMedicine.overviewDosage ||\r\n currentMedicine.overviewSideEffects ||\r\n safetyDataElement ||\r\n adiitinalContentElement) {\r\n let i = 0;\r\n\r\n let sectionTitle: any = { id: 0, sectionLabel: \"\", fullContent: \"\" };\r\n let sectionsContentArray: Array = [];\r\n\r\n if (currentMedicine.overviewAboutMedicine) {\r\n i++;\r\n sectionTitle = {\r\n id: i, sectionLabel: Translate('OverviewAbout') + ' ' + medicineNameAndTitle,\r\n fullContent:
    \r\n }\r\n sectionsContentArray.push(sectionTitle);\r\n }\r\n\r\n if (currentMedicine.overviewBeforeIntake) {\r\n i++;\r\n sectionTitle = {\r\n id: i, sectionLabel: Translate('OverviewBeforeIntake') + ' ' + medicineNameAndTitle,\r\n fullContent:
    \r\n }\r\n sectionsContentArray.push(sectionTitle);\r\n }\r\n\r\n if (currentMedicine.overviewDosage) {\r\n i++;\r\n sectionTitle = {\r\n id: i, sectionLabel: Translate('OverviewDosage') + ' ' + medicineNameAndTitle,\r\n fullContent:
    \r\n }\r\n sectionsContentArray.push(sectionTitle);\r\n }\r\n\r\n if (currentMedicine.overviewSideEffects) {\r\n i++;\r\n sectionTitle = {\r\n id: i, sectionLabel: Translate('OverviewSideEffects'),\r\n fullContent:
    \r\n }\r\n sectionsContentArray.push(sectionTitle);\r\n }\r\n\r\n if (safetyDataElement) {\r\n i++;\r\n sectionTitle = {\r\n id: i, sectionLabel: Translate('OverviewSafetyData') + ' ' + medicineNameAndTitle,\r\n fullContent: safetyDataElement\r\n }\r\n sectionsContentArray.push(sectionTitle);\r\n }\r\n\r\n if (adiitinalContentElement) {\r\n i++;\r\n sectionTitle = {\r\n id: i, sectionLabel: Translate('OverviewAdditionalInfo'),\r\n fullContent: adiitinalContentElement\r\n }\r\n sectionsContentArray.push(sectionTitle);\r\n }\r\n\r\n leafletContentElement =\r\n
    \r\n {Translate('WhatIsInLeaflet')}\r\n {sectionsContentArray.map(m =>\r\n

    {m.id}. {m.sectionLabel}

    \r\n )}\r\n
    ;\r\n\r\n overViewContent =\r\n
    \r\n {sectionsContentArray.map(m =>\r\n
    \r\n

    {m.id}. {m.sectionLabel}

    \r\n {m.fullContent}\r\n
    \r\n )}\r\n
    \r\n\r\n overViewElement =\r\n
    \r\n {overViewHeader}\r\n
    \r\n {leafletContentElement}\r\n {overViewContent}\r\n
    \r\n } else {\r\n overViewElement =\r\n
    \r\n {overViewHeader}\r\n
    \r\n
    \r\n }\r\n\r\n return (\r\n !isLoading ?\r\n
    \r\n {overViewElement}\r\n
    \r\n : null\r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(overViewTab);","import * as React from 'react';\r\nimport { groupByReturnArray } from '../../../common/functions/helperFunctions';\r\nimport { IngredientSideEffectModel } from \"../../../models/ingredientSideEffectModel\";\r\nimport { IngredientSideEffectReactionModel } from \"../../../models/ingredientSideEffectReactionModel\";\r\nimport MedicineService from '../../../services/medicineService';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n sideEffects: IngredientSideEffectModel | null;\r\n}\r\n\r\nclass sideEffectsTab extends React.Component {\r\n medicineService = new MedicineService(this.props.lang);\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n sideEffects: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getSideEffects();\r\n }\r\n\r\n getSideEffects = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getSideEffects(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n sideEffects: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n const { medicineId, isLoading, error } = this.state;\r\n\r\n let sideEffectContent: IngredientSideEffectModel | null;\r\n if (this.state.sideEffects) {\r\n sideEffectContent = this.state.sideEffects;\r\n } else {\r\n sideEffectContent = null;\r\n }\r\n\r\n let sideEffectElement: any;\r\n let sideEffectDescrContent: any;\r\n let sideEffectDataList: Array | null = [];\r\n let sideEffectFooter: any;\r\n if (sideEffectContent) {\r\n sideEffectDescrContent =\r\n
    \r\n {/*

    {Translate('Summary')}

    \r\n
    \r\n\r\n

    {Translate('For the Consumer')}

    \r\n
    */}\r\n

    {Translate('Overview')}

    \r\n
    \r\n\r\n

    {Translate('Overdose Description')}

    \r\n
    \r\n\r\n
    ;\r\n\r\n if (sideEffectContent.ingredientSideEffectReactions && sideEffectContent.ingredientSideEffectReactions.length > 0) {\r\n let grouped = groupByReturnArray(sideEffectContent.ingredientSideEffectReactions, 'anatomicalSystemId');\r\n for (var i = 0; i < grouped.length; i++) {\r\n let groupArray: Array = grouped[i];\r\n\r\n let currentGroupTitle: any = {};\r\n if (groupArray) {\r\n let groupHeader = groupArray[0].anatomicalSystem ? groupArray[0].anatomicalSystem.anatomicalSystemName : null;\r\n currentGroupTitle =

    {groupHeader}

    ;\r\n } else {\r\n continue;\r\n }\r\n\r\n var currentGroup: any = {};\r\n var currentGroupData = groupArray.map(m =>\r\n

    \r\n {Translate(m.frequencyOfReaction.frequencyName)}\r\n {m.frequencyOfReaction.frequencyDescription ? \" (\" + Translate(m.frequencyOfReaction.frequencyDescription) + \")\" : null}: {m.description}\r\n

    \r\n );\r\n currentGroup =\r\n
    \r\n {currentGroupTitle}\r\n {currentGroupData}\r\n
    \r\n\r\n sideEffectDataList.push(currentGroup);\r\n }\r\n }\r\n else {\r\n sideEffectDataList = null;\r\n }\r\n\r\n if (sideEffectContent.otherInformation) {\r\n sideEffectFooter =\r\n
    \r\n

    {Translate('Other Information')}

    \r\n
    \r\n
    ;\r\n }\r\n else {\r\n sideEffectFooter = null;\r\n }\r\n } else {\r\n sideEffectDescrContent = null;\r\n }\r\n\r\n sideEffectElement =\r\n
    \r\n {sideEffectDescrContent}\r\n {sideEffectDataList}\r\n {sideEffectFooter}\r\n
    \r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n {sideEffectElement}\r\n
    \r\n\r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(sideEffectsTab);","import * as React from 'react';\r\nimport { DosageLevelModel } from \"../../../models/dosageLevelModel\";\r\nimport { groupByReturnArray } from '../../../common/functions/helperFunctions';\r\nimport { DosageContentModel } from \"../../../models/dosageContentModel\";\r\nimport MedicineService from '../../../services/medicineService';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport { sprintf } from 'sprintf-js';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n dosageContent: DosageContentModel | null;\r\n}\r\n\r\nclass dosageTab extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n dosageContent: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getDosageContent();\r\n }\r\n\r\n getDosageContent = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getDosageContent(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n dosageContent: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n const { medicineId, isLoading, error } = this.state;\r\n\r\n var dosageContent: DosageContentModel | null;\r\n if (this.state.dosageContent) {\r\n dosageContent = this.state.dosageContent;\r\n } else {\r\n dosageContent = null;\r\n }\r\n\r\n let dosageElement: any = null;\r\n let dosageDescrContent: any = null;\r\n let dosageDataList: Array | null = [];\r\n\r\n if (dosageContent) {\r\n dosageDescrContent =\r\n <>\r\n {dosageContent.summary ?
    : null}\r\n {dosageContent.overdoseDescription ?\r\n <>\r\n

    {Translate('Overdose Description')}

    \r\n
    \r\n : null}\r\n {dosageContent.doseAdjustments ?\r\n <>\r\n

    {Translate('Dose Adjustments')}

    \r\n
    \r\n : null}\r\n {dosageContent.precautions ?\r\n <>\r\n

    {Translate('Precautions')}

    \r\n
    \r\n : null}\r\n {/* {dosageContent.otherComments ?\r\n <>\r\n

    {Translate('Other Comments')}

    \r\n
    \r\n : null}\r\n {dosageContent.otherInformation ?\r\n <>\r\n

    {Translate('Other Information')}

    \r\n
    \r\n : null} */}\r\n ;\r\n\r\n if (dosageContent.dosageLevels && dosageContent.dosageLevels.length > 0) {\r\n var groupedByAge = groupByReturnArray(dosageContent.dosageLevels, 'ageGroupId');\r\n for (var i = 0; i < groupedByAge.length; i++) {\r\n var ageGroup = groupedByAge[i];\r\n\r\n if (ageGroup) {\r\n var diseaseGroups = groupByReturnArray(ageGroup, 'diseaseId');\r\n\r\n for (var j = 0; j < diseaseGroups.length; j++) {\r\n\r\n var diseaseGroup: Array = diseaseGroups[j];\r\n var currentGroup: any = {};\r\n var currentDiseaseGroup: any = {};\r\n var currentGroupTitle: any = {};\r\n var currentGroupFooter: any = {};\r\n\r\n if (diseaseGroup) {\r\n currentGroupTitle =\r\n

    \r\n \r\n {Translate(diseaseGroup[0].ageGroup.ageGroupName)} - {Translate('usual dose for')} \r\n {diseaseGroup[0].disease.diseaseName}\r\n \r\n

    ;\r\n currentGroupFooter =\r\n
    \r\n {diseaseGroup[0].comments ?
    {Translate('Comments')}: {diseaseGroup[0].comments}
    : ''}\r\n {diseaseGroup[0].uses ?
    {Translate('Uses')}: {diseaseGroup[0].uses}
    : ''}\r\n
    \r\n currentDiseaseGroup = diseaseGroup.map(m =>\r\n
    \r\n
    {Translate(m.roaType.roatypeDescr)}:
    \r\n
    {m.singleDose} {m.minMaxTimeBetweenIntakes}
    \r\n {m.maxDailyDose ?
    {Translate('Maximum dose')}: {m.maxDailyDose}
    : ''}\r\n {m.minMaxTitration ?
    {Translate('Duration of therapy')}: {m.minMaxTitration}
    : ''}\r\n {//Comment groupFooter and uncomment this, if comments and uses needed for each route of administration type\r\n /* {m.comments ?

    Comments: {m.comments}

    :

    }\r\n {m.uses ?

    Uses: {m.uses}

    :

    } */}\r\n
    \r\n )\r\n } else {\r\n continue;\r\n }\r\n currentGroup =\r\n
    \r\n {currentGroupTitle}\r\n {currentDiseaseGroup}\r\n {currentGroupFooter}\r\n
    \r\n\r\n dosageDataList.push(currentGroup);\r\n }\r\n } else {\r\n continue;\r\n }\r\n }\r\n } else {\r\n dosageDataList = null;\r\n }\r\n }\r\n\r\n dosageElement =\r\n
    \r\n {dosageDescrContent}\r\n {dosageDataList}\r\n
    \r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n {dosageElement}\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(dosageTab);\r\n","import * as React from 'react';\r\nimport Translate from '../../../common/functions/translate';\r\n\r\nfunction getInteractionSeverity(type, value) {\r\n if (typeof type === 'string') {\r\n switch (type) {\r\n case 'icon':\r\n return getInteractionSeverityIcon(value);\r\n case 'iconAndText':\r\n return getInteractionSeverityIconAndText(value);\r\n case 'statusLabel':\r\n return getInteractionSeverityStatusLabel(value);\r\n }\r\n } else {\r\n return value;\r\n }\r\n}\r\n\r\nfunction getInteractionSeverityIcon(id: number) {\r\n if (id != undefined) {\r\n switch (id) {\r\n case 1:\r\n return ;\r\n case 2:\r\n return ;\r\n case 3:\r\n return ;\r\n case 4:\r\n return ;\r\n default:\r\n return null;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getInteractionSeverityIconAndText(id: number) {\r\n if (id != undefined) {\r\n switch (id) {\r\n case 1:\r\n return <>\r\n \r\n {Translate('Major')} \r\n ;\r\n case 2:\r\n return <>\r\n \r\n {Translate('Moderate')} \r\n ;\r\n case 3:\r\n return <>\r\n \r\n {Translate('Minor')} \r\n ;\r\n case 4:\r\n return <>\r\n \r\n {Translate('Unknown')} \r\n \r\n default:\r\n return null;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction getInteractionSeverityStatusLabel(id: number) {\r\n if (id != undefined) {\r\n switch (id) {\r\n case 1:\r\n return {Translate('Major')};\r\n case 2:\r\n return {Translate('Moderate')};\r\n case 3:\r\n return {Translate('Minor')};\r\n case 4:\r\n return {Translate('Unknown')};\r\n default:\r\n return null;\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport default getInteractionSeverity;\r\n\r\n","import * as React from \"react\";\r\n\r\n/* Modal Dialog */\r\nimport MuiDialogTitle from '@material-ui/core/DialogTitle';\r\nimport MuiDialogContent from '@material-ui/core/DialogContent';\r\nimport MuiDialogActions from '@material-ui/core/DialogActions';\r\nimport { withStyles, MuiThemeProvider } from '@material-ui/core/styles';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { createMuiTheme } from '@material-ui/core';\r\nimport blue from '@material-ui/core/colors/blue';\r\n\r\nexport const dialogTitleStyles = createMuiTheme({\r\n overrides: {\r\n MuiButtonBase: {\r\n root: {\r\n padding: 6\r\n },\r\n },\r\n MuiIconButton: {\r\n root: {\r\n padding: 6\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\nexport const DialogTitle = withStyles(theme => ({\r\n root: {\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n margin: 0,\r\n padding: '10px',\r\n },\r\n closeButton: {\r\n position: 'absolute',\r\n right: theme.spacing(1),\r\n top: theme.spacing(1),\r\n color: theme.palette.grey[500],\r\n },\r\n}))((props: any) => dialogHeader(props.children, props.classes, props.onClose));\r\n\r\nexport const DialogContent = withStyles(theme => ({\r\n root: {\r\n margin: 0,\r\n padding: 10,\r\n },\r\n}))(MuiDialogContent);\r\n\r\nexport const DialogActions = withStyles(theme => ({\r\n root: {\r\n borderTop: `1px solid ${theme.palette.divider}`,\r\n margin: 0,\r\n padding: theme.spacing(1),\r\n },\r\n}))(MuiDialogActions);\r\n\r\nfunction dialogHeader(children, classes, onClose) {\r\n return (\r\n \r\n

    {children}

    \r\n {onClose ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : null}\r\n
    \r\n );\r\n}\r\n","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { UserForGridModel } from \"../../../models/user\";\r\nimport UserFamilyList from './userFamilyList';\r\nimport UserFamilyAddEditDialog from './userFamilyAddEditComponent';\r\nimport UserPersonalDataTab from '../userProfile/userPersonalDataTab';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport { RelationType, UserType, RequestStatus } from '../../../common/enums';\r\nimport { getEnumLabel } from '../../../common/functions/helperFunctions';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faUser, faPills, faNotesMedical, faChevronUp, faChevronDown, faUtensils, faStethoscope, faAllergies } from '@fortawesome/free-solid-svg-icons';\r\nimport * as Constants from '../../../common/constants';\r\n\r\ninterface IProps {\r\n history: any;\r\n location: any;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n users: Array;\r\n isVisibleDialog: boolean;\r\n currentUser: UserForGridModel;\r\n isVisibleMyFriendEdit: boolean;\r\n selectedUserId: number;\r\n isVisibleConfirmDialog: boolean;\r\n deleteValidationMessage: string;\r\n isVisibleConfirmCaretakerDialog: boolean;\r\n deleteValidationCaretakerMessage: string;\r\n selectedUserName: string;\r\n dialogHeader: string;\r\n isVisiblePersonalData: boolean;\r\n expandedUsers: Array;\r\n}\r\n\r\nenum MyFriendEditTabs {\r\n PersonalData = 0,\r\n Medicines = 1,\r\n Diseases = 2\r\n}\r\n\r\nclass UserFamilyComponent extends React.Component {\r\n growl: any;\r\n initFrom = 0;\r\n numberOfRows = 10;\r\n\r\n userService = new UserService();\r\n authService = new AuthService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n this.state = {\r\n isLoading: false,\r\n from: this.initFrom,\r\n numberOfRows: this.numberOfRows,\r\n totalRecordsCount: 0,\r\n users: new Array(0),\r\n isVisibleDialog: false,\r\n currentUser: new UserForGridModel(),\r\n isVisibleMyFriendEdit: false,\r\n selectedUserId: 0,\r\n isVisibleConfirmDialog: false,\r\n deleteValidationMessage: '',\r\n selectedUserName: '',\r\n dialogHeader: '',\r\n isVisiblePersonalData: false,\r\n isVisibleConfirmCaretakerDialog: false,\r\n deleteValidationCaretakerMessage: '',\r\n expandedUsers: new Array(0)\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getAllFriends();\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const locationChanged = this.props.location !== prevProps.location;\r\n if (locationChanged) {\r\n let tabName = HelperFunctions.getURLParameter('tabName');\r\n\r\n if (tabName && tabName == 'Account' && this.props.history.action === \"POP\") {\r\n let userId = HelperFunctions.getURLParameter('userId');\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n let numUser: number = userId ? parseInt(userId + '') : 0;\r\n this.handleaccount(numUser, userName + '');\r\n }\r\n if (!tabName && this.props.history.action === \"POP\") {\r\n this.setState({ isVisibleMyFriendEdit: false }, () => this.getAllFriends());\r\n }\r\n }\r\n }\r\n\r\n\r\n getAllFriends() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n\r\n this.userService.getMyFamily().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n users: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleOnPageClick = (e) => {\r\n const startIndex = e.first;\r\n //this.getAllUsers(startIndex, this.state.numberOfRows);\r\n }\r\n\r\n handleAddAndEditClick = id => {\r\n if (!id) { // Add\t\t\t\r\n this.setCurrentUser(new UserForGridModel());\r\n this.setState({ dialogHeader: Translate('AddindFamily') });\r\n this.showEditDialog(true);\r\n } else { // Edit\r\n this.setState({\r\n isLoading: true,\r\n dialogHeader: Translate('EditingFamily')\r\n });\r\n this.userService.getUserFromMyFamily(id)\r\n .then(\r\n (data: UserForGridModel) => {\r\n this.setCurrentUser(data);\r\n this.showEditDialog(true);\r\n this.setState({\r\n isLoading: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n };\r\n\r\n handleMedicines = (id: number, name: string) => {\r\n if (!id) {\r\n console.log(\"ERR\");\r\n } else {\r\n this.props.history.push(`medicines?tabName=Family&userId=${id}&userName=${name}`);\r\n }\r\n }\r\n\r\n handleDiseases = (id: number, name: string) => {\r\n if (!id) {\r\n console.log(\"ERR\");\r\n } else {\r\n this.props.history.push(`diseases?tabName=Family&userId=${id}&userName=${name}`);\r\n }\r\n }\r\n\r\n handleaccount = (id: number, name: string) => {\r\n if (!id) {\r\n console.log(\"ERR\");\r\n } else {\r\n this.setState({\r\n selectedUserId: id,\r\n isVisiblePersonalData: true,\r\n selectedUserName: name\r\n });\r\n\r\n }\r\n }\r\n\r\n handleAddEditSaveClick = (user: UserForGridModel, close: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n if (!user.userId || user.userId <= 0) {\r\n this.userService.addMemberInMyFamily(user)\r\n .then(\r\n (data) => {\r\n if (close) {\r\n this.handleCloseAddEditClick();\r\n }\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setCurrentUser(new UserForGridModel);\r\n this.getAllFriends();\r\n },\r\n error => {\r\n this.handleCloseAddEditClick();\r\n this.setCurrentUser(new UserForGridModel);\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n this.userService.updateMyMemberFromFamily(user)\r\n .then(\r\n (data) => {\r\n if (close) {\r\n this.handleCloseAddEditClick();\r\n }\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setCurrentUser(new UserForGridModel);\r\n this.getAllFriends();\r\n },\r\n error => {\r\n this.handleCloseAddEditClick();\r\n this.setCurrentUser(new UserForGridModel);\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n\r\n }\r\n\r\n handleAddCaretakerSaveClick = (user: UserForGridModel, close: boolean) => {\r\n if (this.state.users.some(r => r.userId == user.userId)) {\r\n this.growl.show({ severity: 'error', summary: Translate(\"AlreadyExist\") });\r\n return;\r\n }\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.addCaretaker(user)\r\n .then(\r\n (data) => {\r\n if (close) {\r\n this.handleCloseAddEditClick();\r\n }\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setCurrentUser(new UserForGridModel);\r\n this.getAllFriends();\r\n },\r\n error => {\r\n this.handleCloseAddEditClick();\r\n this.setCurrentUser(new UserForGridModel);\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n\r\n\r\n handleDeleteRelationClick = (userId) => {\r\n this.setState({\r\n isVisibleConfirmCaretakerDialog: true\r\n });\r\n\r\n let deleteValidationMessage = '';\r\n this.userService.getUserFromMyFamily(userId)\r\n .then(\r\n (data: UserForGridModel) => {\r\n this.setCurrentUser(data);\r\n\r\n let currentUser = this.state.currentUser;\r\n if (currentUser) {\r\n let userName = currentUser.name;\r\n deleteValidationMessage = Translate(\"Confirm Message\") + \" \" + userName + \"?\";\r\n }\r\n\r\n this.setState({\r\n isLoading: false,\r\n deleteValidationCaretakerMessage: deleteValidationMessage,\r\n isVisibleConfirmCaretakerDialog: true\r\n });\r\n\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleDeleteClick = (userId: number) => {\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n\r\n let deleteValidationMessage = '';\r\n this.userService.getUserFromMyFamily(userId)\r\n .then(\r\n (data: UserForGridModel) => {\r\n this.setCurrentUser(data);\r\n\r\n let currentUser = this.state.currentUser;\r\n if (currentUser) {\r\n let userName = currentUser.name;\r\n deleteValidationMessage = Translate(\"Confirm Message\") + \" \" + userName + \"?\";\r\n }\r\n\r\n this.setState({\r\n isLoading: false,\r\n deleteValidationMessage: deleteValidationMessage,\r\n isVisibleConfirmDialog: true\r\n });\r\n\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n deleteUserFriend = (id: number) => {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true\r\n });\r\n\r\n this.userService.deleteUserFromFamily(id)\r\n .then(\r\n data => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.getAllFriends();\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n deleteUserCaretaker = (id: number) => {\r\n this.setState({\r\n isVisibleConfirmCaretakerDialog: false,\r\n isLoading: true\r\n });\r\n\r\n this.userService.deleteCaretaker(id)\r\n .then(\r\n data => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.getAllFriends();\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleCloseAddEditClick = () => {\r\n this.setState({\r\n isVisibleDialog: false\r\n });\r\n }\r\n\r\n showEditDialog = (show: boolean) => {\r\n this.setState({\r\n isVisibleDialog: show\r\n });\r\n };\r\n\r\n setCurrentUser(user: UserForGridModel) {\r\n this.setState({ currentUser: { ...user } });\r\n }\r\n\r\n toMyFriends = (event) => {\r\n event.preventDefault();\r\n this.setState({ isVisibleMyFriendEdit: false });\r\n this.getAllFriends();\r\n this.props.history.push(`/user/family`);\r\n }\r\n\r\n getTabIndex(tabName) {\r\n switch (tabName) {\r\n case 'PersonalData':\r\n return MyFriendEditTabs.PersonalData;\r\n case 'Medicines':\r\n return MyFriendEditTabs.Medicines;\r\n case 'Diseases':\r\n return MyFriendEditTabs.Diseases;\r\n }\r\n return MyFriendEditTabs.PersonalData;\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.setState({ isVisiblePersonalData: false });\r\n }\r\n\r\n handleOnSave = () => {\r\n this.handleCancelButton();\r\n this.getAllFriends();\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n }\r\n\r\n expandedData = (rowData: UserForGridModel) => {\r\n if (rowData.userTypeId == UserType.UserCreated) {\r\n return (\r\n
    \r\n this.handleaccount(rowData.userId, rowData.name)}\r\n style={{ width: 50 }}\r\n >\r\n this.handleMedicines(rowData.userId, rowData.name)}\r\n >\r\n \r\n \r\n this.handleDiseases(rowData.userId, rowData.name)}>\r\n \r\n \r\n this.handleAddAndEditClick(rowData.userId)}\r\n > \r\n this.handleDeleteClick(rowData.userId)}\r\n >\r\n
    \r\n );\r\n }\r\n else {\r\n return (\r\n
    \r\n this.handleDeleteRelationClick(rowData.userId)}\r\n >\r\n
    \r\n );\r\n }\r\n }\r\n\r\n rowExpansionTemplate = (rowData: UserForGridModel) => {\r\n return (\r\n r.userId == rowData.userId)}\r\n timeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n {this.expandedData(rowData)}\r\n \r\n );\r\n }\r\n\r\n expandData = (data: UserForGridModel) => {\r\n if (!this.state.expandedUsers.some(r => r.userId == data.userId) || this.state.expandedUsers.length == 0) {\r\n this.setState({ expandedUsers: [...this.state.expandedUsers, data] });\r\n } else {\r\n this.setState({ expandedUsers: this.state.expandedUsers.filter(r => r.userId != data.userId) });\r\n }\r\n }\r\n\r\n keyItem = (user: UserForGridModel) => {\r\n return user.userId + \"user\";\r\n }\r\n\r\n itemName = (user: UserForGridModel) => {\r\n return user.name;\r\n }\r\n\r\n itemDesc = (user: UserForGridModel) => {\r\n return (\r\n <>\r\n {getEnumLabel(user.relationType, RelationType, true)}\r\n {user.userTypeId == UserType.UserCreated ?\r\n <>\r\n {user.notAllowedFoods ?\r\n
    \r\n \r\n {user.notAllowedFoods}\r\n
    : null}\r\n {user.allergies ?\r\n
    \r\n \r\n {user.allergies}\r\n
    : null}\r\n
    \r\n \r\n {Translate('Medicines')}\r\n
    \r\n {user.medicineCount ? user.medicineCount : '0'}\r\n
    \r\n
    \r\n
    \r\n \r\n {Translate('Diseases')}\r\n
    \r\n {user.diseasesCount ? user.diseasesCount : '0'}\r\n
    \r\n
    \r\n \r\n :
    {getEnumLabel(user.requestStatusId, RequestStatus, true)}
    }\r\n \r\n )\r\n }\r\n\r\n itemActions = (user: UserForGridModel) => {\r\n return (\r\n <>\r\n {window.innerWidth >= Constants.device.tablet ? this.expandedData(user) :\r\n\r\n this.state.expandedUsers.some(r => r.userId == user.userId) ?\r\n \r\n : \r\n }\r\n \r\n )\r\n }\r\n\r\n public render() {\r\n const { isLoading, users, totalRecordsCount, isVisibleDialog, currentUser,\r\n isVisiblePersonalData, selectedUserId, selectedUserName, dialogHeader, isVisibleConfirmCaretakerDialog, deleteValidationCaretakerMessage } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n
    \r\n

    {Translate('My Family')}

    \r\n\r\n this.handleAddAndEditClick(null)} className=\"floating-action-button\">\r\n \r\n \r\n\r\n {!isLoading && users && users.length > 0 ?\r\n
    \r\n {users.length} {Translate('total records.')}\r\n
    : null}\r\n\r\n \r\n\r\n {/* */}\r\n {!isLoading && (!users || users.length == 0) ? Translate(\"No records found\") : null}\r\n
    \r\n
    \r\n\r\n {isVisiblePersonalData ?\r\n \r\n {Translate('InfoForUser') + \" \" + selectedUserName}\r\n \r\n \r\n \r\n \r\n \r\n : null}\r\n\r\n {isVisibleDialog ? \r\n : null}\r\n\r\n { this.deleteUserFriend(currentUser.userId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false, deleteValidationMessage: '' }) }}>\r\n {this.state.deleteValidationMessage}\r\n {/* Are you sure that you want to delete \r\n {currentUserMedicine.medicine\r\n ? [currentUserMedicine.medicine.brandName, currentUserMedicine.medicine.brandNameBG, currentUserMedicine.medicine.additionalTitle].filter(Boolean).join(' / ')\r\n : \"this record\"}? */}\r\n \r\n\r\n { this.deleteUserCaretaker(currentUser.userId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmCaretakerDialog: false, deleteValidationCaretakerMessage: '' }) }}>\r\n {deleteValidationCaretakerMessage}\r\n {/* Are you sure that you want to delete \r\n {currentUserMedicine.medicine\r\n ? [currentUserMedicine.medicine.brandName, currentUserMedicine.medicine.brandNameBG, currentUserMedicine.medicine.additionalTitle].filter(Boolean).join(' / ')\r\n : \"this record\"}? */}\r\n \r\n\r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default UserFamilyComponent;","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { InteractionsModel } from '../models/interactions/interactionsModel';\r\nimport AuthService from './authService';\r\nimport { DrugToDrugInteractionModel } from '../models/drugToDrugInteractionModel';\r\nimport { DrugToDiseaseInteraction } from '../models/drugToDiseaseInteraction';\r\nimport { DrugToFoodAlcoholInteraction } from '../models/drugToFoodAlcoholInteraction';\r\nimport { ProfessionType, PregnancyType } from '../common/enums';\r\n\r\nclass InteractionsService {\r\n\r\n authService = new AuthService();\r\n lang = '';\r\n\r\n constructor(lang?) {\r\n this.lang = lang;\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n }\r\n\r\n getUserMedicines(userId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getUserMedicines/${userId}`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getUserDiseases(userId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getUserDiseases/${userId}`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getMedicineInteractions(interactions: InteractionsModel, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getMedicineInteractions/`,\r\n method: 'post',\r\n data: JSON.stringify(interactions),\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getDrugToDrugInteraction(interactions: DrugToDrugInteractionModel, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getDrugToDrugInteraction/`,\r\n method: 'post',\r\n data: JSON.stringify(interactions),\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getDrugToDiseaseInteraction(interactions: DrugToDiseaseInteraction, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getDrugToDiseaseInteraction/`,\r\n method: 'post',\r\n data: JSON.stringify(interactions),\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getDrugToFooodInteraction(interactions: DrugToFoodAlcoholInteraction, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getDrugToFoodInteraction/`,\r\n method: 'post',\r\n data: JSON.stringify(interactions),\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getDrugToPregnancyInteraction(medicineId: number, pregnancyType: boolean, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getDrugToPregnancyInteraction/${medicineId}/${pregnancyType}`,\r\n method: 'post',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getDrugToProffesionInteraction(medicineId: number, professionType: boolean, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/interactions/getDrugToProffesionInteraction/${medicineId}/${professionType}`,\r\n method: 'post',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\nexport default InteractionsService;","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { DrugToDrugInteractionModel } from '../../../models/drugToDrugInteractionModel';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport getInteractionSeverity from '../../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport InteractionsService from '../../../services/interactionsService';\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeClick: any;\r\n drugToDrugInteraction: DrugToDrugInteractionModel;\r\n medicineName: string;\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n drugToDrugDescription: DrugToDrugInteractionModel\r\n}\r\n\r\nclass InteractionDrugToDrugDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n drugToDrugDescription: new DrugToDrugInteractionModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const drugToDrugInteraction = this.props.drugToDrugInteraction;\r\n\r\n this.interactionsService.getDrugToDrugInteraction(drugToDrugInteraction, this.props.lang).then(\r\n (data: DrugToDrugInteractionModel) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n drugToDrugDescription: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, drugToDrugDescription } = this.state;\r\n\r\n return (\r\n\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n
    \r\n
    {getInteractionSeverity('statusLabel', drugToDrugDescription.interactionTypeId)}
    \r\n

    {drugToDrugDescription.selectedIngredientName} ↔ {drugToDrugDescription.interactionIngredientName}

    \r\n
    \r\n\r\n this.setState({ tabActiveIndex: e.index })}>\r\n \r\n

    \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InteractionDrugToDrugDialog;","import * as React from 'react';\r\nimport Translate from '../../../common/functions/translate';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport { InteractionsDataModel, DrugToDrugInteractionModel } from '../../../models';\r\nimport getInteractionSeverity from '../MedicineCommon/interactionsSeverityFunctions';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\nimport InteractionDrugToDrugDialog from './interactionDrugToDrugDialog';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n history: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n interactionsData: InteractionsDataModel;\r\n isVisibleInteractionDialog: boolean;\r\n currentDrugToDrugInteraction: DrugToDrugInteractionModel;\r\n currentMedicineName: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n currentInteractionsList: Array;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 20;\r\n\r\nclass drugToDrugInteractions extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n let interactionsData = new InteractionsDataModel();\r\n interactionsData.drugToDrugInteractions = new Array(0);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n interactionsData: interactionsData,\r\n isVisibleInteractionDialog: false,\r\n currentDrugToDrugInteraction: new DrugToDrugInteractionModel(),\r\n currentMedicineName: '',\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n currentInteractionsList: new Array(0)\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getDrugToDrugData(true);\r\n\r\n window.addEventListener('scroll', this.onScroll);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.onScroll);\r\n }\r\n\r\n onScroll = () => {\r\n let scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n if (window.innerHeight + scrollY >= document.body.offsetHeight - 450 &&\r\n this.state.totalRecordsCount > this.state.interactionsData.drugToDrugInteractions.length && !this.state.isLoading) {\r\n this.paginatorClick({ first: this.state.from + this.state.numberOfRows }, false);\r\n }\r\n };\r\n\r\n paginatorClick = (e, isInit: boolean) => {\r\n this.setState({ from: e.first }, () => this.getDrugToDrugData(isInit));\r\n }\r\n\r\n getDrugToDrugData = (isInit: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getDrugToDrugData(this.state.medicineId, this.props.lang, this.state.from, this.state.numberOfRows).then(\r\n (data: any) => {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n interactionsData: data.data,\r\n currentInteractionsList: data.data.drugToDrugInteractions,\r\n totalRecordsCount: data.data.allDrugsInteractionsCount,\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false,\r\n interactionsData: data.data,\r\n currentInteractionsList: [...this.state.currentInteractionsList, ...data.data.drugToDrugInteractions],\r\n totalRecordsCount: data.data.allDrugsInteractionsCount,\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleInteractionTabClick = (e, drugToDrugInteraction: DrugToDrugInteractionModel, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisibleInteractionDialog: true,\r\n currentDrugToDrugInteraction: drugToDrugInteraction,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleCloseDialogClick = () => {\r\n this.setState({\r\n isVisibleInteractionDialog: false\r\n });\r\n }\r\n\r\n public render() {\r\n const { medicineId, isLoading, error, interactionsData, isVisibleInteractionDialog, currentDrugToDrugInteraction, currentMedicineName, currentInteractionsList } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n
    \r\n

    {Translate('Drug interactions with')} {interactionsData.brandName} ({interactionsData.genericName}):

    \r\n
      \r\n {currentInteractionsList.map(m =>\r\n
    • this.handleInteractionTabClick(e, m, interactionsData.brandName + (interactionsData.genericName))}>\r\n
      \r\n
      \r\n {getInteractionSeverity('icon', m.interactionTypeId)}\r\n {m.interactionIngredientBrandNames ? m.interactionIngredientBrandNames : null}\r\n ({m.interactionIngredientName})\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n )}\r\n
    \r\n
    \r\n\r\n {isVisibleInteractionDialog ? (\r\n ) : null\r\n }\r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(drugToDrugInteractions);\r\n","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { DrugToFoodAlcoholInteraction } from '../../../models';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport getInteractionSeverity from '../MedicineCommon/interactionsSeverityFunctions';\r\nimport InteractionsService from '../../../services/interactionsService';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeClick: any;\r\n drugToFoodAlcoholInteraction: DrugToFoodAlcoholInteraction;\r\n medicineName: string;\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n drugToFoodAlcoholDescription: DrugToFoodAlcoholInteraction\r\n}\r\n\r\nclass InteractionDrugToFoodDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService(this.props.lang);\r\n initFrom = 0;\r\n numberOfRows = 10;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n drugToFoodAlcoholDescription: new DrugToFoodAlcoholInteraction()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { drugToFoodAlcoholInteraction } = this.props;\r\n\r\n this.interactionsService.getDrugToFooodInteraction(drugToFoodAlcoholInteraction, this.props.lang).then(\r\n (data: DrugToFoodAlcoholInteraction) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n drugToFoodAlcoholDescription: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, drugToFoodAlcoholDescription } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n
    \r\n
    {getInteractionSeverity('statusLabel', drugToFoodAlcoholDescription.interactionTypeId)}
    \r\n

    {drugToFoodAlcoholDescription.selectedIngredientName} ↔\r\n {drugToFoodAlcoholDescription.foodAlcoholName ?\r\n drugToFoodAlcoholDescription.foodAlcoholName : ''}\r\n \r\n

    \r\n
    \r\n\r\n this.setState({ tabActiveIndex: e.index })}>\r\n \r\n

    \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(InteractionDrugToFoodDialog);","import * as React from 'react';\r\nimport Translate from '../../../common/functions/translate';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport { InteractionsDataModel, DrugToFoodAlcoholInteraction } from '../../../models';\r\nimport getInteractionSeverity from '../MedicineCommon/interactionsSeverityFunctions';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { connect } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\nimport InteractionDrugToFoodDialog from './interactionDrugToFoodDialog';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n history: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n interactionsData: InteractionsDataModel;\r\n isVisibleInteractionDialog: boolean;\r\n currentDrugToFoodAlcoholInteraction: DrugToFoodAlcoholInteraction;\r\n currentMedicineName: string;\r\n}\r\n\r\nclass drugToFoodInteractions extends React.Component {\r\n medicineService = new MedicineService(this.props.lang);\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n let interactionsData = new InteractionsDataModel();\r\n interactionsData.drugToFoodAlcoholInteractions = new Array(0);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n interactionsData: interactionsData,\r\n isVisibleInteractionDialog: false,\r\n currentDrugToFoodAlcoholInteraction: new DrugToFoodAlcoholInteraction(),\r\n currentMedicineName: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getDrugToFoodData();\r\n }\r\n\r\n getDrugToFoodData = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getDrugToFoodData(this.state.medicineId).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n interactionsData: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleInteractionTabClick = (e, drugToFoodAlcoholInteraction: DrugToFoodAlcoholInteraction, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisibleInteractionDialog: true,\r\n currentDrugToFoodAlcoholInteraction: drugToFoodAlcoholInteraction,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleCloseDialogClick = () => {\r\n this.setState({\r\n isVisibleInteractionDialog: false\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, interactionsData, isVisibleInteractionDialog, currentDrugToFoodAlcoholInteraction, currentMedicineName } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n
    \r\n

    {Translate('Alcohol and food interactions with')} {interactionsData.brandName} ({interactionsData.genericName}):

    \r\n
      \r\n {interactionsData.drugToFoodAlcoholInteractions.map(m =>\r\n
    • this.handleInteractionTabClick(e, m, interactionsData.brandName + (interactionsData.genericName))}\r\n >\r\n
      \r\n
      \r\n {getInteractionSeverity('icon', m.interactionTypeId)}\r\n {m.foodAlcoholName ? m.foodAlcoholName : ''}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n )}\r\n
    \r\n
    \r\n\r\n {isVisibleInteractionDialog ? (\r\n ) : null\r\n }\r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(drugToFoodInteractions);\r\n","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { DrugToDiseaseInteraction } from '../../../models/drugToDiseaseInteraction';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport getInteractionSeverity from '../../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport InteractionsService from '../../../services/interactionsService';\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeClick: any;\r\n drugToDiseaseInteraction: DrugToDiseaseInteraction;\r\n medicineName: string;\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n drugToDiseaseDescription: DrugToDiseaseInteraction\r\n}\r\n\r\nclass InteractionDrugToDseaseDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService();\r\n initFrom = 0;\r\n numberOfRows = 10;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n drugToDiseaseDescription: new DrugToDiseaseInteraction()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const drugToDiseaseInteraction = this.props.drugToDiseaseInteraction;\r\n\r\n this.interactionsService.getDrugToDiseaseInteraction(drugToDiseaseInteraction, this.props.lang).then(\r\n (data: DrugToDiseaseInteraction) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n drugToDiseaseDescription: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, drugToDiseaseDescription } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n
    \r\n
    {getInteractionSeverity('statusLabel', drugToDiseaseDescription.interactionTypeId)}
    \r\n

    {drugToDiseaseDescription.selectedIngredientName} ↔\r\n {drugToDiseaseDescription.diseaseName}\r\n

    \r\n
    \r\n\r\n this.setState({ tabActiveIndex: e.index })}>\r\n \r\n

    \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n )\r\n }\r\n}\r\n\r\nexport default InteractionDrugToDseaseDialog;","import * as React from 'react';\r\nimport Translate from '../../../common/functions/translate';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport { InteractionsDataModel, DrugToDiseaseInteraction } from '../../../models';\r\nimport getInteractionSeverity from '../MedicineCommon/interactionsSeverityFunctions';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { connect } from 'react-redux';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\nimport InteractionDrugToDseaseDialog from './interactionDrugToDseaseDialog';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n history: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n interactionsData: InteractionsDataModel;\r\n isVisibleInteractionDialog: boolean;\r\n currentDrugToDiseaseInteraction: DrugToDiseaseInteraction;\r\n currentMedicineName: string;\r\n}\r\n\r\nclass drugToDiseaseInteractions extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n let interactionsData = new InteractionsDataModel();\r\n interactionsData.drugToDiseaseInteractions = new Array(0);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n interactionsData: interactionsData,\r\n isVisibleInteractionDialog: false,\r\n currentDrugToDiseaseInteraction: new DrugToDiseaseInteraction(),\r\n currentMedicineName: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getDrugToDiseaseData();\r\n }\r\n\r\n getDrugToDiseaseData = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getDrugToDiseaseData(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n interactionsData: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleInteractionTabClick = (e, drugToDiseaseInteraction: DrugToDiseaseInteraction, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisibleInteractionDialog: true,\r\n currentDrugToDiseaseInteraction: drugToDiseaseInteraction,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleCloseDialogClick = () => {\r\n this.setState({\r\n isVisibleInteractionDialog: false\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, interactionsData, isVisibleInteractionDialog, currentDrugToDiseaseInteraction, currentMedicineName } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n
    \r\n

    {Translate('Disease interactions with')} {interactionsData.brandName} ({interactionsData.genericName}):

    \r\n
      \r\n {interactionsData.drugToDiseaseInteractions.map((m, index) =>\r\n
    • this.handleInteractionTabClick(e, m, interactionsData.brandName + (interactionsData.genericName))}\r\n >\r\n
      \r\n
      \r\n {getInteractionSeverity('icon', m.interactionTypeId)}\r\n {m.diseaseName}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n )}\r\n
    \r\n\r\n
    \r\n\r\n {isVisibleInteractionDialog ? (\r\n ) : null\r\n }\r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(drugToDiseaseInteractions);","import * as React from 'react';\r\nimport getInteractionSeverity from './interactionsSeverityFunctions';\r\nimport Translate from '../../../common/functions/translate';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\n\r\nconst drugInteractionsLegend = (props) => {\r\n const legendElement =\r\n\r\n\r\n
    \r\n \r\n \r\n
    \r\n

    {Translate('DrugInteractionClassification')}

    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    {Translate('DrugInteractionClassificationDescription')}
    \r\n
    {getInteractionSeverity('icon', 1)} {Translate('Major')}
    \r\n {Translate('DrugInteractionClassificationMajor')}\r\n
    \r\n
    {getInteractionSeverity('icon', 2)} {Translate('Moderate')}
    \r\n {Translate('DrugInteractionClassificationModerate')}\r\n
    \r\n
    {getInteractionSeverity('icon', 3)} {Translate('Minor')}
    \r\n {Translate('DrugInteractionClassificationMinor')}\r\n
    \r\n
    {getInteractionSeverity('icon', 4)} {Translate('Unknown')}
    \r\n {Translate('DrugInteractionClassificationUnknown')}\r\n
    \r\n

    {Translate('DrugInteractionClassificationDoNotStop')}

    \r\n
    \r\n
    \r\n
    \r\n
    ;\r\n\r\n return (\r\n
    \r\n {legendElement}\r\n
    \r\n )\r\n}\r\n\r\nexport default drugInteractionsLegend;","import * as React from 'react';\r\nimport Translate from '../../../common/functions/translate';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport { InteractionsSummaryBasicModel } from '../../../models';\r\nimport InteractionsSummary from '../MedicineInteractions/interactionsSummary';\r\nimport DrugToDrugInteractions from '../MedicineInteractions/drugToDrugInteractions';\r\nimport DrugToFoodInteractions from '../MedicineInteractions/drugToFoodInteractions';\r\nimport DrugToDiseaseInteractions from '../MedicineInteractions/drugToDiseaseInteractions';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\nimport DrugInteractionsLegend from '../MedicineCommon/drugInteractionsLegend';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n history: any,\r\n match: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n interactionsSymmary: InteractionsSummaryBasicModel;\r\n activeIndex: any;\r\n}\r\n\r\nclass interactionsTab extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n interactionsSymmary: new InteractionsSummaryBasicModel(),\r\n activeIndex: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionsCounts();\r\n }\r\n\r\n getInteractionsCounts = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getInteractionsCountsBasic(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n interactionsSymmary: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleTabMenuchange = (event, value) => {\r\n if (value != null) {\r\n this.setState({ activeIndex: value });\r\n } else {\r\n this.setState({ activeIndex: null });\r\n }\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, interactionsSymmary, activeIndex } = this.state;\r\n\r\n let interactionsContentElement: any;\r\n if (interactionsSymmary && interactionsSymmary.medicineInteractionsContent) {\r\n interactionsContentElement =
    \r\n }\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n {interactionsContentElement}\r\n\r\n this.handleTabMenuchange(e, e.index)}>\r\n \r\n {activeIndex == 0 ?\r\n <>\r\n \r\n \r\n : null}\r\n \r\n \r\n {activeIndex == 1 ?\r\n <>\r\n \r\n \r\n : null}\r\n \r\n \r\n {activeIndex == 2 ?\r\n <>\r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(interactionsTab);\r\n\r\n//export default interactionsTab;\r\n","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport AuthService from './authService';\r\n\r\nclass FileService {\r\n\r\n authService = new AuthService();\r\n\r\n constructor() {\r\n axios.defaults.baseURL = `${Constants.apiUrl}/`;\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache'\r\n }\r\n }\r\n\r\n getMedicineLeaflets(id: number, lang: string) {\r\n return axios({\r\n url: `file/getLeaflets/${id}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getFile(id: number) {\r\n return axios({\r\n url: `file/getFile/${id}`,\r\n method: 'get'\r\n })\r\n .then(res => res.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n openFile(id: number, fileName: string, fileSystemTypeId: number) {\r\n return axios({\r\n url: `file/openFile/${id}/${fileSystemTypeId}/${fileName}`,\r\n method: 'get',\r\n responseType: 'blob',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\nexport default FileService;\r\n","import * as React from 'react';\r\nimport FileService from '../../../services/fileService';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { FileModel } from \"../../../models/fileModel\";\r\nimport { MedicineLeafletTypes } from '../../../common/enums';\r\nimport Translate from '../../../common/functions/translate';\r\nimport pdf256 from \"../../../assets/images/pdf256.png\";\r\nimport { formatBytes } from '../../../common/functions/helperFunctions';\r\nimport * as Helperfunction from '../../../common/functions/helperFunctions';\r\nimport * as Constants from '../../../common/constants';\r\nimport { connect } from 'react-redux';\r\nimport { FileSystemType } from '../../../common/enums';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n leaflets: Array,\r\n file: any\r\n}\r\n\r\nclass leafletTab extends React.Component {\r\n fileService = new FileService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n leaflets: new Array(0),\r\n file: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getMedicineLeaflets();\r\n }\r\n\r\n getMedicineLeaflets = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.fileService.getMedicineLeaflets(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n leaflets: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n getLeafletTypeName(id: number) {\r\n let enumElement = Object\r\n .keys(MedicineLeafletTypes)\r\n .find(key => MedicineLeafletTypes[key] === id);\r\n\r\n return Translate(enumElement);\r\n }\r\n\r\n public render() {\r\n\r\n var leafletElement: any = null;\r\n const { medicineId, isLoading, error, leaflets } = this.state;\r\n\r\n if (leaflets.length > 0) {\r\n leafletElement =\r\n
    \r\n {leaflets.map(m =>\r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n {formatBytes(m.fileSizeInBytes, 0)} | {m.fileType.toUpperCase()}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n }\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n {leafletElement}\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(leafletTab);","import * as React from 'react';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { PregnancyAndBreastfeedingModel } from \"../../../models/pregnancyAndBreastfeedingModel\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n pregnancy: PregnancyAndBreastfeedingModel;\r\n}\r\n\r\nclass PregnancyTab extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n pregnancy: new PregnancyAndBreastfeedingModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getPregnancyContent();\r\n }\r\n\r\n getPregnancyContent = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getPregnancyContent(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n pregnancy: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n\r\n var pregnancyElement: any = null;\r\n const { medicineId, isLoading, error, pregnancy } = this.state;\r\n\r\n if (pregnancy) {\r\n pregnancyElement =\r\n
    \r\n {pregnancy.pregnancyContent\r\n ?
    \r\n

    {Translate(\"Pregnancy and Breastfeeding\")}

    \r\n
    \r\n
    \r\n : null}\r\n
    ;\r\n }\r\n else {\r\n pregnancyElement = null;\r\n }\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n {pregnancyElement}\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(PregnancyTab);","import * as React from 'react';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { DriveAndMachineContentModel } from \"../../../models/driveAndMachineContentModel\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n medicineId: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicineId: number;\r\n error: any;\r\n driveMachine: DriveAndMachineContentModel;\r\n}\r\n\r\nclass DriveMachineTab extends React.Component {\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.medicineId,\r\n driveMachine: new DriveAndMachineContentModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getDriveMachineContent();\r\n }\r\n\r\n getDriveMachineContent = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getDriveMachineContent(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n driveMachine: data.data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n\r\n var driveElement: any = null;\r\n const { medicineId, isLoading, error, driveMachine } = this.state;\r\n\r\n if (driveMachine) {\r\n driveElement =\r\n
    \r\n {driveMachine.driveDescription\r\n ?
    \r\n

    {Translate(\"DrivingAndUsingMachines\")}

    \r\n
    \r\n
    \r\n : null}\r\n {/* {driveMachine.machineDescription\r\n ?
    \r\n

    {Translate(\"When using machine\")}

    \r\n
    \r\n
    \r\n : null} */}\r\n
    ;\r\n }\r\n else {\r\n driveElement = null;\r\n }\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n {driveElement}\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(DriveMachineTab);","import \"babel-polyfill\"\r\nimport * as React from 'react';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport MedicineService from '../../services/medicineService';\r\nimport { MedicineBasicModel } from \"../../models\";\r\nimport OverViewTab from './MedicineNavigation/overViewTab';\r\nimport SideEffectsTab from './MedicineNavigation/sideEffectsTab';\r\nimport DosageTab from './MedicineNavigation/dosageTab';\r\nimport ProfessionalTab from './MedicineNavigation/professionalTab';\r\nimport Translate from '../../common/functions/translate';\r\nimport InteractionsTab from './MedicineNavigation/interactionsTab';\r\nimport { BrowserRouter, Route, Link, Switch, Redirect } from \"react-router-dom\";\r\nimport { MedicineTabs, AuthorisationStatus, DataSourceType } from '../../common/enums';\r\nimport LeafletTab from './MedicineNavigation/leafletTab';\r\nimport { connect } from 'react-redux';\r\nimport PregnancyTab from './MedicineNavigation/pregnancyTab';\r\nimport DriveMachineTab from './MedicineNavigation/driveMachineTab';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\nimport * as Constants from '../../common/constants';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faExternalLinkAlt, faChevronUp } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IProps {\r\n match: any,\r\n history: any,\r\n lang: string,\r\n classes: any\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean,\r\n medicineId: number,\r\n error: any,\r\n currentMedicine: MedicineBasicModel,\r\n menuTabs: any,\r\n activeIndex: any,\r\n lang: string,\r\n value: number,\r\n showUpIcon: boolean\r\n}\r\n\r\nclass medicineDetails extends React.Component {\r\n redirect: boolean;\r\n medicineService = new MedicineService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n let currentMedicine = new MedicineBasicModel();\r\n currentMedicine.medicineTabs = new Array(0);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n medicineId: this.props.match.params.MedicineId,\r\n currentMedicine: currentMedicine,\r\n menuTabs: [],\r\n lang: this.props.lang,\r\n value: 0,\r\n activeIndex: null,\r\n showUpIcon: false\r\n };\r\n\r\n }\r\n\r\n // events\r\n componentDidMount() {\r\n this.getMedicineBasic();\r\n\r\n window.addEventListener('scroll', this.onScroll);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.lang != this.props.lang) {\r\n this.initializeTabs();\r\n }\r\n }\r\n\r\n onScroll = () => {\r\n if (window.pageYOffset && window.pageYOffset > 0) {\r\n this.setState({ showUpIcon: true });\r\n } else {\r\n this.setState({ showUpIcon: false });\r\n }\r\n };\r\n\r\n // methods\r\n getMedicineBasic() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getMedicineBasic(this.state.medicineId, this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false,\r\n currentMedicine: data.data\r\n });\r\n\r\n this.initializeTabs();\r\n\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n initializeTabs() {\r\n let tabEnum = MedicineTabs;\r\n let tabNames: Array = [];\r\n\r\n this.state.currentMedicine.medicineTabs.map(i =>\r\n tabNames.push(Object.keys(tabEnum).find(k => tabEnum[k] === i))\r\n );\r\n\r\n if (tabNames.length > 0) {\r\n let currentTabObjects: Array = [];\r\n tabNames.map(m =>\r\n currentTabObjects.push({ label: Translate(m), tabRouteName: m.toLowerCase() })\r\n );\r\n\r\n let tabIndex = this.props.match.params.TabName ?\r\n currentTabObjects.findIndex(i => i.tabRouteName == this.props.match.params.TabName) :\r\n null;\r\n\r\n this.setState({\r\n isLoading: false,\r\n menuTabs: currentTabObjects,\r\n activeIndex: tabIndex\r\n });\r\n }\r\n }\r\n\r\n handleTabMenuchange = (event, value) => {\r\n if (value != null) {\r\n this.setState({ activeIndex: value });\r\n } else {\r\n this.setState({ activeIndex: null });\r\n }\r\n }\r\n\r\n getTabComponent = (tabName) => {\r\n\r\n const { currentMedicine, activeIndex, menuTabs } = this.state;\r\n\r\n let activeRouteName = menuTabs && menuTabs[activeIndex] ? menuTabs[activeIndex].tabRouteName : '';\r\n\r\n switch (tabName) {\r\n case 'overview':\r\n return activeRouteName == 'overview' ? : null;\r\n case 'sideeffects':\r\n return activeRouteName == 'sideeffects' ? : null;\r\n case 'dosage':\r\n return activeRouteName == 'dosage' ? : null;\r\n case 'interactions':\r\n return activeRouteName == 'interactions' ?\r\n <>\r\n \r\n : null;\r\n case 'pregnancy':\r\n return activeRouteName == 'pregnancy' ? : null;\r\n case 'drivemachine':\r\n return activeRouteName == 'drivemachine' ? : null;\r\n // case 'professional':\r\n // return activeRouteName == 'professional' ? : null;\r\n case 'leaflets':\r\n return activeRouteName == 'leaflets' ? : null;\r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n searchMedicinesByActiveIngredient = (event, genericId: number) => {\r\n event.preventDefault();\r\n this.props.history.push(`${Constants.MedicinesUrl}?activeIngredient=${encodeURI(genericId.toString())}`);\r\n }\r\n\r\n // render\r\n public render() {\r\n\r\n const { menuTabs, currentMedicine, isLoading, error, activeIndex, showUpIcon } = this.state;\r\n\r\n let medicineName = currentMedicine.brandName ? currentMedicine.brandName : '';\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n\r\n {error ? Error: {error.message} : null}\r\n\r\n
    \r\n {medicineName}\r\n {currentMedicine.authorisationStatus > 0 && currentMedicine.authorisationStatus != AuthorisationStatus.Authorised ?\r\n - {HelperFunctions.getEnumLabel(currentMedicine.authorisationStatus, AuthorisationStatus, true)} : null}\r\n
    \r\n\r\n
    {currentMedicine.additionalTitle}
    \r\n\r\n
    \r\n
    {Translate('GenericName')}: {currentMedicine.generics && currentMedicine.generics.length > 0 ? currentMedicine.generics.map(g =>\r\n this.searchMedicinesByActiveIngredient(e, g.genericId)}>{g.genericName}\r\n ).map((item, index) => [index > 0 && ', ', item]) : null}\r\n
    \r\n
    {Translate('BrandName')}: {medicineName}
    \r\n
    \r\n\r\n {currentMedicine.dataSourceTypeId > 0 ?\r\n : null}\r\n\r\n\r\n {currentMedicine.medicineNumber || currentMedicine.emaProductNumber ?\r\n
    \r\n {Translate('Porduct Number')}:\r\n {currentMedicine.medicineNumber ? {currentMedicine.medicineNumber} : null}\r\n {currentMedicine.medicineNumber && currentMedicine.emaProductNumber ? \" | \" : null}\r\n {currentMedicine.emaProductNumber ? {currentMedicine.emaProductNumber} : null}\r\n
    : null}\r\n
    \r\n this.handleTabMenuchange(e, e.index)}>\r\n {menuTabs.map((m, index) =>\r\n \r\n {this.getTabComponent(m.tabRouteName)}\r\n \r\n )}\r\n \r\n\r\n {showUpIcon ?\r\n
    \r\n window.scrollTo(0, 0)} >\r\n \r\n \r\n
    : null}\r\n\r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\nclass tabItem {\r\n label: string;\r\n tabRouteName: string;\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(medicineDetails);","export class UserModel {\r\n public userId: number;\r\n public name: string;\r\n public email: string;\r\n public password: string;\r\n public confirmPassword: string;\r\n public birthDate: string;\r\n public facebookUserId: string;\r\n public acceptPersonalDataPrivatePolicy: boolean\r\n}","export class FBUserModel {\r\n public id: string;\r\n public userId: string;\r\n public name: string;\r\n public email: string;\r\n public expiresIn: number;\r\n}","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport FacebookLogin from 'react-facebook-login';\r\nimport { GoogleLogin, GoogleLogout } from 'react-google-login';\r\nimport { faGoogle } from '@fortawesome/free-brands-svg-icons';\r\nimport { UserModel } from '../../models/user/userModel';\r\nimport { Link } from \"react-router-dom\";\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport AuthService from '../../services/authService';\r\nimport { connect } from 'react-redux';\r\nimport * as actionTypes from '../../store/actionTypes';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport { FBUserModel } from '../../models/fbUserModel';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faPills } from '@fortawesome/free-solid-svg-icons';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { string } from \"prop-types\";\r\n\r\ninterface IProps {\r\n history: any,\r\n onUserLogin: any\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserModel;\r\n isLogged: boolean;\r\n fbUser: FBUserModel;\r\n}\r\n\r\nclass LoginComponent extends React.Component {\r\n\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserModel(),\r\n isLogged: false,\r\n fbUser: new FBUserModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserModel = { ...this.state.user };\r\n user[key] = value;\r\n this.setState({ user: { ...user } });\r\n };\r\n\r\n handleCreateNewAccount = () => {\r\n this.props.history.push(`/create-new-account`);\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleLoginButton(e);\r\n }\r\n }\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n if (!this.state.user.email || this.state.user.email.trim() == '') {\r\n message += Translate('Please enter Email') + '. ';\r\n } else {\r\n if (!HelperFunctions.validateEmail(this.state.user.email.trim())) {\r\n message += Translate('Please enter valid Email') + '. ';\r\n }\r\n }\r\n\r\n if (!this.state.user.password || this.state.user.password.trim() == '') {\r\n message += Translate('Please enter Password') + '. ';\r\n }\r\n\r\n if (message != '') {\r\n this.growl.show({ severity: 'error', summary: message });\r\n }\r\n\r\n return message == '';\r\n }\r\n\r\n handleLoginButton = event => {\r\n event.preventDefault();\r\n\r\n if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const user = this.state.user;\r\n\r\n this.authService.login(user.email, user.password).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n isLogged: data\r\n });\r\n this.redirectAfterLogin();\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n redirectAfterLogin() {\r\n this.props.onUserLogin();\r\n\r\n let returnUrlParam = HelperFunctions.getURLParameter('returnUrl');\r\n\r\n if (returnUrlParam) {\r\n let returnUrl = decodeURI(returnUrlParam + '');\r\n this.props.history.push(returnUrl);\r\n //window.location.href = returnUrl;\r\n } else {\r\n this.props.history.push(`/user/dashboard`);\r\n }\r\n }\r\n\r\n handleFacebookResponse = (response) => {\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (response.status === 'unknown') {\r\n this.setState({\r\n isLoading: false\r\n });\r\n\r\n return;\r\n }\r\n\r\n this.authService.facebookLogin(response.accessToken).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n isLogged: data\r\n });\r\n this.redirectAfterLogin();\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleGoogleResponse = (response) => {\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.authService.googleLogin(response.tokenId, response.googleId).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n isLogged: data\r\n });\r\n this.redirectAfterLogin();\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleGoogleFailureResponse = (response) => {\r\n // console.log(response);\r\n }\r\n\r\n public render() {\r\n const { isLoading, user, fbUser } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Login')}

    \r\n\r\n
    \r\n
    \r\n
    \r\n this.handleChange('email', e.target['value'])}\r\n />\r\n
    \r\n
    \r\n this.handleChange('password', e.target['value'])}\r\n value={user && user.password ? user.password : \"\"}\r\n />\r\n
    \r\n {Translate('Forgot password?')}\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n {Translate(\"New to MedXchange?\")}\r\n
    \r\n
    \r\n\r\n \r\n\r\n
    \r\n
    \r\n {Translate(\"or login with\")}:\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n (\r\n \r\n )}\r\n buttonText=\"Login\"\r\n onSuccess={this.handleGoogleResponse}\r\n onFailure={this.handleGoogleFailureResponse}\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n\r\n {/*
    \r\n\r\n
    \r\n {Translate(\"or sign in with\")}:\r\n
    \r\n\r\n
    \r\n console.log('onCclick')}\r\n callback={this.handleFacebookResponse}\r\n cssClass=\"facebook-button-class\"\r\n textButton=\"\"\r\n icon=\"fa-facebook\"\r\n />\r\n
    \r\n\r\n
    \r\n (\r\n \r\n )}\r\n buttonText=\"Login\"\r\n onSuccess={this.handleGoogleResponse}\r\n onFailure={this.handleGoogleResponse}\r\n />\r\n\r\n
    \r\n\r\n
    */}\r\n\r\n\r\n {/*

    \r\n { e.preventDefault(); window['FB'].logout() }}>Facebook logout\r\n

    */}\r\n\r\n {/*
    \r\n FB:
    \r\n {fbUser && fbUser.name ? 'Name: ' + fbUser.name : null}
    \r\n {fbUser && fbUser.email ? 'Email: ' + fbUser.email : null}
    \r\n
    */}\r\n\r\n {/*

    \r\n console.log('logout')}\r\n />*/}\r\n\r\n
    \r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserLogin: () => dispatch({ type: actionTypes.USER_LOGIN })\r\n }\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(LoginComponent);","export class UserChangePasswordModel {\r\n public userId: number;\r\n public email: string;\r\n public oldPassword: string;\r\n public newPassword: string;\r\n public confirmPassword: string;\r\n public activationCode: string;\r\n}","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { UserModel } from '../models/user/userModel';\r\nimport { UserChangePasswordModel } from '../models/user/userChangePasswordModel';\r\n\r\nclass LoginService {\r\n\r\n // constructor() {\r\n // axios.defaults.baseURL = `${Constants.apiUrl}`;\r\n // }\r\n\r\n createUser(user: UserModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/login/create`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n validateAndActivate(confirmCode: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/login/validateAndActivate`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(confirmCode)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n validateConfirmCode(confirmCode: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/login/ValidateConfirmCode`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(confirmCode)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n forgotPassword(email: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/login/forgotPassword/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(email)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n newPassword(user: UserChangePasswordModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/login/newPassword/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\nexport default LoginService;","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { EmailDataModel } from '../models/emailDataModel';\r\n\r\nclass MailService {\r\n\r\n // constructor() {\r\n // axios.defaults.baseURL = `${Constants.apiUrl}`;\r\n // }\r\n\r\n sendEmail(emailData: EmailDataModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/mail/sendMail/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: JSON.stringify(emailData)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\nexport default MailService;","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { UserChangePasswordModel } from '../../models/user/userChangePasswordModel';\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport LoginService from '../../services/loginService';\r\nimport MailService from '../../services/mailService';\r\nimport * as Constants from '../../common/constants';\r\nimport { EmailDataModel } from '../../models/emailDataModel';\r\nimport * as EmailFunctions from '../../common/functions/emailFunctions';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faPills } from '@fortawesome/free-solid-svg-icons';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport GrowlContent from '../../common/components/alertMessage/growlContent';\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserChangePasswordModel;\r\n mode: string;\r\n}\r\n\r\nclass ForgotPasswordComponent extends React.Component {\r\n\r\n loginService = new LoginService();\r\n mailService = new MailService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserChangePasswordModel(),\r\n mode: 'forgotPassword'\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserChangePasswordModel = { ...this.state.user };\r\n user[key] = value;\r\n this.setState({ user: { ...user } });\r\n };\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSendButton(e);\r\n }\r\n }\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n if (!this.state.user.email || this.state.user.email.trim() == '') {\r\n message += Translate('Please enter Email') + '.';\r\n } else {\r\n if (!HelperFunctions.validateEmail(this.state.user.email)) {\r\n message += Translate('Please enter valid Email') + '.';\r\n }\r\n }\r\n\r\n if (message != '') {\r\n this.growl.show({ severity: 'error', summary: message });\r\n }\r\n\r\n return message == '';\r\n }\r\n\r\n handleSendButton = event => {\r\n event.preventDefault();\r\n\r\n if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const user = this.state.user;\r\n\r\n this.loginService.forgotPassword(user.email).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n mode: 'sendConfirmEmail'\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, user, mode } = this.state;\r\n\r\n const forgotPasswordHtml =\r\n <>\r\n
    \r\n
    \r\n this.handleChange('email', e.target['value'])}\r\n helperText={Translate('Please enter your email.')}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {/*
    \r\n
    */}\r\n \r\n\r\n const sendConfirmEmailHtml =\r\n <>\r\n \r\n
    \r\n {Translate('Please check your E-mail box and click on confirmation link to change your password.')}\r\n
    \r\n \r\n\r\n let resultHtml;\r\n\r\n switch (mode) {\r\n case 'sendConfirmEmail':\r\n resultHtml = sendConfirmEmailHtml;\r\n break;\r\n default:\r\n resultHtml = forgotPasswordHtml;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Forgot password?')}

    \r\n\r\n
    \r\n {resultHtml}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default ForgotPasswordComponent;","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport { UserModel } from '../../models/user/userModel';\r\nimport { Link } from \"react-router-dom\";\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport LoginService from '../../services/loginService';\r\nimport MailService from '../../services/mailService';\r\nimport * as Constants from '../../common/constants';\r\nimport { EmailDataModel } from '../../models/emailDataModel';\r\nimport * as EmailFunctions from '../../common/functions/emailFunctions';\r\nimport Button from '@material-ui/core/Button';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport GrowlContent from '../../common/components/alertMessage/growlContent';\r\n\r\ninterface IProps {\r\n history: any,\r\n location: any\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserModel;\r\n mode: string;\r\n passError: boolean;\r\n confPassError: boolean;\r\n emailError: boolean;\r\n}\r\n\r\nclass CreateNewAccountComponent extends React.Component {\r\n\r\n loginService = new LoginService();\r\n mailService = new MailService();\r\n growl: any;\r\n\r\n // min 8 characters, 1 alpha lowercase, 1 alpha uppercase, 1 number and 1 special\r\n passwordStrongRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n // min 6 characters, 1 alpha and 1 number\r\n passwordMediumRegex = new RegExp(\"^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})\");\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserModel(),\r\n mode: 'createNewAccount',\r\n passError: false,\r\n confPassError: false,\r\n emailError: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let confirmCodeUrl = HelperFunctions.getURLParameter('confirmCode');\r\n\r\n if (confirmCodeUrl) {\r\n let confirmCode = decodeURIComponent(confirmCodeUrl + '');\r\n this.validateConfirmCode(confirmCode);\r\n }\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserModel = { ...this.state.user };\r\n user[key] = value;\r\n this.setState({ user: { ...user } });\r\n\r\n if (key == 'email') {\r\n this.setState({ emailError: !HelperFunctions.validateEmail(user.email) });\r\n }\r\n\r\n if (key == 'password') {\r\n this.setState({ passError: !this.passwordMediumRegex.test(value) });\r\n }\r\n\r\n if (key == 'confirmPassword') {\r\n this.setState({ confPassError: user.password != user.confirmPassword });\r\n }\r\n };\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleCreateButton(e);\r\n }\r\n }\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n const { user } = this.state;\r\n\r\n if (!user.email || user.email.trim() == '') {\r\n message += Translate('Please enter Email') + '. ';\r\n } else {\r\n if (!HelperFunctions.validateEmail(user.email)) {\r\n message += Translate('Please enter valid Email') + '. ';\r\n }\r\n }\r\n\r\n if (!user.name || user.name.trim() == '') {\r\n message += Translate('Please enter Name') + '. ';\r\n }\r\n\r\n if (!user.password || user.password.trim() == '') {\r\n message += Translate('Please enter Password') + '. ';\r\n }\r\n\r\n if (!user.confirmPassword || user.confirmPassword.trim() == '') {\r\n message += Translate('Please enter Confirm Password') + \". \";\r\n }\r\n\r\n if (user.password && user.password.trim() != '' &&\r\n user.confirmPassword && user.confirmPassword.trim() != '' &&\r\n user.password != user.confirmPassword) {\r\n message += Translate('Password and Confirm Password are different') + \". \";\r\n }\r\n\r\n if (user.password && !this.passwordMediumRegex.test(user.password)) {\r\n message += Translate('Password must be at least 6 characters and contain at least 1 alphabetical and 1 numeric character') + \". \";\r\n }\r\n\r\n if (!user.acceptPersonalDataPrivatePolicy) {\r\n message += Translate('Please accept personal data private Policy') + '. ';\r\n }\r\n\r\n if (message != '') {\r\n this.growl.show({ severity: 'error', summary: message });\r\n }\r\n\r\n return message == '';\r\n }\r\n\r\n handleCreateButton = event => {\r\n event.preventDefault();\r\n\r\n if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const user = this.state.user;\r\n\r\n this.loginService.createUser(user).then(\r\n (result: any) => {\r\n this.setState({\r\n isLoading: false,\r\n mode: result == 1 ? 'successRegistration' : 'successRegistrationWithEmail'\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n validateConfirmCode(confirmCode) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.loginService.validateAndActivate(confirmCode).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n mode: 'validConfirmCode'\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n mode: 'notValidConfirmCode'\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, user, mode, passError, confPassError, emailError } = this.state;\r\n\r\n const registrationFormHtml =\r\n <>\r\n
    \r\n
    \r\n this.handleChange('email', e.target['value'])}\r\n helperText={Translate(\"Please enter a valid e-mail address.\")}\r\n />\r\n
    \r\n
    \r\n this.handleChange('name', e.target['value'])}\r\n helperText={Translate(\"Please enter personal name.\")}\r\n />\r\n
    \r\n
    \r\n this.handleChange('password', e.target['value'])}\r\n value={user && user.password ? user.password : \"\"}\r\n helperText={Translate(\"6 characters or more, at least 1 alphabetical and 1 numeric.\")}\r\n />\r\n
    \r\n
    \r\n this.handleChange('confirmPassword', e.target['value'])}\r\n value={user && user.confirmPassword ? user.confirmPassword : \"\"}\r\n helperText={Translate(\"Please enter password again.\")}\r\n />\r\n
    \r\n
    \r\n user.acceptPersonalDataPrivatePolicy = !user.acceptPersonalDataPrivatePolicy}\r\n value={user.acceptPersonalDataPrivatePolicy + ''}\r\n color=\"primary\"\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n const successRegistrationHtml =\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {Translate('Now you can go to ')} {Translate('Login')}.\r\n
    \r\n \r\n\r\n const successRegistrationWithEmailHtml =\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {Translate('Check your E-mail box to confirm registration and activate your account.')}\r\n
    \r\n \r\n\r\n const validConfirmCodeHtml =\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {Translate('Now you can go to ')} {Translate('Login')}.\r\n
    \r\n \r\n\r\n const notValidConfirmCodeHtml =\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n\r\n let resultHtml;\r\n\r\n switch (mode) {\r\n case 'successRegistration':\r\n resultHtml = successRegistrationHtml;\r\n break;\r\n case 'successRegistrationWithEmail':\r\n resultHtml = successRegistrationWithEmailHtml;\r\n break;\r\n case 'validConfirmCode':\r\n resultHtml = validConfirmCodeHtml;\r\n break;\r\n case 'notValidConfirmCode':\r\n resultHtml = notValidConfirmCodeHtml;\r\n break;\r\n default:\r\n resultHtml = registrationFormHtml;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Create a New Account')}

    \r\n\r\n
    \r\n {resultHtml}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default CreateNewAccountComponent;","import * as React from 'react';\r\nimport Translate from '../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\n\r\nconst contentBg =\r\n <>\r\n

    Какво включва тази политика?

    \r\n

    За да научите повече за това какво представляват бисквитките и как да ги управлявате, прочетете внимателно настоящата Политика за Бисквитки.

    \r\n\r\n

    Какво представляват бисквитките?

    \r\n

    Бисквитката представлява малък файл, съдържащ данни, който се съхранява в уеб браузъра на Вашето устройство при посещаване на конкретни уебсайтове. Бисквитките могат да съдържат, но могат и да не съдържат лични данни за посетителя.

    \r\n\r\n

    Защо се използват бисквитките?

    \r\n

    За да работи правилно, всеки съвременен уебсайт използва бисквитки.

    \r\n

    Те имат различни задачи, които най-общо улесняват и правят по-интерактивно Вашето ползване на уебсайтовете ни.Например, чрез бисквитките събираме информация във връзка с Вашето посещение и поведение на сайта, така че не трябва да ни я предоставяте отново, и отново. По този начин, можем да Ви разпознаем при следващо посещение на уебсайтовете ни и да Ви покажем.

    \r\n

    Бисквитките ни помагат и да разберем как използвате нашите услуги, за да можем непрекъснато да ги подобряваме, чрез персонализиране на съдържанието и предложенията към Вас, на база Вашите предпочитания и интереси.

    \r\n\r\n

    Какви са видовете бисквитки?

    \r\n

    В зависимост от това колко време се съхраняват на вашето устройство, бисквитките се категоризират на „постоянни” и „временни” („сесийни“) бисквитки.

    \r\n
      \r\n
    • „Постоянните” бисквитки се съхраняват на Вашия компютър или мобилно устройство за дълъг период от време, който може да бъде и години;
    • \r\n
    • „Временните” („сесийните“) бисквитки се поставят временно, когато посещавате уебсайтa, но същите не се съхраняват постоянно на вашето устройство и се заличават, когато Вашата сесия приключи, например като затворите страницата.
    • \r\n
    \r\n\r\n

    Какви видове бисквитки използваме и за какви цели?

    \r\n

    Когато посещавате уебсайтa, вие можете да установите наличието на различни видове бисквитки, които се генерират. Ние използваме и четирите описани типа бисквитки.

    \r\n

    Уебсайтът използва бисквитки за следните цели:

    \r\n
      \r\n
    • Идентификация на потребители с цел осъществяване на безопасен достъп;
    • \r\n
    • Запомняне на продуктите, добавени в кошницата Ви или закупени в процеса на онлайн пазаруването;
    • \r\n
    • Запазване на предпочитани настройки като например език, местоположение, брой резултати при търсене, които да се визуализират и т.н.;
    • \r\n
    \r\n\r\n

    Бисквитки на трети страни:

    \r\n

    Използваме и някои бисквитки на трети страни като част от нашите услуги. Тези бисквитки се управляват от съответните трети страни и не се контролират от нас.

    \r\n\r\n

    Как да управлявате бисквитките?

    \r\n

    Вие можете да контролирате и/или да изтривате бисквитките, в зависимост от вашето желание.

    \r\n

    Може да изтриете всички инсталирани на Вашия компютър бисквитки, както и да настроите повечето браузъри така, че да предотвратите разполагането им във Вашия компютър.

    \r\n

    В случай, че направите това, може да е необходимо да правите промени в настройките на някои предпочитания всеки път, когато посещавате уебсайтовете ни, а някои от услугите и функциите на уебсайтовете ни е възможно да не работят.

    \r\n

    Как да изтриете всички бисквитки от даден браузър (показана е информация за най-популярните браузъри):

    \r\n \r\n\r\n

    Промени в нашата политика за бисквитки

    \r\n

    Ние си запазваме правото да променяме настоящата Политиката за бисквитки и поради това препоръчваме да преглеждате периодично съдържанието и. Всички бъдещи промени в нашата Политика за бисквитките ще бъдат публикувани на тази страница, от който момент промените ще се считат за влезли в сила, освен ако не е упоменато друго.

    \r\n

    Настоящата политика е актуална към дата 18.09.2019 г.

    \r\n\r\n

    Въпроси и обратна връзка

    \r\n

    Моля, изпращайте вашите въпроси и коментари относно бисквитките или поверителността на адрес: gdpr@icb.bg

    \r\n\r\n \r\n\r\nconst contentEn =\r\n <>\r\n

    What does this policy include?

    \r\n

    To learn more about what cookies are and how to manage them, read this Cookie Policy carefully.

    \r\n\r\n

    What are cookies?

    \r\n

    A cookie is a small file containing data that is stored in the web browser of your device when you visit specific websites. Cookies may or may not contain personally identifiable information about the visitor.

    \r\n\r\n

    Why are cookies used?

    \r\n

    To function properly, any modern website uses cookies.

    \r\n

    They have different tasks that generally facilitate and make your use of our websites more interactive. For example, cookies collect information about your visit and behavior on the site, so you do not have to provide it to us again and again. That way, we can recognize you the next time we visit our websites and show you.

    \r\n

    Cookies also help us understand how you use our services so that we can continually improve them by customizing content and suggestions to you based on your preferences and interests.

    \r\n\r\n

    What are the types of cookies?

    \r\n

    Depending on how long they are stored on your device, cookies are categorized as \"permanent\" and \"temporary\" (\"session\") cookies.

    \r\n
      \r\n
    • Permanent cookies are stored on your computer or mobile device for long periods of time, which can be years;
    • \r\n
    • Temporary (\"session\") cookies are placed temporarily when you visit a website, but cookies are not permanently stored on your device and deleted when your session ends, such as by closing a page.
    • \r\n
    \r\n\r\n

    What types of cookies do we use and for what purposes?

    \r\n

    When you visit a website, you may find that different types of cookies are generated. We use all four types of cookies described.

    \r\n

    The website uses cookies for the following purposes:

    \r\n
      \r\n
    • Identification of users for safe access;
    • \r\n
    • Remembering products added to your cart or purchased during the online shopping process;
    • \r\n
    • Save preferences such as language, location, number of search results to be displayed, etc .;
    • \r\n
    \r\n\r\n

    Third-party cookies:

    \r\n

    We also use some third-party cookies as part of our services. These cookies are managed by the respective third parties and are not controlled by us.

    \r\n\r\n

    How to manage cookies?

    \r\n

    You can control and / or delete cookies, depending on your preference.

    \r\n

    You can delete all cookies installed on your computer, and set up most browsers to prevent them from being installed on your computer.

    \r\n

    If you do, you may need to make changes to your preferences settings each time you visit our websites, and some of our services and features may not work.

    \r\n

    How to delete all cookies from a browser (shows information for the most popular browsers):

    \r\n \r\n\r\n

    Changes to our cookie policy

    \r\n

    We reserve the right to change this Cookie Policy and therefore we recommend that you periodically review its content. Any future changes to our Cookie Policy will be posted on this page, from which time the changes will be considered effective unless is mentioned otherwise.

    \r\n

    This policy is current as of 18.09.2019.

    \r\n\r\n

    Questions and feedback

    \r\n

    Please send your questions or comments about cookies or privacy to: gdpr@icb.bg

    \r\n\r\n \r\n\r\ninterface IProps {\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n\r\n}\r\n\r\nclass CookiePolicyComponent extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n let resultHtml;\r\n\r\n switch (this.props.lang) {\r\n case 'bg':\r\n resultHtml = contentBg;\r\n break;\r\n default:\r\n resultHtml = contentEn;\r\n }\r\n\r\n return (\r\n
    \r\n

    \r\n {Translate('Cookies Policy')}\r\n

    \r\n <>\r\n {resultHtml}\r\n \r\n
    \r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(CookiePolicyComponent);","import * as React from 'react';\r\nimport Translate from '../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\n\r\nconst contentBg =\r\n <>\r\n\r\n

    Въведение

    \r\n

    С представяне на настоящите правила имаме за цел да Ви разясним каква информация събираме за Вас, защо и как го правим, какви са правата Ви съгласно Закона за защита на личните данни (ЗЗЛД) и Общия регламент за защита на личните данни (РЕГЛАМЕНТ (ЕС) 2016/679 НА ЕВРОПЕЙСКИЯ ПАРЛАМЕНТ И НА СЪВЕТА от 27 април 2016 година - GDPR).

    \r\n\r\n

    Защо е необходимо Вашето съгласие?

    \r\n

    Наш изключителен приоритет е да защитаваме личните Ви данни и да получим Вашето свободно, информирано и недвусмислено съгласие за обработка на личните Ви данни от нас.

    \r\n

    Ако маркирате „Потвърди политика за защита на линчите данни” Вие се съгласявате, че предоставяте личните си данни доброволно, че сте се запознали с правата си по ЗЗЛД и РЕГЛАМЕНТ (ЕС) 2016/679 НА ЕВРОПЕЙСКИЯ ПАРЛАМЕНТ И НА СЪВЕТА от 27 април 2016 година-GDPR и давате своето съгласие личните Ви данни да бъдат събирани, обработвани и съхранявани.

    \r\n\r\n

    Определения

    \r\n

    „Лични данни“ означава всяка информация, свързана с идентифицирано физическо лице или физическо лице, което може да бъде идентифицирано („субект на данни“ или “потребител”); физическо лице, което може да бъде идентифицирано, е лице, което може да бъде идентифицирано, пряко или непряко, по-специално чрез идентификатор като име, идентификационен номер, данни за местонахождение, онлайн идентификатор или по един или повече признаци, специфични за физическата, физиологичната, генетичната, психическата и умствената, икономическата, културната или социалната идентичност на това физическо лице;

    \r\n

    „Администратор“ означава орган, който сам или съвместно с други органи определя целите и средствата за обработването на лични данни; когато целите и средствата за това обработване се определят от правото на Европейския съюз или правото на Република България, администраторът или специалните критерии за неговото определяне могат да бъдат установени в правото на Европейския съюз или в българското законодателство. В настоящия случай администраторът е „Интерконсулт България” ООД (наричано по-долу за краткост „ICB”), дружество надлежно регистрирано и действащо съгласно законите на Република България с ЕИК 121026857, със седалище и адрес на управление: гр. София 1309, район р-н Красна поляна, ж.к. ИЛИНДЕН, УЛ. ИНДЖЕ ВОЙВОДА No 7

    \r\n

    „Обработващ лични данни“ означава физическо или юридическо лице, публичен орган, агенция или друга структура, която обработва лични данни от името на администратора;

    \r\n

    „Обработване“ означава всяка операция или съвкупност от операции, извършвана с лични данни или набор от лични данни чрез автоматични или други средства като събиране, записване, организиране, структуриране, съхранение, адаптиране или промяна, извличане, консултиране, употреба, разкриване чрез предаване, разпространяване или друга форма на осигуряване на достъп до данните, подреждане или комбиниране, ограничаване, изтриване или унищожаване;

    \r\n

    „Надзорен орган“ означава независим публичен орган от държава членка на Европейския съюз, отговорен за наблюдението на прилагането на правилата за защита на личните данни. За Република България надзорен орган е Комисията за защита на личните данни.

    \r\n\r\n

    Цел на политиката

    \r\n

    Тази политика за поверителност има за цел да гарантира, че Администраторът:

    \r\n
      \r\n
    • спазва законодателството в областта на защитата на данните, а именно Закона за защита на личните данни (ЗЗЛД) и Общия регламент за защита на личните данни и останалото приложимо законодателство, и следва добрите практики;
    • \r\n
    • защитава потребителите, служителите, клиентите и партньорите;
    • \r\n
    • гарантира прозрачност за начините, по които се съхраняват и обработват личните данни на субектите;
    • \r\n
    • осигурява защита от рисковете, свързани с нарушаване на данните;
    • \r\n
    \r\n\r\n

    Как събираме информация за Вас?

    \r\n

    Ние можем да събираме информация за Вас по няколко начина:

    \r\n

    Попълвани и изпращани от Вас форми, свързани с използваните услуги

    \r\n

    Чрез изпращането им, Вие съзнателно споделяте лични данни.

    \r\n

    За всяка форма, съдържаща изпращане на лични данни, ще посочим целите на използване, срок на съхранението им, трети страни, с които евентуално ще ги споделим, начините да упражните правата си по Регламента.

    \r\n

    Ще минимизираме обема данни във формата спрямо според обявените цели.

    \r\n

    Например: когато създавате профил, Вие ни предоставяте лична информация, включително имената си и електронна поща.

    \r\n

    Данни, събирани чрез наблюдения

    \r\n

    Понякога събираме информация за Вас наблюдавайки Вашето поведение на сайтовете ни и в мобилните ни апликации.

    \r\n

    За целта използваме стандартни за Internet подходи за проследяване на потребителското поведение, напр. използване на мрежово оборудване, за проследяване на IP адреса Ви, анализиране на информацията налична като част от комуникацията в изпозлваните от нас протоколи за запис и обмен на идентификатори на Вас и устройството Ви, напр. HTTP GET/POST заявките, използване функционалностите на JavaScript и други стандартни и широко разпространени в WEB програмни езици за извличане на данни и информация за контекста Ви браузър, операционна система, резолюция на екрана, език и др.

    \r\n

    Данни, получени от трети страни

    \r\n

    Понякога, след Ваше изрично съгласие дадено през инструментите партньора, можем да получим данни от трети страни, напр. данни от профила Ви в социални мрежи, като Facebook.

    \r\n

    Възможно е тези данни да бъдат обединени с други лични данни за Вас, с които вече разполагаме.

    \r\n

    Бисквитки

    \r\n

    Сайтът използва бисквитки за съхранение на настройки и идентификатори, необходими за предоставяне на посочните в сайта услуги. Някои от тези бисквитки са технически необходими за нормалното функциониране на сайтовете.

    \r\n

    Повече информация за политиката ни по отношение на бисквитките може да намерите тук.

    \r\n\r\n

    Каква информация събираме и обработваме, когато ползвате нашите услуги?

    \r\n

    Попълвани и изпращани от Вас форми

    \r\n

    Събираме следните данни:

    \r\n
      \r\n
    • Вашите имена;
    • \r\n
    • Адрес на електронна поща;
    • \r\n
    • Парола;
    • \r\n
    • Лични данни: дата на рождене, пол, кръвна група, височина, тегло, непозволени храни и напитки, алергии;
    • \r\n
    • Лекарства;
    • \r\n
    • Заболявания;
    • \r\n
    • Лекарски предписания;
    • \r\n
    • Здравно състояние;
    • \r\n
    • Семейство;
    • \r\n
    • Резултати от изследвания;
    • \r\n
    \r\n

    Данни, събирани чрез наблюдения

    \r\n

    За всички посетители ние и доставчиците на използваните от нас инструменти, обичайно събираме следните данни за Вас:

    \r\n
      \r\n
    • Идентификатор на браузъра Ви;
    • \r\n
    • Идентификатор на мобилното Ви устройството;
    • \r\n
    • Поведение спрямо съдържанието на сайта/мобилната апликация – навигация, използвани интерфейсни елементи, време на престой;
    • \r\n
    • Вашите търсения;
    • \r\n
    \r\n

    Данни, получени от трети страни

    \r\n

    В зависимост от източника на данни, това включва:\r\n Основна информация за профила, като име, имейл адрес, дата на раждане;\r\n Подробности, които решите да споделите според конкретните настройки за социални медийни акаунти;\r\n Вашият контакти и начина Ви на свързаност с тях.

    \r\n\r\n

    За какви цели обработваме информацията?

    \r\n

    Информацията, която събираме и обработваме за Вас може да се използва за следните цели:

    \r\n

    Нормално функциониране на сайтове ни

    \r\n

    Тези данни са стриктно необходими за нормалната работа на сайтовете и мобилните ни апликации. Чрез тях можем да удостоверим самоличността Ви като логнат потребители, да Ви покажем по-добре съдържанието, да заредим сайта по-бързо, да защитаваме сайтовете и Вас от посегателства.

    \r\n

    Такива данни например са данните от сесията Ви – информация дали сте логнат, кеширано съдържание и други.

    \r\n

    Тук попадат и данните, свързани с идентифицирането Ви във връзка с регистрация за използване на наша услуга.

    \r\n

    За запазване и достъп до информация

    \r\n

    Тази цел е спомагателна за изпълнение на други цели – чрез използването на различни технически механизми

    \r\n

    Включва съхранение и достъп до информация, запазена на Вашето устройство, напр. идентификатори на устройство, идентификатори на потребител, бисквитки и други технологии.

    \r\n

    Тази цел е помощна – чрез използването на описаните в нея технически механизми, ние ще можем да изпълним някоя от другите описани цели.

    \r\n\r\n

    Какви са правата Ви във връзка с личните данни?

    \r\n

    Наш приоритет е както да Ви информираме за Вашите законови права, така и да гарантираме тяхното спазване. Вие имате следните права, които следва да се съблюдават при обработване на личните Ви данни:

    \r\n
      \r\n
    • Право във всеки един момент да оттеглите съгласието си за обработка на личните Ви данни;
    • \r\n
    • Да поискате коригиране или допълване на данните Ви при констатирана неточност чрез писмено заявление, отправено до нас;
    • \r\n
    • Право на достъп до личните Ви данни;
    • \r\n
    • Право на ограничаване обработването на личните Ви данни;
    • \r\n
    • Право на възражение срещу обработването на личните Ви данни;
    • \r\n
    • Правото на преносимост на данните;
    • \r\n
    • Право да поискате изтриване на личните Ви данни, които се обработват незаконосъобразно или с отпаднало правно основание (оттеглено съгласие, изпълнена първоначална цел, за която са били събрани и др.);
    • \r\n
    • Право да поискате от Администратора на личните Ви данни да уведомите третите лица, на които Администраторът е предоставил Вашите данни, по отношение на коригиране, изтриване или ограничаване на обработването на личните данни.
    • \r\n
    • Имате право на жалба до Комисия за защита на личните данни.
    • \r\n
    \r\n\r\n

    Кога можем да ползваме данните Ви, за да се свърже с Вас?

    \r\n

    Можем да използваме предоставената от Вас информация, за да се свържем с Вас относно различни въпроси като: да Ви уведомим за промени в политиките и настоящите правила;

    \r\n

    Никога няма да се свържем с Вас, за да поискаме паролата от Вашия акаунт.

    \r\n\r\n

    Как мога да получа, актуализирам и управлявам моите лични данни?

    \r\n

    Вие можете лесно да актуализирате и управлявате Вашата информация, като отидете на „Профил / Моята информация”.

    \r\n

    Нашите уебсайтове използват „бисквитки”. Ако искате да научите повече за използването за „бисквитките” на нашите уебсайтове и това как да ги управлявате, прочетете нашата „Политика за Бисквитки”.

    \r\n\r\n

    Заключение

    \r\n

    Настоящата политика за поверителност е актуална към дата 18.09.2019 г.

    \r\n

    ICB запазва правото си по всяко време да променя и/или допълва настоящата Политика. Промените влизат в сила веднага след публикуването им на уебсайта, освен ако в актуализираната версия на Политиката не е предвидено друго. Трябва периодично да посещавате тази страница за преглед на Политиката. Политиката може да бъде актуализирани по всяко време без специално уведомяване на потребителите на Сайта. ICB не носи отговорност, ако даден потребител на уебсайтовете не се е запознал с последния актуален вариант на настоящата Политиката.

    \r\n\r\n

    Моля, изпращайте вашите въпроси и коментари относно бисквитките или поверителността на адрес: gdpr@icb.bg

    \r\n\r\n \r\n\r\nconst contentEn =\r\n <>\r\n

    Introduction

    \r\n

    By presenting these rules, we aim to explain to you what information we collect for you, why and how we do it, what your rights are under the Personal Data Protection Act (LPPD) and the General Data Protection Regulation (REGULATION (EU) 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 27 April 2016 - GDPR).

    \r\n\r\n

    Why do you need your consent?

    \r\n

    It is our utmost priority to protect your personal data and to obtain your free, informed and unequivocal consent to the processing of your personal data by us.

    \r\n

    By tagging \"Confirm Privacy Policy\" you agree that you are submitting your personal data voluntarily, that you have become aware of your rights under the LPP and REGULATION (EU) 2016/679 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 27 April 2016 -GDPR and you consent to your personal data being collected, processed and stored.

    \r\n\r\n

    Definitions

    \r\n

    \"Personal data\" means any information relating to an identified or identifiable natural person (\"data subject\" or \"user\"); identifiable natural person is an identifiable person, directly or indirectly, in particular by an identifier such as a name, identification number, location data, online identifier, or by one or more physical-specific attributes, the physiological, genetic, mental and mental, economic, cultural or social identity of that individual;

    \r\n

    \"Controller\" means a body which alone or jointly with other bodies determines the purposes and means of the processing of personal data; where the purposes and means of such processing are determined by European Union law or by the law of the Republic of Bulgaria, the administrator or the specific criteria for determining it may be laid down in European Union law or in Bulgarian law. In the present case, the Administrator is Interconsult Bulgaria OOD (hereinafter ICB), a company duly registered and operating under the laws of the Republic of Bulgaria with UIC 121026857, with registered office and registered office: Sofia 1309, district p -n Krasna Polyana, residential building ILINDEN, INJJEVOD STREET No 7

    \r\n

    \"Processor\" means a natural or legal person, public authority, agency or other entity who processes personal data on behalf of the controller;

    \r\n

    \"Processing\" means any operation or set of operations performed with personal data or a set of personal data by automatic or other means such as the collection, recording, organization, structuring, storage, adaptation or modification, extraction, consultation, use, disclosure by transmission, dissemination or other form of providing access to the data, arranging or combining, limiting, deleting or destroying it;

    \r\n

    \"Supervisory authority\" means an independent public authority from a Member State of the European Union responsible for monitoring the application of the rules on protection of personal data. For the Republic of Bulgaria the supervisory authority is the Commission for Personal Data Protection.

    \r\n\r\n

    Aim of the policy

    \r\n

    This privacy policy is intended to ensure that the Administrator:

    \r\n
      \r\n
    • complies with data protection legislation, namely the Personal Data Protection Act (LPPD) and the General Regulation on personal data protection and other applicable legislation, and follows good practices;
    • \r\n
    • protects consumers, employees, customers and partners;
    • \r\n
    • guarantees transparency about the ways in which the personal data of the subjects are stored and processed;
    • \r\n
    • provides protection against data breach risks;
    • \r\n
    \r\n\r\n

    How do we collect information about you?

    \r\n

    We can collect information about you in several ways:

    \r\n

    Completed and submitted forms related to the services used

    \r\n

    By sending them, you knowingly share personal information.

    \r\n

    For each form containing personal data, we will indicate the purposes of use, the storage period, the third parties with whom we may share, the ways to exercise your rights under the Regulation.

    \r\n

    We will minimize the amount of data in the form relative to the announced goals.

    \r\n

    For example, when you create an account, you provide us with personal information, including your names and email.

    \r\n

    Data collected through observations

    \r\n

    We sometimes collect information about you by observing your behavior on our sites and in our mobile applications.

    \r\n

    To do this, we use standard Internet approaches to track user behavior, e.g. using network equipment to track your IP address, analyze information available as part of communication in the protocols we use to record and exchange identifiers for you and your device, e.g. HTTP GET / POST requests, use of JavaScript functionality and other standard and widely used WEB programming languages to retrieve data and context information for your browser, operating system, screen resolution, language, and more.

    \r\n

    Data received from third parties

    \r\n

    Sometimes, following your explicit consent through partner tools, we may receive third-party data, e.g. data from your social networking account, such as Facebook.

    \r\n

    This information may be combined with other personal information we already have available to you.

    \r\n

    Cookies

    \r\n

    The site uses cookies to store the settings and identifiers required to provide the services specified on the site. Some of these cookies are technically necessary for the sites to function properly.

    \r\n

    More information about our cookie policy can be found here.

    \r\n\r\n

    What information do we collect and process when you use our services?

    \r\n

    Completed and submitted forms

    \r\n

    We collect the following data:

    \r\n
      \r\n
    • Your names;
    • \r\n
    • Email Address;
    • \r\n
    • Password;
    • \r\n
    • Personal data: date of birth, gender, blood type, height, weight, illicit foods and drinks, allergies;
    • \r\n
    • Medicines;
    • \r\n
    • Diseases;
    • \r\n
    • Medical prescriptions;
    • \r\n
    • Health;
    • \r\n
    • Family;
    • \r\n
    • Research results;
    • \r\n
    \r\n

    Data collected through observations

    \r\n

    For all visitors, we and the vendors of the tools we use, we typically collect the following information for you:

    \r\n
      \r\n
    • Your browser ID;
    • \r\n
    • Your mobile device ID;
    • \r\n
    • Behavior of site content / mobile application - navigation, interface elements used, downtime;
    • \r\n
    • Your searches;
    • \r\n
    \r\n

    Data received from third parties

    \r\n

    Depending on the data source, this includes: Basic account information such as name, email address, date of birth; Details that you choose to share according to your specific social media account settings; Your contacts and how you connect with them.

    \r\n\r\n

    For what purposes do we process information?

    \r\n

    The information we collect and process for you can be used for the following purposes:

    \r\n

    The normal functioning of our sites

    \r\n

    This data is strictly necessary for the normal operation of our sites and our mobile applications. With them, we can authenticate you by logging in to users, show you better content, load your site faster, protect your sites and you from harm.

    \r\n

    Such data, for example, are data from your session - whether you are logged in, cached, and more.

    \r\n

    This also includes your registration related information to use our service.

    \r\n

    To save and access information

    \r\n

    This objective is ancillary to the fulfillment of other objectives - through the use of various technical mechanisms

    \r\n

    Includes storing and accessing information stored on your device, e.g. device IDs, user IDs, cookies and other technologies.

    \r\n

    This purpose is ancillary - by using the technical mechanisms described therein, we will be able to fulfill any of the other objectives described.

    \r\n\r\n

    What are your rights regarding personal data?

    \r\n

    It is our priority to inform you of your legal rights and to ensure that they are respected. You have the following rights that should be respected when processing your personal data:

    \r\n
      \r\n
    • The right at any time to withdraw your consent to the processing of your personal data;
    • \r\n
    • Request corrections or additions to your information in the case of inaccuracy found in a written application sent to us;
    • \r\n
    • Right of access to your personal data;
    • \r\n
    • The right to restrict the processing of your personal data;
    • \r\n
    • Right to object to the processing of your personal data;
    • \r\n
    • The right to data portability;
    • \r\n
    • The right to request the deletion of your personal data that is being processed illegally or with a lapsed legal basis (consent withdrawn, original purpose for which it was collected, etc.);
    • \r\n
    • The right to ask the Data Controller to notify third parties to whom the Data Controller has provided your data regarding the correction, deletion or restriction of the processing of personal data.
    • \r\n
    • You have the right to complain to the Data Protection Commission.
    • \r\n
    \r\n\r\n

    When can we use your information to contact you?

    \r\n

    We may use the information you provide to contact you about various issues such as: letting you know about changes in policies and current policies;

    \r\n

    We will never contact you to request a password from your account.

    \r\n\r\n

    How can I receive, update and manage my personal information?

    \r\n

    You can easily update and manage your information by going to Profile / My Information.

    \r\n

    Our websites use cookies. If you would like to learn more about the use of cookies on our websites and how to manage them, read our Cookie Policy.

    \r\n\r\n

    Conclusion

    \r\n

    This privacy policy is current as of 09/18/2019.

    \r\n

    ICB reserves the right at any time to amend and / or supplement this Policy. Changes will take effect as soon as they are posted on the Website, unless otherwise provided in the updated version of the Policy. You must periodically visit this page to review the Policy. The Policy may be updated at any time without specific notice to users of the Site. ICB is not responsible if a website user is not familiar with the latest up-to-date version of this Policy.

    \r\n

    Please send your questions or comments about cookies or privacy to: gdpr@icb.bg

    \r\n \r\n\r\ninterface IProps {\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n}\r\n\r\nclass PersonalDataPolicyComponent extends React.Component {\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n\r\n let resultHtml;\r\n\r\n switch (this.props.lang) {\r\n case 'bg':\r\n resultHtml = contentBg;\r\n break;\r\n default:\r\n resultHtml = contentEn;\r\n }\r\n\r\n return (\r\n
    \r\n

    \r\n {Translate('Personal Data Policy')}\r\n

    \r\n <>\r\n {resultHtml}\r\n \r\n
    \r\n )\r\n }\r\n\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(PersonalDataPolicyComponent);","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { UserModel } from '../models/user/userModel';\r\nimport { UserChangePasswordModel } from '../models/user/userChangePasswordModel';\r\nimport { UserDiseaseModel } from '../models/user/userDiseaseModel';\r\nimport { UserMedicineModel } from '../models/user/userMedicineModel';\r\nimport { UserPrescriptionModel } from '../models/user/userPrescriptionModel';\r\nimport { UserMedicineToUserDiseaseModel } from '../models/user/userMedicineToUserDiseaseModel';\r\nimport AuthService from './authService';\r\nimport { UserForGridModel } from '../models/user/userForGridModel';\r\nimport { UserMedicineHistoryModel } from '../models/user/userMedicineHistoryModel';\r\nimport { UserNotificationModel } from '../models/user/userNotificationModel';\r\nimport { UserDiseaseHistoryModel } from '../models/user/userDiseaseHistoryModel';\r\nimport { UserMedicineWithHistoryWrapper } from '../models/user/userMedicineWithHistoryWrapper';\r\nimport { UserDiseaseWithHistoryModel } from '../models/user/userDiseaseWithHistoryModel';\r\nimport { UserMedicineSettingsModel } from '../models/user/userMedicineSettingsModel';\r\nimport { UserDiseaseSettingsModel } from '../models/user/userDiseaseSettingsModel';\r\nclass UserService {\r\n\r\n lang: string = '';\r\n authService = new AuthService();\r\n\r\n constructor(lang?) {\r\n this.lang == lang;\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n }\r\n\r\n getUser() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getById`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateUser(user: UserModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/update`,\r\n method: 'put',\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteAccountPermanently() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteAccountPermanently/`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getAccountInfo(lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getAccountInfo/`,\r\n method: 'get',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n changePassword(user: UserChangePasswordModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/changePassword/`,\r\n method: 'put',\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n //User diseases\r\n getAllUserDiseases() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userDiseases/`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getAllUserDiseasesWithHistoryCount(userId: number, from: number, numberOfRows: number, lang: string, settings: UserDiseaseSettingsModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userDiseasesWithHistoryCount/${userId}/${from}/${numberOfRows}`,\r\n method: 'post',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n data: JSON.stringify(settings)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getUserDisease(userId: number, diseaseId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userDisease/${userId}/${diseaseId}`,\r\n method: 'get',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addUserDisease(userDisease: UserDiseaseWithHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addUserDisease/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userDisease)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateUserDisease(userDisease: UserDiseaseModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updateUserDisease/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userDisease)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteUserDisease(userId: number, diseaseId: number, historyId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteUserDisease/${userId}/${diseaseId}/${historyId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n isDiseaseInserted(userId: number, diseaseId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/isDiseaseInserted/${userId}/${diseaseId}`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addDiseaseHistory(userId: number, diseaseId: number, userDiseaseHistoryModel: UserDiseaseHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addDiseaseHistory/${userId}/${diseaseId}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userDiseaseHistoryModel)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateDiseaseHistory(userDiseaseHistoryModel: UserDiseaseHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updateDiseaseHistory/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userDiseaseHistoryModel)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteDiseaseHistory(userDiseaseHistoryId) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteDiseaseHistory/${userDiseaseHistoryId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n\r\n //User medicines\r\n getAllUserMedicines() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userMedicines/`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getUserMedicine(userId: number, medicineId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userMedicine/${userId}/${medicineId}`,\r\n method: 'get',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getAllUserMedicinesWithHistory(userId: number, from: number, numberOfRows: number, lang: string, medSettings: UserMedicineSettingsModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userMedicinesWithHistory/${userId}/${from}/${numberOfRows}`,\r\n method: 'post',\r\n headers: {\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n data: JSON.stringify(medSettings)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addUserMedicine(userMedicine: UserMedicineWithHistoryWrapper) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addUserMedicine/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userMedicine)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateUserMedicine(userMedicine: UserMedicineModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updateUserMedicine/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userMedicine)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteUserMedicine(userId: number, medicineId: number, medHistoryId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteUserMedicine/${userId}/${medicineId}/${medHistoryId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addMedicineHistory(userId: number, medicineId: number, userMedicineHistoryModel: UserMedicineHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addUserMedicineHistory/${userId}/${medicineId}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userMedicineHistoryModel)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateMedicineHistory(userMedicineHistoryModel: UserMedicineHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updateMedicineHistory`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userMedicineHistoryModel)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteMedicineHistory(userMedicineHistoryId) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteMedicineHistory/${userMedicineHistoryId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n isMedicineInserted(userId: number, medicineId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/isMedicineInserted/${userId}/${medicineId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n // User Family\r\n getUserFamilyDropdownList() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/getDropdownList/`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getMyFamily() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/getAll`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getUserFromMyFamily(childUserId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/get/${childUserId}`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteUserFromFamily(childUserId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/delete/${childUserId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteCaretaker(childUserId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/deleteCaretaker/${childUserId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addMemberInMyFamily(user: UserForGridModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/create`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addCaretaker(user: UserForGridModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/addCaretaker`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateMyMemberFromFamily(user: UserForGridModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/myFamily/update`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n\r\n //user prescriptions\r\n getAllUserPrescriptions(from: number, numberOfRows: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userPrescriptions/${from}/${numberOfRows}/`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getUserPrescription(userPrescriptionId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/userPrescription/${userPrescriptionId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getUserPrescriptionFromLink(userPrescriptionId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/prescription/${userPrescriptionId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addUserPrescription(userPrescription: UserPrescriptionModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addUserPrescription/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userPrescription)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateUserPrescription(userPrescription: UserPrescriptionModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updateUserPrescription/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userPrescription)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteUserPrescription(userPrescriptionId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteUserPrescription/${userPrescriptionId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getPrescriptionMedicines(userPrescriptionId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getPrescriptionMedicines/${userPrescriptionId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addPrescriptionMedicine(userPrescriptionId: number, userMedicine: UserMedicineHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addPrescriptionMedicine/${userPrescriptionId}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userMedicine)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updatePrescriptionMedicine(userPrescriptionId: number, userMedicine: UserMedicineHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updatePrescriptionMedicine/${userPrescriptionId}`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userMedicine)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deletePrescriptionMedicine(userPrescriptionId: number, userMedicineHistoryId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deletePrescriptionMedicine/${userPrescriptionId}/${userMedicineHistoryId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getHistoryNotifications(userMedicineHistoryId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getMedicineHistoryNotifications/${userMedicineHistoryId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getMedicineNotifications(userMedicineId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getMedicineNotifications/${userMedicineId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addNotification(userNotification: UserNotificationModel, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addNotification/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n },\r\n data: JSON.stringify(userNotification)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateNotification(userNotificationId: number, isActive: boolean) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updateNotification/${userNotificationId}/${isActive}`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteNotification(userNotificationId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deleteNotification/${userNotificationId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getPrescriptionDiseases(userPrescriptionId: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getPrescriptionDiseases/${userPrescriptionId}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addPrescriptionDisease(userPrescriptionId: number, userDisease: UserDiseaseHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/addPrescriptionDisease/${userPrescriptionId}`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userDisease)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updatePrescriptionDisease(userPrescriptionId: number, userDisease: UserDiseaseHistoryModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/updatePrescriptionDisease/${userPrescriptionId}`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(userDisease)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deletePrescriptionDisease(userPrescriptionId: number, userDiseaseId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/deletePrescriptionDisease/${userPrescriptionId}/${userDiseaseId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n // Push subscriptions\r\n createPushSubscription(subscription) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/createSubscription/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(subscription)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n discardPushSubscription(subscription: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/discardSubscription/${subscription}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getAllUserNotifications(lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getUserNotifications/`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getNotSeenNotifications(lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getNotSeenNotifications/`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n markAllAsSeen() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/markAllAsSeen/`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getNotificationScheduler(schedulerId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getNotificationScheduler/${schedulerId}/`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n setTakenNotification(schedulerId: number, acceptanceType: number, acceptanceDate: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/setTakenNotification/${schedulerId}/${acceptanceType}/`,\r\n method: 'post',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n },\r\n data: JSON.stringify(acceptanceDate)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n setSnoozedNotification(schedulerId: number, snoozeMinutes: number, snoozeDate: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/setSnoozedNotification/${schedulerId}/${snoozeMinutes}/`,\r\n method: 'post',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n },\r\n data: JSON.stringify(snoozeDate)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getAllNotifications(first: number, rows: number, lang: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getAllNotifications/${first}/${rows}`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getAllCaretakers() {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getAllCaretakers/`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getFilteredUsers(from: number, numberOfRows: number, email: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/getFilteredUsers/${from}/${numberOfRows}/${email}`,\r\n method: 'get',\r\n headers: {\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n validateCaretaker(confirmCode: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/user/validateCaretaker/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n Authorization: `Bearer ${this.authService.getToken()}`\r\n },\r\n data: JSON.stringify(confirmCode)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\n\r\nexport default UserService;","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { UserModel } from '../../../models/user/userModel';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { Checkbox } from 'primereact/checkbox';\r\nimport { PushNotificationSubscription } from \"../../../models/pushNotificationSubscription\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport * as Constants from '../../../common/constants';\r\n\r\ninterface IProps {\r\n history: any,\r\n onCancelClick: any;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserModel;\r\n}\r\n\r\nclass UserAccountTab extends React.Component {\r\n\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getUserData();\r\n }\r\n\r\n getUserData() {\r\n if (this.authService.isAuthenticated()) {\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n let id = this.authService.getUserId();\r\n\r\n this.userService.getUser().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n user: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserModel = { ...this.state.user };\r\n user[key] = value;\r\n this.setState({ user: { ...user } });\r\n };\r\n\r\n handleSaveButton = event => {\r\n event.preventDefault();\r\n\r\n if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const user = this.state.user;\r\n\r\n this.userService.updateUser(user).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully saved your data.') });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n\r\n }\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n const { user } = this.state;\r\n\r\n if (!user.email || user.email.trim() == '') {\r\n message += Translate('Please enter Email');\r\n } else {\r\n if (!HelperFunctions.validateEmail(this.state.user.email)) {\r\n message += Translate('Please enter valid Email');\r\n }\r\n }\r\n\r\n if (!user.name || user.name.trim() == '') {\r\n message += Translate('Please enter Name');\r\n }\r\n\r\n message ? this.growl.show({ severity: 'error', summary: message }) : null;\r\n\r\n return message == '';\r\n }\r\n\r\n public render() {\r\n const { isLoading, user } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n this.handleChange('email', e.target['value'])}\r\n />\r\n
    \r\n
    \r\n this.handleChange('name', e.target['value'])}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default UserAccountTab;","export class UserPersonalDataModel {\r\n public userPersonalDataId: number;\r\n public userId: number;\r\n public birthDate?: string;\r\n public weight: number;\r\n public height: number;\r\n public genderTypeId?: number;\r\n public bloodTypeId?: number;\r\n public pregnancyTypeId?: number;\r\n public professionTypeId?: number;\r\n public notAllowedFoods: string;\r\n public allergies: string;\r\n}","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { UserPersonalDataModel } from '../models/user/userPersonalDataModel';\r\nimport AuthService from './authService';\r\n\r\nclass UserPersonalDataService {\r\n\r\n authService = new AuthService();\r\n\r\n constructor() {\r\n //axios.defaults.baseURL = `${Constants.apiUrl}`;\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n }\r\n\r\n getUserPersonalData(id: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userPersonalData/get/${id}`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateUserPersonalData(user: UserPersonalDataModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userPersonalData/update/`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(user)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n\r\n}\r\n\r\nexport default UserPersonalDataService;","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { UserPersonalDataModel } from '../../../models/user/userPersonalDataModel';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport UserPersonalDataService from '../../../services/userPersonalDataService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { ProfessionType, PregnancyType, BloodType, GenderType } from \"../../../common/enums\";\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport { enumToDropdownArray } from '../../../common/functions/helperFunctions';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { DatePicker } from '@material-ui/pickers';\r\nimport { Checkbox } from '@material-ui/core';\r\nimport * as Constants from '../../../common/constants';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { id } from \"date-fns/esm/locale\";\r\n\r\ninterface IProps {\r\n history: any;\r\n userId?: number;\r\n onCancelClick: any;\r\n onSave?: any;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n userPersonalData: UserPersonalDataModel;\r\n professionTypeDropdown: Array;\r\n pregnancyTypeDropdown: Array;\r\n bloodTypeDropdown: Array;\r\n genderTypeDropdown: Array;\r\n //isBirtdateDisabled: boolean;\r\n}\r\n\r\nclass UserPersonalDataTab extends React.Component {\r\n\r\n userPersonalDataService = new UserPersonalDataService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n userPersonalData: new UserPersonalDataModel(),\r\n professionTypeDropdown: new Array(0),\r\n pregnancyTypeDropdown: new Array(0),\r\n bloodTypeDropdown: new Array(0),\r\n genderTypeDropdown: new Array(0),\r\n //isBirtdateDisabled: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let userId = this.props.userId ? this.props.userId : this.authService.getUserId();\r\n\r\n const professionTypeDropdown: Array = [{ label: Translate('Select'), value: 0 }];\r\n const pregnancyTypeDropdown: Array = [{ label: Translate('Select'), value: 0 }];\r\n const bloodTypeDropdown: Array = [{ label: Translate('Select'), value: 0 }];\r\n const genderTypeDropdown: Array = [{ label: Translate('Select'), value: 0 }];\r\n\r\n if (this.authService.isAuthenticated()) {\r\n\r\n this.setState({\r\n isLoading: true,\r\n professionTypeDropdown: professionTypeDropdown.concat(enumToDropdownArray(ProfessionType, true)),\r\n pregnancyTypeDropdown: pregnancyTypeDropdown.concat(enumToDropdownArray(PregnancyType, true)),\r\n bloodTypeDropdown: bloodTypeDropdown.concat(enumToDropdownArray(BloodType, true)),\r\n genderTypeDropdown: genderTypeDropdown.concat(enumToDropdownArray(GenderType, true))\r\n });\r\n\r\n this.userPersonalDataService.getUserPersonalData(userId).then(\r\n (data: UserPersonalDataModel) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n userPersonalData: data,\r\n //isBirtdateDisabled: data.birthDate == undefined\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const userPersonalData: UserPersonalDataModel = { ...this.state.userPersonalData };\r\n if (key == \"genderTypeId\" && value == GenderType.Male) {\r\n userPersonalData.pregnancyTypeId = undefined;\r\n }\r\n userPersonalData[key] = value;\r\n this.setState({ userPersonalData: { ...userPersonalData } });\r\n };\r\n\r\n // handleBirtdateCheckbox = () => {\r\n // this.setState({\r\n // isBirtdateDisabled: !this.state.isBirtdateDisabled\r\n // });\r\n // if (this.state.isBirtdateDisabled) {\r\n // this.handleChange('birthDate', this.state.userPersonalData.birthDate ? this.state.userPersonalData.birthDate : new Date().toISOString());\r\n // }\r\n // }\r\n\r\n handleSaveButton = event => {\r\n event.preventDefault();\r\n\r\n //if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { userPersonalData } = this.state;\r\n\r\n // if (userPersonalData && userPersonalData.birthDate) {\r\n // userPersonalData.birthDate = !isBirtdateDisabled ? HelperFunctions.fomatDateAsString(new Date(userPersonalData.birthDate)) : undefined\r\n // }\r\n\r\n this.userPersonalDataService.updateUserPersonalData(userPersonalData).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully saved your data.') });\r\n this.props.onSave();\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n\r\n }\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n const { userPersonalData } = this.state;\r\n\r\n // if (!user.email || user.email.trim() == '') {\r\n // message += Translate('Please enter Email') + '.
    ';\r\n // } else {\r\n // if (!HelperFunctions.validateEmail(this.state.user.email)) {\r\n // message += Translate('Please enter valid Email') + '.
    ';\r\n // }\r\n // }\r\n\r\n message ? this.growl.show({ severity: 'error', summary: message }) : null;\r\n\r\n return message == '';\r\n }\r\n\r\n clearDate = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n let userPersonalData = { ...this.state.userPersonalData }\r\n userPersonalData.birthDate = undefined;\r\n this.setState({ userPersonalData: userPersonalData });\r\n }\r\n\r\n public render() {\r\n const { isLoading, userPersonalData,\r\n genderTypeDropdown, professionTypeDropdown, pregnancyTypeDropdown, bloodTypeDropdown } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n
    \r\n
    \r\n
    \r\n {Translate('Birthdate')}\r\n
    \r\n this.handleChange('birthDate', e)}\r\n placeholder={Translate('Enter birht date')}\r\n inputProps={{\r\n id: 'birth-label'\r\n }}\r\n />\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {Translate('Gender')}\r\n this.handleChange('genderTypeId', e.target.value)}\r\n inputProps={{\r\n id: 'gender-label'\r\n }}\r\n >\r\n {\r\n genderTypeDropdown.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n {Translate('Blood Type')}\r\n this.handleChange('bloodTypeId', e.target.value)}\r\n inputProps={{\r\n id: 'blood-type-label'\r\n }}\r\n >\r\n {\r\n bloodTypeDropdown.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    \r\n\r\n
    \r\n this.handleChange('height', e.target.value)}\r\n />\r\n
    \r\n\r\n
    \r\n this.handleChange('weight', e.target.value)}\r\n />\r\n
    \r\n\r\n\r\n
    \r\n \r\n {Translate('Profession')}\r\n this.handleChange('professionTypeId', e.target.value)}\r\n inputProps={{\r\n id: 'profession-type-label'\r\n }}\r\n >\r\n {\r\n professionTypeDropdown.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    \r\n {userPersonalData.genderTypeId && userPersonalData.genderTypeId == GenderType.Female ?\r\n
    \r\n \r\n {Translate('Pregnancy&Breastfeeding')}\r\n this.handleChange('pregnancyTypeId', e.target.value)}\r\n inputProps={{\r\n id: 'pregnancy-type-label'\r\n }}\r\n >\r\n {\r\n pregnancyTypeDropdown.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    : null}\r\n\r\n
    \r\n this.handleChange('notAllowedFoods', e.target.value)}\r\n />\r\n
    \r\n\r\n
    \r\n this.handleChange('allergies', e.target.value)}\r\n />\r\n
    \r\n\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default UserPersonalDataTab;","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Password } from 'primereact/password';\r\nimport { UserChangePasswordModel } from '../../../models/user/userChangePasswordModel';\r\nimport { Link } from \"react-router-dom\";\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IProps {\r\n history: any,\r\n onCancelClick: any;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserChangePasswordModel;\r\n userId: number;\r\n}\r\n\r\nclass UserChangePasswordTab extends React.Component {\r\n\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n let profile = this.authService.getProfile();\r\n let userId = profile ? profile['id'] : 0;\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserChangePasswordModel(),\r\n userId: userId\r\n };\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserChangePasswordModel = { ...this.state.user };\r\n user[key] = value;\r\n this.setState({ user: { ...user } });\r\n };\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n const { user } = this.state;\r\n\r\n if (!user.oldPassword || user.oldPassword.trim() == '') {\r\n message += Translate('Please enter Old Password') + \". \";\r\n }\r\n\r\n if (!user.newPassword || user.newPassword.trim() == '') {\r\n message += Translate('Please enter New Password') + \". \";\r\n }\r\n\r\n if (!user.confirmPassword || user.confirmPassword.trim() == '') {\r\n message += Translate('Please enter Confirm Password') + \". \";\r\n }\r\n\r\n if (user.newPassword && user.newPassword.trim() != '' &&\r\n user.confirmPassword && user.confirmPassword.trim() != '' &&\r\n user.newPassword != user.confirmPassword) {\r\n message += Translate('New Password and Confirm Password are different') + \". \";\r\n }\r\n\r\n message ? this.growl.show({ severity: 'error', summary: message }) : null;\r\n\r\n return message == '';\r\n }\r\n\r\n handleChangeButtonClick = event => {\r\n event.preventDefault();\r\n\r\n if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { user, userId } = this.state;\r\n\r\n user.userId = userId;\r\n\r\n this.userService.changePassword(user).then(\r\n (data: any) => {\r\n if (data) {\r\n let user = this.state.user;\r\n user.oldPassword = '';\r\n user.newPassword = '';\r\n user.confirmPassword = '';\r\n this.setState({\r\n isLoading: false,\r\n user: user\r\n });\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully changed your Password.') });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleChangeButtonClick(e);\r\n }\r\n }\r\n\r\n public render() {\r\n const { isLoading, user } = this.state;\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n this.handleChange('oldPassword', e.target['value'])}\r\n value={user && user.oldPassword ? user.oldPassword : \"\"}\r\n />\r\n
    \r\n
    \r\n this.handleChange('newPassword', e.target['value'])}\r\n value={user && user.newPassword ? user.newPassword : \"\"}\r\n />\r\n
    \r\n
    \r\n this.handleChange('confirmPassword', e.target['value'])}\r\n value={user && user.confirmPassword ? user.confirmPassword : \"\"}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {/*
    \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default UserChangePasswordTab;","import * as React from \"react\";\r\nimport { BrowserRouter, Route, Link, Switch, Redirect, withRouter } from \"react-router-dom\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { UserModel } from '../../../models/user/userModel';\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport { connect } from 'react-redux';\r\nimport * as actionTypes from '../../../store/actionTypes';\r\nimport FileSaver from 'file-saver';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faDownload, faFile } from '@fortawesome/free-solid-svg-icons';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport CardContent from '@material-ui/core/CardContent';\r\n\r\ninterface IProps {\r\n history: any,\r\n onUserLogout: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserModel;\r\n isVisibleConfirmDialog: boolean;\r\n}\r\n\r\nclass UserInformationTab extends React.Component {\r\n\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserModel(),\r\n isVisibleConfirmDialog: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleGetAccounInfoButton = (event, type) => {\r\n event.preventDefault();\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.getAccountInfo(this.props.lang).then(\r\n (data: any) => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n if (data) {\r\n let res = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });\r\n if (type == 'view') {\r\n if (window.navigator && window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(res);\r\n }\r\n else {\r\n var url = window.URL.createObjectURL(res);\r\n window.open(url);\r\n }\r\n } else {\r\n FileSaver.saveAs(res, \"UserInformation.json\");\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleDeleteAccountButton = event => {\r\n event.preventDefault();\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n deleleteAccount = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.deleteAccountPermanently().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.authService.logout();\r\n setTimeout(() => {\r\n this.props.onUserLogout();\r\n this.props.history.push(`/`);\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n\r\n public render() {\r\n const { isLoading } = this.state;\r\n const userId = this.authService.getUserId();\r\n\r\n return (\r\n
    \r\n {isLoading ? : null}\r\n\r\n this.growl = el} />\r\n\r\n
    \r\n
    \r\n \r\n \r\n

    \r\n {Translate('Download Your Information')}\r\n

    \r\n
    \r\n {Translate('DownloadYourInformationDescription')}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n \r\n

    \r\n {Translate('Permanently Delete Account')}\r\n

    \r\n
    \r\n {Translate('DeleteAccountPermanentlyDescription')}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n {/* \r\n
    \r\n {Translate('DeleteAccountPermanentlyDescription')}\r\n
    \r\n
    \r\n \r\n
    \r\n
    */}\r\n
    \r\n
    \r\n\r\n { this.setState({ isVisibleConfirmDialog: false }); this.deleleteAccount() }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate('Are you sure that you want to delete your Account permanently?')}\r\n \r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserLogout: () => dispatch({ type: actionTypes.USER_LOGOUT })\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default withRouter(connect(mapsStateToProps, mapDispatchToProps)(UserInformationTab));","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport UserAccountTab from './userAccountTab';\r\nimport UserPersonalDataTab from './userPersonalDataTab';\r\nimport UserChangePasswordTab from './userChangePasswordTab';\r\nimport UserInformationTab from './userInformationTab';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\n\r\ninterface IProps {\r\n history: any\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n activeIndex: any;\r\n}\r\n\r\nclass UserProfileComponent extends React.Component {\r\n\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n activeIndex: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleTabMenuchange = (event, value) => {\r\n if (value != null) {\r\n this.setState({ activeIndex: value });\r\n } else {\r\n this.setState({ activeIndex: null });\r\n }\r\n }\r\n\r\n onCancelClick = () => {\r\n {\r\n this.setState({ activeIndex: null });\r\n }\r\n }\r\n\r\n onSave = () => {\r\n //Function is empty because we need props.onSave\r\n //in user family to close the popup, here we \r\n //don't need it but if is not iplemented there is a error\r\n }\r\n\r\n public render() {\r\n const { isLoading, activeIndex } = this.state;\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Profile')}

    \r\n\r\n
    \r\n this.handleTabMenuchange(e, e.index)}>\r\n \r\n {activeIndex == 0 ?\r\n \r\n : null}\r\n \r\n \r\n {activeIndex == 1 ?\r\n \r\n : null}\r\n \r\n \r\n {activeIndex == 2 ?\r\n \r\n : null}\r\n \r\n \r\n {activeIndex == 3 ?\r\n \r\n : null}\r\n \r\n \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default UserProfileComponent;","import { MedicineForListModel } from '../medicineForListModel';\r\nimport { UserMedicineHistoryModel } from './userMedicineHistoryModel';\r\n\r\nexport class UserMedicineModel {\r\n public userId: number;\r\n public medicine: MedicineForListModel;\r\n public userMedicineHistory: Array;\r\n}","import { UserNotificationModel } from './userNotificationModel';\r\n\r\nexport class UserMedicineHistoryModel {\r\n public userMedicineHistoryId: number;\r\n public userMedicineId: number;\r\n public userId: number;\r\n public medicineId: number;\r\n public medicineName: string;\r\n public authorisationStatus: number;\r\n public startDate?: string;\r\n public endDate?: string;\r\n public singleDose: string;\r\n public frequencyOfIntake: string;\r\n public intakeConditions: string;\r\n public comments: string;\r\n public prescriptionName: string;\r\n public userNotifications: Array;\r\n public notificationsCount: number;\r\n public prescriptionDoctor: string;\r\n public prescriptionId: number;\r\n}","import * as React from 'react';\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Toolbar } from 'primereact/toolbar';\r\nimport { MedicineFilterSettings } from \"../../../models/medicineFilterSettings\";\r\nimport AlphabeticalFilter from '../../../common/components/alphabeticalFilter/alphabeticalFilter';\r\nimport Translate from '../../../common/functions/translate';\r\n\r\ninterface MedicinesFilterProps {\r\n onSearchClick: any,\r\n totalRecordsCount: number,\r\n lang: string\r\n onClearClick: any;\r\n}\r\n\r\ninterface MedicinesFilterState {\r\n medicineSettings: MedicineFilterSettings,\r\n selectedType: null,\r\n selectedGroup: null,\r\n filterText: string\r\n}\r\n\r\nexport class MedicineFilter extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n medicineSettings: new MedicineFilterSettings(),\r\n selectedType: null,\r\n selectedGroup: null,\r\n filterText: ''\r\n };\r\n }\r\n\r\n handleAlphaIndexChange = (e, letter: string) => {\r\n e.preventDefault();\r\n let currentSettings: MedicineFilterSettings = this.state.medicineSettings;\r\n currentSettings.name = '';\r\n currentSettings.alphaIndex = letter;\r\n const fiterText = this.generateFilterText(currentSettings);\r\n this.setState({\r\n medicineSettings: currentSettings,\r\n filterText: fiterText\r\n });\r\n this.handleSearchButtonClick();\r\n }\r\n\r\n handleChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value\r\n const name = target.name;\r\n\r\n const currentSettings: MedicineFilterSettings = { ...this.state.medicineSettings };\r\n currentSettings.name = value;\r\n currentSettings.alphaIndex = '';\r\n const fiterText = this.generateFilterText(currentSettings);\r\n this.setState({\r\n medicineSettings: { ...currentSettings },\r\n filterText: fiterText\r\n }, this.searchByName);\r\n }\r\n\r\n searchByName = () => {\r\n if (this.state.medicineSettings && this.state.medicineSettings.name && this.state.medicineSettings.name.length >= 3) {\r\n this.handleSearchButtonClick()\r\n }\r\n }\r\n\r\n generateFilterText = (settings) => {\r\n let result = '';\r\n\r\n if (settings.alphaIndex) {\r\n result += Translate(\"Start with\") + \" '\" + settings.alphaIndex + \"', \"\r\n }\r\n\r\n if (settings.name) {\r\n result += Translate(\"Name\") + \" '\" + settings.name + \"', \"\r\n }\r\n\r\n if (settings.title) {\r\n result += Translate(\"Title\") + \" '\" + settings.title + \"', \"\r\n }\r\n\r\n if (settings.number) {\r\n result += Translate(\"Number\") + \" '\" + settings.number + \"', \"\r\n }\r\n\r\n return result.substr(0, result.length - 2);\r\n }\r\n\r\n handleSearchButtonClick = () => {\r\n this.props.onSearchClick(this.state.medicineSettings);\r\n }\r\n\r\n handleClearButtonClick = () => {\r\n let currentSettings: MedicineFilterSettings = this.state.medicineSettings;\r\n currentSettings.name = '';\r\n currentSettings.alphaIndex = '';\r\n this.setState({\r\n medicineSettings: currentSettings,\r\n filterText: ''\r\n });\r\n this.props.onClearClick();\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick()\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('BrowseAlphabetically')}:\r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Result')}: {this.props.totalRecordsCount}\r\n {this.state.filterText ? ', ' : ''}\r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default MedicineFilter;\r\n","import * as React from 'react';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faAngleLeft, faAngleRight, faAngleDoubleLeft, faAngleDoubleRight } from '@fortawesome/free-solid-svg-icons';\r\nimport * as Constants from '../../../common/constants';\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core\";\r\n\r\nconst pagingItems = (props) => {\r\n let pageItems = new Array();\r\n\r\n if (props.numberOfPages > 1) {\r\n for (let i = 1; i <= props.numberOfPages; i++) {\r\n pageItems.push(i);\r\n }\r\n }\r\n return pageItems;\r\n}\r\n\r\n\r\nconst paginator = (props) => {\r\n\r\n let items = pagingItems(props);\r\n\r\n if (items.length < 2) {\r\n return null;\r\n }\r\n\r\n let paginator: Array = new Array();\r\n if (props.onlyArrows) {\r\n let startEl: Array = [\r\n props.paginataorClick(props.page - 1)}\r\n >,\r\n props.paginataorClick(1)}\r\n >]\r\n let endEl: Array = [\r\n props.paginataorClick(items.length)}\r\n >,\r\n props.paginataorClick(props.page + 1)}\r\n >\r\n ]\r\n\r\n paginator = [\r\n\r\n ];\r\n if (props.page == 1) {\r\n paginator.splice(0, 1);\r\n }\r\n if (props.page == items.length) {\r\n paginator.splice(2, 1);\r\n }\r\n\r\n paginator.splice(0, 0, ...endEl);\r\n paginator.push(...startEl)\r\n }\r\n\r\n else {\r\n if (items.length <= 5) {\r\n paginator = items.map(item => {\r\n return (\r\n props.paginataorClick(item)}\r\n >{item}\r\n )\r\n })\r\n }\r\n\r\n else {\r\n\r\n let startEl: Array = [\r\n props.paginataorClick(1)}\r\n >,\r\n props.paginataorClick(props.page - 1)}\r\n >]\r\n let endEl: Array = [\r\n props.paginataorClick(props.page + 1)}\r\n >,\r\n props.paginataorClick(items.length)}\r\n >\r\n ]\r\n\r\n paginator = [\r\n props.paginataorClick(props.page - 1)}\r\n >{props.page - 1},\r\n props.paginataorClick(props.page)}\r\n variant=\"contained\" size=\"small\"\r\n color=\"primary\"\r\n >{props.page},\r\n props.paginataorClick(props.page + 1)}\r\n >{props.page + 1}\r\n ];\r\n if (props.page == 1) {\r\n paginator.splice(0, 1);\r\n paginator.push( props.paginataorClick(props.page + 2)}\r\n >{props.page + 2})\r\n }\r\n if (props.page == items.length) {\r\n paginator.splice(2, 1);\r\n paginator.splice(0, 0, props.paginataorClick(props.page - 2)}\r\n >{props.page - 2});\r\n }\r\n\r\n paginator.splice(0, 0, ...startEl);\r\n paginator.push(...endEl)\r\n }\r\n }\r\n return (\r\n
    \r\n \r\n {paginator}\r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default paginator;","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { MedicineForListModel, MedicineListModel } from \"../../../models\";\r\nimport { MedicineFilterSettings } from \"../../../models/medicineFilterSettings\";\r\nimport MedicineService from '../../../services/medicineService';\r\nimport UserService from '../../../services/userService';\r\nimport MedicineFilter from './medicineFilter';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport { UserMedicineModel } from '../../../models/user/userMedicineModel';\r\nimport Paginator from '../../../common/components/paginator/paginator';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IProps {\r\n isVisible: boolean\r\n addMedicineClick: any,\r\n cancelClick: any,\r\n dialogError: any,\r\n clearDialogError: any,\r\n userId: number,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicines: Array;\r\n selectedMedicine: MedicineForListModel;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n medicineSettings: MedicineFilterSettings;\r\n searchText: string;\r\n page: number;\r\n numberOfPages: number;\r\n}\r\n\r\nclass MedicineSearchDialog extends React.Component {\r\n growl: any;\r\n medicineService = new MedicineService();\r\n userService = new UserService();\r\n initFrom = 0;\r\n numberOfRows = 10;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n medicines: new Array(0),\r\n selectedMedicine: new MedicineForListModel(),\r\n from: this.initFrom,\r\n numberOfRows: this.numberOfRows,\r\n totalRecordsCount: 0,\r\n medicineSettings: new MedicineFilterSettings(),\r\n searchText: '',\r\n page: 1,\r\n numberOfPages: 1\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n //this.getAllFilteredItems(this.state.page, this.state.numberOfRows, this.state.medicineSettings);\r\n }\r\n\r\n handleAddButton = (event) => {\r\n event.preventDefault();\r\n\r\n let usermedicine: UserMedicineModel = new UserMedicineModel();\r\n usermedicine.medicine = this.state.selectedMedicine;\r\n usermedicine.userMedicineHistory = [];\r\n usermedicine.userId = this.props.userId;\r\n this.props.addMedicineClick(usermedicine, true);\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleSelectionChange = (e) => {\r\n this.setState({\r\n selectedMedicine: e\r\n });\r\n }\r\n\r\n handleChange = (key, value) => {\r\n this.setState({ searchText: value });\r\n };\r\n\r\n getAllFilteredItems(page: number, numberOfRows: number, currentFilterSettings: MedicineFilterSettings) {\r\n let from = (page - 1) * this.state.numberOfRows;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getAllMedicines(from, numberOfRows, currentFilterSettings, this.props.lang).then(\r\n (data: MedicineListModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n medicines: data.medicines,\r\n totalRecordsCount: data.totalRecordsCount,\r\n numberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n data.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleSearchButtonClick = (settings) => {\r\n this.setState({\r\n isLoading: true,\r\n page: 1,\r\n medicineSettings: settings\r\n },\r\n () => this.getAllFilteredItems(this.state.page, this.state.numberOfRows, settings)\r\n );\r\n }\r\n\r\n handleClearClick = () => {\r\n this.setState({\r\n page: 1, medicineSettings: new MedicineFilterSettings(), medicines: [], totalRecordsCount: 0, numberOfPages: 0\r\n });\r\n }\r\n\r\n paginataorClick = (page) => {\r\n this.setState({ page: page }, () => this.getAllFilteredItems(page, this.state.numberOfRows, this.state.medicineSettings));\r\n }\r\n\r\n public render() {\r\n const { isLoading, medicines, selectedMedicine, page, numberOfPages, medicineSettings } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Medicines')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n {this.props.dialogError && this.props.dialogError.message ? {this.props.dialogError.message} : null}\r\n\r\n \r\n
    \r\n
      \r\n {medicines && medicines.length > 0 ?\r\n medicines.map((m: MedicineForListModel) =>\r\n
    • this.handleSelectionChange(m)}>\r\n
      \r\n this.handleSelectionChange(m)}\r\n color=\"primary\"\r\n />\r\n
      \r\n
      \r\n
      \r\n {m.brandName}\r\n
      \r\n
      \r\n {m.additionalTitle}\r\n
      \r\n
      \r\n\r\n
    • \r\n ) : null}\r\n
    \r\n {(!medicines || medicines.length == 0) && (!medicineSettings || !medicineSettings.alphaIndex || !medicineSettings.name) ?\r\n {Translate(\"Enter name or select alpha index\")}\r\n : null}\r\n {numberOfPages > 1 ?\r\n
    \r\n \r\n
    \r\n : null}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default MedicineSearchDialog;","import * as React from \"react\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport { UserMedicineHistoryModel } from \"../../../models/user/userMedicineHistoryModel\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { DatePicker } from '@material-ui/pickers';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport MedicineSearchDialog from \"./medicineSearchDialog\";\r\nimport { UserMedicineModel } from \"../../../models/user/userMedicineModel\";\r\nimport { MedicineForListModel } from \"../../../models\";\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Growl from \"../../../common/components/alertMessage/growl\";\r\n\r\ninterface IProps {\r\n //history: any,\r\n addClick: any,\r\n updateClick: any,\r\n cancelClick: any,\r\n isVisible: boolean,\r\n currentUserMedicineHistory: UserMedicineHistoryModel,\r\n lang: string,\r\n userId: number,\r\n isAdd: boolean\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n currentUserMedicineHistory: UserMedicineHistoryModel,\r\n isVisibleSearchMedicineDialog: boolean,\r\n searchDialogError: any,\r\n userMedicine: UserMedicineModel\r\n}\r\n\r\nclass UserMedicineHistoryAddEditDialog extends React.Component {\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n isLoading: false,\r\n currentUserMedicineHistory: props.currentUserMedicineHistory,\r\n isVisibleSearchMedicineDialog: false,\r\n searchDialogError: null,\r\n userMedicine: new UserMedicineModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleSaveButton = (event) => {\r\n event.preventDefault();\r\n\r\n const currentUserMedicineHistory = this.state.currentUserMedicineHistory;\r\n\r\n if (currentUserMedicineHistory.startDate) {\r\n currentUserMedicineHistory.startDate = HelperFunctions.fomatDateAsString(new Date(currentUserMedicineHistory.startDate))\r\n } else {\r\n currentUserMedicineHistory.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (currentUserMedicineHistory.endDate) {\r\n currentUserMedicineHistory.endDate = HelperFunctions.fomatDateAsString(new Date(currentUserMedicineHistory.endDate))\r\n } else {\r\n currentUserMedicineHistory.endDate = HelperFunctions.fomatDateAsString(HelperFunctions.getDayslater(new Date().toString(), 7))\r\n }\r\n\r\n if (currentUserMedicineHistory.endDate && currentUserMedicineHistory.startDate) {\r\n if (currentUserMedicineHistory.endDate < currentUserMedicineHistory.startDate) {\r\n this.growl.show({ severity: 'error', summary: Translate(\"Start date is greater than end date\") });\r\n return;\r\n }\r\n }\r\n\r\n if (currentUserMedicineHistory && currentUserMedicineHistory.userMedicineHistoryId && currentUserMedicineHistory.userMedicineHistoryId > 0) {\r\n this.props.updateClick(currentUserMedicineHistory, close);\r\n }\r\n else {\r\n this.props.addClick(currentUserMedicineHistory, this.state.userMedicine, close);\r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const currentUserMedicineHistory: UserMedicineHistoryModel = { ...this.state.currentUserMedicineHistory };\r\n currentUserMedicineHistory[key] = value;\r\n this.setState({ currentUserMedicineHistory: { ...currentUserMedicineHistory } });\r\n };\r\n\r\n handleMedicineSaveButton = (currentUserMedicine: UserMedicineModel, close: boolean) => {\r\n this.setState({\r\n isVisibleSearchMedicineDialog: false,\r\n userMedicine: currentUserMedicine\r\n });\r\n }\r\n\r\n handleCancelSearchMedicine = () => {\r\n this.setState({\r\n isVisibleSearchMedicineDialog: false,\r\n searchDialogError: null\r\n });\r\n }\r\n\r\n\r\n clearDialogError = () => {\r\n this.setState({\r\n searchDialogError: null\r\n });\r\n }\r\n\r\n handleMedicineRemoveClick(event) {\r\n event.preventDefault();\r\n this.setState({\r\n userMedicine: new UserMedicineModel()\r\n });\r\n }\r\n\r\n handleMedicineAddEditClick() {\r\n this.setState({\r\n isVisibleSearchMedicineDialog: true,\r\n validationMessage: ''\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, currentUserMedicineHistory, isVisibleSearchMedicineDialog, searchDialogError, userMedicine } = this.state;\r\n let medicineInputButton =\r\n
    \r\n \r\n
    \r\n {currentUserMedicineHistory.medicineName}\r\n
    \r\n
    ;\r\n if (!currentUserMedicineHistory || !currentUserMedicineHistory.userMedicineHistoryId || currentUserMedicineHistory.userMedicineHistoryId == 0) {\r\n let classInput = 'float-left-full-width';\r\n if (!userMedicine || !userMedicine.medicine || !userMedicine.medicine.medicineId) {\r\n classInput = 'float-left-calculated-width';\r\n }\r\n medicineInputButton =\r\n
    \r\n
    \r\n
    \r\n \r\n {userMedicine && userMedicine.medicine && userMedicine.medicine.medicineId ?\r\n <>\r\n \r\n \r\n :
    {Translate('No medicine selected')}
    }\r\n
    \r\n {!userMedicine || !userMedicine.medicine || !userMedicine.medicine.medicineId ?\r\n
    \r\n this.handleMedicineAddEditClick()}>\r\n \r\n \r\n
    : null}\r\n
    \r\n
    ;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n {Translate('Medicine History')}\r\n \r\n
    \r\n this.growl = el} />\r\n {medicineInputButton}\r\n
    \r\n
    \r\n this.handleChange('startDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('endDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('singleDose', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('frequencyOfIntake', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('intakeConditions', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n {/*
    \r\n \r\n this.handleChange('comments', e.target['value'])}\r\n />\r\n
    */}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n\r\n {isVisibleSearchMedicineDialog ? (\r\n ) : null\r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserMedicineHistoryAddEditDialog;","export class UserNotificationModel {\r\n public userNotificationId: number;\r\n public userMedicineId?: number;\r\n public userMedicineHistoryId?: number;\r\n public userId?: number;\r\n public notificationScheduleTypeId: number;\r\n public notificationAlarmTypeId: number;\r\n public alarmTime: string;\r\n public description: string;\r\n public isActive: boolean;\r\n public oneTimeExecutionDate?: string;\r\n public notificationFrequencyId?: number;\r\n public notificationFrequencyCounter?: number;\r\n public isSingleDailyOccurance?: boolean;\r\n public startDate?: string;\r\n public endDate?: string;\r\n public dailyFrequencyCounter?: number;\r\n public startTime?: string;\r\n public endTime?: string;\r\n public canBeActivated: boolean;\r\n public minutesForIntake: number;\r\n public caretakerUserId: number;\r\n public timeZoneOffsetInMinutes: number;\r\n public cronExpression: string;\r\n public caretakerName: string;\r\n}","import 'babel-polyfill';\r\nimport * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport { UserNotificationModel } from \"../../../models/user/userNotificationModel\";\r\nimport { NotificationScheduleType, NotificationAlarmType, NotificationFrequency, MinutesForIntake, DayOfWeekOneLetterAbbr, DayOfWeekThreeLetterAbbr } from \"../../../common/enums\";\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport { enumToDropdownArray, weekDayEnumToObjArray, getFrequencyCounterLabel, fomatDateAsString, fomatTimeAsString, fomatDateTimeAsString, getNotificationSummary, formatAlarmTime, fomatDateAsStringNotifications } from '../../../common/functions/helperFunctions';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport { TimePicker, DatePicker } from '@material-ui/pickers';\r\nimport { Checkbox } from '@material-ui/core';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport * as Constants from '../../../common/constants';\r\nimport UserService from \"../../../services/userService\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\n\r\nimport Chip from '@material-ui/core/Chip';\r\nimport Avatar from '@material-ui/core/Avatar';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport TagFacesIcon from '@material-ui/icons/TagFaces';\r\n\r\ninterface IProps {\r\n selectedUserNotification: UserNotificationModel,\r\n isVisible: boolean,\r\n cancelClick: any,\r\n saveClick: any,\r\n //userMedicineHistoryId: number,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n currentUserNotification: UserNotificationModel,\r\n notificationScheduleTypeDropdown: Array;\r\n notificationAlarmTypeDropdown: Array;\r\n notificationFrequencyDropdown: Array;\r\n isFrequencyButtonDisabled: boolean;\r\n summaryContent: string;\r\n //isEndDateDisabled: boolean;\r\n caretakers: Array;\r\n minutesForIntake: Array;\r\n weekDayChips: Array;\r\n isWeekdaySelected: boolean;\r\n}\r\n\r\n\r\nclass UserNotificationAddEditDialog extends React.Component {\r\n medicineService = new MedicineService();\r\n growl: any;\r\n userService = new UserService();\r\n today = new Date();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n currentUserNotification: props.selectedUserNotification,\r\n notificationScheduleTypeDropdown: new Array(0),\r\n notificationAlarmTypeDropdown: new Array(0),\r\n notificationFrequencyDropdown: new Array(0),\r\n isFrequencyButtonDisabled: false,\r\n //isEndDateDisabled: false,\r\n summaryContent: '',\r\n caretakers: new Array(0),\r\n minutesForIntake: new Array(0),\r\n weekDayChips: new Array(0),\r\n isWeekdaySelected: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n this.userService.getAllCaretakers().then(\r\n (data: any) => {\r\n if (data) {\r\n let firstElement: Array = new Array(0);\r\n if (data && data.length > 0) {\r\n firstElement = [{ label: Translate('Select'), value: 0 }];\r\n }\r\n this.setState({ caretakers: firstElement.concat(data), isLoading: false }, () => this.initData());\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n });\r\n }\r\n\r\n initData() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const notificationAlarmTypeDropdown: Array = enumToDropdownArray(NotificationAlarmType, true);\r\n const notificationScheduleTypeDropdown: Array = enumToDropdownArray(NotificationScheduleType, true);\r\n const notificationFrequencyDropdown: Array = enumToDropdownArray(NotificationFrequency, true);\r\n const minutesForIntake: Array = enumToDropdownArray(MinutesForIntake, true);\r\n const weekDayObjArray: Array = weekDayEnumToObjArray(DayOfWeekOneLetterAbbr, true, false, false);\r\n\r\n\r\n this.setState({\r\n notificationAlarmTypeDropdown: notificationAlarmTypeDropdown,\r\n notificationScheduleTypeDropdown: notificationScheduleTypeDropdown,\r\n notificationFrequencyDropdown: notificationFrequencyDropdown,\r\n minutesForIntake: minutesForIntake,\r\n isLoading: false,\r\n isFrequencyButtonDisabled: (this.state.currentUserNotification.notificationScheduleTypeId === 1) ? true : false,\r\n weekDayChips: weekDayObjArray\r\n });\r\n\r\n this.handleSummaryContent(this.state.currentUserNotification);\r\n }\r\n\r\n handleSummaryContent(currentUserNotification: UserNotificationModel) {\r\n let summaryContent = getNotificationSummary(currentUserNotification, this.props.lang);\r\n\r\n this.setState({\r\n summaryContent: summaryContent\r\n });\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const currentUserNotification: UserNotificationModel = { ...this.state.currentUserNotification };\r\n currentUserNotification[key] = value;\r\n\r\n if (key === \"notificationScheduleTypeId\" && value !== this.state.currentUserNotification.notificationScheduleTypeId) {\r\n let theNextHour: Date = new Date();\r\n theNextHour.setHours(theNextHour.getHours() + 1, 0)\r\n currentUserNotification.alarmTime = theNextHour.toUTCString();\r\n }\r\n\r\n if (key == \"caretakerUserId\" && !currentUserNotification.minutesForIntake) {\r\n currentUserNotification.minutesForIntake = 5;\r\n }\r\n\r\n if (key === \"alarmTime\") {\r\n if (this.state.currentUserNotification.notificationScheduleTypeId == NotificationScheduleType.OneTime) {\r\n let date = new Date(currentUserNotification && currentUserNotification.oneTimeExecutionDate ? currentUserNotification.oneTimeExecutionDate : new Date());\r\n currentUserNotification.oneTimeExecutionDate = new Date(date.getFullYear(), date.getMonth(), date.getDate(), value.getHours(), value.getMinutes()).toUTCString();\r\n }\r\n\r\n if (this.state.currentUserNotification.notificationScheduleTypeId == NotificationScheduleType.Recurring) {\r\n let startDate = new Date(currentUserNotification && currentUserNotification.startDate ? currentUserNotification.startDate : new Date());\r\n currentUserNotification.startDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), value.getHours(), value.getMinutes()).toUTCString();\r\n // if (!this.state.isEndDateDisabled) {\r\n // let endDate = new Date(currentUserNotification && currentUserNotification.endDate ? currentUserNotification.endDate : new Date());\r\n // currentUserNotification.endDate = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate(), value.getHours(), value.getMinutes()).toUTCString();\r\n // }\r\n }\r\n }\r\n\r\n if (key === \"notificationScheduleTypeId\") {\r\n if (value == NotificationScheduleType.OneTime) {\r\n currentUserNotification.startDate = undefined;\r\n currentUserNotification.endDate = undefined;\r\n }\r\n if (value == NotificationScheduleType.Recurring) {\r\n currentUserNotification.oneTimeExecutionDate = undefined;\r\n // if (this.state.isEndDateDisabled) {\r\n // currentUserNotification.endDate = undefined;\r\n // }\r\n }\r\n }\r\n\r\n this.setState({\r\n currentUserNotification: { ...currentUserNotification },\r\n isFrequencyButtonDisabled: (currentUserNotification.notificationScheduleTypeId === 1) ? true : false\r\n });\r\n\r\n this.handleSummaryContent(currentUserNotification);\r\n };\r\n\r\n handleDateTimeChange = (key, value) => {\r\n const currentUserNotification: UserNotificationModel = { ...this.state.currentUserNotification };\r\n\r\n let datePart = fomatDateAsString(value);\r\n let timePart = fomatTimeAsString(new Date(currentUserNotification[key]));\r\n\r\n let newValue = datePart;// + \" \" + timePart;\r\n value = new Date(newValue);\r\n\r\n currentUserNotification[key] = value;\r\n this.setState({\r\n currentUserNotification: { ...currentUserNotification },\r\n isFrequencyButtonDisabled: (currentUserNotification.notificationScheduleTypeId === 1) ? true : false\r\n });\r\n\r\n this.handleSummaryContent(currentUserNotification);\r\n };\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleSaveButton = event => {\r\n let currentUserNotification = this.state.currentUserNotification;\r\n\r\n if (currentUserNotification.notificationScheduleTypeId == NotificationScheduleType.Recurring) {\r\n let startDate = new Date(currentUserNotification && currentUserNotification.startDate ? currentUserNotification.startDate : new Date());\r\n currentUserNotification.startDate = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate(), 0, 0, 0).toUTCString();\r\n\r\n // if (!this.state.isEndDateDisabled) {\r\n // let endDate = new Date(currentUserNotification && currentUserNotification.endDate ? currentUserNotification.endDate : new Date());\r\n // currentUserNotification.endDate = new Date(endDate.getFullYear(), endDate.getMonth(), endDate.getDate(), 23, 59, 59).toUTCString();\r\n // }\r\n }\r\n\r\n let result = this.hadleObjectValidation(JSON.parse(JSON.stringify(currentUserNotification)));\r\n\r\n this.growl.show({ severity: 'error', summary: result });\r\n\r\n if (!result) {\r\n //currentUserNotification.userMedicineHistoryId = this.props.userMedicineHistoryId;\r\n this.props.saveClick(currentUserNotification);\r\n }\r\n }\r\n\r\n setCurrentCronExpression(currentUserNotification: UserNotificationModel) {\r\n // cronExpression = \"* * * * * *\" => minute | hour | day | month | weekday | year\r\n\r\n let cronExpression: string;\r\n if (currentUserNotification.notificationScheduleTypeId === 1) {\r\n cronExpression: \"\"\r\n }\r\n }\r\n\r\n hadleObjectValidation(currentUserNotification: UserNotificationModel) {\r\n if (!currentUserNotification.alarmTime) {\r\n return Translate(\"Alarm time cannot be empty\");\r\n }\r\n\r\n let alarmTime = formatAlarmTime(currentUserNotification.alarmTime);\r\n\r\n if (currentUserNotification.notificationScheduleTypeId === 1) {\r\n if (!currentUserNotification.oneTimeExecutionDate) {\r\n return Translate(\"Date cannot be empty\");\r\n }\r\n\r\n let currentDateTime = fomatDateTimeAsString(new Date());\r\n let alarmDate = fomatDateAsStringNotifications(new Date(currentUserNotification.oneTimeExecutionDate));\r\n let alarmDateTime = alarmDate + \" \" + alarmTime;\r\n\r\n if (currentDateTime >= alarmDateTime) {\r\n return Translate(\"Alarm date and/or time\") + \" (\" + alarmDateTime + \") \" + Translate(\"are lesser than current time\")\r\n + \" (\" + currentDateTime + \")\" + \". \" + Translate(\"Alarm will never execute\");\r\n }\r\n\r\n currentUserNotification.oneTimeExecutionDate = alarmDateTime;\r\n currentUserNotification.alarmTime = alarmTime;\r\n currentUserNotification.notificationFrequencyId = undefined;\r\n currentUserNotification.notificationFrequencyCounter = undefined;\r\n currentUserNotification.isSingleDailyOccurance = undefined;\r\n currentUserNotification.startDate = undefined;\r\n currentUserNotification.endDate = undefined;\r\n currentUserNotification.dailyFrequencyCounter = undefined;\r\n currentUserNotification.startTime = undefined;\r\n currentUserNotification.endTime = undefined;\r\n\r\n return \"\";\r\n }\r\n else {\r\n if (!currentUserNotification.notificationFrequencyId || currentUserNotification.notificationFrequencyId === -1) {\r\n return Translate(\"Please choose frequency\");\r\n }\r\n\r\n if (!currentUserNotification.notificationFrequencyCounter || currentUserNotification.notificationFrequencyCounter < 1) {\r\n return Translate(\"Please choose counter\");\r\n }\r\n\r\n if (!currentUserNotification.startDate) {\r\n return Translate(\"Start date cannot be empty\");\r\n }\r\n\r\n currentUserNotification.startDate = fomatDateAsString(new Date(currentUserNotification.startDate));\r\n currentUserNotification.alarmTime = alarmTime;\r\n\r\n if (currentUserNotification.endDate) {\r\n currentUserNotification.endDate = fomatDateAsString(new Date(currentUserNotification.endDate));\r\n\r\n if (currentUserNotification.endDate < currentUserNotification.startDate) {\r\n return Translate(\"Start date is greater than end date\");\r\n }\r\n\r\n if (currentUserNotification.endDate < fomatDateAsString(new Date())) {\r\n return Translate(\"End date is lesser than today\") + \". \" + Translate(\"Alarm will never execute\");\r\n }\r\n }\r\n\r\n currentUserNotification.oneTimeExecutionDate = undefined;\r\n currentUserNotification.dailyFrequencyCounter = undefined;\r\n currentUserNotification.startTime = undefined;\r\n currentUserNotification.endTime = undefined;\r\n currentUserNotification.isSingleDailyOccurance = undefined;\r\n\r\n return \"\"\r\n }\r\n }\r\n\r\n\r\n\r\n handleWeekdayChipClick = (key) => {\r\n let weekDayChips: Array = this.state.weekDayChips;\r\n if (weekDayChips && weekDayChips.length > 0) {\r\n\r\n let clickedIndex = weekDayChips.findIndex(c => c.value === key);\r\n\r\n weekDayChips[clickedIndex].isSelected = !weekDayChips[clickedIndex].isSelected;\r\n this.setState({\r\n weekDayChips: weekDayChips\r\n });\r\n }\r\n }\r\n\r\n handleWeekDayCheckBox = (value) => {\r\n let weekDayChips: Array = this.state.weekDayChips;\r\n\r\n if (weekDayChips && weekDayChips.length > 0) {\r\n\r\n weekDayChips.map(c => c.isSelected = value);\r\n\r\n this.setState({\r\n weekDayChips: weekDayChips\r\n });\r\n }\r\n\r\n this.setState({\r\n isWeekdaySelected: value\r\n });\r\n }\r\n\r\n clearDate = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n let currentUserNotification = { ...this.state.currentUserNotification }\r\n currentUserNotification.endDate = undefined;\r\n this.setState({ currentUserNotification: currentUserNotification });\r\n this.handleSummaryContent(currentUserNotification);\r\n }\r\n\r\n render() {\r\n let { currentUserNotification, notificationFrequencyDropdown, notificationScheduleTypeDropdown,\r\n notificationAlarmTypeDropdown, isFrequencyButtonDisabled, caretakers, minutesForIntake, isLoading, weekDayChips, isWeekdaySelected } = this.state;\r\n\r\n let FrequencyCounterLabel = getFrequencyCounterLabel(currentUserNotification.notificationFrequencyId, true);\r\n\r\n let oneTimeExecutionElement =\r\n <>\r\n
    \r\n this.handleChange('oneTimeExecutionDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('alarmTime', e)}\r\n />\r\n
    \r\n ;\r\n\r\n let globalFrequencyElement =\r\n <>\r\n
    \r\n
    \r\n \r\n {Translate('Frequency')}\r\n this.handleChange('notificationFrequencyId', e.target.value)}\r\n inputProps={{\r\n name: 'frequency',\r\n id: 'frequency-label'\r\n }}>\r\n {notificationFrequencyDropdown.map(m => {m.label})}\r\n \r\n \r\n
    \r\n
    \r\n {/*
    */}\r\n {currentUserNotification.notificationFrequencyId && currentUserNotification.notificationFrequencyId === 3\r\n ?\r\n
    \r\n \r\n
    \r\n this.handleWeekDayCheckBox(e.target['checked'])}\r\n color=\"primary\"\r\n inputProps={{\r\n name: 'selectAll',\r\n id: 'select-all'\r\n }} />\r\n \r\n {weekDayChips && weekDayChips.length > 0\r\n ?\r\n weekDayChips.map(m =>\r\n this.handleWeekdayChipClick(m.value)}\r\n //size=\"small\"\r\n //variant=\"outlined\"\r\n //className={classes.chip}\r\n />\r\n )\r\n :\r\n null}\r\n \r\n
    \r\n
    \r\n :\r\n
    \r\n this.handleChange('notificationFrequencyCounter', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    }\r\n ;\r\n\r\n let dailyFrequencyContainer =\r\n
    \r\n
    \r\n this.handleDateTimeChange('startDate', e)}\r\n />\r\n
    \r\n
    \r\n \r\n
    \r\n\r\n {/* */}\r\n this.handleChange('endDate', e)}\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n this.handleChange('alarmTime', e)}\r\n />\r\n
    \r\n
    \r\n ;\r\n\r\n return (\r\n \r\n {Translate('Alarms')}\r\n \r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n
    \r\n
    \r\n
    \r\n \r\n {Translate('Notification Type')}\r\n this.handleChange('notificationAlarmTypeId', e.target.value)}\r\n inputProps={{\r\n name: 'notificationAlarmType',\r\n id: 'notification-alarm-label'\r\n }}>\r\n {notificationAlarmTypeDropdown.map(m => {m.label})}\r\n \r\n \r\n
    \r\n
    \r\n \r\n {Translate('Recurrency Type')}\r\n this.handleChange('notificationScheduleTypeId', e.target.value)}\r\n inputProps={{\r\n name: 'notificationScheduleType',\r\n id: 'notification-schedule-label'\r\n }}>\r\n {notificationScheduleTypeDropdown.map(m => {m.label})}\r\n \r\n \r\n
    \r\n {isFrequencyButtonDisabled ? oneTimeExecutionElement : globalFrequencyElement}\r\n
    \r\n
    \r\n\r\n\r\n {/* Daily frequency container */}\r\n {isFrequencyButtonDisabled ? null : dailyFrequencyContainer}\r\n {caretakers && caretakers.length > 0 ?\r\n
    \r\n
    \r\n \r\n {Translate('SendNotification')}\r\n this.handleChange('caretakerUserId', e.target.value)}\r\n inputProps={{\r\n name: 'caretakerUser',\r\n id: 'caretaker-user-label'\r\n }}>\r\n {caretakers.map(m => {m.label})}\r\n \r\n \r\n
    \r\n {currentUserNotification && currentUserNotification.caretakerUserId && currentUserNotification.caretakerUserId > 0 ?\r\n
    \r\n \r\n {Translate('IfItsNotTaken')}\r\n this.handleChange('minutesForIntake', e.target.value)}\r\n inputProps={{\r\n name: 'minutesForIntake',\r\n id: 'minutes-intake-label'\r\n }}>\r\n {minutesForIntake.map(m => {m.label})}\r\n \r\n \r\n
    \r\n : null}\r\n
    \r\n : null}\r\n {/* Notes and summary container */}\r\n
    \r\n
    \r\n
    \r\n this.handleChange('description', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n {this.state.summaryContent}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserNotificationAddEditDialog;","import * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { UserMedicineHistoryModel } from '../../../models/user/userMedicineHistoryModel';\r\nimport UserService from '../../../services/userService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { UserNotificationModel } from \"../../../models/user/userNotificationModel\";\r\nimport UserNotificationAddEditDialog from './userNotificationAddEditDialog'\r\nimport { NotificationScheduleType, NotificationAlarmType } from \"../../../common/enums\";\r\nimport { fomatDateTimeAsString, getNotificationSummary, fomatDateAsString, fomatTimeAsString } from '../../../common/functions/helperFunctions';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTimesCircle, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\r\nimport blue from '@material-ui/core/colors/blue';\r\nimport Button from '@material-ui/core/Button';\r\nimport * as Constants from '../../../common/constants'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { connect } from 'react-redux';\r\nimport * as actionTypes from '../../../store/actionTypes';\r\nimport { NotificationSchedulerModel } from '../../../models/notificationSchedulerModel';\r\n\r\nconst materialTheme = createMuiTheme({\r\n overrides: {\r\n MuiSwitch: {\r\n switchBase: {\r\n height: '26px'\r\n },\r\n },\r\n },\r\n palette: {\r\n primary: blue,\r\n },\r\n});\r\n\r\ninterface IProps {\r\n isVisible: boolean,\r\n closeClick: any,\r\n userMedicineHistoryId: number,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n currentMedicineHistory: UserMedicineHistoryModel;\r\n isVisibleNotificationAddEditDDialog: boolean,\r\n currrentUserNotification: UserNotificationModel,\r\n isVisibleConfirmDialog: boolean;\r\n isActivePushNotifications: boolean,\r\n isVisibleNotificationConfirm: boolean,\r\n newUserNotification: UserNotificationModel\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 10;\r\n\r\nclass UserNotificationListDialog extends React.Component {\r\n userService = new UserService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n validationMessage: '',\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n currentMedicineHistory: new UserMedicineHistoryModel(),\r\n isVisibleNotificationAddEditDDialog: false,\r\n currrentUserNotification: new UserNotificationModel(),\r\n isVisibleConfirmDialog: false,\r\n isActivePushNotifications: false,\r\n isVisibleNotificationConfirm: false,\r\n newUserNotification: new UserNotificationModel()\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getMedicineNotifications(this.props.userMedicineHistoryId)\r\n }\r\n\r\n setCurrentMedicineHistory(currentMedicineHistory: UserMedicineHistoryModel) {\r\n this.setState({ currentMedicineHistory: { ...currentMedicineHistory } });\r\n }\r\n\r\n getMedicineNotifications = (userMedicineHistoryId) => {\r\n if (!userMedicineHistoryId) {\r\n this.growl.show({ severity: 'error', summary: \"MedicneID not valid\" });\r\n } else {\r\n this.setState({\r\n isLoading: true\r\n });\r\n this.userService.getHistoryNotifications(userMedicineHistoryId, this.props.lang)\r\n .then(\r\n (data: UserMedicineHistoryModel) => {\r\n this.setCurrentMedicineHistory(data);\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.userHasPushSubscription();\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n showUserNotificationDialog = (show: boolean) => {\r\n this.setState({\r\n isVisibleNotificationAddEditDDialog: show\r\n });\r\n }\r\n\r\n handleUserNotificationAddClick = () => {\r\n let theNextHour: Date = new Date();\r\n theNextHour.setHours(theNextHour.getHours() + 1, 0)\r\n let newUserNotification = new UserNotificationModel();\r\n newUserNotification.isSingleDailyOccurance = true;\r\n newUserNotification.isActive = true;\r\n newUserNotification.notificationScheduleTypeId = 1;\r\n newUserNotification.notificationAlarmTypeId = 2;\r\n newUserNotification.notificationFrequencyId = 2;\r\n newUserNotification.notificationFrequencyCounter = 1;\r\n newUserNotification.userMedicineHistoryId = this.state.currentMedicineHistory.userMedicineHistoryId;\r\n newUserNotification.userId = this.state.currentMedicineHistory.userId;\r\n newUserNotification.timeZoneOffsetInMinutes = (new Date()).getTimezoneOffset();\r\n\r\n newUserNotification.alarmTime = theNextHour.toUTCString();\r\n newUserNotification.oneTimeExecutionDate = theNextHour.toUTCString();\r\n\r\n // let netificationStartDate = this.state.currentMedicineHistory.startDate;\r\n // if (netificationStartDate) {\r\n // newUserNotification.startDate = fomatDateTimeAsString(new Date(fomatDateAsString(new Date(netificationStartDate)) + \" \" + fomatTimeAsString(new Date())));\r\n // } else {\r\n // newUserNotification.startDate = new Date().toUTCString();\r\n // }\r\n\r\n // if (this.state.currentMedicineHistory.endDate) {\r\n // newUserNotification.endDate = new Date(this.state.currentMedicineHistory.endDate).toUTCString();\r\n // } else {\r\n // newUserNotification.endDate = new Date().toUTCString();\r\n // }\r\n\r\n // newUserNotification.startTime = fomatDateTimeAsString(new Date(fomatDateAsString(new Date(newUserNotification.startDate)) + \" 00:00:00\"));\r\n // newUserNotification.endTime = fomatDateTimeAsString(new Date(fomatDateAsString(new Date(newUserNotification.startDate)) + \" 23:59:59\"));\r\n\r\n this.setState({\r\n currrentUserNotification: newUserNotification,\r\n isVisibleNotificationAddEditDDialog: true\r\n });\r\n }\r\n\r\n handleUserNotificationDialogCancelButton = () => {\r\n this.setState({\r\n isVisibleNotificationAddEditDDialog: false\r\n });\r\n }\r\n\r\n userHasPushSubscription() {\r\n navigator.serviceWorker.getRegistration().then((registration: any) => {\r\n if (registration) {\r\n registration.pushManager.getSubscription()\r\n .then(subscription => {\r\n if (subscription) {\r\n this.setState({\r\n isActivePushNotifications: true\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n\r\n subscribeForPushNotifications() {\r\n this.setState({ isVisibleNotificationConfirm: false });\r\n\r\n const pushIsSupported: boolean = 'serviceWorker' in navigator && 'PushManager' in window;\r\n\r\n if (!pushIsSupported)\r\n return;\r\n\r\n let applicationServerPublicKey = HelperFunctions.urlB64ToUint8Array(Constants.applicationServerPublicKey);\r\n navigator.serviceWorker.getRegistration()\r\n .then((registration: any) => {\r\n if (registration) {\r\n registration.pushManager.getSubscription()\r\n .then(subscription => {\r\n if (subscription) {\r\n // subscription present, no need to register subscription again\r\n this.growl.show({ severity: 'success', summary: Translate('You have already subscribed for Notifications.') });\r\n this.setState({\r\n isLoading: false\r\n });\r\n return;\r\n }\r\n\r\n registration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n applicationServerKey: applicationServerPublicKey\r\n })\r\n .then(subscription => {\r\n this.userService.createPushSubscription(subscription)\r\n .then((data: any) => {\r\n if (data) {\r\n this.setState({\r\n isActivePushNotifications: true,\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully subscribed for Notifications.') });\r\n }\r\n })\r\n .catch(error => this.catchErrorFailedToSubscribe(error));\r\n })\r\n .catch(error => this.catchErrorFailedToSubscribe(error));\r\n })\r\n .catch(error => this.catchErrorFailedToSubscribe(error));\r\n } else {\r\n this.catchErrorFailedToSubscribe({ message: '' })\r\n }\r\n });\r\n }\r\n\r\n catchErrorFailedToSubscribe = (error) => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: Translate('Failed to subscribe for Push Notifications:') + error.message });\r\n }\r\n\r\n handleUserNotificationAddDialogSaveButton = (userNotification: UserNotificationModel) => {\r\n this.showUserNotificationDialog(false);\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const currentMedicineHistory: UserMedicineHistoryModel = { ...this.state.currentMedicineHistory };\r\n\r\n if (!userNotification.userNotificationId) {\r\n this.userService.addNotification(userNotification, this.props.lang)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.getMedicineNotifications(currentMedicineHistory.userMedicineHistoryId);\r\n if (userNotification.notificationAlarmTypeId == NotificationAlarmType.PushNotification && !this.state.isActivePushNotifications) {\r\n this.setState({\r\n isVisibleNotificationConfirm: true,\r\n newUserNotification: { ...userNotification }\r\n });\r\n }\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n } else {\r\n this.growl.show({ severity: 'error', summary: \"EROR in save button\" });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n\r\n }\r\n\r\n handleNotificationActivationButton = (userNotification: UserNotificationModel, isActive: boolean) => {\r\n const currentMedicineHistory: UserMedicineHistoryModel = { ...this.state.currentMedicineHistory };\r\n\r\n if (userNotification && userNotification.userNotificationId > 0) {\r\n this.userService.updateNotification(userNotification.userNotificationId, isActive)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.getMedicineNotifications(currentMedicineHistory.userMedicineHistoryId);\r\n if (userNotification.notificationAlarmTypeId == NotificationAlarmType.PushNotification && !this.state.isActivePushNotifications && isActive) {\r\n this.setState({\r\n isVisibleNotificationConfirm: true,\r\n newUserNotification: { ...userNotification }\r\n });\r\n }\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n } else {\r\n this.growl.show({ severity: 'error', summary: \"EROR in active/deactive button\" });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n this.showUserNotificationDialog(false);\r\n }\r\n\r\n handleNotificationDeleteClick = (event, userNotificationId) => {\r\n event.preventDefault();\r\n let userNotification = this.state.currentMedicineHistory.userNotifications.find(m => m.userNotificationId === userNotificationId);\r\n if (userNotification) {\r\n this.setState({\r\n currrentUserNotification: userNotification\r\n });\r\n }\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n deleteNotification = (userNotificationId) => {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true\r\n });\r\n\r\n if (userNotificationId) {\r\n this.userService.deleteNotification(userNotificationId)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.getMedicineNotifications(this.state.currentMedicineHistory.userMedicineHistoryId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n this.growl.show({ severity: 'error', summary: \"Delete failed\" });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { currentMedicineHistory, currrentUserNotification, isLoading } = this.state;\r\n\r\n let dialogHeader: string = Translate('Alarms');\r\n let contentHeader = Translate('Alarms') + \" \" + Translate('for') + \" \" + Translate('medicine')\r\n + \" \" + ((currentMedicineHistory && currentMedicineHistory.medicineName) ? currentMedicineHistory.medicineName : \"\");\r\n\r\n return (\r\n <>\r\n \r\n {dialogHeader}\r\n \r\n
    \r\n this.growl = el} />\r\n {isLoading ? : null}\r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n

    {contentHeader}

    \r\n
    \r\n
    \r\n this.handleUserNotificationAddClick()}>\r\n \r\n \r\n
    \r\n
      \r\n {currentMedicineHistory.userNotifications ?\r\n currentMedicineHistory.userNotifications.map((m: UserNotificationModel) =>\r\n
    • \r\n
      \r\n
      \r\n {m.notificationScheduleTypeId ? HelperFunctions.getEnumLabel(m.notificationScheduleTypeId, NotificationScheduleType, true) + \" \" : null}\r\n ({m.notificationAlarmTypeId ? HelperFunctions.getEnumLabel(m.notificationAlarmTypeId, NotificationAlarmType, true) : null})\r\n {m.canBeActivated ? this.handleNotificationActivationButton(m, e.target.checked)}\r\n value=\"checkedB\"\r\n color=\"primary\"\r\n />\r\n }\r\n label={m.isActive ? Translate('ActiveА') : Translate('NotActive')}\r\n /> : null}\r\n
      \r\n
      \r\n {getNotificationSummary(m, this.props.lang)}\r\n {m.caretakerUserId && m.caretakerUserId > 0 ?\r\n
      \r\n {Translate(\"SendNotificationsTo\") + \" \"}{m.caretakerName}{\" \" + Translate(\"InCaseThat\") + \" \"}\r\n {m.minutesForIntake} {\" \" + Translate(\"Minutes\")}\r\n
      \r\n : null}\r\n
      \r\n
      \r\n \r\n
    • \r\n ) : null}\r\n {!isLoading && (!currentMedicineHistory.userNotifications || currentMedicineHistory.userNotifications.length == 0) ? Translate(\"No records found\") : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n {this.state.isVisibleNotificationAddEditDDialog ? (\r\n \r\n ) : null}\r\n\r\n { this.deleteNotification(currrentUserNotification.userNotificationId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Are you sure that you want to delete this record\")}\r\n \r\n\r\n { this.subscribeForPushNotifications() }}\r\n noClick={() => { this.setState({ isVisibleNotificationConfirm: false }) }}>\r\n {Translate(\"Do you want to activate notification on this device\")}\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserNotificationListDialog;\r\n","import { UserMedicineHistoryModel } from './userMedicineHistoryModel';\r\nimport { UserMedicineModel } from './userMedicineModel';\r\n\r\nexport class UserMedicineWithHistoryWrapper {\r\n userMedicine: UserMedicineModel;\r\n userMedicineHistory: UserMedicineHistoryModel;\r\n}","export class UserMedicineSettingsModel {\r\n public medicineName: string;\r\n public startDate: string;\r\n public endDate: string;\r\n}","import * as React from 'react';\r\n\r\nconst expandedList = (props) => {\r\n return (\r\n
      \r\n {props && props.listItems && props.listItems.length > 0 ? props.listItems.map(m =>\r\n
    • \r\n
      props.expandData(m)} style={props.infoStyle}>\r\n
      \r\n {props.itemName(m)}\r\n
      \r\n
      \r\n {props.itemDesc(m)}\r\n
      \r\n
      \r\n
      props.expandData(m)}>\r\n {props.itemActions(m)}\r\n
      \r\n {props.isExpandable ?\r\n props.expandedPanel(m)\r\n : null}\r\n
    • \r\n ) : null}\r\n
    \r\n\r\n )\r\n}\r\n\r\nexport default expandedList;\r\n","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport { UserMedicineModel } from '../../../models/user/userMedicineModel';\r\n//import { UserMedicineGridModel } from '../../../models/user/userMedicineGridModel';\r\nimport UserMedicinesList from './userMedicinesList';\r\nimport UserMedicineHistoryDialog from './userMedicineHistoryDialog';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport MedicineSearchDialog from './medicineSearchDialog';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faBell, faCheckCircle, faPills, faCalendarAlt, faPrescription, faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport HistoryIcon from '@material-ui/icons/History';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport { UserMedicineHistoryWrapperModel } from '../../../models/user/userMedicineHistoryWrapperModel';\r\nimport { UserMedicineHistoryModel } from '../../../models/user/userMedicineHistoryModel';\r\nimport UserMedicineHistoryAddEditDialog from './userMedicineHistoryAddEditDialog';\r\nimport UserNotificationListDialog from '../userNotification/userNotificationListDialog';\r\nimport { UserMedicineWithHistoryWrapper } from \"../../../models/user/userMedicineWithHistoryWrapper\";\r\nimport { UserMedicineSettingsModel } from '../../../models/user/userMedicineSettingsModel';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { faTimes, faFilter } from '@fortawesome/free-solid-svg-icons';\r\nimport { MuiPickersUtilsProvider, DatePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\r\nimport * as Constants from '../../../common/constants';\r\nimport blue from '@material-ui/core/colors/blue';\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { TimePresetType } from \"../../../common/enums\";\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\nimport { AuthorisationStatus } from '../../../common/enums';\r\n\r\nexport const smallDialogTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: 5,\r\n marginBottom: 0,\r\n width: '90% !important'\r\n },\r\n root: {\r\n width: '100% !important'\r\n }\r\n },\r\n MuiDialog: {\r\n paper: {\r\n margin: 0,\r\n maxWidth: '350px !important',\r\n minWidth: '335px'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\ninterface IProps {\r\n history: any;\r\n userId: number;\r\n lang: string;\r\n location: any;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n userId: number;\r\n currentUserMedicine: UserMedicineModel;\r\n userMedicines: Array\r\n isVisibleConfirmDialog: boolean;\r\n deleteValidationMessage: string;\r\n isVisibleSearchMedicineDialog: boolean;\r\n searchDialogError: any;\r\n expandedMedicine: Array;\r\n first: number;\r\n rows: number;\r\n totalRecords: number;\r\n activeUserMedicineCount: number;\r\n userName: string;\r\n selectedMedicineHistory: UserMedicineHistoryModel;\r\n isVisibleUserNotificationListDialog: boolean;\r\n isVisibleUserMedicineHistoryAddEditDialog: boolean;\r\n isAddHistory: boolean;\r\n medicineSettings: UserMedicineSettingsModel,\r\n isVisiblefilters: boolean;\r\n currentFilterSettings: UserMedicineSettingsModel\r\n filterByDates: boolean;\r\n timeDropdown: Array;\r\n selectedTime: number;\r\n canChooseDates: boolean;\r\n isMyFamily: boolean;\r\n}\r\n\r\nclass UserMedicinesComponent extends React.Component {\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n isLoading: false,\r\n userId: this.props.userId ? this.props.userId : 0,\r\n currentUserMedicine: new UserMedicineModel(),\r\n userMedicines: new Array(0),\r\n isVisibleConfirmDialog: false,\r\n deleteValidationMessage: '',\r\n isVisibleSearchMedicineDialog: false,\r\n searchDialogError: null,\r\n expandedMedicine: new Array(),\r\n first: 0,\r\n rows: 20,\r\n totalRecords: 0,\r\n activeUserMedicineCount: 0,\r\n userName: '',\r\n selectedMedicineHistory: new UserMedicineHistoryModel(),\r\n isVisibleUserNotificationListDialog: false,\r\n isVisibleUserMedicineHistoryAddEditDialog: false,\r\n isAddHistory: false,\r\n medicineSettings: new UserMedicineSettingsModel(),\r\n isVisiblefilters: false,\r\n currentFilterSettings: new UserMedicineSettingsModel(),\r\n filterByDates: false,\r\n timeDropdown: Array(0),\r\n selectedTime: 1,\r\n canChooseDates: false,\r\n isMyFamily: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('scroll', this.onScroll);\r\n\r\n let tabName = HelperFunctions.getURLParameter('tabName');\r\n\r\n if (tabName && tabName == 'Family' && (this.props.history.action === \"PUSH\" || this.props.history.action === \"POP\")) {\r\n let userId = HelperFunctions.getURLParameter('userId');\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n\r\n let numUser: number = userId ? parseInt(userId + '') : 0;\r\n this.setState({ userId: numUser, userName: userName + '', isMyFamily: true }, () => this.getAllUserMedicines(true));\r\n }\r\n else {\r\n this.setState({ userId: this.authService.getUserId(), userName: '', first: 0, isMyFamily: false }, () => this.getAllUserMedicines(true));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.onScroll);\r\n }\r\n\r\n\r\n componentDidUpdate(prevProps) {\r\n\r\n let tabName = HelperFunctions.getURLParameter('tabName');\r\n\r\n if (tabName && tabName == 'Family' && (this.props.history.action === \"PUSH\" || this.props.history.action === \"POP\") && !this.state.isMyFamily) {\r\n let userId = HelperFunctions.getURLParameter('userId');\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n\r\n let numUser: number = userId ? parseInt(userId + '') : 0;\r\n this.setState({ userId: numUser, userName: userName + '', isMyFamily: true }, () => this.getAllUserMedicines(true));\r\n }\r\n if ((!tabName || tabName == '') && this.state.isMyFamily) {\r\n this.setState({ userId: this.authService.getUserId(), userName: '', first: 0, isMyFamily: false }, () => this.getAllUserMedicines(true));\r\n }\r\n\r\n }\r\n\r\n onScroll = () => {\r\n let scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n if (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n this.state.totalRecords > this.state.userMedicines.length && !this.state.isLoading) {\r\n this.paginatorClick({ first: this.state.first + this.state.rows }, false);\r\n }\r\n };\r\n\r\n paginatorClick = (e, isInit: boolean) => {\r\n this.setState({ first: e.first }, () => this.getAllUserMedicines(isInit));\r\n }\r\n\r\n getAllUserMedicines(isInit: boolean) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n let userId = this.state.userId ? this.state.userId : this.authService.getUserId();\r\n let settings: UserMedicineSettingsModel = new UserMedicineSettingsModel();\r\n if (this.state.currentFilterSettings) {\r\n if (this.state.filterByDates && this.state.currentFilterSettings.startDate) {\r\n settings.startDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.currentFilterSettings.startDate));\r\n }\r\n\r\n if (this.state.filterByDates && this.state.currentFilterSettings.endDate) {\r\n settings.endDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.currentFilterSettings.endDate));\r\n }\r\n\r\n if (this.state.currentFilterSettings.medicineName && this.state.currentFilterSettings.medicineName.trim() != '') {\r\n settings.medicineName = this.state.currentFilterSettings.medicineName;\r\n }\r\n }\r\n this.userService.getAllUserMedicinesWithHistory(userId, this.state.first, this.state.rows, this.props.lang, settings).then(\r\n (data: any) => {\r\n if (data) {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n userMedicines: [...data.userMedicineHistory],\r\n totalRecords: data.totalRecords,\r\n activeUserMedicineCount: data.activeUserMedicineCount,\r\n userId: userId\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false,\r\n userMedicines: [...this.state.userMedicines, ...data.userMedicineHistory],\r\n totalRecords: data.totalRecords,\r\n userId: userId\r\n });\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n setCurrentUserMedicine(currentUserMedicine: UserMedicineModel) {\r\n this.setState({ currentUserMedicine: { ...currentUserMedicine } });\r\n }\r\n\r\n handleUserMedicineDeleteClick = (medHistory: UserMedicineHistoryModel) => {\r\n let message: string = Translate(\"Are you sure that you want to delete this record\");\r\n if (medHistory.prescriptionDoctor && medHistory.prescriptionDoctor.trim() != '') {\r\n message = Translate(\"This medicine is attached to prescription\") + \": \" +\r\n medHistory.prescriptionDoctor + '. ' + Translate(\"Are you sure that you want to delete this record\");\r\n }\r\n this.setState({\r\n isVisibleConfirmDialog: true,\r\n deleteValidationMessage: message,\r\n selectedMedicineHistory: medHistory\r\n });\r\n }\r\n\r\n deleteUserMedicine(medicineId: number, medhistoryId: number) {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true\r\n });\r\n\r\n this.userService.deleteUserMedicine(this.state.userId, medicineId, medhistoryId)\r\n .then(\r\n data => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.setState({ first: 0, selectedMedicineHistory: new UserMedicineHistoryModel() }, () => this.getAllUserMedicines(true));\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleUserMedicineHistoryClick = (medicineId, userMedHistory: UserMedicineHistoryModel) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n let userId = this.state.userId ? this.state.userId : this.authService.getUserId();\r\n this.userService.getUserMedicine(userId, medicineId, this.props.lang)\r\n .then(\r\n (data: UserMedicineModel) => {\r\n this.setCurrentUserMedicine(data);\r\n this.setState({\r\n isLoading: false,\r\n isVisibleUserMedicineHistoryAddEditDialog: true,\r\n validationMessage: '',\r\n selectedMedicineHistory: userMedHistory,\r\n isAddHistory: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n\r\n handleUserMedicineInfoClick = (id) => {\r\n this.props.history.push(`${Constants.MedicinesUrl}/${id}`)\r\n }\r\n\r\n handleAddClick = () => {\r\n this.setState({\r\n isVisibleUserMedicineHistoryAddEditDialog: true,\r\n isAddHistory: true\r\n });\r\n }\r\n\r\n handleUserNotificationButtonClick = (userMedicineId) => {\r\n if (!userMedicineId) {\r\n this.growl.show({ severity: 'error', summary: \"UserMedicine ID is not valid\" });\r\n } else {\r\n let userMedicineHistory = this.state.userMedicines.find(d => d.userMedicineHistoryId === userMedicineId);\r\n if (userMedicineHistory) {\r\n this.setState({\r\n selectedMedicineHistory: userMedicineHistory\r\n }, () => this.showUserNotificationListDialog(true));\r\n } else {\r\n console.log(\"EROR\")\r\n }\r\n }\r\n }\r\n\r\n showUserNotificationListDialog = (show: boolean) => {\r\n this.setState({\r\n isVisibleUserNotificationListDialog: show\r\n });\r\n }\r\n\r\n handleUserNotificationListDialogCloseButton = () => {\r\n this.setState({\r\n first: 0,\r\n isVisibleUserNotificationListDialog: false,\r\n selectedMedicineHistory: new UserMedicineHistoryModel()\r\n }, () => this.getAllUserMedicines(true));\r\n }\r\n\r\n handleHistoryAddButton = (currentUserMedicineHistory: UserMedicineHistoryModel, userMedicine: UserMedicineModel, close: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n let medWrapp: UserMedicineWithHistoryWrapper = new UserMedicineWithHistoryWrapper();\r\n medWrapp.userMedicine = userMedicine;\r\n medWrapp.userMedicineHistory = currentUserMedicineHistory;\r\n if (!medWrapp.userMedicine.userId || medWrapp.userMedicine.userId == 0) {\r\n medWrapp.userMedicine.userId = this.state.userId;\r\n }\r\n this.userService.addUserMedicine(medWrapp)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.handleUserMedicineHistoryCancelClick();\r\n this.setState({ first: 0 }, () => this.getAllUserMedicines(true));\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleHistoryUpdateButton = (currentUserMedicineHistory: UserMedicineHistoryModel, close: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.updateMedicineHistory(currentUserMedicineHistory)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setState({ first: 0 }, () => this.getAllUserMedicines(true));\r\n this.handleUserMedicineHistoryCancelClick();\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n expanedData = (rowData: UserMedicineHistoryModel) => {\r\n return (
    \r\n {/* \r\n \r\n */}\r\n\r\n this.handleUserMedicineInfoClick(rowData.medicineId ? rowData.medicineId : 0)}\r\n >\r\n this.handleUserNotificationButtonClick(rowData.userMedicineHistoryId)}>\r\n \r\n \r\n this.handleUserMedicineHistoryClick(rowData.medicineId ? rowData.medicineId : 0, rowData)}\r\n > \r\n this.handleUserMedicineDeleteClick(rowData)}\r\n >\r\n
    )\r\n }\r\n\r\n rowExpansionTemplate = (rowData: UserMedicineHistoryModel) => {\r\n return (\r\n r.userMedicineHistoryId == rowData.userMedicineHistoryId)}\r\n timeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n {this.expanedData(rowData)}\r\n \r\n );\r\n }\r\n\r\n expandData = (data: UserMedicineHistoryModel) => {\r\n if (!this.state.expandedMedicine.some(r => r.userMedicineHistoryId == data.userMedicineHistoryId) ||\r\n this.state.expandedMedicine.length == 0) {\r\n this.setState({ expandedMedicine: [...this.state.expandedMedicine, data] });\r\n } else {\r\n this.setState({ expandedMedicine: this.state.expandedMedicine.filter(r => r.userMedicineHistoryId != data.userMedicineHistoryId) });\r\n }\r\n }\r\n\r\n handleUserMedicineHistoryCancelClick = () => {\r\n this.setState({\r\n isVisibleUserMedicineHistoryAddEditDialog: false,\r\n selectedMedicineHistory: new UserMedicineHistoryModel()\r\n });\r\n }\r\n\r\n handleFilterChange = (key, value) => {\r\n const userFilter: UserMedicineSettingsModel = { ...this.state.medicineSettings };\r\n userFilter[key] = value;\r\n this.setState({ medicineSettings: { ...userFilter }, first: 0 })\r\n };\r\n\r\n clearFilters = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.setState({\r\n isVisiblefilters: false, currentFilterSettings: new UserMedicineSettingsModel(),\r\n medicineSettings: new UserMedicineSettingsModel(), selectedTime: 1, filterByDates: false\r\n }, () => this.getAllUserMedicines(true));\r\n }\r\n\r\n handleFilter = (e) => {\r\n e.preventDefault();\r\n let filters = { ...this.state.medicineSettings };\r\n if (!filters.startDate) {\r\n filters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n }\r\n if (!filters.endDate) {\r\n filters.endDate = new Date().toISOString();\r\n }\r\n this.setState({ isVisiblefilters: false, currentFilterSettings: filters, filterByDates: true }, () => this.getAllUserMedicines(true));\r\n }\r\n\r\n getMonthEarlier = (currentDate: string) => {\r\n let d = new Date(currentDate);\r\n d.setMonth(d.getMonth() - 1);\r\n return d;\r\n }\r\n\r\n filterClick = () => {\r\n let currentSettings: UserMedicineSettingsModel = new UserMedicineSettingsModel();\r\n let startDate: boolean = false;\r\n let endDate: boolean = false;\r\n if (this.state.currentFilterSettings &&\r\n (this.state.currentFilterSettings.endDate || this.state.currentFilterSettings.startDate || this.state.currentFilterSettings.medicineName)) {\r\n currentSettings = { ...this.state.currentFilterSettings };\r\n }\r\n\r\n let timeDr = new Array(0);\r\n timeDr = HelperFunctions.enumToDropdownArray(TimePresetType, true);\r\n\r\n this.setState({ isVisiblefilters: true, medicineSettings: { ...currentSettings }, timeDropdown: timeDr });\r\n }\r\n\r\n getFiltersummary = () => {\r\n let nameSet: any = null;\r\n let startSet: any = null;\r\n let endSet: any = null;\r\n\r\n if (this.state.currentFilterSettings && this.state.currentFilterSettings.medicineName) {\r\n nameSet =\r\n <>\r\n {Translate('Medicine')}:\r\n {this.state.currentFilterSettings.medicineName} \r\n \r\n }\r\n\r\n if (this.state.currentFilterSettings && this.state.currentFilterSettings.startDate) {\r\n startSet =\r\n <>\r\n {Translate('From')}:\r\n {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.currentFilterSettings.startDate), this.props.lang)} \r\n \r\n }\r\n\r\n if (this.state.currentFilterSettings && this.state.currentFilterSettings.endDate) {\r\n endSet =\r\n <>\r\n {Translate('To')}:\r\n {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.currentFilterSettings.endDate), this.props.lang)} \r\n \r\n }\r\n\r\n let summary =\r\n

    \r\n {nameSet}\r\n {startSet}\r\n {endSet}\r\n

    \r\n\r\n return summary;\r\n }\r\n\r\n handleTimeDropdownChange = (id) => {\r\n let filters = { ...this.state.medicineSettings };\r\n let canChooseDates = false;\r\n switch (id) {\r\n case TimePresetType.OneDay:\r\n filters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.OneWeek:\r\n filters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 7).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.OneMonth:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 1).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.ThreeMonths:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 3).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.SixMonths:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 6).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.OneYear:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 12).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.Advanced:\r\n canChooseDates = true;\r\n }\r\n this.setState({ selectedTime: id, medicineSettings: filters, canChooseDates: canChooseDates });\r\n }\r\n\r\n goToPrescriptions = (e, perscriptionId) => {\r\n e.preventDefault();\r\n this.props.history.push(`${Constants.PrescriptionUrl}?perscriptionId=${perscriptionId}`);\r\n }\r\n\r\n keyItem = (item: UserMedicineHistoryModel) => {\r\n return item.userMedicineHistoryId + \"medId\";\r\n }\r\n\r\n itemName = (item: UserMedicineHistoryModel) => {\r\n let today = HelperFunctions.fomatDateAsString(new Date());\r\n return (\r\n <>\r\n {new Date(item.startDate ? item.startDate.substr(0, 10) : '') <= new Date(today) && new Date(item.endDate ? item.endDate.substr(0, 10) : '') >= new Date(today) ?\r\n : null}\r\n {item.medicineName ? item.medicineName : null}\r\n {item.authorisationStatus > 0 && item.authorisationStatus != AuthorisationStatus.Authorised ?\r\n - {HelperFunctions.getEnumLabel(item.authorisationStatus, AuthorisationStatus, true)} : null}\r\n )\r\n }\r\n\r\n itemDesc = (item: UserMedicineHistoryModel) => {\r\n return (\r\n <>\r\n
    \r\n \r\n {HelperFunctions.fomatDatesStringWithLang(new Date(item.startDate ? item.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(item.endDate ? item.endDate : ''), this.props.lang)}\r\n
    \r\n
    \r\n \r\n {Translate('Alarms')}\r\n
    \r\n {item.notificationsCount ? item.notificationsCount : '0'}\r\n
    \r\n
    \r\n {item.prescriptionDoctor && item.prescriptionDoctor.trim() != '' ?\r\n : null}\r\n \r\n )\r\n }\r\n\r\n itemActions = (item: UserMedicineHistoryModel) => {\r\n return (\r\n <>\r\n {window.innerWidth >= Constants.device.tablet ? this.expanedData(item) :\r\n\r\n this.state.expandedMedicine.some(r => r.userMedicineHistoryId == item.userMedicineHistoryId) ?\r\n \r\n : \r\n }\r\n \r\n )\r\n }\r\n\r\n public render() {\r\n const { isLoading, userMedicines, totalRecords, activeUserMedicineCount, currentFilterSettings, selectedMedicineHistory, isVisibleSearchMedicineDialog,\r\n searchDialogError, expandedMedicine, timeDropdown, selectedTime, medicineSettings } = this.state;\r\n\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n let showAllLink = false;\r\n if ((currentFilterSettings.medicineName && currentFilterSettings.medicineName.trim() != '') || currentFilterSettings.startDate || currentFilterSettings.endDate) {\r\n showAllLink = true\r\n }\r\n return (\r\n
    \r\n this.growl = el} />\r\n\r\n <>\r\n {userName ?\r\n <>\r\n
    {Translate('Medicines of')}:
    \r\n

    {userName}

    \r\n \r\n :

    {Translate('My Medicines')}

    }\r\n this.handleAddClick()} className=\"floating-action-button\">\r\n \r\n \r\n this.filterClick()} className=\"floating-action-button-second\">\r\n \r\n \r\n\r\n {!isLoading && userMedicines && userMedicines.length > 0 ?\r\n
    \r\n {totalRecords} {Translate('total records.')}
    \r\n {activeUserMedicineCount} {Translate('current medicine history.')}\r\n {activeUserMedicineCount > 0 ?\r\n \r\n : null}\r\n
    : null}\r\n\r\n {currentFilterSettings && (currentFilterSettings.medicineName || currentFilterSettings.startDate || currentFilterSettings.endDate) ?\r\n <>\r\n

    {Translate('Filters') + \":\"}

    \r\n {this.getFiltersummary()}\r\n \r\n : null}\r\n\r\n {showAllLink ?\r\n : null}\r\n\r\n\r\n \r\n\r\n\r\n {/* */}\r\n {isLoading ? : null}\r\n {!isLoading && (!userMedicines || userMedicines.length == 0) ? Translate(\"No records found\") : null}\r\n \r\n\r\n { this.deleteUserMedicine(selectedMedicineHistory.medicineId, selectedMedicineHistory.userMedicineHistoryId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false, deleteValidationMessage: '', selectedMedicineHistory: new UserMedicineHistoryModel() }) }}>\r\n {this.state.deleteValidationMessage}\r\n {/* Are you sure that you want to delete \r\n {currentUserMedicine.medicine\r\n ? [currentUserMedicine.medicine.brandName, currentUserMedicine.medicine.additionalTitle].filter(Boolean).join(' / ')\r\n : \"this record\"}? */}\r\n \r\n\r\n {this.state.isVisibleUserNotificationListDialog ? (\r\n ) : null}\r\n\r\n {this.state.isVisibleUserMedicineHistoryAddEditDialog ? (\r\n \r\n ) : null}\r\n\r\n this.setState({ isVisiblefilters: false })}\r\n fullWidth={window.innerWidth < Constants.device.desktop}\r\n aria-labelledby=\"responsive-dialog-title\"\r\n >\r\n this.setState({ isVisiblefilters: false })}>{Translate('Filters')}\r\n \r\n
    \r\n
    \r\n
    \r\n this.handleFilterChange('medicineName', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {Translate('Period')}\r\n this.handleTimeDropdownChange(e.target.value)}\r\n inputProps={{\r\n id: 'preset-type-label'\r\n }}>\r\n {timeDropdown.map(m => {m.value ? m.label : {m.label}})}\r\n \r\n \r\n
    \r\n {this.state.canChooseDates ?\r\n <>\r\n
    \r\n \r\n \r\n this.handleFilterChange('startDate', e)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n this.handleFilterChange('endDate', e)}\r\n />\r\n \r\n
    \r\n :\r\n <>\r\n
    \r\n \r\n
    \r\n {HelperFunctions.fomatDateAsStringWithLang(medicineSettings.startDate ?\r\n new Date(medicineSettings.startDate) : HelperFunctions.getDaysEarlier(new Date().toString(), 1), this.props.lang)}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {HelperFunctions.fomatDateAsStringWithLang(medicineSettings.endDate ?\r\n new Date(medicineSettings.endDate) : new Date(), this.props.lang)}\r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(UserMedicinesComponent);","import { DiseaseForGridModel } from '../diseaseForGridModel';\r\nimport { UserDiseaseHistoryModel } from './userDiseaseHistoryModel';\r\n\r\nexport class UserDiseaseModel {\r\n public userId: number;\r\n public disease: DiseaseForGridModel;\r\n public userDiseaseHistory: Array;\r\n}","export class UserDiseaseHistoryModel {\r\n public userDiseaseHistoryId: number;\r\n public userId: number;\r\n public diseaseId: number;\r\n public diseaseCode: string;\r\n public diseaseName: string;\r\n public startDate?: string;\r\n public endDate?: string;\r\n public diseaseTypeId?: number;\r\n public comments: string;\r\n public prescriptionName: string;\r\n public isActive: boolean;\r\n public prescriptionDoctor: string;\r\n public prescriptionId: number;\r\n}","import { UserDiseaseModel } from './userDiseaseModel';\r\nimport { UserDiseaseHistoryModel } from './userDiseaseHistoryModel';\r\n\r\nexport class UserDiseaseWithHistoryModel {\r\n public userDisease: UserDiseaseModel;\r\n public userDiseaseHistory: UserDiseaseHistoryModel;\r\n}","import axios from 'axios';\r\nimport * as Constants from \"../common/constants\";\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport { DiseaseFilterSettingsModel } from \"../models/\";\r\n\r\nclass DiseaseService {\r\n\r\n\tlang: string = '';\r\n\r\n\tconstructor(lang?) {\r\n\t\tthis.lang = lang;\r\n\t\taxios.defaults.baseURL = `${Constants.apiUrl}/`;\r\n\t\taxios.defaults.headers = {\r\n\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\tPragma: 'no-cache',\r\n\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t}\r\n\t}\r\n\r\n\tgetAllDiseases(from: number, numberOfRows: number, settings: DiseaseFilterSettingsModel, lang: string) {\r\n\t\treturn axios({\r\n\t\t\turl: `disease/getAll/${from}/${numberOfRows}`,\r\n\t\t\tmethod: 'post',\r\n\t\t\theaders: {\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\t\"langId\": HelperFunctions.getLangId(lang)\r\n\t\t\t},\r\n\t\t\tdata: JSON.stringify(settings)\r\n\t\t})\r\n\t\t\t.then(res => res.data.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n}\r\n\r\nexport default DiseaseService;\r\n","import * as React from 'react';\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Toolbar } from 'primereact/toolbar';\r\nimport { DiseaseFilterSettingsModel } from \"../../../models/diseaseFilterSettingsModel\";\r\nimport AlphabeticalFilter from '../../../common/components/alphabeticalFilter/alphabeticalFilter';\r\nimport Translate from '../../../common/functions/translate';\r\n\r\ninterface IProps {\r\n onSearchClick: any,\r\n totalRecordsCount: number,\r\n lang: string\r\n onClearClick: any;\r\n}\r\n\r\ninterface IState {\r\n diseaseSettings: DiseaseFilterSettingsModel,\r\n selectedType: null,\r\n selectedGroup: null,\r\n filterText: string\r\n}\r\n\r\nexport class DiseaseFilter extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n diseaseSettings: new DiseaseFilterSettingsModel(),\r\n selectedType: null,\r\n selectedGroup: null,\r\n filterText: ''\r\n };\r\n }\r\n\r\n handleAlphaIndexChange = (e, letter: string) => {\r\n e.preventDefault();\r\n const currentSettings: DiseaseFilterSettingsModel = { ...this.state.diseaseSettings };\r\n currentSettings.diseaseName = '';\r\n currentSettings.alphaIndex = letter;\r\n const fiterText = this.generateFilterText(currentSettings);\r\n this.setState({\r\n diseaseSettings: { ...currentSettings },\r\n filterText: fiterText\r\n });\r\n this.handleSearchButtonClick(currentSettings);\r\n }\r\n\r\n handleChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value\r\n const name = target.name;\r\n\r\n const currentSettings: DiseaseFilterSettingsModel = { ...this.state.diseaseSettings };\r\n currentSettings[name] = value;\r\n const fiterText = this.generateFilterText(currentSettings);\r\n this.setState({\r\n diseaseSettings: { ...currentSettings },\r\n filterText: fiterText\r\n }, this.searchByName);\r\n }\r\n\r\n searchByName = () => {\r\n if (this.state.diseaseSettings && this.state.diseaseSettings.diseaseName && this.state.diseaseSettings.diseaseName.length >= 3) {\r\n this.handleSearchButtonClick(this.state.diseaseSettings)\r\n }\r\n }\r\n\r\n generateFilterText = (settings: DiseaseFilterSettingsModel) => {\r\n let result = '';\r\n\r\n if (settings.alphaIndex) {\r\n result += Translate(\"Start with\") + \" '\" + settings.alphaIndex + \"', \"\r\n }\r\n if (settings.diseaseName) {\r\n result += Translate(\"Name\") + \" '\" + settings.diseaseName + \"', \"\r\n }\r\n\r\n return result.substr(0, result.length - 2);\r\n }\r\n\r\n handleSearchButtonClick = (settings) => {\r\n this.props.onSearchClick(settings);\r\n }\r\n\r\n handleClearButtonClick = () => {\r\n this.setState({\r\n diseaseSettings: new DiseaseFilterSettingsModel(),\r\n filterText: ''\r\n });\r\n this.props.onClearClick();\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick(this.state.diseaseSettings)\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n this.handleKeyPress(e)}\r\n style={{ width: '100%' }}\r\n name=\"diseaseName\"\r\n placeholder={Translate('EnterDiseaseName')}\r\n onChange={this.handleChange}\r\n value={this.state.diseaseSettings && this.state.diseaseSettings.diseaseName ? this.state.diseaseSettings.diseaseName : ''}\r\n />\r\n
    \r\n
    \r\n
    \r\n {Translate('BrowseAlphabetically')}:\r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Result')}: {this.props.totalRecordsCount}\r\n {this.state.filterText ? ', ' : ''}\r\n \r\n
    \r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default DiseaseFilter;\r\n","import * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTrash, faPlus, faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport DiseaseService from '../../../services/diseaseService';\r\nimport { DiseaseGridModel, DiseaseForGridModel, DiseaseFilterSettingsModel } from \"../../../models\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport UserService from '../../../services/userService';\r\nimport DiseaseFilter from './diseaseFilter';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport Paginator from '../../../common/components/paginator/paginator';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { connect } from 'react-redux';\r\nimport { UserDiseaseModel } from '../../../models/user/userDiseaseModel';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\n\r\ninterface IProps {\r\n isVisible: boolean,\r\n cancelClick: any,\r\n addClick: any,\r\n selectedDisease: DiseaseForGridModel,\r\n userId: number,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n diseases: Array\r\n currentDisease: DiseaseForGridModel;\r\n currentFilterSettings: DiseaseFilterSettingsModel;\r\n page: number;\r\n numberOfPages: number;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 10;\r\n\r\nclass DiseaseListDialog extends React.Component {\r\n diseaseService = new DiseaseService(this.props.lang);\r\n userService = new UserService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n diseases: new Array(),\r\n currentDisease: this.props.selectedDisease,\r\n currentFilterSettings: new DiseaseFilterSettingsModel(),\r\n page: 1,\r\n numberOfPages: 1\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n //this.getAllFilteredItems(this.state.page, this.state.numberOfRows, this.state.currentFilterSettings);\r\n }\r\n\r\n getAllFilteredItems(page: number, numberOfRows: number, currentFilterSettings: DiseaseFilterSettingsModel) {\r\n let from = (page - 1) * this.state.numberOfRows;\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.diseaseService.getAllDiseases(from, numberOfRows, currentFilterSettings, this.props.lang).then(\r\n (data: DiseaseGridModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n diseases: data.diseases,\r\n totalRecordsCount: data.totalRecordsCount,\r\n numberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n data.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleAddButton = event => {\r\n event.preventDefault();\r\n let userdisease: UserDiseaseModel = new UserDiseaseModel();\r\n userdisease.disease = this.state.currentDisease;\r\n userdisease.userDiseaseHistory = [];\r\n this.props.addClick(userdisease, true);\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleFilterChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value\r\n const name = target.name;\r\n\r\n const currentFilterSettings: DiseaseFilterSettingsModel = { ...this.state.currentFilterSettings };\r\n currentFilterSettings[name] = value;\r\n this.setState({\r\n currentFilterSettings: { ...currentFilterSettings }\r\n });\r\n }\r\n\r\n handleFilterButtonClick = (settings) => {\r\n this.setState({ currentFilterSettings: { ...settings } }, () => this.getAllFilteredItems(this.state.page, this.state.numberOfRows, settings));\r\n }\r\n\r\n handleOnClearClick = () => {\r\n this.setState({ currentFilterSettings: new DiseaseFilterSettingsModel(), page: 1, numberOfPages: 0, diseases: [], totalRecordsCount: 0 });\r\n }\r\n\r\n handleClearButtonClick = () => {\r\n this.setState({\r\n currentFilterSettings: new DiseaseFilterSettingsModel()\r\n });\r\n\r\n this.handleFilterButtonClick(new DiseaseFilterSettingsModel());\r\n }\r\n\r\n displayHeaderSelection(currentDisease: DiseaseForGridModel | undefined) {\r\n if (!currentDisease || (currentDisease && !currentDisease.diseaseCode)) {\r\n return
    {Translate('No Selection')}
    ;\r\n }\r\n else {\r\n return
    {Translate('Disease')}: \r\n {[currentDisease.diseaseCode, currentDisease.diseaseName].filter(Boolean).join(' ')}\r\n
    \r\n }\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleFilterButtonClick(this.state.currentFilterSettings)\r\n }\r\n }\r\n\r\n handleSelectionChange = (e) => {\r\n this.setState({\r\n currentDisease: e\r\n });\r\n }\r\n\r\n paginataorClick = (page) => {\r\n console.log(this.state.currentFilterSettings)\r\n this.setState({ page: page }, () => this.getAllFilteredItems(page, this.state.numberOfRows, this.state.currentFilterSettings));\r\n }\r\n\r\n render() {\r\n let { diseases, currentDisease, numberOfPages, numberOfRows, page, isLoading, currentFilterSettings } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Diseases')}\r\n \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n
    \r\n \r\n
      \r\n {diseases && diseases.length > 0 ?\r\n diseases.map((m: DiseaseForGridModel) =>\r\n
    • this.handleSelectionChange(m)}>\r\n
      \r\n this.handleSelectionChange(m)}\r\n color=\"primary\"\r\n />\r\n
      \r\n
      \r\n
      \r\n {m.diseaseId ? [m.diseaseCode, m.diseaseName].join(\" \").trim() : null}\r\n
      \r\n
      \r\n\r\n
    • \r\n ) : null}\r\n {(!diseases || diseases.length == 0) && (!currentFilterSettings || !currentFilterSettings.alphaIndex || !currentFilterSettings.diseaseName) ?\r\n {Translate(\"Enter name or select alpha index\")}\r\n : null}\r\n
    \r\n\r\n {numberOfPages > 1 ?\r\n
    \r\n \r\n
    \r\n : null}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n\r\n}\r\n\r\nexport default DiseaseListDialog;\r\n","import * as React from \"react\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport { UserDiseaseHistoryModel } from \"../../../models/user/userDiseaseHistoryModel\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { DatePicker } from '@material-ui/pickers';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Growl from \"../../../common/components/alertMessage/growl\";\r\nimport { UserDiseaseModel } from \"../../../models/user/userDiseaseModel\";\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport { faCheck, faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport DiseaseListDialog from \"./diseaseListDialog\";\r\nimport { DiseaseForGridModel } from \"../../../models\";\r\n\r\ninterface IProps {\r\n //history: any,\r\n addClick: any,\r\n updateClick: any,\r\n cancelClick: any,\r\n isVisible: boolean,\r\n currentUserDiseaseHistory: UserDiseaseHistoryModel,\r\n userId: number,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n currentUserDiseaseHistory: UserDiseaseHistoryModel,\r\n userDisease: UserDiseaseModel,\r\n isVisibleSearchDiseaseDialog: boolean\r\n}\r\n\r\nclass UserDiseaseHistoryAddEditDialog extends React.Component {\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n isLoading: false,\r\n currentUserDiseaseHistory: props.currentUserDiseaseHistory,\r\n userDisease: new UserDiseaseModel(),\r\n isVisibleSearchDiseaseDialog: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleAddButton = (event) => {\r\n event.preventDefault();\r\n\r\n const currentUserDiseaseHistory = this.state.currentUserDiseaseHistory;\r\n\r\n if (currentUserDiseaseHistory.startDate) {\r\n currentUserDiseaseHistory.startDate = HelperFunctions.fomatDateAsString(new Date(currentUserDiseaseHistory.startDate))\r\n } else {\r\n currentUserDiseaseHistory.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (currentUserDiseaseHistory.endDate) {\r\n currentUserDiseaseHistory.endDate = HelperFunctions.fomatDateAsString(new Date(currentUserDiseaseHistory.endDate))\r\n } else {\r\n currentUserDiseaseHistory.endDate = HelperFunctions.fomatDateAsString(HelperFunctions.getDayslater(new Date().toString(), 7))\r\n }\r\n\r\n if (currentUserDiseaseHistory && currentUserDiseaseHistory.userDiseaseHistoryId && currentUserDiseaseHistory.userDiseaseHistoryId > 0) {\r\n this.props.updateClick(currentUserDiseaseHistory, close);\r\n }\r\n else {\r\n this.props.addClick(currentUserDiseaseHistory, this.state.userDisease, close);\r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const currentUserDiseaseHistory: UserDiseaseHistoryModel = { ...this.state.currentUserDiseaseHistory };\r\n currentUserDiseaseHistory[key] = value;\r\n this.setState({ currentUserDiseaseHistory: { ...currentUserDiseaseHistory } });\r\n };\r\n\r\n handleDiseaseRemoveClick(event) {\r\n event.preventDefault();\r\n this.setState({\r\n userDisease: new UserDiseaseModel()\r\n });\r\n }\r\n\r\n handleDiseaseAddEditClick() {\r\n this.setState({\r\n isVisibleSearchDiseaseDialog: true,\r\n validationMessage: ''\r\n });\r\n }\r\n\r\n handleAddSaveButton = (currentUserDisease: UserDiseaseModel, close: boolean) => {\r\n this.setState({\r\n isVisibleSearchDiseaseDialog: false,\r\n userDisease: currentUserDisease\r\n });\r\n }\r\n\r\n handleDiseaseListDialogCancelButton = () => {\r\n this.setState({\r\n isVisibleSearchDiseaseDialog: false,\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, currentUserDiseaseHistory, userDisease } = this.state;\r\n\r\n let diseaseInputButton =\r\n
    \r\n \r\n
    \r\n {currentUserDiseaseHistory.diseaseCode + currentUserDiseaseHistory.diseaseName ? currentUserDiseaseHistory.diseaseName : null}\r\n
    \r\n
    ;\r\n if (!currentUserDiseaseHistory || !currentUserDiseaseHistory.userDiseaseHistoryId || currentUserDiseaseHistory.userDiseaseHistoryId == 0) {\r\n let classInput = 'float-left-full-width';\r\n if (!userDisease || !userDisease.disease || !userDisease.disease.diseaseId) {\r\n classInput = 'float-left-calculated-width';\r\n }\r\n diseaseInputButton =\r\n
    \r\n
    \r\n
    \r\n \r\n {userDisease && userDisease.disease && userDisease.disease.diseaseId ?\r\n <>\r\n \r\n \r\n :
    {Translate('No disease selected')}
    }\r\n
    \r\n {!userDisease || !userDisease.disease || !userDisease.disease.diseaseId ?\r\n
    \r\n this.handleDiseaseAddEditClick()}>\r\n \r\n \r\n
    : null}\r\n
    \r\n
    ;\r\n }\r\n\r\n\r\n return (\r\n <>\r\n \r\n {Translate('Disease History')}\r\n \r\n
    \r\n this.growl = el} />\r\n {diseaseInputButton}\r\n
    \r\n
    \r\n this.handleChange('startDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('endDate', e)}\r\n />\r\n
    \r\n
    \r\n
    \r\n this.handleChange('comments', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {this.state.isVisibleSearchDiseaseDialog ? (\r\n \r\n ) : null}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserDiseaseHistoryAddEditDialog;","export class UserDiseaseSettingsModel {\r\n public diseaseName: string;\r\n public startDate: string;\r\n public endDate: string;\r\n}","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport { UserDiseaseModel } from '../../../models/user/userDiseaseModel';\r\nimport UserDiseaseList from './userDiseaseList';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport { DiseaseForGridModel } from '../../../models/diseaseForGridModel';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { connect } from 'react-redux';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheckCircle, faNotesMedical } from '@fortawesome/free-solid-svg-icons';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport { UserDiseaseHistoryModel } from \"../../../models/user/userDiseaseHistoryModel\";\r\nimport { UserDiseaseWithHistoryModel } from \"../../../models/user/userDiseaseWithHistoryModel\";\r\nimport UserDiseaseHistoryAddEditDialog from \"./userDiseaseHistoryAddEditDialog\";\r\nimport { UserDiseaseSettingsModel } from \"../../../models/user/userDiseaseSettingsModel\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { faCheck, faTimes, faFilter, faPrescription, faCalendarAlt, faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\nimport Search from '@material-ui/icons/Search';\r\nimport { MuiPickersUtilsProvider, DatePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\r\nimport * as Constants from '../../../common/constants'; import blue from '@material-ui/core/colors/blue';\r\nimport { DiseaseFilterSettingsModel } from \"../../../models\";\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport { TimePresetType } from \"../../../common/enums\";\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\n\r\nexport const smallDialogTheme = createMuiTheme({\r\n overrides: {\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: 5,\r\n marginBottom: 0,\r\n width: '90% !important'\r\n },\r\n root: {\r\n width: '100% !important'\r\n }\r\n },\r\n MuiDialog: {\r\n paper: {\r\n margin: 0,\r\n maxWidth: '350px !important',\r\n minWidth: '335px'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\ninterface IProps {\r\n history: any;\r\n userId: number;\r\n location: any;\r\n lang: string;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n userId: number;\r\n currentUserDisease: UserDiseaseModel;\r\n userDiseases: Array;\r\n isVisibleConfirmDialog: boolean;\r\n deleteValidationMessage: string;\r\n userDisease: UserDiseaseHistoryModel;\r\n isVisibleDiseaseListDialog: boolean;\r\n expandedDiseases: Array;\r\n first: number;\r\n rows: number;\r\n totalRecords: number;\r\n activeUserDiseaseCount: number;\r\n userName: string;\r\n selectedUserDiseaseHistory: UserDiseaseHistoryModel,\r\n diseaseSettings: UserDiseaseSettingsModel,\r\n isVisiblefilters: boolean;\r\n filterByDates: boolean;\r\n currentFilterSettings: UserDiseaseSettingsModel;\r\n timeDropdown: Array;\r\n selectedTime: number;\r\n canChooseDates: boolean;\r\n isMyFamily: boolean;\r\n}\r\n\r\nclass UserDiseasesComponent extends React.Component {\r\n userService = new UserService(this.props.lang);\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n isLoading: false,\r\n userId: this.props.userId ? this.props.userId : 0,\r\n currentUserDisease: new UserDiseaseModel(),\r\n userDiseases: new Array(),\r\n isVisibleConfirmDialog: false,\r\n deleteValidationMessage: '',\r\n userDisease: new UserDiseaseHistoryModel(),\r\n isVisibleDiseaseListDialog: false,\r\n first: 0,\r\n rows: 20,\r\n totalRecords: 0,\r\n activeUserDiseaseCount: 0,\r\n expandedDiseases: new Array(),\r\n userName: '',\r\n selectedUserDiseaseHistory: new UserDiseaseHistoryModel(),\r\n diseaseSettings: new UserDiseaseSettingsModel(),\r\n isVisiblefilters: false,\r\n currentFilterSettings: new UserDiseaseSettingsModel(),\r\n timeDropdown: Array(0),\r\n selectedTime: 1,\r\n canChooseDates: false,\r\n filterByDates: false,\r\n isMyFamily: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('scroll', this.onScroll);\r\n\r\n let tabName = HelperFunctions.getURLParameter('tabName');\r\n\r\n if (tabName && tabName == 'Family' && (this.props.history.action === \"PUSH\" || this.props.history.action === \"POP\")) {\r\n let userId = HelperFunctions.getURLParameter('userId');\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n let numUser: number = userId ? parseInt(userId + '') : 0;\r\n this.setState({ userId: numUser, userName: userName + '', isMyFamily: true }, () => this.getAllUserDisease(true));\r\n }\r\n else {\r\n this.setState({ userId: this.authService.getUserId(), userName: '', isMyFamily: false }, () => this.getAllUserDisease(true));\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.onScroll);\r\n }\r\n\r\n\r\n componentDidUpdate(prevProps) {\r\n let tabName = HelperFunctions.getURLParameter('tabName');\r\n\r\n if (tabName && tabName == 'Family' && (this.props.history.action === \"PUSH\" || this.props.history.action === \"POP\") && !this.state.isMyFamily) {\r\n let userId = HelperFunctions.getURLParameter('userId');\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n let numUser: number = userId ? parseInt(userId + '') : 0;\r\n this.setState({ userId: numUser, userName: userName + '', isMyFamily: true }, () => this.getAllUserDisease(true));\r\n }\r\n if ((!tabName || tabName == '') && this.state.isMyFamily) {\r\n this.setState({ userId: this.authService.getUserId(), userName: '', first: 0, isMyFamily: false }, () => this.getAllUserDisease(true));\r\n }\r\n }\r\n\r\n onScroll = () => {\r\n let scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n if (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n this.state.totalRecords > this.state.userDiseases.length && !this.state.isLoading) {\r\n this.paginatorClick({ first: this.state.first + this.state.rows }, false);\r\n }\r\n };\r\n\r\n paginatorClick = (e, isInit: boolean) => {\r\n this.setState({ first: e.first }, () => this.getAllUserDisease(isInit));\r\n }\r\n\r\n getAllUserDisease(isInit: boolean) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n let userId = this.state.userId ? this.state.userId : this.authService.getUserId();\r\n let settings: UserDiseaseSettingsModel = new UserDiseaseSettingsModel();\r\n if (this.state.currentFilterSettings) {\r\n if (this.state.filterByDates && this.state.currentFilterSettings.startDate) {\r\n settings.startDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.currentFilterSettings.startDate));\r\n }\r\n\r\n if (this.state.filterByDates && this.state.currentFilterSettings.endDate) {\r\n settings.endDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.currentFilterSettings.endDate));\r\n }\r\n\r\n if (this.state.currentFilterSettings.diseaseName && this.state.currentFilterSettings.diseaseName.trim() != '') {\r\n settings.diseaseName = this.state.currentFilterSettings.diseaseName;\r\n }\r\n }\r\n this.userService.getAllUserDiseasesWithHistoryCount(userId, this.state.first, this.state.rows, this.props.lang, settings).then(\r\n (data: any) => {\r\n if (data) {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n userDiseases: [...data.userDiseaseHistory],\r\n totalRecords: data.totalRecords,\r\n activeUserDiseaseCount: data.activeUserDiseaseCount,\r\n userId: userId\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false,\r\n userDiseases: [...this.state.userDiseases, ...data.userDiseaseHistory],\r\n totalRecords: data.totalRecords,\r\n userId: userId\r\n });\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n handleHistoryAddButton = (currentUserDiseaseHistory: UserDiseaseHistoryModel, userDisease: UserDiseaseModel, close: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n let wrapper: UserDiseaseWithHistoryModel = new UserDiseaseWithHistoryModel();\r\n wrapper.userDisease = userDisease;\r\n wrapper.userDiseaseHistory = currentUserDiseaseHistory;\r\n if (!wrapper.userDisease.userId || wrapper.userDisease.userId == 0) {\r\n wrapper.userDisease.userId = this.state.userId;\r\n }\r\n this.userService.addUserDisease(wrapper)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setState({ first: 0, isVisibleDiseaseListDialog: false }, () => this.getAllUserDisease(true));\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n\r\n getUserDisease = (diseaseId) => {\r\n this.userService.getUserDisease(this.state.userId, diseaseId, this.props.lang)\r\n .then(\r\n (data: UserDiseaseModel) => {\r\n this.setCurrentUserDisease(data);\r\n this.setState({\r\n isLoading: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleUserDiseaseDeleteClick = (disease: UserDiseaseHistoryModel) => {\r\n let message: string = Translate(\"Are you sure that you want to delete this record\");\r\n if (disease.prescriptionDoctor && disease.prescriptionDoctor.trim() != '') {\r\n message = Translate(\"This medicine is attached to prescription\") + \": \" +\r\n disease.prescriptionDoctor + '. ' + Translate(\"Are you sure that you want to delete this record\");\r\n }\r\n this.setState({\r\n selectedUserDiseaseHistory: disease,\r\n isVisibleConfirmDialog: true,\r\n deleteValidationMessage: message\r\n });\r\n }\r\n\r\n deleteUserDisease(diseaseId, historyId) {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true,\r\n selectedUserDiseaseHistory: new UserDiseaseHistoryModel()\r\n });\r\n\r\n this.userService.deleteUserDisease(this.state.userId, diseaseId, historyId)\r\n .then(\r\n data => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.setState({ first: 0 }, () => this.getAllUserDisease(true));\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n setCurrentUserDisease(currentUserDisease: UserDiseaseModel) {\r\n this.setState({ currentUserDisease: { ...currentUserDisease } });\r\n }\r\n\r\n handleHistoryUpdateButton = (diseaseHistory: UserDiseaseHistoryModel) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.updateDiseaseHistory(diseaseHistory)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setState({ first: 0, isVisibleDiseaseListDialog: false, selectedUserDiseaseHistory: new UserDiseaseHistoryModel() }, () => this.getAllUserDisease(true));\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleUserDiseaseHistoryClick = (diseaseId, userDisease: UserDiseaseHistoryModel) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n let userId = this.state.userId ? this.state.userId : this.authService.getUserId();\r\n this.userService.getUserDisease(userId, diseaseId, this.props.lang)\r\n .then(\r\n (data: UserDiseaseModel) => {\r\n this.setCurrentUserDisease(data);\r\n this.setState({\r\n isLoading: false,\r\n selectedUserDiseaseHistory: userDisease,\r\n isVisibleDiseaseListDialog: true\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n\r\n handleDiseaseListDialogCancelButton = () => {\r\n this.setState({\r\n isVisibleDiseaseListDialog: false,\r\n selectedUserDiseaseHistory: new UserDiseaseHistoryModel()\r\n });\r\n };\r\n\r\n handleDiseaseAddEditClick() {\r\n this.setState({\r\n isVisibleDiseaseListDialog: true\r\n });\r\n }\r\n\r\n expanedData = (rowData: UserDiseaseHistoryModel) => {\r\n return (
    \r\n this.handleUserDiseaseHistoryClick(rowData.diseaseId, rowData)}\r\n > \r\n this.handleUserDiseaseDeleteClick(rowData)}\r\n >\r\n
    )\r\n }\r\n\r\n rowExpansionTemplate = (rowData: UserDiseaseHistoryModel) => {\r\n return (\r\n r.userDiseaseHistoryId == rowData.userDiseaseHistoryId)}\r\n timeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n {this.expanedData(rowData)}\r\n \r\n );\r\n }\r\n expandData = (data: UserDiseaseHistoryModel) => {\r\n if (!this.state.expandedDiseases.some(r => r.userDiseaseHistoryId == data.userDiseaseHistoryId)\r\n || this.state.expandedDiseases.length == 0) {\r\n this.setState({ expandedDiseases: [...this.state.expandedDiseases, data] });\r\n } else {\r\n this.setState({ expandedDiseases: this.state.expandedDiseases.filter(r => r.userDiseaseHistoryId != data.userDiseaseHistoryId) });\r\n }\r\n }\r\n\r\n handleFilterChange = (key, value) => {\r\n const userFilter: UserDiseaseSettingsModel = { ...this.state.diseaseSettings };\r\n userFilter[key] = value;\r\n this.setState({ diseaseSettings: { ...userFilter }, first: 0 })\r\n };\r\n\r\n clearFilters = (e) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.setState({\r\n isVisiblefilters: false, currentFilterSettings: new UserDiseaseSettingsModel(),\r\n diseaseSettings: new UserDiseaseSettingsModel(), selectedTime: 1, filterByDates: false\r\n }, () => this.getAllUserDisease(true));\r\n }\r\n\r\n handleFilter = (e) => {\r\n e.preventDefault();\r\n let filters = { ...this.state.diseaseSettings };\r\n if (!filters.startDate) {\r\n filters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n }\r\n if (!filters.endDate) {\r\n filters.endDate = new Date().toISOString();\r\n }\r\n this.setState({ isVisiblefilters: false, currentFilterSettings: filters, filterByDates: true }, () => this.getAllUserDisease(true));\r\n }\r\n\r\n filterClick = () => {\r\n let currentSettings: UserDiseaseSettingsModel = new UserDiseaseSettingsModel();\r\n\r\n if (this.state.currentFilterSettings &&\r\n (this.state.currentFilterSettings.endDate || this.state.currentFilterSettings.startDate || this.state.currentFilterSettings.diseaseName)) {\r\n currentSettings = { ...this.state.currentFilterSettings };\r\n }\r\n\r\n let timeDr = new Array(0);\r\n timeDr = HelperFunctions.enumToDropdownArray(TimePresetType, true);\r\n this.setState({ isVisiblefilters: true, diseaseSettings: { ...currentSettings }, timeDropdown: timeDr });\r\n }\r\n\r\n getFiltersummary = () => {\r\n let nameSet: any = null;\r\n let startSet: any = null;\r\n let endSet: any = null;\r\n\r\n if (this.state.currentFilterSettings && this.state.currentFilterSettings.diseaseName) {\r\n nameSet =\r\n <>\r\n {Translate('Medicine')}:\r\n {this.state.currentFilterSettings.diseaseName} \r\n \r\n }\r\n\r\n if (this.state.currentFilterSettings && this.state.currentFilterSettings.startDate) {\r\n startSet =\r\n <>\r\n {Translate('From')}:\r\n {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.currentFilterSettings.startDate), this.props.lang)} \r\n \r\n }\r\n\r\n if (this.state.currentFilterSettings && this.state.currentFilterSettings.endDate) {\r\n endSet =\r\n <>\r\n {Translate('To')}:\r\n {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.currentFilterSettings.endDate), this.props.lang)} \r\n \r\n }\r\n\r\n let summary =\r\n

    \r\n {nameSet}\r\n {startSet}\r\n {endSet}\r\n

    \r\n\r\n return summary;\r\n }\r\n\r\n goToPrescriptions = (e, perscriptionId) => {\r\n e.preventDefault();\r\n this.props.history.push(`${Constants.PrescriptionUrl}?perscriptionId=${perscriptionId}`);\r\n }\r\n\r\n handleTimeDropdownChange = (id) => {\r\n let filters = { ...this.state.diseaseSettings };\r\n let canChooseDates = false;\r\n switch (id) {\r\n case TimePresetType.OneDay:\r\n filters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.OneWeek:\r\n filters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 7).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.OneMonth:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 1).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.ThreeMonths:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 3).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.SixMonths:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 6).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.OneYear:\r\n filters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 12).toISOString();\r\n filters.endDate = new Date().toISOString();\r\n canChooseDates = false;\r\n break;\r\n case TimePresetType.Advanced:\r\n canChooseDates = true;\r\n }\r\n this.setState({ selectedTime: id, diseaseSettings: filters, canChooseDates: canChooseDates });\r\n }\r\n\r\n keyItem = (item: UserDiseaseHistoryModel) => {\r\n return item.userDiseaseHistoryId + 'disease';\r\n }\r\n\r\n itemName = (m: UserDiseaseHistoryModel) => {\r\n let today = HelperFunctions.fomatDateAsString(new Date());\r\n return (\r\n <>\r\n {new Date(m.startDate ? m.startDate.substr(0, 10) : '') <= new Date(today) && new Date(m.endDate ? m.endDate.substr(0, 10) : '') >= new Date(today) ?\r\n : null}\r\n {m.diseaseName ? [m.diseaseCode, m.diseaseName].join(\" \").trim() : m.diseaseCode}\r\n )\r\n }\r\n\r\n itemDesc = (m: UserDiseaseHistoryModel) => {\r\n return (\r\n <>\r\n
    \r\n \r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.startDate ? m.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.endDate ? m.endDate : ''), this.props.lang)}\r\n
    \r\n {m.prescriptionDoctor && m.prescriptionDoctor.trim() != '' ?\r\n : null}\r\n \r\n )\r\n }\r\n\r\n itemActions = (item: UserDiseaseHistoryModel) => {\r\n return (\r\n <>\r\n {window.innerWidth >= Constants.device.tablet ? this.expanedData(item) :\r\n\r\n this.state.expandedDiseases.some(r => r.userDiseaseHistoryId == item.userDiseaseHistoryId) ?\r\n \r\n : \r\n }\r\n \r\n )\r\n }\r\n\r\n public render() {\r\n const { isLoading, userDiseases, totalRecords, activeUserDiseaseCount, expandedDiseases,\r\n diseaseSettings, selectedUserDiseaseHistory, currentFilterSettings, selectedTime, timeDropdown } = this.state;\r\n let disease = new DiseaseForGridModel();\r\n\r\n let userName = HelperFunctions.getURLParameter('userName');\r\n let showAllLink = false;\r\n if ((currentFilterSettings.diseaseName && currentFilterSettings.diseaseName.trim() != '') || currentFilterSettings.startDate || currentFilterSettings.endDate) {\r\n showAllLink = true\r\n }\r\n\r\n return (\r\n
    \r\n this.growl = el} />\r\n\r\n\r\n <>\r\n {userName ?\r\n <>\r\n
    {Translate('Diseases of')}:
    \r\n

    {userName}

    \r\n :

    {Translate('My Diseases')}

    }\r\n this.handleDiseaseAddEditClick()} className=\"floating-action-button\">\r\n \r\n \r\n this.filterClick()} className=\"floating-action-button-second\">\r\n \r\n \r\n\r\n {!isLoading && userDiseases && userDiseases.length > 0 ?\r\n
    \r\n {totalRecords} {Translate('total records.')}
    \r\n {activeUserDiseaseCount} {Translate('current disease count.')}\r\n {activeUserDiseaseCount > 0 ?\r\n \r\n : null}\r\n
    : null}\r\n\r\n {currentFilterSettings && (currentFilterSettings.diseaseName || currentFilterSettings.startDate || currentFilterSettings.endDate) ?\r\n <>\r\n

    {Translate('Filters') + \":\"}

    \r\n {this.getFiltersummary()}\r\n \r\n : null}\r\n\r\n {showAllLink ?\r\n : null}\r\n\r\n < ExpandingList\r\n listItems={userDiseases}\r\n keyItem={this.keyItem}\r\n expandData={this.expandData}\r\n expandedPanel={this.rowExpansionTemplate}\r\n itemName={this.itemName}\r\n itemDesc={this.itemDesc}\r\n itemActions={this.itemActions}\r\n isExpandable={window.innerWidth < Constants.device.tablet}\r\n infoStyle={window.innerWidth < Constants.device.tablet ? {} : { width: 'unset' }}\r\n //actionsStyle={window.innerWidth < Constants.device.tablet ? {} : { width: 124 }}\r\n />\r\n\r\n {/* */}\r\n {isLoading ? : null}\r\n {!isLoading && (!userDiseases || userDiseases.length == 0) ? Translate(\"No records found\") : null}\r\n \r\n\r\n {this.state.isVisibleDiseaseListDialog ? (\r\n \r\n ) : null}\r\n\r\n\r\n this.setState({ isVisiblefilters: false })}\r\n fullWidth={window.innerWidth < Constants.device.desktop}\r\n >\r\n this.setState({ isVisiblefilters: false })}>{Translate('Filters')}\r\n \r\n
    \r\n
    \r\n
    \r\n this.handleFilterChange('diseaseName', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n {Translate('Period')}\r\n this.handleTimeDropdownChange(e.target.value)}\r\n inputProps={{\r\n id: 'preset-type-label'\r\n }}>\r\n {timeDropdown.map(m => {m.value ? m.label : {m.label}})}\r\n \r\n \r\n
    \r\n {this.state.canChooseDates ?\r\n <>\r\n
    \r\n \r\n \r\n this.handleFilterChange('startDate', e)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n \r\n this.handleFilterChange('endDate', e)}\r\n />\r\n \r\n
    \r\n :\r\n <>\r\n
    \r\n \r\n
    \r\n {HelperFunctions.fomatDateAsStringWithLang(diseaseSettings.startDate ?\r\n new Date(diseaseSettings.startDate) : HelperFunctions.getDaysEarlier(new Date().toString(), 1), this.props.lang)}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n {HelperFunctions.fomatDateAsStringWithLang(diseaseSettings.endDate ?\r\n new Date(diseaseSettings.endDate) : new Date(), this.props.lang)}\r\n
    \r\n
    \r\n \r\n }\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n { this.deleteUserDisease(selectedUserDiseaseHistory.diseaseId, selectedUserDiseaseHistory.userDiseaseHistoryId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false, selectedUserDiseaseHistory: new UserDiseaseHistoryModel() }) }}>\r\n {this.state.deleteValidationMessage}\r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(UserDiseasesComponent);","import { UserDiseaseHistoryModel } from './userDiseaseHistoryModel';\r\nimport { UserMedicineHistoryModel } from './userMedicineHistoryModel';\r\n\r\nexport class UserPrescriptionModel {\r\n public userPrescriptionId: number;\r\n public userId: number;\r\n public startDate?: string;\r\n public endDate?: string;\r\n public prescription: string;\r\n public doctor: string;\r\n public hospital: string;\r\n public comments: string;\r\n public notAllowedFoods: string;\r\n public recommendedFoods: string;\r\n public recommendedTreatment: string;\r\n public isActive: boolean;\r\n public userMedicines: Array;\r\n public userDiseases: Array;\r\n}","import * as React from \"react\";\r\nimport { UserPrescriptionModel } from '../../../models/user/userPrescriptionModel';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport AuthService from '../../../services/authService';\r\nimport { enumToDropdownArray, getFrequencyCounterLabel, fomatDateAsString, fomatTimeAsString, fomatDateTimeAsString, getNotificationSummary, formatAlarmTime } from '../../../common/functions/helperFunctions';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport { DatePicker } from '@material-ui/pickers';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\ninterface IProps {\r\n //history: any,\r\n saveClick: any,\r\n cancelClick: any,\r\n isVisible: boolean,\r\n currentUserPrescription: UserPrescriptionModel\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n userId: number;\r\n userPrescription: UserPrescriptionModel\r\n}\r\n\r\nclass UserPrescriptionAddEditDialog extends React.Component {\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n isLoading: false,\r\n userId: props.currentUserPrescription.userId,\r\n userPrescription: props.currentUserPrescription\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleSaveButton = (event, close) => {\r\n event.preventDefault();\r\n const userPrescription = this.state.userPrescription;\r\n\r\n if (userPrescription.startDate) {\r\n userPrescription.startDate = HelperFunctions.fomatDateAsString(new Date(userPrescription.startDate))\r\n } else {\r\n userPrescription.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (userPrescription.endDate) {\r\n userPrescription.endDate = HelperFunctions.fomatDateAsString(new Date(userPrescription.endDate))\r\n } else {\r\n userPrescription.endDate = HelperFunctions.fomatDateAsString(HelperFunctions.getDayslater(new Date().toString(), 7))\r\n }\r\n\r\n if (userPrescription.endDate) {\r\n userPrescription.endDate = fomatDateAsString(new Date(userPrescription.endDate));\r\n\r\n if (userPrescription.endDate < userPrescription.startDate) {\r\n this.growl.show({ severity: 'error', summary: Translate(\"Start date is greater than end date\") });\r\n return;\r\n }\r\n }\r\n\r\n this.props.saveClick(userPrescription, close);\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const userPrescription: UserPrescriptionModel = { ...this.state.userPrescription };\r\n userPrescription[key] = value;\r\n this.setState({ userPrescription: { ...userPrescription } });\r\n };\r\n\r\n\r\n public render() {\r\n const { isLoading, userPrescription } = this.state;\r\n\r\n let dialogHeader: string = Translate('Doctors prescription');\r\n\r\n return (\r\n <>\r\n \r\n {dialogHeader}\r\n \r\n
    \r\n this.growl = el} />\r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n\r\n
    \r\n \r\n \r\n

    {Translate('Prescription')}

    \r\n
    \r\n this.handleChange('startDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('endDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('doctor', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('hospital', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n

    {Translate('Diet')}

    \r\n
    \r\n this.handleChange('recommendedFoods', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('notAllowedFoods', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n \r\n

    {Translate('Life mode')}

    \r\n
    \r\n this.handleChange('recommendedTreatment', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserPrescriptionAddEditDialog;","import * as React from 'react';\r\nimport { Button } from \"primereact/button\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { Toolbar } from 'primereact/toolbar';\r\nimport { MedicineFilterSettings } from \"../../models/medicineFilterSettings\";\r\nimport AlphabeticalFilter from '../../common/components/alphabeticalFilter/alphabeticalFilter';\r\nimport Translate from '../../common/functions/translate';\r\n\r\ninterface MedicinesFilterProps {\r\n onSearchClick: any,\r\n totalRecordsCount: number\r\n lang: string\r\n onClearClick: any;\r\n}\r\n\r\ninterface MedicinesFilterState {\r\n medicineSettings: MedicineFilterSettings,\r\n selectedType: null,\r\n selectedGroup: null,\r\n filterText: string\r\n}\r\n\r\nexport class MedicineFilter extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n medicineSettings: new MedicineFilterSettings(),\r\n selectedType: null,\r\n selectedGroup: null,\r\n filterText: ''\r\n };\r\n }\r\n\r\n handleAlphaIndexChange = (e, letter: string) => {\r\n e.preventDefault();\r\n let currentSettings: MedicineFilterSettings = this.state.medicineSettings;\r\n currentSettings.name = '';\r\n currentSettings.alphaIndex = letter;\r\n const fiterText = this.generateFilterText(currentSettings);\r\n this.setState({\r\n medicineSettings: currentSettings,\r\n filterText: fiterText\r\n });\r\n this.handleSearchButtonClick();\r\n }\r\n\r\n handleChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value\r\n const name = target.name;\r\n\r\n const currentSettings: MedicineFilterSettings = { ...this.state.medicineSettings };\r\n currentSettings.name = value;\r\n currentSettings.alphaIndex = '';\r\n const fiterText = this.generateFilterText(currentSettings);\r\n this.setState({\r\n medicineSettings: { ...currentSettings },\r\n filterText: fiterText\r\n }, this.searchByName);\r\n }\r\n\r\n searchByName = () => {\r\n if (this.state.medicineSettings && this.state.medicineSettings.name && this.state.medicineSettings.name.length >= 3) {\r\n this.handleSearchButtonClick()\r\n }\r\n }\r\n\r\n generateFilterText = (settings) => {\r\n let result = '';\r\n\r\n if (settings.alphaIndex) {\r\n result += Translate(\"Start with\") + \" '\" + settings.alphaIndex + \"', \"\r\n }\r\n if (settings.name) {\r\n result += Translate(\"Name\") + \" '\" + settings.name + \"', \"\r\n }\r\n if (settings.title) {\r\n result += Translate(\"Title\") + \" '\" + settings.title + \"', \"\r\n }\r\n if (settings.number) {\r\n result += Translate(\"Number\") + \" '\" + settings.number + \"', \"\r\n }\r\n\r\n return result.substr(0, result.length - 2);\r\n }\r\n\r\n handleSearchButtonClick = () => {\r\n this.props.onSearchClick(this.state.medicineSettings);\r\n }\r\n\r\n handleClearButtonClick = () => {\r\n let currentSettings: MedicineFilterSettings = this.state.medicineSettings;\r\n currentSettings.name = '';\r\n currentSettings.alphaIndex = '';\r\n this.setState({\r\n medicineSettings: currentSettings,\r\n filterText: ''\r\n });\r\n this.props.onClearClick();\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick()\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('BrowseAlphabetically')}:\r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Result')}: {this.props.totalRecordsCount}\r\n {this.state.filterText ? ', ' : ''}\r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default MedicineFilter;\r\n","import * as React from 'react';\r\nimport Button from '@material-ui/core/Button'\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport MedicineService from '../../../services/medicineService';\r\nimport { MedicineFilterSettings, MedicineListModel, MedicineForListModel } from \"../../../models\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport Paginator from '../../../common/components/paginator/paginator';\r\nimport MedicineFilter from '../../interactions/medicineFilter';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\n\r\ninterface IProps {\r\n selectedMedicine: MedicineForListModel,\r\n isVisible: boolean,\r\n cancelClick: any,\r\n addClick: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n medicines: Array\r\n currentMedicine: MedicineForListModel;\r\n currentFilterSettings: MedicineFilterSettings;\r\n page: number;\r\n numberOfPages: number;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 20;\r\n\r\nclass MedicinesListDialog extends React.Component {\r\n medicineService = new MedicineService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n medicines: new Array(),\r\n currentMedicine: this.props.selectedMedicine,\r\n currentFilterSettings: new MedicineFilterSettings(),\r\n page: 1,\r\n numberOfPages: 1\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n //this.getAllFilteredItems(this.state.page, this.state.numberOfRows, this.state.currentFilterSettings);\r\n }\r\n\r\n getAllFilteredItems(page: number, numberOfRows: number, currentFilterSettings: MedicineFilterSettings) {\r\n let from = (page - 1) * this.state.numberOfRows;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getAllMedicines(from, numberOfRows, currentFilterSettings, this.props.lang).then(\r\n (data: MedicineListModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n medicines: data.medicines,\r\n totalRecordsCount: data.totalRecordsCount,\r\n numberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n data.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleFilterChange = (event) => {\r\n const target = event.target;\r\n const value = target.type === 'checkbox' ? target.checked : target.value\r\n const name = target.name;\r\n\r\n const currentFilterSettings: MedicineFilterSettings = { ...this.state.currentFilterSettings };\r\n currentFilterSettings[name] = value;\r\n this.setState({\r\n currentFilterSettings: { ...currentFilterSettings }\r\n });\r\n }\r\n\r\n handleCurrentMedicineSelection = (e) => {\r\n this.setState({\r\n currentMedicine: e.data\r\n });\r\n }\r\n\r\n displayHeaderSelection(currentMedicine: MedicineForListModel) {\r\n if (!currentMedicine || (currentMedicine && !currentMedicine.brandName)) {\r\n return
    {Translate(\"No Selection\")}
    ;\r\n }\r\n else {\r\n return
    {Translate('Medicine')}: \r\n {[currentMedicine.medicineNumber, currentMedicine.brandName].filter(Boolean).join(' / ')}
    \r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleAddButton = (event) => {\r\n event.preventDefault();\r\n const currentMedicine = this.state.currentMedicine;\r\n this.props.addClick(currentMedicine);\r\n }\r\n\r\n paginataorClick = (page) => {\r\n this.setState({ page: page }, () => this.getAllFilteredItems(page, this.state.numberOfRows, this.state.currentFilterSettings));\r\n }\r\n\r\n handleSearchButtonClick = (settings) => {\r\n this.setState({\r\n isLoading: true, page: 1, currentFilterSettings: settings\r\n }, () => this.getAllFilteredItems(this.state.page, this.state.numberOfRows, settings));\r\n }\r\n\r\n handleClearClick = () => {\r\n this.setState({\r\n page: 1, currentFilterSettings: new MedicineFilterSettings(), medicines: [], totalRecordsCount: 0, numberOfPages: 0\r\n });\r\n }\r\n\r\n onSelectMedicine = (medicine: MedicineForListModel) => {\r\n this.setState({ currentMedicine: { ...medicine } });\r\n }\r\n\r\n render() {\r\n let { medicines, currentMedicine, numberOfPages, page, isLoading, currentFilterSettings } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Medicines')}\r\n \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n
    \r\n \r\n
    \r\n
    \r\n
      \r\n {medicines && medicines.length > 0 ? medicines.map((m: MedicineForListModel) =>\r\n
    • this.onSelectMedicine(m)}>\r\n
      \r\n this.onSelectMedicine(m)}\r\n color=\"primary\"\r\n />\r\n
      \r\n
      \r\n
      \r\n {m.brandName}\r\n
      \r\n
      \r\n {m.additionalTitle}\r\n
      \r\n
      \r\n\r\n
    • \r\n ) : null}\r\n
    \r\n {(!medicines || medicines.length == 0) && (!currentFilterSettings || !currentFilterSettings.alphaIndex || !currentFilterSettings.name) ?\r\n {Translate(\"Enter name or select alpha index\")}\r\n : null}\r\n {numberOfPages > 1 ?\r\n
    \r\n \r\n
    \r\n : null}\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default MedicinesListDialog;","import * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { UserMedicineHistoryModel } from '../../../models/user/userMedicineHistoryModel';\r\nimport UserService from '../../../services/userService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { MedicineForListModel } from \"../../../models\";\r\nimport MedicinesListDialog from './medicinesListDialog'\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { UserNotificationModel } from \"../../../models/user/userNotificationModel\";\r\nimport { DatePicker } from '@material-ui/pickers';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\n\r\ninterface IProps {\r\n isVisible: boolean,\r\n cancelClick: any,\r\n saveClick: any,\r\n userId: number,\r\n selectedMedicineHistory: UserMedicineHistoryModel;\r\n isMedicineButtonDisabled: boolean,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n currentMedicine: MedicineForListModel;\r\n currentMedicineHistory: UserMedicineHistoryModel;\r\n isVisibleMedicineListDialog: boolean\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 10;\r\n\r\nclass UserMedicineAddEditDialog extends React.Component {\r\n userService = new UserService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n if (!props.selectedMedicineHistory.userNotifications) {\r\n props.selectedMedicineHistory.userNotifications = new Array(0);\r\n }\r\n\r\n this.state = {\r\n isLoading: false,\r\n validationMessage: '',\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n currentMedicine: new MedicineForListModel(),\r\n isVisibleMedicineListDialog: false,\r\n currentMedicineHistory: props.selectedMedicineHistory\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleMedicineListDialogAddButton = (currentMedicine: MedicineForListModel) => {\r\n this.setState({\r\n currentMedicine: currentMedicine,\r\n isVisibleMedicineListDialog: false\r\n });\r\n }\r\n\r\n handleMedicineListDialogCancelButton = () => {\r\n this.setState({\r\n isVisibleMedicineListDialog: false\r\n });\r\n };\r\n\r\n handleSaveButton = event => {\r\n let currentMedicineHistory: UserMedicineHistoryModel = { ...this.state.currentMedicineHistory };\r\n\r\n if (currentMedicineHistory && currentMedicineHistory.userMedicineHistoryId) {\r\n if (currentMedicineHistory.startDate) {\r\n currentMedicineHistory.startDate = HelperFunctions.fomatDateAsString(new Date(currentMedicineHistory.startDate))\r\n } else {\r\n currentMedicineHistory.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (currentMedicineHistory.endDate) {\r\n currentMedicineHistory.endDate = HelperFunctions.fomatDateAsString(new Date(currentMedicineHistory.endDate))\r\n } else {\r\n currentMedicineHistory.endDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n this.props.saveClick(currentMedicineHistory);\r\n } else {\r\n if (!this.state.currentMedicine || !this.state.currentMedicine.medicineId) {\r\n this.growl.show({ severity: 'warning', summary: Translate(\"Please select medicine\") });\r\n } else {\r\n\r\n currentMedicineHistory.medicineId = this.state.currentMedicine.medicineId;\r\n currentMedicineHistory.userId = this.props.userId;\r\n currentMedicineHistory.medicineName = [this.state.currentMedicine.medicineNumber,\r\n this.state.currentMedicine.brandName].filter(Boolean).join(' / ');\r\n\r\n if (currentMedicineHistory.startDate) {\r\n currentMedicineHistory.startDate = HelperFunctions.fomatDateAsString(new Date(currentMedicineHistory.startDate))\r\n } else {\r\n currentMedicineHistory.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (currentMedicineHistory.endDate) {\r\n currentMedicineHistory.endDate = HelperFunctions.fomatDateAsString(new Date(currentMedicineHistory.endDate))\r\n } else {\r\n currentMedicineHistory.endDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n this.props.saveClick(currentMedicineHistory);\r\n }\r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const currentMedicineHistory: UserMedicineHistoryModel = { ...this.state.currentMedicineHistory };\r\n currentMedicineHistory[key] = value;\r\n this.setState({ currentMedicineHistory: { ...currentMedicineHistory } });\r\n };\r\n\r\n handleMedicineAddEditClick() {\r\n this.setState({\r\n isVisibleMedicineListDialog: true,\r\n validationMessage: ''\r\n });\r\n }\r\n\r\n handleMedicineRemoveClick(event) {\r\n event.preventDefault();\r\n this.setState({\r\n currentMedicine: new MedicineForListModel\r\n });\r\n }\r\n\r\n render() {\r\n const { currentMedicine, currentMedicineHistory } = this.state;\r\n const { isMedicineButtonDisabled } = this.props;\r\n\r\n let medicineValue: string = Translate('Select');\r\n let dialogHeader: string = Translate('Medicine');\r\n\r\n let medicineInputButton;\r\n if (isMedicineButtonDisabled) {\r\n medicineInputButton = null;\r\n medicineValue = currentMedicineHistory.medicineName;\r\n dialogHeader = dialogHeader + ' - ' + medicineValue;\r\n } else {\r\n\r\n if (currentMedicine && currentMedicine.brandName) {\r\n medicineValue = [currentMedicine.medicineNumber, currentMedicine.brandName].filter(Boolean).join(' / ');\r\n dialogHeader = dialogHeader + ' - ' + medicineValue;\r\n }\r\n\r\n let classInput = 'float-left-full-width';\r\n if (!currentMedicine || !currentMedicine.medicineId) {\r\n classInput = 'float-left-calculated-width';\r\n }\r\n\r\n medicineInputButton =\r\n
    \r\n
    \r\n
    \r\n \r\n {currentMedicine && currentMedicine.medicineId ?\r\n <>\r\n \r\n \r\n :
    {Translate('No medicine selected')}
    }\r\n
    \r\n {!currentMedicine || !currentMedicine.medicineId ?\r\n
    \r\n this.handleMedicineAddEditClick()}>\r\n \r\n \r\n
    : null}\r\n
    \r\n
    ;\r\n }\r\n\r\n return (\r\n <>\r\n \r\n this.growl = el} />\r\n {Translate('Medicine')}\r\n \r\n
    \r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n
    \r\n {medicineInputButton}\r\n
    \r\n this.handleChange('startDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('endDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('singleDose', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('frequencyOfIntake', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('intakeConditions', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n this.handleChange('comments', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {this.state.isVisibleMedicineListDialog ? (\r\n \r\n ) : null}\r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserMedicineAddEditDialog;\r\n","import * as React from 'react';\r\nimport { UserMedicineHistoryModel } from '../../../models/user/userMedicineHistoryModel';\r\nimport UserService from '../../../services/userService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { fomatDateAsString } from '../../../common/functions/helperFunctions';\r\nimport { UserPrescriptionModel } from '../../../models/user/userPrescriptionModel';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport UserMedicineAddEditDialog from './userMedicineAddEditDialog';\r\nimport AuthService from '../../../services/authService';\r\nimport UserNotificationListDialog from '../userNotification/userNotificationListDialog';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faBell } from '@fortawesome/free-solid-svg-icons';\r\nimport { faChevronDown, faChevronUp, faUserMd } from '@fortawesome/free-solid-svg-icons';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport * as Constants from '../../../common/constants';\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport NotificationsIcon from '@material-ui/icons/Notifications'\r\n\r\ninterface IProps {\r\n closeClick: any,\r\n userPrescriptionId: number,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n currentUserPrescription: UserPrescriptionModel,\r\n isVisibleUserMedcineAddEditDialog: boolean,\r\n isMedicineButtonDisabled: boolean;\r\n currrentUserMedicineHistory: UserMedicineHistoryModel,\r\n userId: number;\r\n isVisibleUserNotificationListDialog: boolean;\r\n isVisibleConfirmDialog: boolean;\r\n expandedMedicine: Array\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 10;\r\n\r\nclass PrescriptionMedicineListDialog extends React.Component {\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n validationMessage: '',\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n currentUserPrescription: new UserPrescriptionModel(),\r\n isVisibleUserMedcineAddEditDialog: false,\r\n isMedicineButtonDisabled: false,\r\n currrentUserMedicineHistory: new UserMedicineHistoryModel(),\r\n userId: 0,\r\n isVisibleUserNotificationListDialog: false,\r\n isVisibleConfirmDialog: false,\r\n expandedMedicine: new Array()\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getPrescriptionMedicines(this.props.userPrescriptionId);\r\n }\r\n\r\n getPrescriptionMedicines = (userPrescriptionId) => {\r\n if (!userPrescriptionId) {\r\n this.growl.show({ severity: 'error', summary: \"PrescriptionID not valid\" });\r\n } else {\r\n this.setState({\r\n isLoading: true\r\n });\r\n this.userService.getPrescriptionMedicines(userPrescriptionId, this.props.lang)\r\n .then(\r\n (data: UserPrescriptionModel) => {\r\n this.setCurrentUserPrescription(data);\r\n this.setState({\r\n isLoading: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n setCurrentUserPrescription(currentUserPrescription: UserPrescriptionModel) {\r\n this.setState({ currentUserPrescription: { ...currentUserPrescription } });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n //********************** Medicines methods *******************************************************************/\r\n handleUserMedicineAddEditClick = (userMedicineHistoryId) => {\r\n if (!userMedicineHistoryId) {\r\n let currrentUserMedicineHistory = new UserMedicineHistoryModel();\r\n\r\n if (this.state.currentUserPrescription.startDate) {\r\n currrentUserMedicineHistory.startDate = fomatDateAsString(new Date(this.state.currentUserPrescription.startDate));\r\n } else {\r\n currrentUserMedicineHistory.startDate = fomatDateAsString(new Date());\r\n }\r\n\r\n if (this.state.currentUserPrescription.endDate) {\r\n currrentUserMedicineHistory.endDate = fomatDateAsString(new Date(this.state.currentUserPrescription.endDate));\r\n } else {\r\n currrentUserMedicineHistory.endDate = fomatDateAsString(new Date());\r\n }\r\n\r\n this.setState({\r\n currrentUserMedicineHistory: currrentUserMedicineHistory\r\n });\r\n this.showUserMedicineAddEditDialog(true, false);\r\n } else {\r\n let userMedicineHistory = this.state.currentUserPrescription.userMedicines.find(m => m.userMedicineHistoryId === userMedicineHistoryId);\r\n\r\n if (userMedicineHistory) {\r\n this.setState({\r\n currrentUserMedicineHistory: userMedicineHistory\r\n });\r\n }\r\n this.showUserMedicineAddEditDialog(true, true);\r\n }\r\n\r\n if (!this.state.userId || this.state.userId <= 0) {\r\n if (this.authService.isAuthenticated()) {\r\n let profile = this.authService.getProfile();\r\n let id = profile['id'];\r\n this.setState({\r\n userId: id,\r\n });\r\n }\r\n else {\r\n console.log(\"EROR\");\r\n }\r\n }\r\n }\r\n\r\n showUserMedicineAddEditDialog = (show: boolean, isButtonDisabled: boolean) => {\r\n this.setState({\r\n isVisibleUserMedcineAddEditDialog: show,\r\n isMedicineButtonDisabled: isButtonDisabled\r\n });\r\n }\r\n\r\n handleUserMedicineAddEditDialogCancelButton = () => {\r\n this.showUserMedicineAddEditDialog(false, false);\r\n }\r\n\r\n handleUserMedicineSave = (selectedUserMedicine: UserMedicineHistoryModel) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (!selectedUserMedicine.userMedicineHistoryId) {\r\n this.userService.addPrescriptionMedicine(this.props.userPrescriptionId, selectedUserMedicine)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.getPrescriptionMedicines(this.props.userPrescriptionId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n } else {\r\n this.userService.updatePrescriptionMedicine(this.props.userPrescriptionId, selectedUserMedicine)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.getPrescriptionMedicines(this.props.userPrescriptionId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n this.showUserMedicineAddEditDialog(false, false);\r\n }\r\n\r\n handleUserMedicineDeleteClick = (userMedicineHistoryId) => {\r\n let userMedicineHistory = this.state.currentUserPrescription.userMedicines.find(m => m.userMedicineHistoryId === userMedicineHistoryId);\r\n if (userMedicineHistory) {\r\n this.setState({\r\n currrentUserMedicineHistory: userMedicineHistory\r\n });\r\n }\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n deleteUserMedicine = (userMedicineHistoryId) => {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true\r\n });\r\n\r\n if (userMedicineHistoryId && this.state.currentUserPrescription && this.state.currentUserPrescription.userPrescriptionId) {\r\n this.userService.deletePrescriptionMedicine(this.state.currentUserPrescription.userPrescriptionId, userMedicineHistoryId)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.getPrescriptionMedicines(this.props.userPrescriptionId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n this.growl.show({ severity: 'error', summary: \"Delete failed\" });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n }\r\n\r\n //********************** Notifications methods *******************************************************************/\r\n showUserNotificationListDialog = (show: boolean) => {\r\n this.setState({\r\n isVisibleUserNotificationListDialog: show\r\n });\r\n }\r\n\r\n handleUserNotificationButtonClick = (userMedicineHistoryId) => {\r\n if (!userMedicineHistoryId) {\r\n this.growl.show({ severity: 'error', summary: \"UserMedicine ID is not valid\" });\r\n } else {\r\n let userMedicineHistory = this.state.currentUserPrescription.userMedicines.find(m => m.userMedicineHistoryId === userMedicineHistoryId);\r\n\r\n if (userMedicineHistory) {\r\n this.setState({\r\n currrentUserMedicineHistory: userMedicineHistory\r\n });\r\n }\r\n this.showUserNotificationListDialog(true);\r\n }\r\n }\r\n\r\n handleUserNotificationListDialogCloseButton = () => {\r\n this.getPrescriptionMedicines(this.props.userPrescriptionId);\r\n this.showUserNotificationListDialog(false);\r\n }\r\n\r\n expandedData = (rowData: UserMedicineHistoryModel) => {\r\n const classrs = {\r\n backgroundColor: '#17a2b8',\r\n color: 'white',\r\n border: 'none',\r\n borderRadius: '3px',\r\n marginRight: \".5em\",\r\n fontSize: 16,\r\n width: 50\r\n }\r\n\r\n return (\r\n
    \r\n this.handleUserNotificationButtonClick(rowData.userMedicineHistoryId)}>\r\n \r\n \r\n\r\n this.handleUserMedicineAddEditClick(rowData.userMedicineHistoryId)}\r\n > \r\n this.handleUserMedicineDeleteClick(rowData.userMedicineHistoryId)}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n rowExpansionTemplate = (rowData: UserMedicineHistoryModel) => {\r\n return (\r\n r.userMedicineHistoryId == rowData.userMedicineHistoryId)}\r\n timeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n {this.expandedData(rowData)}\r\n \r\n );\r\n }\r\n\r\n expandData = (data: UserMedicineHistoryModel) => {\r\n if (!this.state.expandedMedicine.some(r => r.userMedicineHistoryId == data.userMedicineHistoryId) || this.state.expandedMedicine.length == 0) {\r\n this.setState({ expandedMedicine: [...this.state.expandedMedicine, data] });\r\n } else {\r\n this.setState({ expandedMedicine: this.state.expandedMedicine.filter(r => r.userMedicineHistoryId != data.userMedicineHistoryId) });\r\n }\r\n }\r\n\r\n keyItem = (m: UserMedicineHistoryModel) => {\r\n return m.userMedicineHistoryId + 'umedId';\r\n }\r\n\r\n itemName = (m: UserMedicineHistoryModel) => {\r\n return m.medicineName;\r\n }\r\n\r\n itemDesc = (m: UserMedicineHistoryModel) => {\r\n return (\r\n <>\r\n
    {m.singleDose ? Translate(\"Single Dose\") + ': ' + m.singleDose : null}
    \r\n
    {m.frequencyOfIntake ? Translate(\"Frequency Of Intake\") + ': ' + m.frequencyOfIntake : null}
    \r\n
    {m.intakeConditions ? Translate(\"Intake Conditions\") + ': ' + m.intakeConditions : null}
    \r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.startDate ? m.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.endDate ? m.endDate : ''), this.props.lang)}\r\n
    \r\n \r\n {Translate('Alarms')}\r\n
    \r\n {m.notificationsCount ? m.notificationsCount : '0'}\r\n
    \r\n
    \r\n \r\n )\r\n }\r\n\r\n itemActions = (m: UserMedicineHistoryModel) => {\r\n return (\r\n <>\r\n {window.innerWidth >= Constants.device.tablet ? this.expandedData(m) :\r\n\r\n this.state.expandedMedicine.some(r => r.userMedicineHistoryId == m.userMedicineHistoryId) ?\r\n \r\n : \r\n }\r\n \r\n )\r\n }\r\n\r\n render() {\r\n const { isLoading, currentUserPrescription, userId, currrentUserMedicineHistory } = this.state;\r\n\r\n let dialogHeader: string = Translate('Medicines');\r\n let contentHeader = Translate('Medicines') + \" \" + Translate('for') + \" \" + Translate('prescription')\r\n + \" \" + ((currentUserPrescription && currentUserPrescription.prescription) ? currentUserPrescription.prescription : \"\");\r\n\r\n return (\r\n <>\r\n {isLoading ? : null}\r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n this.growl = el} />\r\n
    {Translate('MedicinesForPrescription')}:
    \r\n

    {HelperFunctions.fomatDatesStringWithLang(new Date(currentUserPrescription.startDate ? currentUserPrescription.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(currentUserPrescription.endDate ? currentUserPrescription.endDate : ''), this.props.lang)}

    \r\n
    \r\n \r\n

    {currentUserPrescription.doctor}

    \r\n
    \r\n
    \r\n this.handleUserMedicineAddEditClick(null)} className=\"floating-action-button\">\r\n \r\n \r\n \r\n {!isLoading && (!currentUserPrescription.userMedicines || currentUserPrescription.userMedicines.length == 0) ? Translate(\"No records found\") : null}\r\n
    \r\n\r\n {this.state.isVisibleUserMedcineAddEditDialog ? (\r\n ) : null}\r\n\r\n {this.state.isVisibleUserNotificationListDialog ? (\r\n ) : null}\r\n\r\n { this.deleteUserMedicine(currrentUserMedicineHistory.userMedicineHistoryId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Confirm Message\") + \" \"}\r\n {(currrentUserMedicineHistory ? ('\"' + currrentUserMedicineHistory.medicineName + '\"')\r\n : \"this record\")}?\r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default PrescriptionMedicineListDialog;\r\n","import * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button'\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport DiseaseService from '../../../services/diseaseService';\r\nimport { DiseaseGridModel, DiseaseForGridModel, DiseaseFilterSettingsModel } from \"../../../models\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport Paginator from '../../../common/components/paginator/paginator';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport UserDiseaseFilter from '../userDiseases/diseaseFilter';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\n\r\ninterface IProps {\r\n selectedDisease: DiseaseForGridModel,\r\n isVisible: boolean,\r\n cancelClick: any,\r\n addClick: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n allDiseases: Array;\r\n currentDisease: DiseaseForGridModel;\r\n currentFilterSettings: DiseaseFilterSettingsModel;\r\n page: number;\r\n numberOfPages: number;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 20;\r\n\r\nclass DiseasesListDialog extends React.Component {\r\n diseaseService = new DiseaseService(this.props.lang);\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n allDiseases: new Array(0),\r\n currentDisease: this.props.selectedDisease,\r\n currentFilterSettings: new DiseaseFilterSettingsModel(),\r\n page: 1,\r\n numberOfPages: 1\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n //this.getAllFilteredItems(this.state.page, this.state.numberOfRows, this.state.currentFilterSettings);\r\n }\r\n\r\n getAllFilteredItems(page: number, numberOfRows: number, currentFilterSettings: DiseaseFilterSettingsModel) {\r\n let from = (page - 1) * this.state.numberOfRows;\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.diseaseService.getAllDiseases(from, numberOfRows, currentFilterSettings, this.props.lang).then(\r\n (data: DiseaseGridModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n allDiseases: data.diseases,\r\n totalRecordsCount: data.totalRecordsCount,\r\n numberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n data.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n paginataorClick = (page) => {\r\n this.setState({ page: page }, () => this.getAllFilteredItems(page, this.state.numberOfRows, this.state.currentFilterSettings));\r\n }\r\n\r\n handleCurrentDiseaseSelection = (e) => {\r\n this.setState({\r\n currentDisease: e.data\r\n });\r\n }\r\n\r\n displayHeaderSelection(currentDisease: DiseaseForGridModel) {\r\n if (!currentDisease || (currentDisease && !currentDisease.diseaseCode)) {\r\n return
    {Translate(\"No Selection\")}
    ;\r\n }\r\n else {\r\n return
    {Translate(\"Disease\")}: \r\n {[currentDisease.diseaseCode, currentDisease.diseaseName].filter(Boolean).join(' ')}\r\n
    \r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleAddButton = event => {\r\n event.preventDefault();\r\n const currentDisease = this.state.currentDisease;\r\n this.props.addClick(currentDisease);\r\n }\r\n\r\n onSelectDisease = (disease: DiseaseForGridModel) => {\r\n this.setState({ currentDisease: { ...disease } });\r\n }\r\n\r\n handleSearchButtonClick = (settings) => {\r\n this.setState({\r\n isLoading: true, page: 1, currentFilterSettings: settings\r\n }, () => this.getAllFilteredItems(this.state.page, this.state.numberOfRows, settings));\r\n }\r\n\r\n handleOnClearClick = () => {\r\n this.setState({ currentFilterSettings: new DiseaseFilterSettingsModel(), page: 1, numberOfPages: 0, allDiseases: [], totalRecordsCount: 0 });\r\n }\r\n\r\n render() {\r\n let { allDiseases, currentDisease, numberOfPages, page, isLoading, currentFilterSettings } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Diseases')}\r\n \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n
    \r\n \r\n
    \r\n
    \r\n
      \r\n {allDiseases && allDiseases.length > 0 ? allDiseases.map((m: DiseaseForGridModel) =>\r\n
    • this.onSelectDisease(m)}>\r\n
      \r\n this.onSelectDisease(m)}\r\n color=\"primary\"\r\n />\r\n
      \r\n
      \r\n
      \r\n {m.diseaseCode} {m.diseaseName}\r\n
      \r\n
      \r\n
    • \r\n ) : null}\r\n {(!allDiseases || allDiseases.length == 0) && (!currentFilterSettings || !currentFilterSettings.alphaIndex || !currentFilterSettings.diseaseName) ?\r\n {Translate(\"Enter name or select alpha index\")}\r\n : null}\r\n
    \r\n {numberOfPages > 1 ?\r\n
    \r\n \r\n
    \r\n : null}\r\n\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default DiseasesListDialog;","import * as React from 'react';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport UserService from '../../../services/userService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport DiseasesListDialog from './diseasesListDialog';\r\nimport { DiseaseForGridModel } from \"../../../models\";\r\nimport { UserDiseaseHistoryModel } from \"../../../models/user/userDiseaseHistoryModel\";\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { DatePicker } from '@material-ui/pickers';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\n\r\ninterface IProps {\r\n isVisible: boolean,\r\n cancelClick: any,\r\n saveClick: any,\r\n userId: number,\r\n selectedDiseaseHistory: UserDiseaseHistoryModel,\r\n isDiseaseButtonDisabled: boolean,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n currentDisease: DiseaseForGridModel;\r\n currentDiseaseHistory: UserDiseaseHistoryModel;\r\n isVisibleDiseaseListDialog: boolean;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 10;\r\n\r\nclass UserDiseaseAddEditDialog extends React.Component {\r\n userService = new UserService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n validationMessage: '',\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n currentDisease: new DiseaseForGridModel(),\r\n currentDiseaseHistory: props.selectedDiseaseHistory,\r\n isVisibleDiseaseListDialog: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleDiseaseListDialogAddButton = (currentDisease: DiseaseForGridModel) => {\r\n this.setState({\r\n currentDisease: currentDisease,\r\n isVisibleDiseaseListDialog: false\r\n });\r\n }\r\n\r\n handleDiseaseListDialogCancelButton = () => {\r\n this.setState({\r\n isVisibleDiseaseListDialog: false\r\n });\r\n };\r\n\r\n handleSaveButton = event => {\r\n let currentDiseaseHistory: UserDiseaseHistoryModel = { ...this.state.currentDiseaseHistory }\r\n\r\n if (currentDiseaseHistory && currentDiseaseHistory.userDiseaseHistoryId) {\r\n if (currentDiseaseHistory.startDate) {\r\n currentDiseaseHistory.startDate = HelperFunctions.fomatDateAsString(new Date(currentDiseaseHistory.startDate))\r\n } else {\r\n currentDiseaseHistory.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (currentDiseaseHistory.endDate) {\r\n currentDiseaseHistory.endDate = HelperFunctions.fomatDateAsString(new Date(currentDiseaseHistory.endDate))\r\n } else {\r\n currentDiseaseHistory.endDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n this.props.saveClick(currentDiseaseHistory);\r\n } else {\r\n if (!this.state.currentDisease || !this.state.currentDisease.diseaseId) {\r\n this.growl.show({ severity: 'warning', summary: Translate(\"Please select disease\") });\r\n } else {\r\n\r\n currentDiseaseHistory.diseaseId = this.state.currentDisease.diseaseId;\r\n currentDiseaseHistory.userId = this.props.userId;\r\n currentDiseaseHistory.diseaseName = [this.state.currentDisease.diseaseCode, this.state.currentDisease.diseaseName].filter(Boolean).join(' ');\r\n\r\n if (currentDiseaseHistory.startDate) {\r\n currentDiseaseHistory.startDate = HelperFunctions.fomatDateAsString(new Date(currentDiseaseHistory.startDate))\r\n } else {\r\n currentDiseaseHistory.startDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n if (currentDiseaseHistory.endDate) {\r\n currentDiseaseHistory.endDate = HelperFunctions.fomatDateAsString(new Date(currentDiseaseHistory.endDate))\r\n } else {\r\n currentDiseaseHistory.endDate = HelperFunctions.fomatDateAsString(new Date())\r\n }\r\n\r\n this.props.saveClick(currentDiseaseHistory);\r\n }\r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const currentDiseaseHistory: UserDiseaseHistoryModel = { ...this.state.currentDiseaseHistory };\r\n currentDiseaseHistory[key] = value;\r\n this.setState({ currentDiseaseHistory: { ...currentDiseaseHistory } });\r\n };\r\n\r\n handleDiseaseAddEditClick() {\r\n this.setState({\r\n isVisibleDiseaseListDialog: true,\r\n validationMessage: ''\r\n });\r\n }\r\n\r\n handleDiseaseRemoveClick(event) {\r\n event.preventDefault();\r\n this.setState({\r\n currentDisease: new DiseaseForGridModel()\r\n });\r\n }\r\n\r\n render() {\r\n const { currentDisease, currentDiseaseHistory } = this.state;\r\n const { isDiseaseButtonDisabled } = this.props;\r\n\r\n let diseaseValue: string = Translate('Select');\r\n let dialogHeader: string = Translate('Disease');\r\n\r\n let diseaseInputButton;\r\n if (isDiseaseButtonDisabled) {\r\n diseaseInputButton = null;\r\n diseaseValue = currentDiseaseHistory.diseaseName;\r\n dialogHeader = dialogHeader + ' - ' + diseaseValue;\r\n\r\n } else {\r\n if (currentDisease && currentDisease.diseaseCode) {\r\n diseaseValue = [currentDisease.diseaseCode, currentDisease.diseaseName].filter(Boolean).join(' ');\r\n dialogHeader = dialogHeader + ' - ' + diseaseValue;\r\n }\r\n\r\n let classInput = 'float-left-full-width';\r\n if (!currentDisease || !currentDisease.diseaseId) {\r\n classInput = 'float-left-calculated-width';\r\n }\r\n\r\n diseaseInputButton =\r\n
    \r\n
    \r\n
    \r\n \r\n {currentDisease && currentDisease.diseaseId ?\r\n <>\r\n \r\n \r\n :
    {Translate('No disease selected')}
    }\r\n
    \r\n {!currentDisease || !currentDisease.diseaseId ?\r\n
    \r\n this.handleDiseaseAddEditClick()}>\r\n \r\n \r\n
    : null}\r\n
    \r\n
    \r\n }\r\n return (\r\n <>\r\n \r\n this.growl = el} />\r\n \r\n {Translate('Disease')}{currentDiseaseHistory.diseaseName ? ' - ' + currentDiseaseHistory.diseaseName : null}\r\n \r\n \r\n
    \r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n
    \r\n {diseaseInputButton}\r\n
    \r\n this.handleChange('startDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('endDate', e)}\r\n />\r\n
    \r\n
    \r\n this.handleChange('comments', e.target['value'])}\r\n margin=\"none\"\r\n />\r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n {this.state.isVisibleDiseaseListDialog ? (\r\n \r\n ) : null}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserDiseaseAddEditDialog;\r\n","import * as React from 'react';\r\nimport UserService from '../../../services/userService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { fomatDateAsString } from '../../../common/functions/helperFunctions';\r\nimport { UserPrescriptionModel } from '../../../models/user/userPrescriptionModel';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport AuthService from '../../../services/authService';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport { UserDiseaseHistoryModel } from \"../../../models/user/userDiseaseHistoryModel\";\r\nimport UserDiseaseAddEditDialog from './userDiseaseAddEditDialog';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faBell } from '@fortawesome/free-solid-svg-icons';\r\nimport { faChevronDown, faChevronUp, faUserMd } from '@fortawesome/free-solid-svg-icons';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\nimport * as Constants from '../../../common/constants';\r\n\r\ninterface IProps {\r\n isVisible: boolean,\r\n closeClick: any,\r\n userPrescriptionId: number,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n currentUserPrescription: UserPrescriptionModel,\r\n isVisibleUserDisaeseAddEditDialog: boolean,\r\n isDiseaseButtonDisabled: boolean;\r\n currrentUserDiseaseHistory: UserDiseaseHistoryModel,\r\n userId: number;\r\n isVisibleConfirmDialog: boolean;\r\n expandedDiseases: Array\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 10;\r\n\r\nclass PrescriptionDiseaseListDialog extends React.Component {\r\n userService = new UserService(this.props.lang);\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n validationMessage: '',\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n currentUserPrescription: new UserPrescriptionModel(),\r\n isVisibleUserDisaeseAddEditDialog: false,\r\n isDiseaseButtonDisabled: false,\r\n currrentUserDiseaseHistory: new UserDiseaseHistoryModel(),\r\n userId: 0,\r\n isVisibleConfirmDialog: false,\r\n expandedDiseases: new Array()\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getPrescriptionDiseases(this.props.userPrescriptionId);\r\n }\r\n\r\n getPrescriptionDiseases = (userPrescriptionId) => {\r\n if (!userPrescriptionId) {\r\n this.growl.show({ severity: 'error', summary: \"PrescriptionID not valid\" });\r\n } else {\r\n this.setState({\r\n isLoading: true\r\n });\r\n this.userService.getPrescriptionDiseases(userPrescriptionId, this.props.lang)\r\n .then(\r\n (data: UserPrescriptionModel) => {\r\n this.setCurrentUserPrescription(data);\r\n this.setState({\r\n isLoading: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n setCurrentUserPrescription(currentUserPrescription: UserPrescriptionModel) {\r\n this.setState({ currentUserPrescription: { ...currentUserPrescription } });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n //********************** Disaeses methods *******************************************************************/\r\n handleUserDiseaseAddEditClick = (userDiseaseId) => {\r\n\r\n if (!userDiseaseId) {\r\n let currrentUserDiseaseHistory = new UserDiseaseHistoryModel();\r\n\r\n if (this.state.currentUserPrescription.startDate) {\r\n currrentUserDiseaseHistory.startDate = fomatDateAsString(new Date(this.state.currentUserPrescription.startDate));\r\n } else {\r\n currrentUserDiseaseHistory.startDate = fomatDateAsString(new Date());\r\n }\r\n\r\n if (this.state.currentUserPrescription.endDate) {\r\n currrentUserDiseaseHistory.endDate = fomatDateAsString(new Date(this.state.currentUserPrescription.endDate));\r\n } else {\r\n currrentUserDiseaseHistory.endDate = fomatDateAsString(new Date());\r\n }\r\n\r\n this.setState({\r\n currrentUserDiseaseHistory: currrentUserDiseaseHistory\r\n });\r\n this.showUserDiseaseAddEditDialog(true, false);\r\n } else {\r\n let userDiseaseHistory = this.state.currentUserPrescription.userDiseases.find(m => m.userDiseaseHistoryId === userDiseaseId);\r\n\r\n if (userDiseaseHistory) {\r\n this.setState({\r\n currrentUserDiseaseHistory: userDiseaseHistory\r\n });\r\n }\r\n this.showUserDiseaseAddEditDialog(true, true);\r\n }\r\n\r\n if (!this.state.userId || this.state.userId <= 0) {\r\n if (this.authService.isAuthenticated()) {\r\n let profile = this.authService.getProfile();\r\n let id = profile['id'];\r\n this.setState({\r\n userId: id,\r\n });\r\n }\r\n else {\r\n console.log(\"EROR\");\r\n }\r\n }\r\n }\r\n\r\n showUserDiseaseAddEditDialog = (show: boolean, isButtonDisabled: boolean) => {\r\n this.setState({\r\n isVisibleUserDisaeseAddEditDialog: show,\r\n isDiseaseButtonDisabled: isButtonDisabled\r\n });\r\n }\r\n\r\n handleUserDiseaseAddEditDialogCancelButton = () => {\r\n this.showUserDiseaseAddEditDialog(false, false);\r\n }\r\n\r\n handleUserDiseaseSave = (selectedUserDisease: UserDiseaseHistoryModel) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (!selectedUserDisease.userDiseaseHistoryId) { //INSERT \r\n this.userService.addPrescriptionDisease(this.props.userPrescriptionId, selectedUserDisease)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.getPrescriptionDiseases(this.props.userPrescriptionId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n } else {//UPDATE\r\n this.userService.updatePrescriptionDisease(this.props.userPrescriptionId, selectedUserDisease)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.getPrescriptionDiseases(this.props.userPrescriptionId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n this.showUserDiseaseAddEditDialog(false, false);\r\n }\r\n\r\n handleUserDiseaseDeleteClick = (userDiseaseId) => {\r\n let userDiseaseHistory = this.state.currentUserPrescription.userDiseases.find(m => m.userDiseaseHistoryId === userDiseaseId);\r\n if (userDiseaseHistory) {\r\n this.setState({\r\n currrentUserDiseaseHistory: userDiseaseHistory\r\n });\r\n }\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n deleteUserDisease = (userDiseaseId) => {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true\r\n });\r\n\r\n if (userDiseaseId && this.state.currentUserPrescription && this.state.currentUserPrescription.userPrescriptionId) {\r\n this.userService.deletePrescriptionDisease(this.state.currentUserPrescription.userPrescriptionId, userDiseaseId)\r\n .then(\r\n (data) => {\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n this.getPrescriptionDiseases(this.props.userPrescriptionId);\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n else {\r\n this.growl.show({ severity: 'error', summary: \"Delete failed\" });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n }\r\n\r\n expandedData = (rowData: UserDiseaseHistoryModel) => {\r\n return (\r\n
    \r\n this.handleUserDiseaseAddEditClick(rowData.userDiseaseHistoryId)}\r\n > \r\n this.handleUserDiseaseDeleteClick(rowData.userDiseaseHistoryId)}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n rowExpansionTemplate = (rowData: UserDiseaseHistoryModel) => {\r\n return (\r\n r.userDiseaseHistoryId == rowData.userDiseaseHistoryId)}\r\n timeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n {this.expandedData(rowData)}\r\n \r\n );\r\n }\r\n\r\n expandData = (data: UserDiseaseHistoryModel) => {\r\n if (!this.state.expandedDiseases.some(r => r.userDiseaseHistoryId == data.userDiseaseHistoryId) || this.state.expandedDiseases.length == 0) {\r\n this.setState({ expandedDiseases: [...this.state.expandedDiseases, data] });\r\n } else {\r\n this.setState({ expandedDiseases: this.state.expandedDiseases.filter(r => r.userDiseaseHistoryId != data.userDiseaseHistoryId) });\r\n }\r\n }\r\n\r\n keyItem = (m: UserDiseaseHistoryModel) => {\r\n return m.userDiseaseHistoryId + 'uDisId';\r\n }\r\n\r\n itemName = (m: UserDiseaseHistoryModel) => {\r\n return m.diseaseCode + \" \" + m.diseaseName;\r\n }\r\n\r\n itemDesc = (m: UserDiseaseHistoryModel) => {\r\n return (\r\n <>\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.startDate ? m.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.endDate ? m.endDate : ''), this.props.lang)}\r\n \r\n )\r\n }\r\n\r\n itemActions = (m: UserDiseaseHistoryModel) => {\r\n return (\r\n <>\r\n {window.innerWidth >= Constants.device.tablet ? this.expandedData(m) :\r\n\r\n this.state.expandedDiseases.some(r => r.userDiseaseHistoryId == m.userDiseaseHistoryId) ?\r\n \r\n : \r\n }\r\n \r\n )\r\n }\r\n\r\n render() {\r\n const { isLoading, currentUserPrescription, userId, currrentUserDiseaseHistory } = this.state;\r\n\r\n let dialogHeader: string = Translate('Diseases');\r\n let contentHeader = Translate('Diseases') + \" \" + Translate('for') + \" \" + Translate('prescription')\r\n + \" \" + ((currentUserPrescription && currentUserPrescription.prescription) ? currentUserPrescription.prescription : \"\");\r\n\r\n return (\r\n <>\r\n {isLoading ? : null}\r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n this.growl = el} />\r\n
    \r\n
    {Translate('DiseasesForPrescription')}:
    \r\n

    {HelperFunctions.fomatDatesStringWithLang(new Date(currentUserPrescription.startDate ? currentUserPrescription.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(currentUserPrescription.endDate ? currentUserPrescription.endDate : ''), this.props.lang)}

    \r\n
    \r\n \r\n

    {currentUserPrescription.doctor}

    \r\n
    \r\n
    \r\n this.handleUserDiseaseAddEditClick(null)} className=\"floating-action-button\">\r\n \r\n \r\n \r\n {!isLoading && (!currentUserPrescription.userDiseases || currentUserPrescription.userDiseases.length == 0) ? Translate(\"No records found\") : null}\r\n\r\n
    \r\n
    \r\n\r\n {this.state.isVisibleUserDisaeseAddEditDialog ? (\r\n ) : null}\r\n\r\n { this.deleteUserDisease(currrentUserDiseaseHistory.userDiseaseHistoryId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Confirm Message\") + \" \"}\r\n {(currrentUserDiseaseHistory ? ('\"' + currrentUserDiseaseHistory.diseaseName + '\"')\r\n : \"this record\")}?\r\n \r\n\r\n \r\n )\r\n }\r\n}\r\n\r\n\r\nexport default PrescriptionDiseaseListDialog;\r\n","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport UserService from '../../../services/userService';\r\nimport AuthService from '../../../services/authService';\r\nimport { UserPrescriptionGridModel } from '../../../models/user/userPrescriptionGridModel';\r\nimport { UserPrescriptionModel } from '../../../models/user/userPrescriptionModel';\r\nimport UserPrescriptionList from './userPrescriptionList';\r\nimport UserPrescriptionAddEditDialog from './userPrescriptionAddEditDialog';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport PrescriptionMedicineListDialog from './prescriptionMedicineListDialog';\r\nimport PrescriptionDiseaseListDialog from './prescriptionDiseaseListDialog';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport {\r\n faPills, faUserMd, faNotesMedical, faCheckCircle, faFileAlt, faUtensils, faStethoscope,\r\n faExclamationTriangle, faHospital, faChevronUp, faChevronDown\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport * as Constants from '../../../common/constants';\r\n\r\ninterface IProps {\r\n history: any\r\n lang: string;\r\n location: any;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n validationMessage: string;\r\n userId: number;\r\n currentUserPrescription: UserPrescriptionModel;\r\n userPrescriptions: Array\r\n isVisibleUserPrescriptionAddEditDialog: boolean;\r\n isVisibleConfirmDialog: boolean;\r\n currentUserPrescriptionId: number;\r\n isVisiblePrescriptionMedicinesListDialog: boolean;\r\n isVisiblePrescriptionDiseaseListDialog: boolean;\r\n expandedPrescription: Array;\r\n first: number;\r\n rows: number;\r\n totalRecords: number;\r\n activePrescriptionCount: number;\r\n countVisible: boolean;\r\n}\r\n\r\nclass UserPrescriptionComponent extends React.Component {\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n isLoading: false,\r\n userId: 0,\r\n currentUserPrescription: new UserPrescriptionModel(),\r\n userPrescriptions: new Array(0),\r\n isVisibleUserPrescriptionAddEditDialog: false,\r\n isVisibleConfirmDialog: false,\r\n currentUserPrescriptionId: 0,\r\n isVisiblePrescriptionMedicinesListDialog: false,\r\n isVisiblePrescriptionDiseaseListDialog: false,\r\n expandedPrescription: new Array(0),\r\n first: 0,\r\n rows: 20,\r\n totalRecords: 0,\r\n activePrescriptionCount: 0,\r\n countVisible: true\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let perscriptionId = HelperFunctions.getURLParameter('perscriptionId');\r\n if (perscriptionId) {\r\n this.setState({\r\n isLoading: true,\r\n countVisible: false\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n let profile = this.authService.getProfile();\r\n let id = profile ? profile['id'] : 0;\r\n\r\n this.userService.getUserPrescriptionFromLink(+perscriptionId).then(\r\n (data: any) => {\r\n if (data) {\r\n let prescriptions: Array = new Array(0);\r\n prescriptions.push(data);\r\n this.setState({\r\n isLoading: false,\r\n userPrescriptions: [...prescriptions],\r\n totalRecords: 1,\r\n activePrescriptionCount: 0,\r\n userId: id\r\n });\r\n\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n else {\r\n window.addEventListener('scroll', this.onScroll);\r\n this.getAllUserPrescriptions(true);\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.onScroll);\r\n }\r\n onScroll = () => {\r\n let scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n if (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n this.state.totalRecords > this.state.userPrescriptions.length && !this.state.isLoading) {\r\n this.paginatorClick({ first: this.state.first + this.state.rows }, false);\r\n }\r\n };\r\n\r\n paginatorClick = (e, isInit: boolean) => {\r\n this.setState({ first: e.first }, () => this.getAllUserPrescriptions(isInit));\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const locationChanged = this.props.location !== prevProps.location;\r\n if (locationChanged) {\r\n let tabName = HelperFunctions.getURLParameter('tabName');\r\n let perscriptionId = HelperFunctions.getURLParameter('perscriptionId');\r\n\r\n if (tabName && tabName == 'Medicines' && this.props.history.action === \"POP\") {\r\n this.handlePrescriptionMedicinesButtonClick(perscriptionId);\r\n }\r\n if (tabName && tabName == 'Diseases' && this.props.history.action === \"POP\") {\r\n this.handlePrescriptionDiseasesButtonClick(perscriptionId);\r\n }\r\n if (!tabName && this.props.history.action === \"POP\") {\r\n this.setState({ isVisiblePrescriptionDiseaseListDialog: false, isVisiblePrescriptionMedicinesListDialog: false, first: 0 }, () => this.getAllUserPrescriptions(true));\r\n }\r\n }\r\n }\r\n\r\n getAllUserPrescriptions(isInit: boolean) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n let profile = this.authService.getProfile();\r\n let id = profile ? profile['id'] : 0;\r\n\r\n this.userService.getAllUserPrescriptions(this.state.first, this.state.rows, this.props.lang).then(\r\n (data: any) => {\r\n if (data) {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n userPrescriptions: [...data.userPrescriptions],\r\n totalRecords: data.totalRecords,\r\n activePrescriptionCount: data.activePrescriptionCount,\r\n userId: id\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false,\r\n userPrescriptions: [...this.state.userPrescriptions, ...data.userPrescriptions],\r\n totalRecords: data.totalRecords,\r\n userId: id\r\n });\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n }\r\n\r\n showEditDialog = (show: boolean) => {\r\n this.setState({\r\n isVisibleUserPrescriptionAddEditDialog: show,\r\n validationMessage: ''\r\n });\r\n };\r\n\r\n handleCancelButton = () => {\r\n this.showEditDialog(false);\r\n };\r\n\r\n setCurrentUserPrescription(currentUserPrescription: UserPrescriptionModel) {\r\n this.setState({ currentUserPrescription: { ...currentUserPrescription } });\r\n }\r\n\r\n handleSaveButton = (currentUserPrescription: UserPrescriptionModel, close: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (!currentUserPrescription.userId || currentUserPrescription.userId <= 0) {\r\n currentUserPrescription.userId = this.state.userId;\r\n }\r\n\r\n if (!currentUserPrescription.userPrescriptionId) { // Add\r\n this.userService.addUserPrescription(currentUserPrescription)\r\n .then(\r\n (data) => {\r\n if (close) {\r\n this.showEditDialog(false);\r\n }\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setCurrentUserPrescription(new UserPrescriptionModel());\r\n this.setState({ first: 0 }, () => this.getAllUserPrescriptions(true));\r\n },\r\n error => {\r\n this.showEditDialog(false);\r\n this.setCurrentUserPrescription(new UserPrescriptionModel());\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n } else { // Edit\r\n this.userService.updateUserPrescription(currentUserPrescription)\r\n .then(\r\n (data) => {\r\n if (close) {\r\n this.showEditDialog(false);\r\n }\r\n this.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n this.setCurrentUserPrescription(new UserPrescriptionModel());\r\n this.setState({ first: 0 }, () => this.getAllUserPrescriptions(true));\r\n },\r\n error => {\r\n this.showEditDialog(false);\r\n this.setCurrentUserPrescription(new UserPrescriptionModel());\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n };\r\n\r\n getUserPrescription = (userPrescriptionId) => {\r\n this.userService.getUserPrescription(userPrescriptionId, this.props.lang)\r\n .then(\r\n (data: UserPrescriptionModel) => {\r\n this.setCurrentUserPrescription(data);\r\n this.setState({\r\n isLoading: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleUserPrescriptionDeleteClick = (userPrescriptionId: number) => {\r\n this.getUserPrescription(userPrescriptionId);\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n deleteUserPrescription(userPrescriptionId) {\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isLoading: true\r\n });\r\n\r\n this.userService.deleteUserPrescription(userPrescriptionId)\r\n .then(\r\n data => {\r\n this.setState({ first: 0 }, () => this.getAllUserPrescriptions(true));\r\n this.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleUserPrescriptionAddEditClick = (userPrescriptionId) => {\r\n\r\n if (!userPrescriptionId) { // Add\t\t\t\r\n this.setCurrentUserPrescription(new UserPrescriptionModel());\r\n this.showEditDialog(true);\r\n } else { // Edit\r\n this.setState({\r\n isLoading: true\r\n });\r\n this.userService.getUserPrescription(userPrescriptionId, this.props.lang)\r\n .then(\r\n (data: UserPrescriptionModel) => {\r\n this.setCurrentUserPrescription(data);\r\n this.showEditDialog(true);\r\n this.setState({\r\n isLoading: false\r\n });\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n );\r\n }\r\n }\r\n\r\n //************************** Prescription medicines methods ******************************************************/\r\n handlePrescriptionMedicinesButtonClick = (userPrescriptionId) => {\r\n if (!userPrescriptionId) {\r\n this.growl.show({ severity: 'error', summary: \"PrescriptionID not valid\" });\r\n } else {\r\n this.setState({\r\n currentUserPrescriptionId: userPrescriptionId\r\n });\r\n this.props.history.push(`/user/prescriptions?tabName=Medicines&perscriptionId=${userPrescriptionId}`);\r\n this.showPrescriptionMedicinesListDialog(true);\r\n }\r\n }\r\n\r\n handlePrescriptionMedicinesCloseButton = () => {\r\n this.showPrescriptionMedicinesListDialog(false);\r\n this.setState({ first: 0 }, () => this.getAllUserPrescriptions(true));\r\n };\r\n\r\n showPrescriptionMedicinesListDialog = (show: boolean) => {\r\n this.setState({\r\n isVisiblePrescriptionMedicinesListDialog: show,\r\n validationMessage: ''\r\n });\r\n };\r\n\r\n //************************** Prescription diseases methods ******************************************************/\r\n handlePrescriptionDiseasesButtonClick = (userPrescriptionId) => {\r\n if (!userPrescriptionId) {\r\n this.growl.show({ severity: 'error', summary: \"PrescriptionID not valid\" });\r\n } else {\r\n this.setState({\r\n currentUserPrescriptionId: userPrescriptionId\r\n });\r\n this.props.history.push(`/user/prescriptions?tabName=Diseases&perscriptionId=${userPrescriptionId}`);\r\n this.showPrescriptionDiseaseListDialog(true);\r\n }\r\n }\r\n\r\n handlePrescriptionDisaeseCloseButton = () => {\r\n this.showPrescriptionDiseaseListDialog(false);\r\n this.setState({ first: 0 }, () => this.getAllUserPrescriptions(true));\r\n };\r\n\r\n showPrescriptionDiseaseListDialog = (show: boolean) => {\r\n this.setState({\r\n isVisiblePrescriptionDiseaseListDialog: show,\r\n validationMessage: ''\r\n });\r\n };\r\n\r\n expanedData = (rowData: UserPrescriptionGridModel) => {\r\n return (\r\n
    \r\n this.handlePrescriptionMedicinesButtonClick(rowData.userPrescriptionId)}>\r\n \r\n this.handlePrescriptionDiseasesButtonClick(rowData.userPrescriptionId)}>\r\n \r\n this.handleUserPrescriptionAddEditClick(rowData.userPrescriptionId)}\r\n > \r\n this.handleUserPrescriptionDeleteClick(rowData.userPrescriptionId)}\r\n >\r\n
    \r\n );\r\n }\r\n\r\n\r\n rowExpansionTemplate = (rowData: UserPrescriptionGridModel) => {\r\n return (\r\n r.userPrescriptionId == rowData.userPrescriptionId)}\r\n timeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n {this.expanedData(rowData)}\r\n \r\n );\r\n }\r\n\r\n expandData = (data: UserPrescriptionGridModel) => {\r\n if (!this.state.expandedPrescription.some(r => r.userPrescriptionId == data.userPrescriptionId) || this.state.expandedPrescription.length == 0) {\r\n this.setState({ expandedPrescription: [...this.state.expandedPrescription, data] });\r\n } else {\r\n this.setState({ expandedPrescription: this.state.expandedPrescription.filter(r => r.userPrescriptionId != data.userPrescriptionId) });\r\n }\r\n }\r\n\r\n keyItem = (m: UserPrescriptionGridModel) => {\r\n return m.userPrescriptionId + 'perscId';\r\n }\r\n\r\n itemName = (m: UserPrescriptionGridModel) => {\r\n return (\r\n <>\r\n {m.isActiveNow ? : null}\r\n {\" \" + Translate('Course of treatment') + \": \"}\r\n \r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.startDate ? m.startDate : ''), this.props.lang) + \" - \"}\r\n {HelperFunctions.fomatDatesStringWithLang(new Date(m.endDate ? m.endDate : ''), this.props.lang)}\r\n \r\n )\r\n }\r\n\r\n itemDesc = (m: UserPrescriptionGridModel) => {\r\n return (\r\n <>\r\n
    \r\n \r\n {m.doctor}\r\n
    \r\n {m.hospital ?\r\n
    \r\n \r\n {m.hospital}\r\n
    \r\n : null}\r\n {m.recommendedFoods ?\r\n
    \r\n \r\n {m.recommendedFoods}\r\n
    : null}\r\n {m.notAllowedFoods ?\r\n
    \r\n \r\n {m.notAllowedFoods}\r\n
    : null}\r\n {m.recommendedTreatment ?\r\n
    \r\n \r\n {m.recommendedTreatment}\r\n
    : null}\r\n
    \r\n \r\n {Translate('Medicines')}\r\n
    \r\n {m.userMedicineCount ? m.userMedicineCount : '0'}\r\n
    \r\n
    \r\n
    \r\n \r\n {Translate('Diseases')}\r\n
    \r\n {m.userDiseaseCount ? m.userDiseaseCount : '0'}\r\n
    \r\n
    \r\n \r\n )\r\n }\r\n\r\n itemActions = (m: UserPrescriptionGridModel) => {\r\n return (\r\n <>\r\n {window.innerWidth >= Constants.device.tablet ? this.expanedData(m) :\r\n\r\n this.state.expandedPrescription.some(r => r.userPrescriptionId == m.userPrescriptionId) ?\r\n \r\n : \r\n }\r\n \r\n )\r\n }\r\n\r\n public render() {\r\n const { isLoading, userPrescriptions, totalRecords, activePrescriptionCount, currentUserPrescription,\r\n currentUserPrescriptionId, expandedPrescription, countVisible } = this.state;\r\n\r\n return (\r\n
    \r\n this.growl = el} />\r\n\r\n {this.state.isVisiblePrescriptionMedicinesListDialog || this.state.isVisiblePrescriptionDiseaseListDialog ? null :\r\n <>\r\n

    {Translate('Doctors prescriptions')}

    \r\n this.handleUserPrescriptionAddEditClick(null)} className=\"floating-action-button\">\r\n \r\n \r\n\r\n {(!isLoading && userPrescriptions && userPrescriptions.length > 0 && countVisible) ?\r\n
    \r\n {totalRecords} {Translate('total records.')}
    \r\n {activePrescriptionCount} {Translate('current doctors prescriptions.')}\r\n {activePrescriptionCount > 0 ?\r\n \r\n : null}\r\n
    : null}\r\n\r\n {/* */}\r\n \r\n {!isLoading && (!userPrescriptions || userPrescriptions.length == 0) ? Translate(\"No records found\") : null}\r\n \r\n }\r\n {isLoading ? : null}\r\n {this.state.isVisibleUserPrescriptionAddEditDialog ? (\r\n ) : null}\r\n\r\n {this.state.isVisiblePrescriptionMedicinesListDialog ? (\r\n ) : null}\r\n\r\n {this.state.isVisiblePrescriptionDiseaseListDialog ? (\r\n ) : null}\r\n\r\n { this.deleteUserPrescription(currentUserPrescription.userPrescriptionId) }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Confirm Message\") + \" \"}\r\n {(currentUserPrescription && currentUserPrescription.prescription) ? '\"' + currentUserPrescription.prescription + '\"'\r\n : Translate(\"This record\")} {Translate('And medicines diseases notifications')}?\r\n \r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(UserPrescriptionComponent);","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport { UserChangePasswordModel } from '../../models/user/userChangePasswordModel';\r\nimport { Link } from \"react-router-dom\";\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport LoginService from '../../services/loginService';\r\nimport { userInfo } from \"os\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport GrowlContent from '../../common/components/alertMessage/growlContent';\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n user: UserChangePasswordModel;\r\n mode: string;\r\n emailError: boolean;\r\n passError: boolean;\r\n confPassError: boolean;\r\n}\r\n\r\nclass NewPasswordComponent extends React.Component {\r\n\r\n loginService = new LoginService();\r\n growl: any;\r\n\r\n // min 8 characters, 1 alpha lowercase, 1 alpha uppercase, 1 number and 1 special\r\n passwordStrongRegex = new RegExp(\"^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[!@#\\$%\\^&\\*])(?=.{8,})\");\r\n // min 6 characters, 1 alpha and 1 number\r\n passwordMediumRegex = new RegExp(\"^(((?=.*[a-z])(?=.*[A-Z]))|((?=.*[a-z])(?=.*[0-9]))|((?=.*[A-Z])(?=.*[0-9])))(?=.{6,})\");\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n user: new UserChangePasswordModel(),\r\n mode: '',\r\n emailError: false,\r\n passError: false,\r\n confPassError: false,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let confirmCode = HelperFunctions.getURLParameter('confirmCode');\r\n if (confirmCode) {\r\n this.validateConfirmCode(decodeURIComponent(confirmCode + ''));\r\n }\r\n }\r\n\r\n validateConfirmCode(confirmCode) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.loginService.validateConfirmCode(confirmCode).then(\r\n (data: any) => {\r\n if (data) {\r\n let user = this.state.user;\r\n user.activationCode = confirmCode;\r\n this.setState({\r\n isLoading: false,\r\n mode: 'validConfirmCode',\r\n user: user\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserChangePasswordModel = { ...this.state.user };\r\n user[key] = value;\r\n this.setState({ user: { ...user } });\r\n\r\n if (key == 'email') {\r\n this.setState({ emailError: !HelperFunctions.validateEmail(user.email) });\r\n }\r\n\r\n if (key == 'newPassword') {\r\n this.setState({ passError: !this.passwordMediumRegex.test(value) });\r\n }\r\n\r\n if (key == 'confirmPassword') {\r\n this.setState({ confPassError: user.newPassword != user.confirmPassword });\r\n }\r\n };\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleChangeButtonClick(e);\r\n }\r\n }\r\n\r\n isValidAddEditForm() {\r\n let message = '';\r\n\r\n const { user } = this.state;\r\n\r\n if (!user || !user.email || user.email.trim() == '') {\r\n message += Translate('Please enter Email') + '. ';\r\n } else {\r\n if (!HelperFunctions.validateEmail(user.email)) {\r\n message += Translate('Please enter valid Email') + '. ';\r\n }\r\n }\r\n\r\n if (!user.newPassword || user.newPassword.trim() == '') {\r\n message += Translate('Please enter New Password') + \". \";\r\n }\r\n\r\n if (!user.confirmPassword || user.confirmPassword.trim() == '') {\r\n message += Translate('Please enter Confirm Password') + \". \";\r\n }\r\n\r\n if (user.newPassword && user.newPassword.trim() != '' &&\r\n user.confirmPassword && user.confirmPassword.trim() != '' &&\r\n user.newPassword != user.confirmPassword) {\r\n message += Translate('New Password and Confirm Password are different') + \". \";\r\n }\r\n\r\n if (user.newPassword && !this.passwordMediumRegex.test(user.newPassword)) {\r\n message += Translate('Password must be at least 6 characters and contain at least 1 alphabetical and 1 numeric character') + \". \";\r\n }\r\n\r\n if (message != '') {\r\n this.growl.show({ severity: 'error', summary: message });\r\n }\r\n\r\n return message == '';\r\n }\r\n\r\n handleChangeButtonClick = event => {\r\n event.preventDefault();\r\n\r\n if (!this.isValidAddEditForm()) return;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { user } = this.state;\r\n\r\n this.loginService.newPassword(user).then(\r\n (data: any) => {\r\n if (data) {\r\n let user = this.state.user;\r\n user.email = '';\r\n user.oldPassword = '';\r\n user.newPassword = '';\r\n user.confirmPassword = '';\r\n this.setState({\r\n isLoading: false,\r\n user: user,\r\n mode: 'successPaswordChanged'\r\n });\r\n //this.growl.show({ severity: 'success', detail: Translate('You have successfully changed your Password.') });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, user, mode, emailError, passError, confPassError } = this.state;\r\n\r\n const newPasswordHtml =\r\n <>\r\n

    {Translate('Enter new Password')}

    \r\n
    \r\n
    \r\n this.handleChange('email', e.target['value'])}\r\n helperText={Translate(\"Please enter a valid e-mail address.\")}\r\n />\r\n
    \r\n
    \r\n this.handleChange('newPassword', e.target['value'])}\r\n value={user && user.newPassword ? user.newPassword : \"\"}\r\n helperText={Translate(\"6 characters or more, at least 1 alphabetical and 1 numeric.\")}\r\n />\r\n
    \r\n
    \r\n this.handleChange('confirmPassword', e.target['value'])}\r\n value={user && user.confirmPassword ? user.confirmPassword : \"\"}\r\n helperText={Translate(\"Please enter password again.\")}\r\n />\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n\r\n const successPaswordChangedHtml =\r\n <>\r\n
    \r\n \r\n
    \r\n
    \r\n {Translate('Now you can go to ')} {Translate('Login')}.\r\n
    \r\n \r\n\r\n let resultHtml;\r\n\r\n switch (mode) {\r\n case 'validConfirmCode':\r\n resultHtml = newPasswordHtml;\r\n break;\r\n case 'successPaswordChanged':\r\n resultHtml = successPaswordChangedHtml;\r\n break;\r\n default:\r\n resultHtml = null;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n
    \r\n {resultHtml}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default NewPasswordComponent;","import * as React from \"react\";\r\nimport { BrowserRouter, Route, Link, Switch, Redirect, withRouter } from \"react-router-dom\";\r\nimport AuthService from '../../services/authService';\r\nimport { connect } from 'react-redux';\r\nimport * as Constants from '../../common/constants';\r\nimport * as actionTypes from '../../store/actionTypes';\r\n\r\ninterface IProps {\r\n onUserLogout: any,\r\n history: any\r\n}\r\n\r\ninterface IState {\r\n}\r\n\r\nclass NotAuthenticatedComponent extends React.Component {\r\n аuthService = new AuthService();\r\n\r\n componentDidMount() {\r\n if (!this.аuthService.isAuthenticated()) {\r\n this.props.onUserLogout();\r\n this.props.history.push(`/login?returnUrl=${window.location.pathname}`);\r\n }\r\n }\r\n\r\n public render() {\r\n return (\r\n
    \r\n

    You are not Authenticated to view this page.

    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserLogout: () => dispatch({ type: actionTypes.USER_LOGOUT })\r\n }\r\n}\r\n\r\nexport default withRouter(connect(null, mapDispatchToProps)(NotAuthenticatedComponent));","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport { UserForGridModel } from '../../../models/user/userForGridModel';\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport { enumToDropdownArray } from '../../../common/functions/helperFunctions';\r\nimport { RelationType, UserType } from \"../../../common/enums\";\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport * as Constants from '../../../common/constants';\r\nimport Paginator from '../../../common/components/paginator/paginator';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport UserService from '../../../services/userService';\r\nimport { UserGridModel } from \"../../../models/user\";\r\n\r\ninterface IProps {\r\n saveClick: any,\r\n cancelClick: any,\r\n isVisible: boolean,\r\n selectedUser: UserForGridModel,\r\n dialogHeader: string,\r\n saveCaretakerClick: any\r\n}\r\n\r\ninterface IState {\r\n currentUser: UserForGridModel;\r\n isLoading: boolean;\r\n validationMessage: string;\r\n relationType: Array;\r\n userTypes: Array;\r\n searchText: string;\r\n users: Array;\r\n selectedUser: UserForGridModel;\r\n page: number;\r\n numberOfPages: number;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n}\r\n\r\nclass UserFamilyAddEditDialog extends React.Component {\r\n growl: any;\r\n initFrom = 0;\r\n numberOfRows = 10;\r\n userService = new UserService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n if (!props.selectedUser) {\r\n props.selectedUser = new UserForGridModel();\r\n }\r\n\r\n this.state = {\r\n currentUser: props.selectedUser,\r\n isLoading: false,\r\n validationMessage: '',\r\n relationType: new Array(0),\r\n userTypes: new Array(0),\r\n searchText: '',\r\n users: new Array(0),\r\n selectedUser: new UserForGridModel(),\r\n page: 1,\r\n from: this.initFrom,\r\n numberOfPages: 1,\r\n numberOfRows: this.numberOfRows,\r\n totalRecordsCount: 0\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const relationType: Array = [{ label: Translate('Select'), value: 0 }];\r\n const userTypes: Array = enumToDropdownArray(UserType, true);\r\n const user = { ...this.state.currentUser }\r\n user.userTypeId = 1;\r\n this.setState({ relationType: relationType.concat(enumToDropdownArray(RelationType, true)), userTypes: userTypes, currentUser: { ...user } });\r\n }\r\n\r\n handleSaveButton = (event, close) => {\r\n event.preventDefault();\r\n const user = this.state.currentUser;\r\n this.props.saveClick(user, close);\r\n }\r\n\r\n handleCaretakerSaveButton = (event, close) => {\r\n event.preventDefault();\r\n const user = { ...this.state.selectedUser };\r\n user.relationType = this.state.currentUser.relationType;\r\n this.props.saveCaretakerClick(user, close);\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const user: UserForGridModel = { ...this.state.currentUser };\r\n user[key] = value;\r\n this.setState({ currentUser: { ...user } });\r\n };\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick();\r\n }\r\n }\r\n\r\n handleSearchButtonClick = () => {\r\n if (!this.state.searchText || this.state.searchText.trim() == '') {\r\n return;\r\n }\r\n this.setState({\r\n isLoading: true,\r\n page: 1\r\n },\r\n () => this.getAllFilteredItems(this.state.page, this.state.numberOfRows)\r\n );\r\n }\r\n\r\n getAllFilteredItems(page: number, numberOfRows: number) {\r\n let from = (page - 1) * this.state.numberOfRows;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.getFilteredUsers(from, numberOfRows, this.state.searchText.trim()).then(\r\n (data: UserGridModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n users: data.users,\r\n totalRecordsCount: data.totalRecordsCount,\r\n numberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n data.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n\r\n paginataorClick = (page) => {\r\n this.setState({ page: page }, () => this.getAllFilteredItems(page, this.state.numberOfRows));\r\n }\r\n\r\n handleSelectionChange = (e) => {\r\n this.setState({\r\n selectedUser: e\r\n });\r\n }\r\n\r\n handleSearchChange = (value: string) => {\r\n this.setState({ searchText: value.trim() });\r\n }\r\n\r\n public render() {\r\n\r\n const { isLoading, currentUser, relationType, userTypes, searchText, users, selectedUser, numberOfPages, page } = this.state;\r\n\r\n return (\r\n <>\r\n \r\n {this.props.dialogHeader}\r\n \r\n
    \r\n {this.state.validationMessage ? {this.state.validationMessage} : null}\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n
    \r\n {!currentUser.userId || currentUser.userId <= 0 ?\r\n
    \r\n \r\n {Translate('Select')}\r\n this.handleChange('userTypeId', e.target.value)}\r\n inputProps={{\r\n id: 'user-type-label'\r\n }}\r\n >\r\n {\r\n userTypes.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    \r\n : null}\r\n {currentUser.userTypeId == UserType.UserCreated ?\r\n
    \r\n this.handleChange('name', e.target['value'])}\r\n />\r\n
    \r\n : null}\r\n
    \r\n \r\n {Translate('RelationType') + \"*\"}\r\n this.handleChange('relationType', e.target.value)}\r\n inputProps={{\r\n id: 'relation-label'\r\n }}\r\n >\r\n {\r\n relationType.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    \r\n {currentUser.userTypeId == UserType.UserCreated ?\r\n
    \r\n this.handleChange('email', e.target['value'])}\r\n />\r\n
    \r\n :\r\n <>\r\n
    \r\n \r\n this.handleSearchChange(e.target['value'])}\r\n onKeyPress={this.handleKeyPress}\r\n value={searchText ? searchText : \"\"}\r\n inputProps={{\r\n id: \"name-email-label\"\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
      \r\n {users && users.length > 0 ?\r\n users.map((m: UserForGridModel) =>\r\n
    • this.handleSelectionChange(m)}>\r\n
      \r\n this.handleSelectionChange(m)}\r\n color=\"primary\"\r\n />\r\n
      \r\n
      \r\n
      \r\n {m.name}\r\n
      \r\n
      \r\n {m.email}\r\n
      \r\n
      \r\n\r\n
    • \r\n ) : null}\r\n
    \r\n\r\n {numberOfPages > 1 ?\r\n
    \r\n \r\n
    \r\n : null}\r\n
    \r\n }\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n {currentUser.userTypeId == UserType.UserCreated ?\r\n \r\n :\r\n }\r\n
    \r\n
    \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserFamilyAddEditDialog;","import * as React from 'react';\r\nimport { ResponsiveBar } from '@nivo/bar';\r\nimport { UserConditionModel } from \"../../../models/user/userConditionModel\";\r\nimport { ConditionUnitRangeModel } from '../../../models/user/conditionUnitRangeModel';\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport { UserConditionType, GenderType } from '../../../common/enums';\r\nimport color from '@material-ui/core/colors/deepOrange';\r\nimport { green } from '@material-ui/core/colors';\r\nimport Translate from '../../../common/functions/translate';\r\n\r\ndeclare module '@nivo/bar'\r\n\r\nclass BarModel {\r\n public conditionDate?: string;\r\n public value: number;\r\n public valueColor: string;\r\n public secondValue?: number;\r\n public secondValueColor?: string;\r\n}\r\n\r\nlet minBorder: any;\r\nlet maxBorder: any;\r\n\r\nconst barData = (userCondition: UserConditionModel, lang: string, typeRanges: ConditionUnitRangeModel) => {\r\n let label = userCondition.isSystemType ? HelperFunctions.getEnumLabel(userCondition.userConditionTypeId, UserConditionType, true) +\r\n ' (' + userCondition.userConditionUnit + ')' + '' : userCondition.personalCondition + '';\r\n\r\n let data: Array = new Array(0);\r\n let sortedItems = userCondition.userConditionTypes.sort((a, b) => new Date(a.conditionDate).getTime() - new Date(b.conditionDate).getTime());\r\n for (let cond of sortedItems) {\r\n let ucond: BarModel = new BarModel();\r\n ucond.conditionDate = HelperFunctions.fomatDateTimeSecondsAsStringWithLang(new Date(cond.conditionDate), lang);\r\n if (userCondition.isSystemType && userCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n let bPressure = cond.userConditionValue.split('/');\r\n ucond.value = parseFloat(bPressure[0]);\r\n ucond.secondValue = parseFloat(bPressure[1]);\r\n ucond.valueColor = \"#7bc87b\";\r\n ucond.secondValueColor = \"#7bc87b\";\r\n\r\n if (typeRanges &&\r\n ((typeRanges.minValue && typeRanges.minValue > bPressure[0]) || (typeRanges.maxValue && typeRanges.maxValue < bPressure[0]))) {\r\n ucond.valueColor = \"#ff4d4d\";\r\n }\r\n\r\n if (typeRanges &&\r\n ((typeRanges.secondMinValue && typeRanges.secondMinValue > bPressure[1]) || (typeRanges.secondMaxValue && typeRanges.secondMaxValue < bPressure[1]))) {\r\n ucond.secondValueColor = \"#ff4d4d\";\r\n }\r\n }\r\n else {\r\n ucond.value = parseFloat(cond.userConditionValue)\r\n ucond.valueColor = \"#7bc87b\";\r\n if (typeRanges &&\r\n ((typeRanges.minValue && typeRanges.minValue > cond.userConditionValue) || (typeRanges.maxValue && typeRanges.maxValue < cond.userConditionValue))) {\r\n ucond.valueColor = \"#ff4d4d\";\r\n }\r\n }\r\n data.push(ucond);\r\n }\r\n\r\n return data;\r\n}\r\n\r\nconst getMinAndMax = (userCondition: UserConditionModel, isMin: boolean, minMarker: number, maxMarker: number, isThereMarkers: boolean) => {\r\n let val: number = 0;\r\n if (userCondition.isSystemType && userCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n if (isThereMarkers) {\r\n val = isMin ? minMarker : maxMarker\r\n }\r\n else {\r\n let blPressure = userCondition.userConditionTypes[0].userConditionValue.split('/');\r\n val = isMin ? +blPressure[1] : +blPressure[0];\r\n }\r\n for (let uType of userCondition.userConditionTypes) {\r\n let bPressure = uType.userConditionValue.split('/');\r\n if (isMin) {\r\n val = +bPressure[1] < val ? +bPressure[1] : val;\r\n }\r\n else {\r\n val = +bPressure[0] > val ? +bPressure[0] : val;\r\n }\r\n }\r\n }\r\n else {\r\n if (isThereMarkers) {\r\n val = isMin ? minMarker : maxMarker\r\n }\r\n else {\r\n val = +userCondition.userConditionTypes[0].userConditionValue;\r\n }\r\n for (let uType of userCondition.userConditionTypes) {\r\n if (isMin) {\r\n val = +uType.userConditionValue < val ? +uType.userConditionValue : val;\r\n }\r\n else {\r\n val = +uType.userConditionValue > val ? +uType.userConditionValue : val;\r\n }\r\n }\r\n\r\n }\r\n return val;\r\n}\r\n\r\nconst UserConditionBars = (props) => {\r\n let typeRange: ConditionUnitRangeModel = props.typeRanges;\r\n let label = props.userCondition.isSystemType ? HelperFunctions.getEnumLabel(props.userCondition.userConditionTypeId, UserConditionType, true) +\r\n ' (' + props.userCondition.userConditionUnit + ')' + '' : props.userCondition.personalCondition + '';\r\n\r\n let markers = new Array(0);\r\n let minMarker: number = 0;\r\n let maxMarker: number = 0;\r\n\r\n if (typeRange) {\r\n minMarker = +typeRange.minValue;\r\n maxMarker = +typeRange.maxValue;\r\n\r\n if (typeRange.minValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.minValue,\r\n lineStyle: { stroke: '#0aa5ff', strokeDasharray: \"12, 6\" }, legend: \"min: \" + typeRange.minValue, textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.minValue < minMarker) {\r\n minMarker = +typeRange.minValue;\r\n }\r\n }\r\n if (typeRange.maxValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.maxValue,\r\n lineStyle: { stroke: '#0aa5ff', strokeDasharray: \"12, 6\" }, legend: \"max: \" + typeRange.maxValue, textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.maxValue > maxMarker) {\r\n maxMarker = +typeRange.maxValue;\r\n }\r\n }\r\n\r\n if (typeRange.secondMinValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.secondMinValue,\r\n lineStyle: { stroke: '#34675c', strokeDasharray: \"12, 6\" }, legend: \"min: \" + typeRange.secondMinValue, legendPosition: 'bottom-right', textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.secondMinValue < minMarker) {\r\n minMarker = +typeRange.secondMinValue;\r\n }\r\n }\r\n if (typeRange.secondMaxValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.secondMaxValue,\r\n lineStyle: { stroke: '#34675c', strokeDasharray: \"12, 6\" }, legend: \"max: \" + typeRange.secondMaxValue, legendPosition: 'bottom-right', textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.secondMaxValue > maxMarker) {\r\n maxMarker = +typeRange.secondMaxValue;\r\n }\r\n }\r\n }\r\n\r\n let minVal: number = getMinAndMax(props.userCondition, true, minMarker, maxMarker, markers && markers.length > 0);\r\n let maxVal: number = getMinAndMax(props.userCondition, false, minMarker, maxMarker, markers && markers.length > 0);\r\n\r\n let delta = maxVal - minVal;\r\n\r\n minBorder = minVal != 0 ? minVal - (delta / 5) : null;\r\n maxBorder = maxVal != 0 ? maxVal + (delta / 2) : null;\r\n\r\n let data = barData(props.userCondition, props.lang, props.typeRanges);\r\n let keys: string[] = [];\r\n if (props.userCondition.isSystemType && props.userCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n keys = [\"value\", \"secondValue\"];\r\n }\r\n else {\r\n keys = [\"value\"];\r\n }\r\n\r\n let axisBottom: any = {\r\n \"tickSize\": 5,\r\n \"tickPadding\": 15,\r\n \"tickRotation\": 0,\r\n \"legend\": \"\",\r\n \"legendOffset\": 46,\r\n \"legendPosition\": \"middle\",\r\n renderTick: (data) => {\r\n const { value, opacity, textBaseline, textAnchor, textX, textY, x, y } = data\r\n return (\r\n\r\n \r\n \r\n {getTspanGroups(value, 10, 3)}\r\n \r\n \r\n )\r\n }\r\n }\r\n\r\n return (\r\n data[`${id}Color`]}\r\n // minValue={minVal != 0 ? minVal - (delta / 5) : \"auto\"}\r\n maxValue={maxBorder != null ? maxBorder : \"auto\"}\r\n markers={markers}\r\n axisTop={null}\r\n axisRight={null}\r\n axisBottom={axisBottom}\r\n labelSkipWidth={12}\r\n labelSkipHeight={12}\r\n labelTextColor={\"white\"}\r\n // defs={[\r\n // {\r\n // id: 'lines-green',\r\n // type: 'patternLines',\r\n // background: 'inherit',\r\n // color: '#68a868',\r\n // rotation: -45,\r\n // lineWidth: 4,\r\n // spacing: 10\r\n // },\r\n // {\r\n // id: 'lines-red',\r\n // type: 'patternLines',\r\n // background: 'inherit',\r\n // color: '#b23b3b',\r\n // rotation: -45,\r\n // lineWidth: 4,\r\n // spacing: 10\r\n // }\r\n // ]}\r\n // fill={[\r\n // {\r\n // match: d => {\r\n // console.log(d)\r\n // return d.key.toString().includes(\"secondValue\") && d.color === '#7bc87b'\r\n // }, id: 'lines-green'\r\n // },\r\n // {\r\n // match: d => {\r\n // console.log(d)\r\n // return d.key.toString().includes(\"secondValue\") && d.color === '#ff4d4d'\r\n // }, id: 'lines-red'\r\n // }\r\n // ]}\r\n animate={true}\r\n motionStiffness={90}\r\n motionDamping={15}\r\n tooltip={({ id, value, color }) => {\r\n let tooltip = \r\n {label}: {value}\r\n \r\n if (props.userCondition.isSystemType && props.userCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n if (id == \"value\") {\r\n tooltip = \r\n {Translate('TopNumber') + ' (' + props.userCondition.userConditionUnit + ')'}: {value}\r\n \r\n }\r\n else {\r\n tooltip = \r\n {Translate('BottomNumber') + ' (' + props.userCondition.userConditionUnit + ')'}: {value}\r\n \r\n }\r\n }\r\n return tooltip;\r\n }}\r\n />\r\n )\r\n\r\n}\r\n\r\nconst getTspanGroups = (value: string, maxLineLength: number, maxLines: number = 2) => {\r\n const words = value.split(' ')\r\n\r\n type linesAcc = {\r\n lines: string[],\r\n currLine: string\r\n }\r\n\r\n //reduces the words into lines of maxLineLength\r\n const assembleLines: linesAcc = words.reduce((acc: linesAcc, word: string) => {\r\n //if the current line isn't empty and the word + current line is larger than the allowed line size, create a new line and update current line\r\n if ((word + acc.currLine).length > maxLineLength && acc.currLine !== '') {\r\n return {\r\n lines: acc.lines.concat([acc.currLine]),\r\n currLine: word\r\n }\r\n }\r\n //otherwise add the word to the current line\r\n return {\r\n ...acc,\r\n currLine: acc.currLine + ' ' + word\r\n }\r\n\r\n }, { lines: [], currLine: '' })\r\n\r\n //add the ending state of current line (the last line) to lines\r\n const allLines = assembleLines.lines.concat([assembleLines.currLine])\r\n\r\n //for now, only take first 2 lines due to tick spacing and possible overflow\r\n const lines = allLines.slice(0, maxLines)\r\n let children: JSX.Element[] = []\r\n let dy = 0\r\n\r\n lines.forEach((lineText, i) => {\r\n children.push(\r\n \r\n {\r\n // if on the second line, and that line's length is within 3 of the max length, add ellipsis\r\n (1 === i && allLines.length > 2) ? lineText.slice(0, maxLineLength - 3) + '...' : lineText\r\n }\r\n \r\n )\r\n //increment dy to render next line text below\r\n dy += 15\r\n });\r\n\r\n return children\r\n}\r\n\r\nexport default UserConditionBars;","import * as React from 'react';\r\nimport { Link } from \"react-router-dom\";\r\nimport { MedicineForListModel } from \"../../models\";\r\nimport Translate from '../../common/functions/translate';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\n\r\nconst medicinesList = (props) => {\r\n\tconst listItems = props.medicines.map((m: MedicineForListModel) =>\r\n\t\t
  • \r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{m.brandName ? m.brandName : ''}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{m.additionalTitle ? m.additionalTitle : ''}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t
    \r\n\t\t\t\t{props.withRemoveAction ?\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t props.onRemoveClick(e, m.medicineId)} title={Translate('Remove')} >\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t : null}\r\n\t\t\t
    \r\n\t\t
  • \r\n\t);\r\n\r\n\treturn (\r\n\t\t
      \r\n\t\t\t{listItems}\r\n\t\t
    \r\n\t)\r\n}\r\n\r\nexport default medicinesList;\r\n","import * as React from 'react';\r\nimport { DiseaseForGridModel } from \"../../models\";\r\n\r\nconst diseasesList = (props) => {\r\n\tconst listItems = props.diseases.map((d: DiseaseForGridModel) =>\r\n\t\t
  • \r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{d.diseaseCode ? d.diseaseCode + ' ' : ''}\r\n\t\t\t\t\t{d.diseaseName ? d.diseaseName : ''}\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t
  • \r\n\t);\r\n\r\n\treturn (\r\n\t\t
      \r\n\t\t\t{listItems}\r\n\t\t
    \r\n\t)\r\n}\r\n\r\nexport default diseasesList;\r\n","import { MedicineForListModel } from '../medicineForListModel';\r\nimport { DiseaseForGridModel } from '../diseaseForGridModel';\r\n\r\nexport class InteractionsModel {\r\n public userId: number;\r\n public medicines: Array;\r\n public userMedicines: Array;\r\n public userDiseases: Array;\r\n public drivingAndMachine: boolean;\r\n public pregnancyAndBreastfeeding: boolean;\r\n}","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport { MedicineForListModel, MedicineListModel } from \"../../models\";\r\nimport { MedicineFilterSettings } from \"../../models/medicineFilterSettings\";\r\nimport MedicineService from '../../services/medicineService';\r\nimport MedicineFilter from './medicineFilter';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\r\nimport Radio from '@material-ui/core/Radio';\r\nimport Paginator from '../../common/components/paginator/paginator';\r\n\r\ninterface IProps {\r\n isVisible: boolean\r\n addMedicineClick: any,\r\n cancelClick: any,\r\n dialogError: any,\r\n clearDialogError: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n medicines: Array;\r\n selectedMedicine: MedicineForListModel;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n medicineSettings: MedicineFilterSettings;\r\n searchText: string;\r\n page: number;\r\n numberOfPages: number;\r\n}\r\n\r\nclass MedicineSearchDialog extends React.Component {\r\n\r\n medicineService = new MedicineService();\r\n initFrom = 0;\r\n numberOfRows = 20;\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n medicines: new Array(0),\r\n selectedMedicine: new MedicineForListModel(),\r\n from: this.initFrom,\r\n numberOfRows: this.numberOfRows,\r\n totalRecordsCount: 0,\r\n medicineSettings: new MedicineFilterSettings(),\r\n searchText: '',\r\n page: 1,\r\n numberOfPages: 1\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n //this.getAllFilteredItems(this.state.page, this.state.numberOfRows, this.state.medicineSettings);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.dialogError != this.props.dialogError) {\r\n this.props.dialogError && this.props.dialogError.message ?\r\n this.growl.show({ severity: 'warning', summary: this.props.dialogError.message }) : null;\r\n }\r\n }\r\n\r\n handleAddButton = (event) => {\r\n event.preventDefault();\r\n\r\n const userMedicine = this.state.selectedMedicine;\r\n\r\n if (userMedicine.medicineId) {\r\n this.props.addMedicineClick(userMedicine);\r\n }\r\n }\r\n\r\n handleCancelButton = () => {\r\n this.props.cancelClick();\r\n }\r\n\r\n handleSelectionChange = (e) => {\r\n this.setState({\r\n selectedMedicine: e\r\n });\r\n }\r\n\r\n handleChange = (key, value) => {\r\n this.setState({ searchText: value });\r\n };\r\n\r\n handleSearchButtonClick = (settings) => {\r\n this.props.clearDialogError();\r\n this.setState({\r\n isLoading: true,\r\n page: 1,\r\n medicineSettings: settings\r\n },\r\n () => this.getAllFilteredItems(this.state.page, this.state.numberOfRows, settings)\r\n );\r\n\r\n this.medicineService.getAllMedicines(0, this.state.numberOfRows, settings, this.props.lang).then(\r\n (data: MedicineListModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: 0,\r\n medicines: data.medicines,\r\n medicineSettings: settings,\r\n totalRecordsCount: data.totalRecordsCount\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n getAllFilteredItems(page: number, numberOfRows: number, currentFilterSettings: MedicineFilterSettings) {\r\n let from = (page - 1) * this.state.numberOfRows;\r\n\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.medicineService.getAllMedicines(from, numberOfRows, currentFilterSettings, this.props.lang).then(\r\n (data: MedicineListModel) => {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n medicines: data.medicines,\r\n totalRecordsCount: data.totalRecordsCount,\r\n numberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n data.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n paginataorClick = (page) => {\r\n this.setState({ page: page }, () => this.getAllFilteredItems(page, this.state.numberOfRows, this.state.medicineSettings));\r\n }\r\n\r\n handleClearClick = () => {\r\n this.setState({\r\n page: 1, medicineSettings: new MedicineFilterSettings(), medicines: [], totalRecordsCount: 0, numberOfPages: 0\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, medicines, page, totalRecordsCount, numberOfPages, selectedMedicine, medicineSettings } = this.state;\r\n\r\n return (\r\n\r\n \r\n {Translate('Medicines')}\r\n \r\n {/*
    */}\r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n \r\n\r\n
    \r\n
      \r\n {medicines && medicines.length > 0 ?\r\n medicines.map((m: MedicineForListModel) =>\r\n
    • this.handleSelectionChange(m)}>\r\n
      \r\n this.handleSelectionChange(m)}\r\n color=\"primary\"\r\n />\r\n
      \r\n
      \r\n
      \r\n {m.brandName}\r\n
      \r\n
      \r\n {m.additionalTitle}\r\n
      \r\n
      \r\n\r\n
    • \r\n ) : null}\r\n
    \r\n\r\n {(!medicines || medicines.length == 0) && (!medicineSettings || !medicineSettings.alphaIndex || !medicineSettings.name) ?\r\n {Translate(\"Enter name or select alpha index\")}\r\n : null}\r\n {numberOfPages > 1 ?\r\n
    \r\n \r\n
    \r\n : null}\r\n
    \r\n\r\n
    \r\n \r\n \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default MedicineSearchDialog;\r\n","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport { DrugToDrugInteractionModel } from '../../models/drugToDrugInteractionModel';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport InteractionsService from '../../services/interactionsService';\r\n\r\ninterface IProps {\r\n lang: string,\r\n isVisible: boolean;\r\n closeClick: any;\r\n drugToDrugInteraction: DrugToDrugInteractionModel;\r\n medicineName: string;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n drugToDrugDescription: DrugToDrugInteractionModel\r\n}\r\n\r\nclass InteractionDrugToDrugDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n drugToDrugDescription: new DrugToDrugInteractionModel()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const drugToDrugInteraction = this.props.drugToDrugInteraction;\r\n\r\n this.interactionsService.getDrugToDrugInteraction(drugToDrugInteraction, this.props.lang).then(\r\n (data: DrugToDrugInteractionModel) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n drugToDrugDescription: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, drugToDrugDescription } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n
    \r\n
    {getInteractionSeverity('statusLabel', drugToDrugDescription.interactionTypeId)}
    \r\n

    {drugToDrugDescription.selectedIngredientName} ↔ {drugToDrugDescription.interactionIngredientName}

    \r\n
    \r\n\r\n this.setState({ tabActiveIndex: e.index })}>\r\n \r\n

    \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InteractionDrugToDrugDialog;","import * as React from 'react';\r\nimport Translate from '../../common/functions/translate';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport { DrugToDrugInteractionsResultModel } from '../../models/interactions/drugToDrugInteractionsResultModel';\r\nimport { sprintf } from 'sprintf-js';\r\nimport InteractionDrugToDrugDialog from './interactionDrugToDrugDialog';\r\nimport { DrugToDrugInteractionModel } from '../../models/drugToDrugInteractionModel';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight, faChevronDown, faChevronCircleDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n lang: string,\r\n history: any,\r\n drugToDrugInteractionsResults: Array;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n isVisibleInteractionDialog: boolean;\r\n currentDrugToDrugInteraction: DrugToDrugInteractionModel;\r\n currentMedicineName: string;\r\n}\r\n\r\nclass InteractionsResultsDrugToDrug extends React.Component {\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n isVisibleInteractionDialog: false,\r\n currentDrugToDrugInteraction: new DrugToDrugInteractionModel(),\r\n currentMedicineName: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleInteractionTabClick = (e, drugToDrugInteraction: DrugToDrugInteractionModel, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisibleInteractionDialog: true,\r\n currentDrugToDrugInteraction: drugToDrugInteraction,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleCloseDialogClick = () => {\r\n this.setState({\r\n isVisibleInteractionDialog: false\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, isVisibleInteractionDialog, currentDrugToDrugInteraction, currentMedicineName } = this.state;\r\n const { drugToDrugInteractionsResults } = this.props;\r\n\r\n return (\r\n <>\r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n <>\r\n
      \r\n {drugToDrugInteractionsResults.map((r, index) =>\r\n
    • \r\n
      \r\n
      {r.brandName} ({r.genericName}):
      \r\n\r\n
        \r\n {r.drugToDrugInteractions.map((i, index) =>\r\n
      • this.handleInteractionTabClick(e, i, r.brandName + (r.genericName))}\r\n >\r\n
        \r\n
        \r\n
        {getInteractionSeverity('iconAndText', i.interactionTypeId)}
        \r\n
        {i.interactionIngredientBrandNames} ({i.interactionIngredientName})
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n\r\n
    • \r\n )}\r\n
    \r\n \r\n\r\n {isVisibleInteractionDialog ? (\r\n ) : null\r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(InteractionsResultsDrugToDrug);\r\n\r\n","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport { DrugToDiseaseInteraction } from '../../models/drugToDiseaseInteraction';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport InteractionsService from '../../services/interactionsService';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeClick: any;\r\n drugToDiseaseInteraction: DrugToDiseaseInteraction;\r\n medicineName: string;\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n drugToDiseaseDescription: DrugToDiseaseInteraction\r\n}\r\n\r\nclass InteractionDrugToDseaseDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService();\r\n initFrom = 0;\r\n numberOfRows = 10;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n drugToDiseaseDescription: new DrugToDiseaseInteraction()\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const drugToDiseaseInteraction = this.props.drugToDiseaseInteraction;\r\n\r\n this.interactionsService.getDrugToDiseaseInteraction(drugToDiseaseInteraction, this.props.lang).then(\r\n (data: DrugToDiseaseInteraction) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n drugToDiseaseDescription: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, drugToDiseaseDescription } = this.state;\r\n\r\n return (\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n
    \r\n
    {getInteractionSeverity('statusLabel', drugToDiseaseDescription.interactionTypeId)}
    \r\n

    {drugToDiseaseDescription.selectedIngredientName} ↔\r\n {drugToDiseaseDescription.diseaseName}\r\n

    \r\n
    \r\n\r\n this.setState({ tabActiveIndex: e.index })}>\r\n \r\n

    \r\n
    \r\n \r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InteractionDrugToDseaseDialog;","import * as React from 'react';\r\nimport Translate from '../../common/functions/translate';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport { DrugToDiseaseInteractionsResultModel } from '../../models/interactions/drugToDiseaseInteractionsResultModel';\r\nimport { sprintf } from 'sprintf-js';\r\nimport InteractionDrugToDseaseDialog from './interactionDrugToDseaseDialog';\r\nimport { DrugToDiseaseInteraction } from '../../models/drugToDiseaseInteraction';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight, faChevronDown, faChevronCircleDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n lang: string,\r\n history: any,\r\n drugToDiseaseInteractionsResult: Array;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n isVisibleInteractionDialog: boolean;\r\n currentDrugToDiseaseInteraction: DrugToDiseaseInteraction;\r\n currentMedicineName: string;\r\n}\r\n\r\nclass InteractionsResultsDrugToDisease extends React.Component {\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n isVisibleInteractionDialog: false,\r\n currentDrugToDiseaseInteraction: new DrugToDiseaseInteraction(),\r\n currentMedicineName: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handleInteractionTabClick = (e, drugToDrugInteraction: DrugToDiseaseInteraction, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisibleInteractionDialog: true,\r\n currentDrugToDiseaseInteraction: drugToDrugInteraction,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleCloseDialogClick = () => {\r\n this.setState({\r\n isVisibleInteractionDialog: false\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, isVisibleInteractionDialog, currentDrugToDiseaseInteraction, currentMedicineName } = this.state;\r\n const { drugToDiseaseInteractionsResult } = this.props;\r\n\r\n return (\r\n <>\r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n <>\r\n
      \r\n {drugToDiseaseInteractionsResult.map(r =>\r\n
    • \r\n
      \r\n
      \r\n {r.brandName} ({r.genericName}):\r\n
      \r\n\r\n
        \r\n {r.drugToDiseaseInteractions.map((i, index) =>\r\n
      • this.handleInteractionTabClick(e, i, r.brandName + (r.genericName))}>\r\n
        \r\n
        \r\n
        {getInteractionSeverity('iconAndText', i.interactionTypeId)}
        \r\n
        {i.diseaseName}
        \r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
      • \r\n )\r\n }\r\n
      \r\n
      \r\n\r\n
    • \r\n )}\r\n
    \r\n \r\n\r\n {isVisibleInteractionDialog ? (\r\n ) : null\r\n }\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(InteractionsResultsDrugToDisease);\r\n","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport InteractionsService from '../../services/interactionsService';\r\nimport { ProfessionType, PregnancyType } from '../../common/enums';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeClick: any;\r\n medicineId: number;\r\n pregnancyType: boolean;\r\n medicineName: string;\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n interactionDescription: string;\r\n}\r\n\r\nclass InteractionDrugToPregnancyDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n interactionDescription: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { medicineId, pregnancyType } = this.props;\r\n\r\n this.interactionsService.getDrugToPregnancyInteraction(medicineId, pregnancyType, this.props.lang).then(\r\n (data: string) => {\r\n this.setState({\r\n isLoading: false,\r\n interactionDescription: data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, interactionDescription } = this.state;\r\n const { pregnancyType, medicineName } = this.props;\r\n\r\n return (\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n

    \r\n {medicineName} ↔ {pregnancyType == true ? Translate(\"Pregnancy and Breastfeeding\") : null}\r\n

    \r\n\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InteractionDrugToPregnancyDialog;","import * as React from \"react\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport { Button } from \"primereact/button\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport { DrugToDrugInteractionModel } from '../../models/drugToDrugInteractionModel';\r\nimport { TabView, TabPanel } from 'primereact/tabview';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport InteractionsService from '../../services/interactionsService';\r\nimport { ProfessionType, PregnancyType } from '../../common/enums';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeClick: any;\r\n medicineId: number;\r\n professionType: boolean;\r\n medicineName: string;\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n tabActiveIndex: number;\r\n interactionDescription: string;\r\n}\r\n\r\nclass InteractionDrugToProfessionDialog extends React.Component {\r\n\r\n interactionsService = new InteractionsService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n tabActiveIndex: 0,\r\n interactionDescription: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.getInteractionDescription();\r\n }\r\n\r\n getInteractionDescription() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { medicineId, professionType } = this.props;\r\n\r\n this.interactionsService.getDrugToProffesionInteraction(medicineId, professionType, this.props.lang).then(\r\n (data: string) => {\r\n this.setState({\r\n isLoading: false,\r\n interactionDescription: data\r\n });\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n handleCloseButton = () => {\r\n this.props.closeClick();\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, tabActiveIndex, interactionDescription } = this.state;\r\n const { professionType, medicineName } = this.props;\r\n\r\n return (\r\n \r\n {Translate('Interactions')}\r\n \r\n
    \r\n\r\n {isLoading ? : null}\r\n {error && error.message ? {error.message} : null}\r\n\r\n

    \r\n {medicineName} ↔ {professionType == true ? Translate(\"DrivingAndUsingMachines\") : null}\r\n

    \r\n\r\n

    \r\n\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InteractionDrugToProfessionDialog;","import * as React from 'react';\r\nimport Translate from '../../common/functions/translate';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport { DrugToOtherParametersResultModel } from '../../models/interactions/drugToOtherParametersResultModel';\r\nimport { sprintf } from 'sprintf-js';\r\nimport InteractionDrugToPregnancyDialog from './interactionDrugToPregnancyDialog';\r\nimport InteractionDrugToProfessionDialog from './interactionDrugToProfessionDialog';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\nimport { ProfessionType, PregnancyType } from '../../common/enums';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronRight, faChevronDown, faChevronCircleDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n history: any,\r\n lang: string,\r\n drugToOtherParametersResults: Array;\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n isVisiblePregnancyDialog: boolean;\r\n isVisibleProfessionDialog: boolean;\r\n currentMedicineId: number;\r\n currentPregnancyType: boolean;\r\n currentProfessionyType: boolean;\r\n currentMedicineName: string;\r\n}\r\n\r\nclass InteractionsResultsDrugToOthers extends React.Component {\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n isVisiblePregnancyDialog: false,\r\n isVisibleProfessionDialog: false,\r\n currentMedicineId: 0,\r\n currentPregnancyType: false,\r\n currentProfessionyType: false,\r\n currentMedicineName: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n }\r\n\r\n handlePregnancyInteractionTabClick = (e, medicineId: number, pregnancy: boolean, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisiblePregnancyDialog: true,\r\n currentMedicineId: medicineId,\r\n currentPregnancyType: pregnancy,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleProfessionInteractionTabClick = (e, medicineId: number, profession: boolean, medicineName: string) => {\r\n e.preventDefault();\r\n this.setState({\r\n isVisibleProfessionDialog: true,\r\n currentMedicineId: medicineId,\r\n currentProfessionyType: profession,\r\n currentMedicineName: medicineName\r\n });\r\n }\r\n\r\n handleCloseDialogClick = () => {\r\n this.setState({\r\n isVisiblePregnancyDialog: false,\r\n isVisibleProfessionDialog: false\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, isVisiblePregnancyDialog, isVisibleProfessionDialog,\r\n currentMedicineId, currentPregnancyType, currentProfessionyType, currentMedicineName } = this.state;\r\n const { drugToOtherParametersResults } = this.props;\r\n\r\n let key = 0;\r\n return (\r\n <>\r\n {isLoading ? : null}\r\n {error ? Error: {error.message} : null}\r\n\r\n <>\r\n
      \r\n {drugToOtherParametersResults.map((r, index) =>\r\n (r.profession || r.pregnancy) ?\r\n
    • \r\n
      \r\n\r\n
      {r.brandName}:
      \r\n\r\n
        \r\n {r.profession ?\r\n
      • this.handleProfessionInteractionTabClick(e, r.medicineId, r.profession, r.brandName + (r.genericName))}>\r\n
        \r\n
        \r\n {r.profession == true ? Translate(\"DrivingAndUsingMachines\") : null}\r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
      • \r\n : null}\r\n\r\n {r.pregnancy ?\r\n
      • this.handlePregnancyInteractionTabClick(e, r.medicineId, r.pregnancy, r.brandName + (r.genericName))}>\r\n
        \r\n
        \r\n {r.pregnancy == true ? Translate(\"Pregnancy and Breastfeeding\") : null}\r\n
        \r\n
        \r\n
        \r\n \r\n
        \r\n
      • \r\n : null}\r\n\r\n
      \r\n\r\n
      \r\n
    • \r\n : null\r\n )}\r\n
    \r\n \r\n\r\n {isVisiblePregnancyDialog ? (\r\n ) : null\r\n }\r\n\r\n {isVisibleProfessionDialog ? (\r\n ) : null\r\n }\r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(InteractionsResultsDrugToOthers);\r\n","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport DrugInteractionsLegend from '../medicines/MedicineCommon/drugInteractionsLegend';\r\nimport InteractionsResultsDrugToDrug from './interactionsResultsDrugToDrug';\r\nimport InteractionsResultsDrugToDisease from './interactionsResultsDrugToDisease';\r\nimport InteractionsResultsDrugToOthers from './interactionsResultsDrugToOthers';\r\nimport { InteractionsResultModel } from '../../models/interactions/interactionsResultModel';\r\nimport ExpansionPanel from '@material-ui/core/ExpansionPanel';\r\nimport ExpansionPanelSummary from '@material-ui/core/ExpansionPanelSummary';\r\nimport ExpansionPanelDetails from '@material-ui/core/ExpansionPanelDetails';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport getInteractionSeverity from '../medicines/MedicineCommon/interactionsSeverityFunctions';\r\nimport { InteractionType } from '../../common/enums';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\nimport { flexbox } from \"@material-ui/system\";\r\n\r\ninterface IProps {\r\n history: any,\r\n interactionsResult: InteractionsResultModel,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n error: any;\r\n activeIndex: any;\r\n}\r\n\r\nclass InteractionsResultsComponent extends React.Component {\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n activeIndex: null\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n\r\n }\r\n\r\n handleInteractionTabClick = (e, value) => {\r\n e.preventDefault();\r\n this.props.history.push(`/interactions?tabName=${value}`);\r\n }\r\n\r\n handleTabMenuchange = panel => (event, expanded) => {\r\n this.setState({ activeIndex: expanded ? panel : false, });\r\n }\r\n\r\n public render() {\r\n const { isLoading, error, activeIndex } = this.state;\r\n const { interactionsResult } = this.props;\r\n\r\n let tabNameUrl = HelperFunctions.getURLParameter('tabName');\r\n let tabName = tabNameUrl ? tabNameUrl + '' : 'DrugToDrug';\r\n\r\n let drugMajorInteractionCount = 0;\r\n let drugModerateInteractionCount = 0;\r\n let drugMinorInteractionCount = 0;\r\n let drugUnknownInteractionCount = 0;\r\n\r\n interactionsResult.drugToDrugInteractionsResults\r\n .map(r => r.drugToDrugInteractions\r\n .map(i => {\r\n switch (i.interactionTypeId) {\r\n case InteractionType.Major: drugMajorInteractionCount++;\r\n break;\r\n case InteractionType.Moderate: drugModerateInteractionCount++;\r\n break;\r\n case InteractionType.Minor: drugMinorInteractionCount++;\r\n break;\r\n case InteractionType.Unknown: drugUnknownInteractionCount++;\r\n break;\r\n }\r\n }));\r\n\r\n let diseaseMajorInteractionCount = 0;\r\n let diseaseModerateInteractionCount = 0;\r\n let diseaseMinorInteractionCount = 0;\r\n let diseaseUnknownInteractionCount = 0;\r\n\r\n interactionsResult.drugToDiseaseInteractionsResults\r\n .map(r => r.drugToDiseaseInteractions\r\n .map(i => {\r\n switch (i.interactionTypeId) {\r\n case InteractionType.Major: diseaseMajorInteractionCount++;\r\n break;\r\n case InteractionType.Moderate: diseaseModerateInteractionCount++;\r\n break;\r\n case InteractionType.Minor: diseaseMinorInteractionCount++;\r\n break;\r\n case InteractionType.Unknown: diseaseUnknownInteractionCount++;\r\n break;\r\n }\r\n }));\r\n\r\n return (\r\n <>\r\n

    {Translate('Interactions with')}:

    \r\n\r\n \r\n

    {Translate('Medicines')}

    \r\n
    \r\n
    \r\n
    \r\n {drugMajorInteractionCount}\r\n
    \r\n
    \r\n {Translate('Major')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {drugModerateInteractionCount}\r\n
    \r\n
    \r\n {Translate('Moderate')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {drugMinorInteractionCount}\r\n
    \r\n
    \r\n {Translate('Minor')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {drugUnknownInteractionCount}\r\n
    \r\n
    \r\n {Translate('Unknown')}\r\n
    \r\n
    \r\n
    \r\n {interactionsResult.drugToDrugInteractionsResults.length > 0 ?\r\n :
    {Translate('There is no drug interactions.')}
    }\r\n
    \r\n\r\n \r\n

    {Translate('Diseases')}

    \r\n
    \r\n
    \r\n
    \r\n {diseaseMajorInteractionCount}\r\n
    \r\n
    \r\n {Translate('Major')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {diseaseModerateInteractionCount}\r\n
    \r\n
    \r\n {Translate('Moderate')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {diseaseMinorInteractionCount}\r\n
    \r\n
    \r\n {Translate('Minor')}\r\n
    \r\n
    \r\n
    \r\n
    \r\n {diseaseUnknownInteractionCount}\r\n
    \r\n
    \r\n {Translate('Unknown')}\r\n
    \r\n
    \r\n
    \r\n {interactionsResult.drugToDiseaseInteractionsResults.length > 0 ?\r\n :
    {Translate('There is no diseases interactions.')}
    }\r\n
    \r\n\r\n \r\n

    {Translate('Other parameters')}

    \r\n {interactionsResult.drugToOtherParametersResults.some(r => r.pregnancy == true || r.profession == true) ?\r\n :
    {Translate('There is no other interactions.')}
    }\r\n
    \r\n\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default InteractionsResultsComponent;","import { DrugToDrugInteractionsResultModel } from './drugToDrugInteractionsResultModel';\r\nimport { DrugToDiseaseInteractionsResultModel } from './drugToDiseaseInteractionsResultModel';\r\nimport { DrugToOtherParametersResultModel } from './drugToOtherParametersResultModel';\r\n\r\nexport class InteractionsResultModel {\r\n public drugToDrugInteractionsCount: number;\r\n public drugToDiseaseInteractionsCount: number;\r\n public drugToOtherParametersCount: number;\r\n public drugToDrugInteractionsResults: Array;\r\n public drugToDiseaseInteractionsResults: Array;\r\n public drugToOtherParametersResults: Array;\r\n}","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport AlertMessage from '../../common/components/alertMessage/alertMessage';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { UserAuthModel } from '../../models/user';\r\nimport AuthService from '../../services/authService';\r\nimport UserPersonalDataService from '../../services/userPersonalDataService';\r\nimport InteractionsService from '../../services/interactionsService';\r\nimport UserService from '../../services/userService';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport MedicinesList from './medicinesList';\r\nimport DiseasesList from './diseasesList';\r\nimport { MedicineForListModel } from \"../../models\";\r\nimport { DiseaseForGridModel } from \"../../models\";\r\nimport { InteractionsModel } from '../../models/interactions/interactionsModel';\r\nimport MedicineSearchDialog from './medicineSearchDialog';\r\nimport { Dropdown } from 'primereact/dropdown';\r\nimport { DropdownModel } from \"../../models/dropdownModel\";\r\nimport { enumToDropdownArray } from '../../common/functions/helperFunctions';\r\nimport { ProfessionType, PregnancyType } from \"../../common/enums\";\r\nimport { UserPersonalDataModel } from '../../models/user/userPersonalDataModel';\r\nimport InteractionsResultsComponent from './interactionsResultsComponent';\r\nimport Cookies from 'universal-cookie';\r\nimport { InteractionsResultModel } from '../../models/interactions/interactionsResultModel';\r\nimport { Accordion, AccordionTab } from 'primereact/accordion';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport Button from '@material-ui/core/Button';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCheck, faTimes, faPills } from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\nimport { Checkbox } from \"@material-ui/core\";\r\n\r\ninterface IProps {\r\n history: any,\r\n onUserLogout: any,\r\n lang: string\r\n}\r\n\r\ninterface IState {\r\n error: any;\r\n isLoading: boolean;\r\n userAuth: UserAuthModel;\r\n mode: string;\r\n interactions: InteractionsModel;\r\n interactionsResult: InteractionsResultModel;\r\n isVisibleSearchMedicineDialog: boolean;\r\n searchDialogError: any;\r\n currentProfileUserId: number;\r\n userFamilyDropdown: Array;\r\n professionTypeDropdown: Array;\r\n pregnancyTypeDropdown: Array;\r\n isVisibleInteractionsResults: boolean;\r\n activeIndexOtherParams: any;\r\n isDriver: boolean;\r\n isMachineOperator: boolean;\r\n}\r\n\r\nclass InteractionsComponent extends React.Component {\r\n\r\n authService = new AuthService();\r\n interactionsService = new InteractionsService(this.props.lang);\r\n userPersonalDataService = new UserPersonalDataService();\r\n userService = new UserService();\r\n growl: any;\r\n cookies = new Cookies();\r\n userId = this.authService.getUserId();\r\n userName = this.authService.getUserName();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n const interactions = new InteractionsModel();\r\n interactions.medicines = new Array(0);\r\n interactions.userMedicines = new Array(0);\r\n interactions.userDiseases = new Array(0);\r\n\r\n const coikieMedicines = this.cookies.get('interactionsMedicines');\r\n if (coikieMedicines) {\r\n interactions.medicines = coikieMedicines;\r\n }\r\n\r\n const professionTypeDropdown: Array = [{ label: Translate('Select'), value: 0 }];\r\n const pregnancyTypeDropdown: Array = [{ label: Translate('Select'), value: 0 }];\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n userAuth: this.authService.getUserAuth(),\r\n mode: 'interactionForm',\r\n interactions: interactions,\r\n interactionsResult: new InteractionsResultModel(),\r\n isVisibleSearchMedicineDialog: false,\r\n searchDialogError: null,\r\n currentProfileUserId: 0,\r\n userFamilyDropdown: new Array(),\r\n professionTypeDropdown: professionTypeDropdown.concat(enumToDropdownArray(ProfessionType, true)),\r\n pregnancyTypeDropdown: pregnancyTypeDropdown.concat(enumToDropdownArray(PregnancyType, true)),\r\n isVisibleInteractionsResults: false,\r\n activeIndexOtherParams: null,\r\n isDriver: false,\r\n isMachineOperator: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n if (this.authService.isAuthenticated()) {\r\n this.setState({\r\n isLoading: true,\r\n currentProfileUserId: this.userId,\r\n userFamilyDropdown: [{ label: this.userName, value: this.userId }]\r\n });\r\n this.getUserFamily();\r\n this.getUserData(this.userId);\r\n }\r\n }\r\n\r\n getUserData(userId) {\r\n this.getUserMedicines(userId);\r\n this.getUserDiseases(userId);\r\n this.getUserProfile(userId);\r\n }\r\n\r\n handleProfileChange = (value) => {\r\n this.setState({\r\n currentProfileUserId: value\r\n })\r\n this.getUserData(value);\r\n }\r\n\r\n handleChange = (key, value) => {\r\n const interactions: InteractionsModel = this.state.interactions;\r\n interactions[key] = value;\r\n this.setState({ interactions: interactions });\r\n };\r\n\r\n getUserFamily() {\r\n this.userService.getUserFamilyDropdownList().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n userFamilyDropdown: this.state.userFamilyDropdown.concat(data)\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n //this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false,\r\n error\r\n });\r\n });\r\n }\r\n\r\n getUserMedicines(userId) {\r\n this.interactionsService.getUserMedicines(userId, this.props.lang).then(\r\n (data: any) => {\r\n if (data) {\r\n let interactions = this.state.interactions;\r\n interactions.userMedicines = data;\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n getUserDiseases(userId) {\r\n this.interactionsService.getUserDiseases(userId, this.props.lang).then(\r\n (data: any) => {\r\n if (data) {\r\n const interactions = this.state.interactions;\r\n interactions.userDiseases = data;\r\n this.setState({\r\n isLoading: false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n getUserProfile(userId) {\r\n this.userPersonalDataService.getUserPersonalData(userId).then(\r\n (data: UserPersonalDataModel) => {\r\n if (data) {\r\n let inter: InteractionsModel = { ...this.state.interactions };\r\n if (!inter) {\r\n inter = new InteractionsModel();\r\n }\r\n inter.drivingAndMachine = data.professionTypeId != null;\r\n inter.pregnancyAndBreastfeeding = data.pregnancyTypeId != null;\r\n this.setState({\r\n isLoading: false,\r\n interactions: { ...inter }\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleAddClick = () => {\r\n this.setState({\r\n isVisibleSearchMedicineDialog: true,\r\n });\r\n }\r\n\r\n handleAddMedicineToList = (medicine: MedicineForListModel) => {\r\n let medicines = this.state.interactions.medicines;\r\n if (!medicines.some(m => m.medicineId == medicine.medicineId)) {\r\n medicines.push(medicine);\r\n const interactions = this.state.interactions;\r\n interactions.medicines = medicines;\r\n this.cookies.set('interactionsMedicines', medicines, { path: '/' });\r\n this.setState({\r\n isVisibleSearchMedicineDialog: false,\r\n interactions: interactions,\r\n searchDialogError: null,\r\n interactionsResult: new InteractionsResultModel(),\r\n isVisibleInteractionsResults: false\r\n });\r\n } else {\r\n this.setState({\r\n searchDialogError: { message: Translate('Selected medicine already exist in list.') }\r\n });\r\n }\r\n }\r\n\r\n handleRemoveMedicineClick = (e, medicineId) => {\r\n e.preventDefault();\r\n let medicines = this.state.interactions.medicines;\r\n let index = medicines.findIndex(m => m.medicineId == medicineId);\r\n medicines.splice(index, 1);\r\n const interactions = this.state.interactions;\r\n interactions.medicines = medicines;\r\n this.cookies.set('interactionsMedicines', medicines, { path: '/' });\r\n this.setState({\r\n interactions: interactions,\r\n interactionsResult: new InteractionsResultModel(),\r\n isVisibleInteractionsResults: false\r\n })\r\n }\r\n\r\n handleCancelSearchMedicine = () => {\r\n this.setState({\r\n isVisibleSearchMedicineDialog: false,\r\n searchDialogError: null\r\n });\r\n }\r\n\r\n clearDialogError = () => {\r\n this.setState({\r\n searchDialogError: null\r\n });\r\n }\r\n\r\n handleCheckInteractions = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const interactions = this.state.interactions;\r\n this.interactionsService.getMedicineInteractions(interactions, this.props.lang).then(\r\n (data: InteractionsResultModel) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n isVisibleInteractionsResults: true,\r\n interactionsResult: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleCancelClick = () => {\r\n this.setState({\r\n isVisibleInteractionsResults: false\r\n })\r\n }\r\n\r\n public render() {\r\n const {\r\n error, isLoading, interactions, interactionsResult, mode, isVisibleSearchMedicineDialog,\r\n searchDialogError, currentProfileUserId, userFamilyDropdown, professionTypeDropdown, pregnancyTypeDropdown,\r\n isVisibleInteractionsResults, activeIndexOtherParams, isDriver, isMachineOperator\r\n } = this.state;\r\n\r\n const interactionFormHtml =\r\n
    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n {interactions.medicines.length > 0 ?\r\n : {Translate('Add medicine to check interactions.')}}\r\n
    \r\n\r\n {interactions.medicines.length > 0 ?\r\n <>\r\n\r\n {this.authService.isAuthenticated() ?\r\n <>\r\n {userFamilyDropdown.length > 1 ?\r\n
    \r\n \r\n {Translate('Profile')}\r\n this.handleProfileChange(e.target.value)}\r\n inputProps={{\r\n id: 'profile-label'\r\n }}\r\n >\r\n {\r\n userFamilyDropdown.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n \r\n
    \r\n : null}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n\r\n this.setState({ activeIndexOtherParams: e.index })}>\r\n \r\n
    \r\n
    \r\n this.handleChange(\"drivingAndMachine\", e.target['checked'])}\r\n checked={!!interactions.drivingAndMachine}\r\n value={interactions.drivingAndMachine + \"\"}\r\n color=\"primary\"\r\n />\r\n \r\n {/* \r\n {Translate('Profession')}\r\n this.handleChange('professionTypeId', e.target.value)}\r\n inputProps={{\r\n id: 'profession-label'\r\n }}\r\n >\r\n {\r\n professionTypeDropdown.map(m => {m.value ? m.label : {m.label}})\r\n }\r\n \r\n */}\r\n
    \r\n\r\n
    \r\n this.handleChange(\"pregnancyAndBreastfeeding\", e.target['checked'])}\r\n checked={!!interactions.pregnancyAndBreastfeeding}\r\n value={interactions.pregnancyAndBreastfeeding + \"\"}\r\n color=\"primary\"\r\n />\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n : null}\r\n\r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n let resultHtml;\r\n\r\n switch (mode) {\r\n case 'interactionForm':\r\n resultHtml = interactionFormHtml;\r\n break;\r\n default:\r\n resultHtml = '';\r\n }\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Interactions')}

    \r\n\r\n {resultHtml}\r\n\r\n {isVisibleInteractionsResults ?\r\n : null}\r\n\r\n {isVisibleSearchMedicineDialog ? (\r\n this.handleAddMedicineToList(medicine)}\r\n cancelClick={this.handleCancelSearchMedicine}\r\n dialogError={searchDialogError}\r\n clearDialogError={this.clearDialogError}\r\n lang={this.props.lang}\r\n />) : null\r\n }\r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(InteractionsComponent);\r\n","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport AuthService from './authService';\r\nimport { UserConditionModel } from '../models/user/userConditionModel';\r\nimport { UserConditionListFilterModel } from '../models/user/userConditionListFilterModel';\r\nimport { UserPersonalConditionModel } from '../models/user/userPersonalConditionModel';\r\nimport { UserConditionType } from '../common/enums';\r\nimport { UserConditionTypeModel } from '../models/user/userConditionTypeModel';\r\nimport { UserConditionTypeFilterModel } from '../models/user/userConditionTypeFilterModel';\r\n\r\nclass UserConditionService {\r\n\r\n authService = new AuthService();\r\n\r\n constructor() {\r\n //axios.defaults.baseURL = `${Constants.apiUrl}`;\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n }\r\n\r\n getAllUserConditions(from: number, numberOfRows: number, filters: UserConditionListFilterModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/getAll/${from}/${numberOfRows}/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: JSON.stringify(filters)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getCondition(conditionId: number, from: number, numberOfRows: number, filters: UserConditionTypeFilterModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/get/${conditionId}/${from}/${numberOfRows}`,\r\n method: 'post',\r\n data: JSON.stringify(filters)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getPersonalConditions() {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/personalConditions/`,\r\n method: 'get'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addUserCondition(condition: UserConditionModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: JSON.stringify(condition)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updateUserCondition(conditionId: number, conditionTypes: Array) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/${conditionId}`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\"\r\n },\r\n data: JSON.stringify(conditionTypes)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteCondition(conditionId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/${conditionId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deleteConditionType(conditionTypeId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/deleteType/${conditionTypeId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n createPersonalCondition(personalCondition: UserPersonalConditionModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/createPersonal/`,\r\n method: 'post',\r\n data: JSON.stringify(personalCondition)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deletePersonalCondition(conditionId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userCondition/deletePersonal/${conditionId}`,\r\n method: 'delete'\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\nexport default UserConditionService;","import { UserConditionTypeModel } from './userConditionTypeModel';\r\n\r\nexport class UserConditionModel {\r\n public userConditionId: number;\r\n public userId: number;\r\n public userConditionTypes: Array;\r\n public userConditionTypeId: number;\r\n public userConditionUnit: string;\r\n public personalCondition: string;\r\n public isSystemType: boolean;\r\n public label?: string;\r\n public isVisible: boolean;\r\n public personalMinValue: number;\r\n public personalMaxValue: number;\r\n}","import * as React from 'react';\r\nimport { UserConditionModel } from \"../../../models/user/userConditionModel\";\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport { UserConditionType } from '../../../common/enums';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronDown, faChevronUp, faChevronRight } from '@fortawesome/free-solid-svg-icons';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Translate from '../../../common/functions/translate';\r\n\r\nconst userConditionList = (props) => {\r\n const listItems =
      \r\n {props.userConditions.map((m: UserConditionModel) =>\r\n
    • \r\n
      props.addClick(m.userConditionId)}>\r\n
      \r\n {m.isSystemType ?\r\n <>\r\n
      \r\n {HelperFunctions.getEnumLabel(m.userConditionTypeId, UserConditionType, true) +\r\n \" \" + \"(\" + HelperFunctions.getUnitByConditionType(m.userConditionTypeId) + \")\"}\r\n
      \r\n \r\n :\r\n
      \r\n {m.personalCondition}\r\n
      }\r\n
      \r\n {/*
      \r\n {m.userConditionTypes.map(u =>\r\n
      \r\n {u.isSystemType ?\r\n <>\r\n
      \r\n {HelperFunctions.getEnumLabel(u.userConditionTypeId, UserConditionType, true)}:\r\n {u.userConditionValue} {u.userConditionUnit}\r\n
      \r\n \r\n :\r\n
      \r\n {u.personalCondition}: {u.userConditionValue}\r\n
      }\r\n
      )}\r\n
      */}\r\n
      \r\n
      props.addClick(m.userConditionId)} style={{ paddingLeft: 5 }}>\r\n \r\n
      \r\n\r\n
    • \r\n )}\r\n
    ;\r\n\r\n return (\r\n <>\r\n {listItems}\r\n \r\n )\r\n}\r\n\r\nexport default userConditionList;\r\n","import { UserConditionType } from '../../common/enums';\r\n\r\nexport class UserConditionTypeModel {\r\n public userConditionToUserConditionTypeId: number;\r\n public userConditionValue: string;\r\n public conditionDate: string;\r\n}","//import * as Bluetooth from 'react-bluetooth';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\n\r\nclass BluetoothService {\r\n\r\n\r\n getValue = (servicesName: string, characteristicName: string, isFloat: boolean = false) => {\r\n let services: Array = [];\r\n services.push(servicesName);\r\n return navigator.bluetooth.requestDevice({ filters: [{ services: services }] })\r\n .then((device: any) => device.gatt.connect())\r\n .then(server => {\r\n console.log('server');\r\n return server.getPrimaryService(servicesName);\r\n })\r\n .then(service => {\r\n console.log('service');\r\n return service.getCharacteristic(characteristicName);\r\n })\r\n .then(characteristic => {\r\n console.log('characteristic');\r\n return characteristic.readValue();\r\n })\r\n .then(value => {\r\n console.log('Value: ' + value);\r\n value = value.buffer ? value : new DataView(value);\r\n return isFloat ? value.getFloat32(0) : value.getUint8(0);\r\n })\r\n .catch(error => Promise.reject(HelperFunctions.getErrorMessage(error)));\r\n }\r\n\r\n getCharacteristic = (servicesName: string, characteristicName: string) => {\r\n let services: Array = [];\r\n services.push(servicesName);\r\n return navigator.bluetooth.requestDevice({ filters: [{ services: services }] })\r\n .then((device: any) => device.gatt.connect())\r\n .then(server => {\r\n console.log('server');\r\n return server.getPrimaryService(servicesName);\r\n })\r\n .then(service => {\r\n console.log('service');\r\n return service.getCharacteristic(characteristicName);\r\n })\r\n .catch(error => Promise.reject(HelperFunctions.getErrorMessage(error)));\r\n }\r\n\r\n parseHeartRate = (data: any) => {\r\n let flags = data.getUint8(0);\r\n let rate16Bits = flags & 0x1;\r\n let result: any = {};\r\n let index = 1;\r\n\r\n if (rate16Bits) {\r\n result.heartRate = data.getUint16(index, /*littleEndian=*/true);\r\n index += 2;\r\n } else {\r\n result.heartRate = data.getUint8(index);\r\n index += 1;\r\n }\r\n\r\n let contactDetected = flags & 0x2;\r\n let contactSensorPresent = flags & 0x4;\r\n\r\n if (contactSensorPresent) {\r\n result.contactDetected = !!contactDetected;\r\n }\r\n\r\n let energyPresent = flags & 0x8;\r\n\r\n if (energyPresent) {\r\n result.energyExpended = data.getUint16(index, /*littleEndian=*/true);\r\n index += 2;\r\n }\r\n\r\n let rrIntervalPresent = flags & 0x10;\r\n\r\n if (rrIntervalPresent) {\r\n let rrIntervals: Array = [];\r\n for (; index + 1 < data.byteLength; index += 2) {\r\n rrIntervals.push(data.getUint16(index, /*littleEndian=*/true));\r\n }\r\n result.rrIntervals = rrIntervals;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n parseTemparature = (data: any) => {\r\n let flags = data.getUint8(0);\r\n let isFahrenheit = flags & 0x1;\r\n let result: any = {};\r\n let index = 1;\r\n\r\n if (isFahrenheit) {\r\n result.unit = 'Fahrenheit';\r\n } else {\r\n result.unit = 'Celsius';\r\n }\r\n\r\n result.temperature = data.getFloat32(index, /*littleEndian=*/true);\r\n\r\n return result;\r\n }\r\n\r\n\r\n\r\n // getBluetoothDevices = (filter: string) => {\r\n // if (filter === 'battery_service') {\r\n // console.log('Bluetooth by service: ' + filter);\r\n // navigator.bluetooth.requestDevice(\r\n // {\r\n // filters: [{ services: ['battery_service'] }]\r\n // })\r\n // .then((device: any) => { /* ... */ })\r\n // .catch((error: any) => { console.log(error); });\r\n // } else {\r\n // console.log('Bluetooth by name: ' + filter);\r\n // navigator.bluetooth.requestDevice(\r\n // {\r\n // filters: [{ name: filter }]\r\n // })\r\n // .then((device: any) => {\r\n // console.log('Bluetooth device: ' + device);\r\n // })\r\n // .catch((error: any) => {\r\n // console.log(error);\r\n // });\r\n // }\r\n // }\r\n\r\n // example_GetAnyDeviceAsync = async function () {\r\n // const isAvailable = await Bluetooth.getAvailabilityAsync();\r\n // if (!isAvailable) {\r\n // console.log('Bluetooth is not available.');\r\n // return;\r\n // }\r\n // try {\r\n // const device = await Bluetooth.requestDeviceAsync();\r\n // console.log('Success: Got any device: ', device);\r\n // } catch (error) {\r\n // console.log(`Error: Couldn't get any device`, error);\r\n // console.error(`Error: Couldn't get any device`, error);\r\n // }\r\n // }\r\n\r\n // example_GetBatteryLevelAsync = async function () {\r\n // const isAvailable = await Bluetooth.getAvailabilityAsync();\r\n // if (!isAvailable) {\r\n // return;\r\n // }\r\n\r\n // const options = {\r\n // filters: [{ services: ['battery_service'] }],\r\n // };\r\n\r\n // try {\r\n // const result = await Bluetooth.requestDeviceAsync(options);\r\n // if (result.type === 'cancel') {\r\n // return;\r\n // }\r\n // const { device } = result;\r\n\r\n // console.log(`Bluetooth: Got device:`, device);\r\n // if (device.gatt) {\r\n // const server = await device.gatt.connect();\r\n // console.log(`Bluetooth: Got server:`, server);\r\n // const service = await server.getPrimaryService('battery_service');\r\n // console.log(`Bluetooth: Got service:`, service);\r\n // const characteristic = await service.getCharacteristic('battery_level');\r\n // console.log(`Bluetooth: Got characteristic:`, characteristic);\r\n // const value = await characteristic.readValue();\r\n // console.log(`Bluetooth: Got value:`, value);\r\n // const battery = value.getUint8(0);\r\n // console.log(`Success: Got battery:`, battery);\r\n // } else {\r\n // // TODO: Bacon: Can we connect to the GATT or is that a no-op?\r\n // console.error(`Error: connected device did not have a GATT`);\r\n // }\r\n // } catch ({ message }) {\r\n // console.error(`Error: Couldn't get battery level: ${message}`);\r\n // }\r\n // }\r\n\r\n}\r\n\r\nexport default BluetoothService;","import * as React from 'react';\r\nimport { UserConditionModel } from \"../../../models/user/userConditionModel\";\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport { UserConditionType, GenderType } from '../../../common/enums';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faChevronDown, faChevronUp } from '@fortawesome/free-solid-svg-icons';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Translate from '../../../common/functions/translate';\r\nimport { ResponsiveLine } from '@nivo/line';\r\nimport color from '@material-ui/core/colors/orange';\r\nimport { area, curveMonotoneX } from \"d3-shape\";\r\nimport { ConditionUnitRangeModel } from '../../../models/user/conditionUnitRangeModel';\r\nimport { number } from 'prop-types';\r\n\r\nclass LineModel {\r\n public id: string;\r\n //public color: string;\r\n public data: Array;\r\n}\r\n\r\nclass LineDotModel {\r\n public x?: string;\r\n public y: number;\r\n}\r\n\r\nlet minBorder: any;\r\nlet maxBorder: any;\r\n\r\n//DEFAULT NIVO COLORS #e8c1a0 #f47560\r\nconst firstLineColor = \"#f98866\";\r\nconst secondLineColor = \"#ffbb00\";\r\n\r\nconst chartData = (userCondition: UserConditionModel, lang: string, typeRanges: ConditionUnitRangeModel) => {\r\n let arr = new Array();\r\n let label = userCondition.isSystemType ? HelperFunctions.getEnumLabel(userCondition.userConditionTypeId, UserConditionType, true) +\r\n ' (' + userCondition.userConditionUnit + ')' + '' : userCondition.personalCondition + '';\r\n if (userCondition.isSystemType && userCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n let topBLine = {\r\n id: Translate('TopNumber') + ' (' + userCondition.userConditionUnit + ')',\r\n data: new Array(0),\r\n style: {\r\n strokeWidth: 10,\r\n }\r\n }\r\n\r\n let bottomBLine = {\r\n id: Translate('BottomNumber') + ' (' + userCondition.userConditionUnit + ')',\r\n data: new Array(0),\r\n style: {\r\n strokeWidth: 10,\r\n }\r\n }\r\n userCondition.userConditionTypes = userCondition.userConditionTypes.sort((a, b) => new Date(a.conditionDate).getTime() - new Date(b.conditionDate).getTime());\r\n for (let uType of userCondition.userConditionTypes) {\r\n let bPressure = uType.userConditionValue.split('/');\r\n topBLine.data.push({\r\n x: HelperFunctions.fomatDateTimeSecondsAsStringWithLang(new Date(uType.conditionDate), lang) + '',\r\n y: parseFloat(bPressure[0])\r\n });\r\n\r\n bottomBLine.data.push({\r\n x: HelperFunctions.fomatDateTimeSecondsAsStringWithLang(new Date(uType.conditionDate), lang) + '',\r\n y: parseFloat(bPressure[1])\r\n });\r\n }\r\n arr.push(topBLine);\r\n arr.push(bottomBLine);\r\n }\r\n else {\r\n let newLine = {\r\n id: label,\r\n data: new Array(0),\r\n style: {\r\n strokeWidth: 10\r\n }\r\n }\r\n\r\n let sortedItems = userCondition.userConditionTypes.sort((a, b) => new Date(a.conditionDate).getTime() - new Date(b.conditionDate).getTime());\r\n for (let uType of sortedItems) {\r\n newLine.data.push({\r\n x: HelperFunctions.fomatDateTimeSecondsAsStringWithLang(new Date(uType.conditionDate), lang) + '',\r\n y: parseFloat(uType.userConditionValue)\r\n });\r\n }\r\n\r\n arr.push(newLine);\r\n }\r\n return arr;\r\n}\r\n\r\nconst getTspanGroups = (value: string, maxLineLength: number, maxLines: number = 2) => {\r\n const words = value.split(' ')\r\n\r\n type linesAcc = {\r\n lines: string[],\r\n currLine: string\r\n }\r\n\r\n //reduces the words into lines of maxLineLength\r\n const assembleLines: linesAcc = words.reduce((acc: linesAcc, word: string) => {\r\n //if the current line isn't empty and the word + current line is larger than the allowed line size, create a new line and update current line\r\n if ((word + acc.currLine).length > maxLineLength && acc.currLine !== '') {\r\n return {\r\n lines: acc.lines.concat([acc.currLine]),\r\n currLine: word\r\n }\r\n }\r\n //otherwise add the word to the current line\r\n return {\r\n ...acc,\r\n currLine: acc.currLine + ' ' + word\r\n }\r\n\r\n }, { lines: [], currLine: '' })\r\n\r\n //add the ending state of current line (the last line) to lines\r\n const allLines = assembleLines.lines.concat([assembleLines.currLine])\r\n\r\n //for now, only take first 2 lines due to tick spacing and possible overflow\r\n const lines = allLines.slice(0, maxLines)\r\n let children: JSX.Element[] = []\r\n let dy = 0\r\n\r\n lines.forEach((lineText, i) => {\r\n children.push(\r\n \r\n {\r\n // if on the second line, and that line's length is within 3 of the max length, add ellipsis\r\n (1 === i && allLines.length > 2) ? lineText.slice(0, maxLineLength - 3) + '...' : lineText\r\n }\r\n \r\n )\r\n //increment dy to render next line text below\r\n dy += 15\r\n });\r\n\r\n return children\r\n}\r\n\r\nconst getMinAndMax = (userCondition: UserConditionModel, isMin: boolean, minMarker: number, maxMarker: number, isThereMarkers: boolean) => {\r\n let val: number = 0;\r\n if (userCondition.isSystemType && userCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n if (isThereMarkers) {\r\n val = isMin ? minMarker : maxMarker\r\n }\r\n else {\r\n let blPressure = userCondition.userConditionTypes[0].userConditionValue.split('/');\r\n val = isMin ? +blPressure[1] : +blPressure[0];\r\n }\r\n for (let uType of userCondition.userConditionTypes) {\r\n let bPressure = uType.userConditionValue.split('/');\r\n if (isMin) {\r\n val = +bPressure[1] < val ? +bPressure[1] : val;\r\n }\r\n else {\r\n val = +bPressure[0] > val ? +bPressure[0] : val;\r\n }\r\n }\r\n }\r\n else {\r\n if (isThereMarkers) {\r\n val = isMin ? minMarker : maxMarker\r\n }\r\n else {\r\n val = +userCondition.userConditionTypes[0].userConditionValue;\r\n }\r\n for (let uType of userCondition.userConditionTypes) {\r\n if (isMin) {\r\n val = +uType.userConditionValue < val ? +uType.userConditionValue : val;\r\n }\r\n else {\r\n val = +uType.userConditionValue > val ? +uType.userConditionValue : val;\r\n }\r\n }\r\n\r\n }\r\n return val;\r\n}\r\n\r\nvar currentPointFromLine = 0;\r\n\r\nconst getPointColor = (data, props) => {\r\n let typeRange: ConditionUnitRangeModel = props.typeRanges;\r\n let color = \"#7bc87b\";\r\n\r\n if (typeRange && data && data.data[currentPointFromLine] && data.data[currentPointFromLine].data && data.color == firstLineColor) {\r\n if (typeRange.minValue && typeRange.minValue > data.data[currentPointFromLine].data.y ||\r\n typeRange.maxValue && typeRange.maxValue < data.data[currentPointFromLine].data.y) {\r\n color = \"#ff4d4d\";\r\n }\r\n currentPointFromLine++;\r\n }\r\n\r\n if (typeRange && data && data.data[currentPointFromLine] && data.data[currentPointFromLine].data && data.color == secondLineColor) {\r\n currentPointFromLine++;\r\n if (typeRange.secondMinValue && typeRange.secondMinValue > data.data[currentPointFromLine - 1].data.y ||\r\n typeRange.secondMaxValue && typeRange.secondMaxValue < data.data[currentPointFromLine - 1].data.y) {\r\n color = \"#ff4d4d\";\r\n }\r\n }\r\n\r\n if (currentPointFromLine >= data.data.length) {\r\n currentPointFromLine = 0;\r\n }\r\n\r\n return color;\r\n}\r\n\r\nconst UserConditionCharts = (props) => {\r\n let typeRange: ConditionUnitRangeModel = props.typeRanges;\r\n let data = chartData(props.userCondition, props.lang, props.typeRanges);\r\n\r\n let markers = new Array(0);\r\n let minMarker: number = 0;\r\n let maxMarker: number = 0;\r\n\r\n if (typeRange) {\r\n minMarker = +typeRange.minValue;\r\n maxMarker = +typeRange.maxValue;\r\n\r\n if (typeRange.minValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.minValue,\r\n lineStyle: { stroke: '#0aa5ff', strokeDasharray: \"12, 6\" }, legend: \"min: \" + typeRange.minValue, textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.minValue < minMarker) {\r\n minMarker = +typeRange.minValue;\r\n }\r\n }\r\n if (typeRange.maxValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.maxValue,\r\n lineStyle: { stroke: '#0aa5ff', strokeDasharray: \"12, 6\" }, legend: \"max: \" + typeRange.maxValue, textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.maxValue > maxMarker) {\r\n maxMarker = +typeRange.maxValue;\r\n }\r\n }\r\n\r\n if (typeRange.secondMinValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.secondMinValue,\r\n lineStyle: { stroke: '#34675c', strokeDasharray: \"12, 6\" }, legend: \"min: \" + typeRange.secondMinValue, legendPosition: 'bottom-right', textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.secondMinValue < minMarker) {\r\n minMarker = +typeRange.secondMinValue;\r\n }\r\n }\r\n if (typeRange.secondMaxValue) {\r\n markers.push({\r\n axis: \"y\", value: +typeRange.secondMaxValue,\r\n lineStyle: { stroke: '#34675c', strokeDasharray: \"12, 6\" }, legend: \"max: \" + typeRange.secondMaxValue, legendPosition: 'bottom-right', textStyle: { fontSize: 10 }\r\n });\r\n if (+typeRange.secondMaxValue > maxMarker) {\r\n maxMarker = +typeRange.secondMaxValue;\r\n }\r\n }\r\n }\r\n\r\n let minVal: number = getMinAndMax(props.userCondition, true, minMarker, maxMarker, markers && markers.length > 0);\r\n let maxVal: number = getMinAndMax(props.userCondition, false, minMarker, maxMarker, markers && markers.length > 0);\r\n\r\n let delta = maxVal - minVal;\r\n\r\n minBorder = minVal != 0 ? minVal - (delta / 5) : null;\r\n maxBorder = maxVal != 0 ? maxVal + (delta / 5) : null;\r\n\r\n //console.log(data);\r\n // {\r\n // \"tickSize\": 5,\r\n // \"tickPadding\": 5,\r\n // \"tickRotation\": 0,\r\n // \"legend\": \"\",\r\n // \"legendOffset\": 36,\r\n // \"legendPosition\": \"middle\"\r\n // }\r\n return (\r\n\r\n {\r\n const { value, opacity, textBaseline, textAnchor, textX, textY, x, y } = data\r\n return (\r\n\r\n \r\n \r\n {getTspanGroups(value, 10, 3)}\r\n \r\n \r\n )\r\n }\r\n }\r\n }\r\n axisLeft={{\r\n \"tickSize\": 5,\r\n \"tickPadding\": 5,\r\n \"tickRotation\": 0,\r\n \"legend\": \"count\",\r\n \"legendOffset\": -40,\r\n \"legendPosition\": \"middle\"\r\n }}\r\n colors={[firstLineColor, secondLineColor]}\r\n curve='monotoneX'\r\n //dotSize={5}\r\n // dotBorderWidth={2}\r\n // dotBorderColor={{\r\n // \"from\": \"color\"\r\n // }}\r\n //enableDotLabel={true}\r\n //useMesh={true}\r\n enableCrosshair={false}\r\n animate={false}\r\n motionStiffness={90}\r\n motionDamping={15}\r\n markers={markers}\r\n enableSlices=\"x\"\r\n pointSize={10}\r\n //pointColor=\"#009700\"\r\n pointColor={(data) => getPointColor(data, props)}\r\n pointBorderWidth={3}\r\n pointBorderColor=\"#ffffff\"\r\n //layers={['grid', 'markers', 'areas', refsLayer, 'lines', 'slices', 'axes', 'points', 'legends']}\r\n legends={[\r\n {\r\n \"anchor\": \"top-left\",\r\n \"direction\": \"row\",\r\n \"justify\": false,\r\n \"translateX\": -20,\r\n \"translateY\": -30,\r\n \"itemsSpacing\": 0,\r\n \"itemDirection\": \"left-to-right\",\r\n \"itemWidth\": 160,\r\n \"itemHeight\": 20,\r\n \"itemOpacity\": 0.75,\r\n \"symbolSize\": 12,\r\n \"symbolShape\": \"circle\",\r\n \"effects\": [\r\n {\r\n \"on\": \"hover\",\r\n \"style\": {\r\n \"itemBackground\": \"rgba(0, 0, 0, .03)\",\r\n \"itemOpacity\": 1\r\n }\r\n }\r\n ]\r\n }\r\n ]}\r\n />\r\n )\r\n}\r\n\r\nconst refsLayer = props => {\r\n console.log(props)\r\n if (props.markers && props.markers.length > 0) {\r\n if (props.markers.length == 2) {\r\n return \r\n \r\n {/* */}\r\n \r\n \r\n }\r\n else {\r\n return \r\n \r\n {/* */}\r\n \r\n {/* */}\r\n \r\n \r\n }\r\n }\r\n}\r\n ;\r\n\r\n\r\n\r\nexport default UserConditionCharts;\r\n","export class ConditionUnitRangeModel {\r\n conditionUnitRangeId: number;\r\n conditionUnitRangeSystemTypeId: number;\r\n genderTypeId: number;\r\n minValue: string;\r\n maxValue: string;\r\n minAge: number;\r\n maxAge: number;\r\n secondMinValue: string;\r\n secondMaxValue: string;\r\n}","export class DropdownModel {\r\n public label: string;\r\n public value: number;\r\n}","export class UserConditionTypeFilterModel {\r\n public startDate: string;\r\n public endDate: string;\r\n}","import * as React from \"react\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { UserConditionType, GenderType, TimePresetType } from \"../../../common/enums\";\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport { UserConditionModel } from '../../../models/user/userConditionModel';\r\nimport { UserConditionTypeModel } from \"../../../models/user/userConditionTypeModel\";\r\nimport { getEnumLabel } from '../../../common/functions/helperFunctions';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faTrash, faTimesCircle, faCheck, faTimes, faBan, faPlay, faStop, faCircle, faFilter, faInfoCircle, faChartBar, faChartLine } from '@fortawesome/free-solid-svg-icons';\r\nimport { faBluetooth } from '@fortawesome/free-brands-svg-icons';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { UserPersonalConditionModel } from '../../../models/user/userPersonalConditionModel';\r\nimport Spinner from \"../../../common/components/spinner/spinner\";\r\nimport UserConditionService from \"../../../services/userConditionService\";\r\nimport BluetoothService from \"../../../services/bluetoothService\";\r\nimport { MuiPickersUtilsProvider, DateTimePicker, DatePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport * as Constants from '../../../common/constants';\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core\";\r\nimport UserConditionCharts from './userConditionCharts';\r\nimport Card from '@material-ui/core/Card';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Paginator from '../../../common/components/paginator/paginator'\r\nimport { ConditionUnitRangeModel } from \"../../../models/user/conditionUnitRangeModel\";\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport Select from '@material-ui/core/Select';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport { UserConditionTypeFilterModel } from '../../../models/user/userConditionTypeFilterModel';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport UserConditionBars from './userConditionBars';\r\n\r\ninterface IProps {\r\n\tcancelClick: any,\r\n\tisVisible: boolean,\r\n\tselectedConditionId: number,\r\n\tdialogHeader: string;\r\n\tlang: string;\r\n}\r\n\r\ninterface IState {\r\n\tcurrentCondition: UserConditionModel;\r\n\tisLoading: boolean;\r\n\tvalidationMessage: string;\r\n\taddNew: boolean;\r\n\tisLoadingSecond: boolean;\r\n\tpersonalConditions: Array;\r\n\tisVisibleConfirmDialog: boolean;\r\n\tdeleteValidationMessage: string;\r\n\tpersonalCondition: ConditionDropdownModel;\r\n\tanchorEl: any;\r\n\tpopover: boolean;\r\n\tbluetoothDialog: boolean;\r\n\tbluetoothValue: string;\r\n\tisLoadingBluetooth: boolean;\r\n\tselectedType: UserConditionTypeModel;\r\n\tnewConditionType: UserConditionTypeModel;\r\n\tisBluetoothLogStart: boolean;\r\n\theartRateChangeArray: Array;\r\n\tisVisibleConfirmTypeDialog: boolean;\r\n\tcondIndex: number;\r\n\ttotalRecordsCount: number;\r\n\tnumberOfPages: number;\r\n\tpage: number;\r\n\tfrom: number;\r\n\tnumberOfRows: number;\r\n\tconditionUnitRanges: Array;\r\n\tselectedRange: ConditionUnitRangeModel;\r\n\trangesDropdown: Array;\r\n\tselectedRangeID: number;\r\n\tisVisibleDropdown: boolean;\r\n\tuserAge: number;\r\n\tuserGender: number;\r\n\tbottomNumber: number;\r\n\ttopNumber: number;\r\n\tisVisibleFilterDialog: boolean;\r\n\tfilterByDates: boolean;\r\n\tcurrentFilters: UserConditionTypeFilterModel;\r\n\tfilters: UserConditionTypeFilterModel;\r\n\ttimeDropdown: Array;\r\n\tselectedTime: number;\r\n\tcanChooseDates: boolean;\r\n\tinfoPopover: boolean;\r\n\tinfoAchor: any;\r\n\tisChartsView: boolean;\r\n}\r\n\r\nconst isChrome = !!window['chrome'] && (!!window['chrome']['webstore'] || !!window['chrome']['runtime']);\r\n\r\nclass UserConditionAddEditDialog extends React.Component {\r\n\tgrowl: any;\r\n\tgrowlSecond: any;\r\n\tgrowlBluetooth: any;\r\n\tuserConditionService = new UserConditionService();\r\n\tbluetoothService = new BluetoothService();\r\n\theartRateCharacteristic: any;\r\n\ttemperatureCharacteristic: any;\r\n\tsecInterval: any;\r\n\tnumberOfRows = window.innerWidth < Constants.device.desktop ? 5 : 10;\r\n\tinitFrom = 0;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\r\n\t\tthis.state = {\r\n\t\t\tcurrentCondition: new UserConditionModel(),\r\n\t\t\tisLoading: false,\r\n\t\t\tvalidationMessage: '',\r\n\t\t\taddNew: false,\r\n\t\t\tisLoadingSecond: false,\r\n\t\t\tpersonalConditions: Array(0),\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tdeleteValidationMessage: '',\r\n\t\t\tpersonalCondition: new ConditionDropdownModel(),\r\n\t\t\tanchorEl: null,\r\n\t\t\tpopover: false,\r\n\t\t\tbluetoothDialog: false,\r\n\t\t\tbluetoothValue: '',\r\n\t\t\tisLoadingBluetooth: false,\r\n\t\t\tselectedType: new UserConditionTypeModel(),\r\n\t\t\tnewConditionType: new UserConditionTypeModel(),\r\n\t\t\tisBluetoothLogStart: false,\r\n\t\t\theartRateChangeArray: new Array(0),\r\n\t\t\tisVisibleConfirmTypeDialog: false,\r\n\t\t\tcondIndex: 0,\r\n\t\t\ttotalRecordsCount: 0,\r\n\t\t\tnumberOfPages: 0,\r\n\t\t\tnumberOfRows: this.numberOfRows,\r\n\t\t\tpage: 1,\r\n\t\t\tfrom: this.initFrom,\r\n\t\t\tconditionUnitRanges: new Array(0),\r\n\t\t\tselectedRange: new ConditionUnitRangeModel,\r\n\t\t\trangesDropdown: new Array(),\r\n\t\t\tselectedRangeID: 0,\r\n\t\t\tisVisibleDropdown: false,\r\n\t\t\tuserAge: 0,\r\n\t\t\tuserGender: 0,\r\n\t\t\tbottomNumber: 0,\r\n\t\t\ttopNumber: 0,\r\n\t\t\tisVisibleFilterDialog: false,\r\n\t\t\tfilterByDates: false,\r\n\t\t\tcurrentFilters: new UserConditionTypeFilterModel(),\r\n\t\t\tfilters: new UserConditionTypeFilterModel(),\r\n\t\t\ttimeDropdown: Array(0),\r\n\t\t\tselectedTime: 1,\r\n\t\t\tcanChooseDates: false,\r\n\t\t\tinfoPopover: false,\r\n\t\t\tinfoAchor: null,\r\n\t\t\tisChartsView: true\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tlet locStoChart = localStorage.getItem('isChartView');\r\n\t\tlet isChartView: boolean = true;\r\n\t\tif (locStoChart) {\r\n\t\t\tisChartView = locStoChart == \"true\" ? true : false;\r\n\t\t}\r\n\t\tthis.setState({ isChartsView: isChartView });\r\n\t\tthis.getCondition(1, this.state.numberOfRows, true);\r\n\t}\r\n\r\n\thandleSaveButton = (close, conditionTypes: Array, event?) => {\r\n\t\tif (event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t\tthis.setState({ isLoading: true })\r\n\r\n\t\tif (this.heartRateCharacteristic) {\r\n\t\t\tthis.heartRateCharacteristic.stopNotifications();\r\n\t\t}\r\n\r\n\t\tif (this.temperatureCharacteristic) {\r\n\t\t\tthis.temperatureCharacteristic.stopNotifications();\r\n\t\t}\r\n\r\n\t\tfor (let i = 0; i < this.state.currentCondition.userConditionTypes.length; i++) {\r\n\t\t\tif (!this.state.currentCondition.userConditionTypes[i].userConditionValue || this.state.currentCondition.userConditionTypes[i].userConditionValue.trim() == '') {\r\n\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate('NotAllEntered') });\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst condition = this.state.currentCondition;\r\n\r\n\t\t//condition.conditionDate = fomatDateTimeAsString(new Date(condition.conditionDate));\t\t\r\n\t\tthis.userConditionService.updateUserCondition(condition.userConditionId, conditionTypes)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n\t\t\t\t\tthis.setState({ isLoading: false });\r\n\t\t\t\t\tthis.getCondition(1, this.state.numberOfRows, true);\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\trangesToDropdown = (isInit: boolean) => {\r\n\t\tif (!this.state.currentCondition.isSystemType) {\r\n\t\t\tlet newrange: ConditionUnitRangeModel = new ConditionUnitRangeModel();\r\n\t\t\tif (this.state.currentCondition.personalMinValue) {\r\n\t\t\t\tnewrange.minValue = JSON.stringify(this.state.currentCondition.personalMinValue);\r\n\t\t\t}\r\n\t\t\tif (this.state.currentCondition.personalMaxValue) {\r\n\t\t\t\tnewrange.maxValue = JSON.stringify(this.state.currentCondition.personalMaxValue);\r\n\t\t\t}\r\n\t\t\tthis.setState({ selectedRange: newrange, isVisibleDropdown: false });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tif (this.state.conditionUnitRanges && this.state.conditionUnitRanges.length > 0 && isInit) {\r\n\t\t\t\tif (this.state.conditionUnitRanges.length > 1) {\r\n\t\t\t\t\tlet ranges = [...this.state.conditionUnitRanges];\r\n\t\t\t\t\tlet allItems = Array(0);\r\n\t\t\t\t\tlet found: ConditionUnitRangeModel = ranges[0];\r\n\r\n\t\t\t\t\tfor (let unit of ranges) {\r\n\t\t\t\t\t\tlet dropDown = new DropdownModel();\r\n\t\t\t\t\t\tdropDown.value = unit.conditionUnitRangeId;\r\n\t\t\t\t\t\tdropDown.label = (unit.genderTypeId > 0 ? this.getGender(unit.genderTypeId) + \"; \" : \"\") +\r\n\t\t\t\t\t\t\t(unit.minAge > 0 && unit.maxAge > 0 ? unit.minAge + '-' + unit.maxAge + \" \" + Translate('AgeAbb') : \"\") +\r\n\t\t\t\t\t\t\t(unit.maxAge > 0 && unit.minAge <= 0 ? Translate('Under') + ' ' + unit.maxAge + \" \" + Translate('AgeAbb') : \"\") +\r\n\t\t\t\t\t\t\t(unit.maxAge <= 0 && unit.minAge > 0 ? Translate(\"Over\") + ' ' + unit.minAge + \" \" + Translate('AgeAbb') : \"\");\r\n\t\t\t\t\t\tallItems.push(dropDown);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.state.userGender && !this.state.userAge) {\r\n\t\t\t\t\t\tfor (let r of ranges) {\r\n\t\t\t\t\t\t\tif (r.genderTypeId && r.genderTypeId == this.state.userGender) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.state.userAge && !this.state.userGender) {\r\n\t\t\t\t\t\tfor (let r of ranges) {\r\n\t\t\t\t\t\t\tif (r.minAge && r.maxAge && this.state.userAge > r.minAge && this.state.userAge < r.maxAge) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (r.minAge && !r.maxAge && this.state.userAge > r.minAge) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!r.minAge && r.maxAge && this.state.userAge < r.maxAge) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (this.state.userAge && this.state.userGender) {\r\n\t\t\t\t\t\tfor (let r of ranges) {\r\n\t\t\t\t\t\t\tif (r.minAge && r.maxAge && this.state.userAge > r.minAge && this.state.userAge < r.maxAge && (!r.genderTypeId || r.genderTypeId == this.state.userGender)) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (r.minAge && !r.maxAge && this.state.userAge > r.minAge && (!r.genderTypeId || r.genderTypeId == this.state.userGender)) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!r.minAge && r.maxAge && this.state.userAge < r.maxAge && (!r.genderTypeId || r.genderTypeId == this.state.userGender)) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (!r.minAge && !r.maxAge && r.genderTypeId == this.state.userGender) {\r\n\t\t\t\t\t\t\t\tfound = r;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.setState({ isVisibleDropdown: true, rangesDropdown: allItems, selectedRangeID: found.conditionUnitRangeId, selectedRange: found });\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tthis.setState({ isVisibleDropdown: false, selectedRange: this.state.conditionUnitRanges[0] });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetGender = (gender: number) => {\r\n\t\treturn gender == GenderType.Male ? Translate('Male') : Translate('Female');\r\n\t}\r\n\r\n\tgetCondition = (page: number, numberOfRows: number, isInit: boolean) => {\r\n\t\tlet from = (page - 1) * this.state.numberOfRows;\r\n\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true,\r\n\t\t});\r\n\r\n\t\tlet filter: UserConditionTypeFilterModel = new UserConditionTypeFilterModel();\r\n\r\n\t\tif (this.state.filterByDates && this.state.filters.startDate) {\r\n\t\t\tfilter.startDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.filters.startDate));\r\n\t\t}\r\n\r\n\t\tif (this.state.filterByDates && this.state.filters.endDate) {\r\n\t\t\tfilter.endDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.filters.endDate));\r\n\t\t}\r\n\r\n\t\tthis.userConditionService.getCondition(this.props.selectedConditionId, from, numberOfRows, filter)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tif (!this.state.conditionUnitRanges || this.state.conditionUnitRanges.length == 0) {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tcurrentCondition: data.condition,\r\n\t\t\t\t\t\t\tfrom: from,\r\n\t\t\t\t\t\t\ttotalRecordsCount: data.totalRecordsCount,\r\n\t\t\t\t\t\t\tconditionUnitRanges: data.conditionUnitRanges,\r\n\t\t\t\t\t\t\tselectedRange: data.conditionUnitRanges ? data.conditionUnitRanges[0] : new ConditionUnitRangeModel(),\r\n\t\t\t\t\t\t\tuserAge: data.userAge,\r\n\t\t\t\t\t\t\tuserGender: data.userGender,\r\n\t\t\t\t\t\t\tnumberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n\t\t\t\t\t\t\t\tdata.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n\t\t\t\t\t\t}, () => this.rangesToDropdown(isInit));\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tcurrentCondition: data.condition,\r\n\t\t\t\t\t\t\tfrom: from,\r\n\t\t\t\t\t\t\ttotalRecordsCount: data.totalRecordsCount,\r\n\t\t\t\t\t\t\tuserAge: data.userAge,\r\n\t\t\t\t\t\t\tuserGender: data.userGender,\r\n\t\t\t\t\t\t\tnumberOfPages: (data.totalRecordsCount % this.state.numberOfRows > 0 ?\r\n\t\t\t\t\t\t\t\tdata.totalRecordsCount / this.state.numberOfRows + 1 : data.totalRecordsCount / this.state.numberOfRows)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\thandleCancelButton = () => {\r\n\t\tif (this.heartRateCharacteristic) {\r\n\t\t\tthis.heartRateCharacteristic.stopNotifications();\r\n\t\t}\r\n\r\n\t\tif (this.temperatureCharacteristic) {\r\n\t\t\tthis.temperatureCharacteristic.stopNotifications();\r\n\t\t}\r\n\t\tclearInterval(this.secInterval);\r\n\t\tthis.props.cancelClick();\r\n\t}\r\n\r\n\thandleChange = (props: UserConditionTypeModel, value) => {\r\n\t\tconst condition: UserConditionModel = { ...this.state.currentCondition };\r\n\t\tconst conditions: Array = [...condition.userConditionTypes];\r\n\t\tlet founded = conditions.findIndex(r => r.userConditionToUserConditionTypeId == props.userConditionToUserConditionTypeId);\r\n\t\tconditions[founded].userConditionValue = value;\r\n\t\tcondition.userConditionTypes = [...conditions];\r\n\t\tthis.setState({ currentCondition: { ...condition } });\r\n\t};\r\n\r\n\taddNewToList = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({ addNew: true });\r\n\t}\r\n\r\n\thandleCancelAddNewButton = () => {\r\n\t\tclearInterval(this.secInterval);\r\n\t\tthis.setState({ addNew: false, newConditionType: new UserConditionTypeModel(), bottomNumber: 0, topNumber: 0 });\r\n\t}\r\n\r\n\thandleUserConditionTypeRemoveClick = (event, index: number) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({ condIndex: index, isVisibleConfirmTypeDialog: true, deleteValidationMessage: Translate(\"ConditionTypeConfirm\") });\r\n\t}\r\n\r\n\thandleUserConditionBluetoothClick = (condType: UserConditionType, event?) => {\r\n\t\tif (event) {\r\n\t\t\tevent.preventDefault();\r\n\t\t}\r\n\t\tthis.setState({ isLoadingBluetooth: true });\r\n\r\n\t\tlet isFloat = false;\r\n\t\tlet serviceName = '';\r\n\t\tlet characteristicName = '';\r\n\r\n\t\tswitch (condType) {\r\n\r\n\t\t\tcase UserConditionType.Weight:\r\n\t\t\t\tserviceName = 'battery_service';\r\n\t\t\t\tcharacteristicName = 'battery_level';\r\n\t\t\t\tisFloat = false;\r\n\t\t\t\tthis.getBateryValue(serviceName, characteristicName, isFloat);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase UserConditionType.HeartRate:\r\n\t\t\t\tserviceName = 'heart_rate';\r\n\t\t\t\tcharacteristicName = 'heart_rate_measurement';\r\n\t\t\t\tthis.addEventListener(serviceName, characteristicName);\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase UserConditionType.Temperature:\r\n\t\t\t\tserviceName = 'health_thermometer';\r\n\t\t\t\tcharacteristicName = 'temperature_measurement';\r\n\t\t\t\tthis.addEventListener(serviceName, characteristicName);\r\n\t\t\t\tisFloat = true;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t}\r\n\r\n\tgetBateryValue = (serviceName, characteristicName, isFloat) => {\r\n\t\tthis.bluetoothService.getValue(serviceName, characteristicName, isFloat)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tlet userConditionType = new UserConditionTypeModel();\r\n\r\n\t\t\t\t\t// userConditionType.userConditionTypeId = UserConditionType.Weight;\r\n\t\t\t\t\t// userConditionType.isSystemType = true;\r\n\r\n\t\t\t\t\tthis.handleChange(userConditionType, data + '');\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate(\"The connection was interrupted\") });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\taddEventListener = (serviceName, characteristicName) => {\r\n\t\tthis.bluetoothService.getCharacteristic(serviceName, characteristicName)\r\n\t\t\t.then(\r\n\t\t\t\t(characteristic) => {\r\n\t\t\t\t\tcharacteristic.startNotifications()\r\n\t\t\t\t\t\t.then(\r\n\t\t\t\t\t\t\tchar => {\r\n\t\t\t\t\t\t\t\tif (serviceName == 'heart_rate') {\r\n\t\t\t\t\t\t\t\t\tthis.heartRateCharacteristic = characteristic;\r\n\t\t\t\t\t\t\t\t\tthis.heartRateCharacteristic.addEventListener('characteristicvaluechanged',\r\n\t\t\t\t\t\t\t\t\t\t(event) => this.onHeartRateChanged(event));\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif (serviceName == 'health_thermometer') {\r\n\t\t\t\t\t\t\t\t\tthis.temperatureCharacteristic = characteristic;\r\n\t\t\t\t\t\t\t\t\tthis.temperatureCharacteristic.addEventListener('characteristicvaluechanged',\r\n\t\t\t\t\t\t\t\t\t\t(event) => this.onTemperatureChanged(event));\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\terror => {\r\n\t\t\t\t\t\t\t\tthis.growlBluetooth.show({ severity: 'error', summary: Translate(\"The connection was interrupted\") });\r\n\t\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\t\tisLoadingBluetooth: false\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t)\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growlBluetooth.show({ severity: 'error', summary: Translate(\"The connection was interrupted\") });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoadingBluetooth: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tonHeartRateChanged = (event) => {\r\n\t\tlet characteristic = event.target;\r\n\t\tlet data = this.bluetoothService.parseHeartRate(characteristic.value);\r\n\t\tif (this.state.isBluetoothLogStart) {\r\n\t\t\tlet userConditionType = new UserConditionTypeModel();\r\n\t\t\tlet condTypes: Array = [...this.state.heartRateChangeArray];\r\n\t\t\tuserConditionType.conditionDate = new Date().toUTCString();\r\n\t\t\tuserConditionType.userConditionValue = data.heartRate + '';\r\n\t\t\tcondTypes.push(userConditionType);\r\n\t\t\tif (this.state.bluetoothValue != data.heartRate + '') {\r\n\t\t\t\tthis.setState({\r\n\t\t\t\t\tisLoadingBluetooth: false,\r\n\t\t\t\t\tbluetoothValue: data.heartRate + '',\r\n\t\t\t\t\theartRateChangeArray: [...condTypes]\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.setState({\r\n\t\t\t\tisLoadingBluetooth: false,\r\n\t\t\t\tbluetoothValue: data.heartRate + ''\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tonTemperatureChanged = (event) => {\r\n\t\tlet characteristic = event.target;\r\n\t\tlet data = this.bluetoothService.parseTemparature(characteristic.value);\r\n\t\tlet userConditionType = new UserConditionTypeModel();\r\n\r\n\t\t// userConditionType.userConditionTypeId = UserConditionType.Temperature;\r\n\t\t// userConditionType.isSystemType = true;\r\n\r\n\t\tconsole.log(\"Temperature: \", data.temperature + ' ' + data.unit);\r\n\r\n\t\tlet temp = data.unit == 'Fahrenheit' ? (data.temperature - 32) * 5 / 9 : data.temperature;\r\n\t\tthis.handleChange(userConditionType, (Math.round(temp * 100) / 100) + ' ');\r\n\t\tthis.setState({\r\n\t\t\tisLoading: false,\r\n\t\t});\r\n\t}\r\n\r\n\tcondTypeTemplate(option) {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{option.label}\r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n\r\n\tchangeBluetoothValue = (value) => {\r\n\t\tthis.setState({ bluetoothValue: value });\r\n\t}\r\n\r\n\thandleDateChange = (value) => {\r\n\t\tconst condition: UserConditionTypeModel = { ...this.state.newConditionType };\r\n\t\tcondition.conditionDate = value;\r\n\t\tclearInterval();\r\n\t\tthis.setState({ newConditionType: { ...condition } })\r\n\t}\r\n\r\n\thandleValueChange = (value) => {\r\n\t\tif (value < 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tconst condition: UserConditionTypeModel = { ...this.state.newConditionType };\r\n\t\tcondition.userConditionValue = value;\r\n\t\tthis.setState({ newConditionType: { ...condition } })\r\n\t}\r\n\r\n\thandleSaveAddButton = () => {\r\n\t\tlet currentCondition = { ...this.state.currentCondition };\r\n\t\tlet newConditionType = { ...this.state.newConditionType };\r\n\t\tlet topNumber = this.state.topNumber;\r\n\t\tlet bottomNumber = this.state.bottomNumber;\r\n\t\tif (currentCondition.userConditionTypeId == UserConditionType.BloodPressure && currentCondition.isSystemType) {\r\n\t\t\tnewConditionType.userConditionValue = topNumber.toString() + \"/\" + bottomNumber.toString();\r\n\t\t\tlet regExp = /^\\d{1,3}\\/\\d{1,3}$/;\r\n\t\t\tif (+topNumber < +bottomNumber) {\r\n\t\t\t\tthis.growlSecond.show({ severity: 'warning', summary: Translate(\"BottomNumberBigger\") })\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif (!newConditionType.userConditionValue.match(regExp)) {\r\n\t\t\t\tthis.growlSecond.show({ severity: 'warning', summary: Translate(\"BloodPresureValid\") })\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (!newConditionType.conditionDate) {\r\n\t\t\tnewConditionType.conditionDate = new Date().toUTCString();\r\n\t\t}\r\n\t\tclearInterval();\r\n\t\tcurrentCondition.userConditionTypes.push(newConditionType);\r\n\t\tthis.setState({ currentCondition: currentCondition, newConditionType: new UserConditionTypeModel(), addNew: false, bottomNumber: 0, topNumber: 0 });\r\n\t\tlet conditionTypes: Array = [];\r\n\t\tconditionTypes.push(newConditionType);\r\n\t\tthis.handleSaveButton(false, conditionTypes);\r\n\t}\r\n\r\n\thandleClick = (e) => {\r\n\t\te.preventDefault();\r\n\t\tthis.setState({ popover: true, anchorEl: e.currentTarget });\r\n\t}\r\n\r\n\tdisconnect = () => {\r\n\t\tif (this.heartRateCharacteristic) {\r\n\t\t\tthis.disconnectCharacteristic(this.heartRateCharacteristic);\r\n\t\t\tthis.heartRateCharacteristic = null;\r\n\t\t}\r\n\r\n\t\tif (this.temperatureCharacteristic) {\r\n\t\t\tthis.disconnectCharacteristic(this.temperatureCharacteristic);\r\n\t\t\tthis.temperatureCharacteristic = null;\r\n\t\t}\r\n\t}\r\n\r\n\tdisconnectCharacteristic = (characteristic: any) => {\r\n\t\tif (characteristic.service.device.gatt.connected) {\r\n\t\t\tcharacteristic.service.device.gatt.disconnect();\r\n\t\t}\r\n\t}\r\n\r\n\thandleCancelBluetoothButton = () => {\r\n\t\tthis.setState({\r\n\t\t\tbluetoothDialog: false, bluetoothValue: '', selectedType: new UserConditionTypeModel(),\r\n\t\t\tisBluetoothLogStart: false, heartRateChangeArray: new Array(0)\r\n\t\t}, () => this.disconnect());\r\n\t}\r\n\r\n\taddBluetoothValue = () => {\r\n\t\tlet currentCond = { ...this.state.currentCondition };\r\n\t\tlet currentTypes = [...currentCond.userConditionTypes];\r\n\t\tlet newTypes = [...this.state.heartRateChangeArray];\r\n\t\tcurrentTypes.push(...newTypes);\r\n\t\tcurrentCond.userConditionTypes = currentTypes;\r\n\t\tthis.setState({\r\n\t\t\tcurrentCondition: { ...currentCond }\r\n\t\t})\r\n\t\tthis.handleCancelBluetoothButton();\r\n\t\tthis.handleSaveButton(false, newTypes);\r\n\t}\r\n\r\n\tscannDevices = () => {\r\n\t\tthis.handleUserConditionBluetoothClick(this.state.currentCondition.userConditionTypeId)\r\n\t}\r\n\r\n\topenBluetoothDialog = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({ bluetoothDialog: true })\r\n\t}\r\n\r\n\tpaginataorClick = (page) => {\r\n\t\tthis.setState({ page: page }, () => this.getCondition(page, this.state.numberOfRows, false));\r\n\t}\r\n\r\n\tdeleteConditionType = (index: number) => {\r\n\t\tlet condition: UserConditionModel = new UserConditionModel();\r\n\t\tcondition = { ...this.state.currentCondition };\r\n\t\tlet conditions: Array = condition.userConditionTypes ? [...condition.userConditionTypes] : new Array();\r\n\t\tlet founded = conditions[index];\r\n\t\tconditions.splice(index, 1);\r\n\t\tcondition.userConditionTypes = [...conditions];\r\n\t\tthis.setState({ currentCondition: { ...condition }, isVisibleConfirmTypeDialog: false, deleteValidationMessage: '' }, () => this.onDeleteConditionType(founded));\r\n\t}\r\n\r\n\tonDeleteConditionType = (condition: UserConditionTypeModel) => {\r\n\t\tthis.userConditionService.deleteConditionType(condition.userConditionToUserConditionTypeId)\r\n\t\t\t.then(\r\n\t\t\t\tdata => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n\t\t\t\t\tthis.setState({ isLoading: false }, () => this.getCondition(1, this.state.numberOfRows, true));\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tdeleteCondition = (id: number) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\r\n\t\tthis.userConditionService.deleteCondition(id)\r\n\t\t\t.then(\r\n\t\t\t\tdata => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n\t\t\t\t\tthis.setState({ isLoading: false });\r\n\t\t\t\t\tthis.props.cancelClick(true)\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t}\r\n\r\n\thandleDeleteClick = () => {\r\n\t\tlet dialogHeader = HelperFunctions.getEnumLabel(this.state.currentCondition.userConditionTypeId, UserConditionType, true) +\r\n\t\t\t\" \" + \"(\" + HelperFunctions.getUnitByConditionType(this.state.currentCondition.userConditionTypeId) + \")\";\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: true,\r\n\t\t\tdeleteValidationMessage: Translate('ConditionConfirm') + '?'\r\n\t\t});\r\n\t}\r\n\r\n\thandleDropdownChange = (id) => {\r\n\t\tlet unitRange = new ConditionUnitRangeModel();\r\n\t\tlet ranges = [...this.state.conditionUnitRanges];\r\n\t\tfor (let unit of ranges) {\r\n\t\t\tif (unit.conditionUnitRangeId == id) {\r\n\t\t\t\tunitRange = unit;\r\n\t\t\t}\r\n\t\t}\r\n\t\tthis.setState({ selectedRangeID: id, selectedRange: unitRange });\r\n\t}\r\n\r\n\thandleTimeDropdownChange = (id) => {\r\n\t\tlet filters = { ...this.state.currentFilters };\r\n\t\tlet canChooseDates = false;\r\n\t\tswitch (id) {\r\n\t\t\tcase TimePresetType.OneDay:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.OneWeek:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 7).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.OneMonth:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 1).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.ThreeMonths:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 3).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.SixMonths:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 6).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.OneYear:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 12).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.Advanced:\r\n\t\t\t\tcanChooseDates = true;\r\n\t\t}\r\n\t\tthis.setState({ selectedTime: id, currentFilters: filters, canChooseDates: canChooseDates });\r\n\t}\r\n\r\n\tonEnter = (e) => {\r\n\t\tif (e.key === 'Enter' && this.state.newConditionType && this.state.newConditionType.userConditionValue && this.state.newConditionType.userConditionValue.trim() != '') {\r\n\t\t\tthis.handleSaveAddButton()\r\n\t\t}\r\n\t}\r\n\r\n\tgetPlaceHolder() {\r\n\t\tif (this.state.currentCondition && this.state.currentCondition.isSystemType) {\r\n\t\t\tswitch (this.state.currentCondition.userConditionTypeId) {\r\n\t\t\t\tcase UserConditionType.BloodPressure:\r\n\t\t\t\t\treturn Translate('EnterBloodPressure');\r\n\t\t\t\tcase UserConditionType.HeartRate:\r\n\t\t\t\t\treturn Translate('EnterHeartRate');\r\n\t\t\t\tcase UserConditionType.Height:\r\n\t\t\t\t\treturn Translate('EnterHeight');\r\n\t\t\t\tcase UserConditionType.Temperature:\r\n\t\t\t\t\treturn Translate('EnterTemperature');\r\n\t\t\t\tcase UserConditionType.BloodSugar:\r\n\t\t\t\t\treturn Translate('EnterBloodSugar');\r\n\t\t\t\tdefault:\r\n\t\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\thandleBloodPresusreValueChange = (value, isBottom) => {\r\n\t\tif (isBottom) {\r\n\t\t\tthis.setState({ bottomNumber: value });\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.setState({ topNumber: value });\r\n\t\t}\r\n\t}\r\n\r\n\tgetColor = (type: UserConditionTypeModel) => {\r\n\t\tconst { currentCondition, selectedRange } = this.state;\r\n\t\tlet returnedString: string = '#7bc87b';\r\n\t\tif (selectedRange) {\r\n\t\t\tif (currentCondition.isSystemType && currentCondition.userConditionTypeId == UserConditionType.BloodPressure) {\r\n\t\t\t\tlet bPressure = type.userConditionValue.split('/');\r\n\t\t\t\tif ((selectedRange.minValue && +selectedRange.minValue > +bPressure[0]) ||\r\n\t\t\t\t\t(selectedRange.maxValue && +selectedRange.maxValue < +bPressure[0]) ||\r\n\t\t\t\t\t(selectedRange.secondMinValue && +selectedRange.secondMinValue > +bPressure[1]) ||\r\n\t\t\t\t\t(selectedRange.secondMaxValue && +selectedRange.secondMaxValue < +bPressure[1])) {\r\n\t\t\t\t\treturnedString = '#ff4d4d';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif ((selectedRange.minValue && +selectedRange.minValue > +type.userConditionValue) ||\r\n\t\t\t\t\t(selectedRange.maxValue && +selectedRange.maxValue < +type.userConditionValue)) {\r\n\t\t\t\t\treturnedString = '#ff4d4d';\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn returnedString;\r\n\t}\r\n\r\n\ttoggleFilterDialog = (open) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleFilterDialog: open\r\n\t\t});\r\n\t};\r\n\r\n\thandleFilterChange = (key, value) => {\r\n\t\tconst userFilter: UserConditionTypeFilterModel = { ...this.state.currentFilters };\r\n\t\tuserFilter[key] = value;\r\n\t\tthis.setState({ currentFilters: { ...userFilter } })\r\n\t};\r\n\r\n\thandleFilter = (e) => {\r\n\t\te.preventDefault();\r\n\t\tlet filters = { ...this.state.currentFilters };\r\n\t\tif (!filters.startDate) {\r\n\t\t\tfilters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n\t\t}\r\n\t\tif (!filters.endDate) {\r\n\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t}\r\n\t\tthis.setState({ isVisibleFilterDialog: false, filters: filters, filterByDates: true }, () => this.getCondition(1, this.state.numberOfRows, true));\r\n\t}\r\n\r\n\tshowFilters = (e) => {\r\n\t\tif (e) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\tlet currentSettings: UserConditionTypeFilterModel = new UserConditionTypeFilterModel();\r\n\r\n\t\tif (this.state.filters) {\r\n\t\t\tcurrentSettings = { ...this.state.filters };\r\n\t\t}\r\n\r\n\t\tif (!currentSettings.startDate) {\r\n\t\t\tthis.handleTimeDropdownChange(this.state.selectedTime ? this.state.selectedTime : 1)\r\n\t\t}\r\n\r\n\t\tlet timeDr = new Array(0);\r\n\t\ttimeDr = HelperFunctions.enumToDropdownArray(TimePresetType, true);\r\n\r\n\t\tthis.setState({ isVisibleFilterDialog: true, currentFilters: { ...currentSettings }, timeDropdown: timeDr });\r\n\t}\r\n\r\n\tclearFilters = (e?) => {\r\n\t\tif (e) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tcurrentFilters: new UserConditionTypeFilterModel(), selectedTime: 1,\r\n\t\t\tfilters: new UserConditionTypeFilterModel(), filterByDates: false, isVisibleFilterDialog: false\r\n\t\t},\r\n\t\t\t() => this.getCondition(1, this.state.numberOfRows, true))\r\n\t}\r\n\r\n\tgetFiltersummary = () => {\r\n\t\tlet startSet: any = null;\r\n\t\tlet endSet: any = null;\r\n\r\n\t\tif (this.state.filters && this.state.filters.startDate) {\r\n\t\t\tstartSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('From')}:\r\n\t\t\t {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.filters.startDate), this.props.lang)} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tif (this.state.filters && this.state.filters.endDate) {\r\n\t\t\tendSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('To')}:\r\n\t\t\t {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.filters.endDate), this.props.lang)} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tlet summary =\r\n\t\t\t

    \r\n\t\t\t\t{startSet}\r\n\t\t\t\t{endSet}\r\n\t\t\t

    \r\n\r\n\t\treturn summary;\r\n\t}\r\n\r\n\topenInfoPopover = (e) => {\r\n\t\te.preventDefault();\r\n\r\n\t\tthis.setState({\r\n\t\t\tinfoPopover: true,\r\n\t\t\tinfoAchor: e.currentTarget\r\n\t\t});\r\n\t}\r\n\r\n\thandleInfoClose = () => {\r\n\t\tthis.setState({\r\n\t\t\tinfoPopover: false\r\n\t\t});\r\n\t}\r\n\r\n\tchangeView = (view: boolean) => {\r\n\t\tlocalStorage.setItem('isChartView', view ? \"true\" : \"false\");\r\n\t\tthis.setState({ isChartsView: view })\r\n\t}\r\n\r\n\tpublic render() {\r\n\t\tconst { isLoading, currentCondition, isLoadingSecond, addNew, newConditionType, isVisibleDropdown,\r\n\t\t\tcondIndex, page, numberOfPages, selectedRangeID, rangesDropdown, totalRecordsCount, from,\r\n\t\t\tisChartsView, bottomNumber, topNumber, currentFilters, filters, timeDropdown, selectedTime } = this.state;\r\n\r\n\t\tlet condition = JSON.parse(JSON.stringify(currentCondition));\r\n\t\tlet charts: any = null;\r\n\t\tlet showAllLink = false;\r\n\r\n\t\tlet label = condition.isSystemType ? HelperFunctions.getEnumLabel(condition.userConditionTypeId, UserConditionType, true) +\r\n\t\t\t' (' + condition.userConditionUnit + ')' + '' : condition.personalCondition + '';\r\n\t\tif (filters.startDate || filters.endDate) {\r\n\t\t\tshowAllLink = true\r\n\t\t}\r\n\r\n\t\tif (currentCondition.userConditionTypes && currentCondition.userConditionTypes.length >= 1) {\r\n\t\t\tcharts =\r\n\t\t\t\tisChartsView ?\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    :\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{label}\r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t;\r\n\t\t}\r\n\r\n\t\t// if (currentCondition.isSystemType && currentCondition.userConditionTypeId == UserConditionType.BloodPressure &&\r\n\t\t// \tcurrentCondition.userConditionTypes && currentCondition.userConditionTypes.length >= 1) {\r\n\t\t// \tcharts =\r\n\t\t// \t\t
    \r\n\t\t// \t\t\t\r\n\t\t// \t\t
    \r\n\t\t// \t\t;\r\n\t\t// }\r\n\r\n\t\tlet dialogHeader = HelperFunctions.getEnumLabel(currentCondition.userConditionTypeId, UserConditionType, true) +\r\n\t\t\t\" \" + \"(\" + HelperFunctions.getUnitByConditionType(currentCondition.userConditionTypeId) + \")\";\r\n\r\n\t\tif (!currentCondition.isSystemType) {\r\n\t\t\tdialogHeader = currentCondition.personalCondition;\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{dialogHeader}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{isLoading ? : null}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t this.growl = el} />\r\n\r\n\t\t\t\t\t\t\t{this.state.validationMessage ? {this.state.validationMessage} : null}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{currentCondition.userConditionTypes && currentCondition.userConditionTypes.length >= 1 ?\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem('isChartView', 'true');\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ isChartsView: true })\r\n\t\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    {\r\n\t\t\t\t\t\t\t\t\t\t\t\tlocalStorage.setItem('isChartView', 'false');\r\n\t\t\t\t\t\t\t\t\t\t\t\tthis.setState({ isChartsView: false })\r\n\t\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t\t\t{/* {\r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({ isChartsView: true })\r\n\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t\t\t\tthis.setState({ isChartsView: false })\r\n\t\t\t\t\t\t\t\t\t\t}}> */}\r\n\t\t\t\t\t\t\t\t\t
    : null}\r\n\t\t\t\t\t\t\t\t{isVisibleDropdown ?\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.openInfoPopover(e)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t

    {Translate(\"NormInfoPopMessage\")}

    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleDropdownChange(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tinputProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tid: 'condition-type-label'\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{rangesDropdown.map(m => {m.value ? m.label : {m.label}})}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{charts}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.addNewToList(e)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.showFilters(e)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{currentCondition.isSystemType && currentCondition.userConditionTypeId == UserConditionType.HeartRate ?\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t this.openBluetoothDialog(e)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    : null}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t{totalRecordsCount + \" \"}{Translate('TotalResults')}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{this.state.filterByDates ?\r\n\t\t\t\t\t\t\t\t\t\tthis.getFiltersummary()\r\n\t\t\t\t\t\t\t\t\t\t: null}\r\n\r\n\t\t\t\t\t\t\t\t\t{showAllLink ?\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.clearFilters(e)}>{Translate('See All')}\r\n\t\t\t\t\t\t\t\t\t\t
    : null}\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t{currentCondition && currentCondition.userConditionTypes && currentCondition.userConditionTypes.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\tcurrentCondition.userConditionTypes\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.sort((a, b) => new Date(b.conditionDate).getTime() - new Date(a.conditionDate).getTime())\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t.map((m: UserConditionTypeModel, index) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.state.conditionUnitRanges && this.state.conditionUnitRanges.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{m.userConditionValue + \" \" +\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(currentCondition.isSystemType ? HelperFunctions.getUnitByConditionType(currentCondition.userConditionTypeId) : \"\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{HelperFunctions.fomatDateTimeSecondsAsStringWithLang(new Date(m.conditionDate), this.props.lang)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t this.handleUserConditionTypeRemoveClick(e, index)} >\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : null}\r\n\t\t\t\t\t\t\t\t\t\t\t{(!currentCondition || !currentCondition.userConditionTypes || currentCondition.userConditionTypes.length <= 0) &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t(!filters || !filters.startDate || !filters.endDate) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t{Translate(\"Add Characteristic\")}\r\n\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{addNew ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{Translate(\"AddValue\")}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{isLoadingSecond ? : null}\r\n\t\t\t\t\t\t\t\t this.growlSecond = el} />\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.handleDateChange(e)}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{currentCondition.isSystemType && currentCondition.userConditionTypeId == UserConditionType.BloodPressure ?\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t this.handleBloodPresusreValueChange(e.target['value'], false)}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeyPress={this.onEnter}\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ flexWrap: 'wrap', marginRight: 5 }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t this.handleBloodPresusreValueChange(e.target['value'], true)}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeyPress={this.onEnter}\r\n\t\t\t\t\t\t\t\t\t\t\tstyle={{ flexWrap: 'wrap', marginLeft: 5 }}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t this.handleValueChange(e.target['value'])}\r\n\t\t\t\t\t\t\t\t\t\t\tonKeyPress={this.onEnter}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: null}\r\n\r\n\t\t\t\t\t{this.state.bluetoothDialog ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{Translate(\"Connect with a device\")}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{this.state.isLoadingBluetooth ? : null}\r\n\t\t\t\t\t\t\t\t this.growlBluetooth = el} />\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{this.state.bluetoothValue && this.state.bluetoothValue != '' ?\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t{Translate('Current value')}:\r\n\t\t\t\t\t\t\t\t\t\t\t {this.state.bluetoothValue} {HelperFunctions.getUnitByConditionType(this.state.currentCondition.userConditionTypeId)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{!this.state.isBluetoothLogStart ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ isBluetoothLogStart: true })}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.setState({ isBluetoothLogStart: false })}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t: {Translate('No current value')}}\r\n\r\n\t\t\t\t\t\t\t\t\t{this.state.isBluetoothLogStart ?
    {Translate('ReceivingData')}
    : null}\r\n\t\t\t\t\t\t\t\t\t{this.state.heartRateChangeArray && this.state.heartRateChangeArray.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t
    {Translate('ReceivedData')}:\r\n\t\t\t\t\t\t\t\t\t\t\t{\" \" + this.state.heartRateChangeArray.length}\r\n\t\t\t\t\t\t\t\t\t\t
    : null}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: null}\r\n\t\t\t\t
    \r\n\t\t\t\t{this.state.isVisibleFilterDialog ?\r\n\t\t\t\t\t this.toggleFilterDialog(false)}\r\n\t\t\t\t\t\tfullWidth={window.innerWidth < Constants.device.desktop}\r\n\t\t\t\t\t\taria-labelledby=\"responsive-dialog-title\"\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t this.toggleFilterDialog(false)}>{Translate('Filters')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Translate('Period')}\r\n\t\t\t\t\t\t\t\t\t\t this.handleTimeDropdownChange(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\tinputProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tid: 'preset-type-label'\r\n\t\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\t\t{timeDropdown.map(m => {m.value ? m.label : {m.label}})}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{this.state.canChooseDates ?\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleFilterChange('startDate', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleFilterChange('endDate', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t :\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{HelperFunctions.fomatDateAsStringWithLang(this.state.currentFilters.startDate ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(this.state.currentFilters.startDate) : HelperFunctions.getDaysEarlier(new Date().toString(), 1), this.props.lang)}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{HelperFunctions.fomatDateAsStringWithLang(this.state.currentFilters.endDate ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(this.state.currentFilters.endDate) : new Date(), this.props.lang)}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t : null}\r\n\r\n\t\t\t\t { this.deleteCondition(this.state.currentCondition.userConditionId) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleConfirmDialog: false, deleteValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteValidationMessage}\r\n\t\t\t\t\r\n\r\n\t\t\t\t { this.deleteConditionType(condIndex) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleConfirmTypeDialog: false, deleteValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteValidationMessage}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default UserConditionAddEditDialog;\r\n\r\nclass ConditionDropdownModel {\r\n\tvalue: number;\r\n\tlabel: string;\r\n\tisSystem: boolean;\r\n}","import { UserConditionTypeModel } from './userConditionTypeModel'\r\n\r\nexport class UserConditionListFilterModel {\r\n public userConditionType: UserConditionTypeModel;\r\n public startDate: string;\r\n public endDate: string;\r\n}","export class UserPersonalConditionModel {\r\n personalConditionTypeId: number;\r\n personalConditionTypeName: string;\r\n minValue: number;\r\n maxValue: number;\r\n isVisible: boolean;\r\n}","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport UserConditionService from '../../../services/userConditionService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { UserForGridModel } from \"../../../models/user\";\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport { UserConditionModel } from '../../../models/user/userConditionModel';\r\nimport { UserConditionTypeModel } from '../../../models/user/userConditionTypeModel';\r\nimport UserConditionList from './userConditionList';\r\nimport UserConditionAddEditComponent from './userConditionAddEditComponent';\r\nimport { UserConditionType } from \"../../../common/enums\";\r\nimport { connect } from 'react-redux';\r\nimport { enumToDropdownArray, fomatDateTimeAsString, fomatDateTimeAsStringWithLang } from '../../../common/functions/helperFunctions';\r\nimport { UserConditionListFilterModel } from '../../../models/user/userConditionListFilterModel';\r\nimport UserConditionViewComponent from './userConditionViewComponent';\r\nimport { MuiPickersUtilsProvider, DatePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport * as Constants from '../../../common/constants';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport Button from '@material-ui/core/Button';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport { faTimes, faFilter } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faBell, faCheck, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\r\nimport { UserPersonalConditionModel } from '../../../models/user/userPersonalConditionModel';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\r\nimport blue from '@material-ui/core/colors/blue';\r\nimport { ConditionUnitRangeModel } from \"../../../models/user/conditionUnitRangeModel\";\r\n\r\ninterface IProps {\r\n\thistory: any;\r\n\tlocation: any;\r\n\tuserId: number;\r\n\tlang: string;\r\n}\r\n\r\ninterface IState {\r\n\tisLoading: boolean;\r\n\ttotalRecordsCount: number;\r\n\tusers: Array;\r\n\tisVisibleDialog: boolean;\r\n\tcurrentConditionId: number,\r\n\tuserCondtitions: Array;\r\n\tdialogHeader: string;\r\n\tisVisibleConfirmDialog: boolean;\r\n\tdeleteValidationMessage: string;\r\n\tselectedConditionId: number;\r\n\tfirst: number;\r\n\trows: number;\r\n\ttotalRecords: number;\r\n\tconditionType: Array;\r\n\tfilters: UserConditionListFilterModel;\r\n\tstartDate: boolean;\r\n\tendDate: boolean;\r\n\tisVisibleView: boolean;\r\n\texpandedConditions: Array;\r\n\texpanded: string;\r\n\ttabActiveIndex: number;\r\n\tcurrentFilters: UserConditionListFilterModel,\r\n\tselectedConditionValue: number,\r\n\tcurrentConditionValue: number,\r\n\taddNew: boolean;\r\n\tselectedTypes: Array,\r\n\tnewCondition: string,\r\n\tpersonalCondition: ConditionDropdownModel;\r\n\tpersonalConditions: Array;\r\n\tpopover: boolean;\r\n\tanchorEl: any;\r\n\tisLoadingSecond: boolean;\r\n\tisVisibleConfirmPersonalDialog: boolean;\r\n\tminResult: number;\r\n\tmaxResult: number;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 20\r\n\r\nclass UserConditionComponent extends React.Component {\r\n\r\n\tuserConditionService = new UserConditionService();\r\n\tauthService = new AuthService();\r\n\tgrowl: any;\r\n\tgrowlSecond: any;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisLoading: false,\r\n\t\t\ttotalRecordsCount: 0,\r\n\t\t\tusers: new Array(0),\r\n\t\t\tisVisibleDialog: false,\r\n\t\t\tcurrentConditionId: 0,\r\n\t\t\tuserCondtitions: new Array(),\r\n\t\t\tdialogHeader: '',\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tdeleteValidationMessage: '',\r\n\t\t\tselectedConditionId: 0,\r\n\t\t\tfirst: initFrom,\r\n\t\t\trows: numberOfRows,\r\n\t\t\ttotalRecords: 0,\r\n\t\t\tconditionType: new Array(0),\r\n\t\t\tfilters: new UserConditionListFilterModel(),\r\n\t\t\tcurrentFilters: new UserConditionListFilterModel(),\r\n\t\t\tstartDate: false,\r\n\t\t\tendDate: false,\r\n\t\t\tisVisibleView: false,\r\n\t\t\texpandedConditions: new Array(0),\r\n\t\t\texpanded: '',\r\n\t\t\ttabActiveIndex: 0,\r\n\t\t\tselectedConditionValue: 0,\r\n\t\t\taddNew: false,\r\n\t\t\tcurrentConditionValue: 0,\r\n\t\t\tselectedTypes: new Array(0),\r\n\t\t\tnewCondition: '',\r\n\t\t\tpersonalConditions: Array(0),\r\n\t\t\tpersonalCondition: new ConditionDropdownModel(),\r\n\t\t\tpopover: false,\r\n\t\t\tanchorEl: null,\r\n\t\t\tisLoadingSecond: false,\r\n\t\t\tisVisibleConfirmPersonalDialog: false,\r\n\t\t\tminResult: 0,\r\n\t\t\tmaxResult: 0\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('scroll', this.onScroll);\r\n\t\tthis.getConditions(true);\r\n\t}\r\n\r\n\tconditionEnumToDropdownArray(enumName, isSystem: boolean) {\r\n\t\tlet enumAsArray: Array = [];\r\n\t\tfor (var n in enumName) {\r\n\t\t\tif (typeof enumName[n] === 'number') {\r\n\t\t\t\tenumAsArray.push({\r\n\t\t\t\t\tvalue: +enumName[n], label: Translate(n), isSystem: isSystem,\r\n\t\t\t\t\tisVisible: this.state.userCondtitions.some(r => r.isSystemType == true && r.userConditionTypeId == +enumName[n] ? true : false)\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn enumAsArray;\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('scroll', this.onScroll);\r\n\t}\r\n\r\n\tonScroll = () => {\r\n\t\tlet scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n\t\tif (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n\t\t\tthis.state.totalRecords > this.state.userCondtitions.length && !this.state.isLoading) {\r\n\t\t\tthis.paginatorClick({ first: this.state.first + this.state.rows }, false);\r\n\t\t}\r\n\t};\r\n\r\n\tgetConditions(isInit: boolean) {\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\r\n\t\tif (this.authService.isAuthenticated()) {\r\n\t\t\tlet filter: UserConditionListFilterModel = new UserConditionListFilterModel();\r\n\r\n\t\t\tlet userId = this.props.userId ? this.props.userId : this.authService.getUserId();\r\n\r\n\t\t\tthis.userConditionService.getAllUserConditions(this.state.first, this.state.rows, filter).then(\r\n\t\t\t\t(data: any) => {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tif (isInit) {\r\n\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\t\tuserCondtitions: [...data.userConditions],\r\n\t\t\t\t\t\t\t\ttotalRecords: data.totalRecords\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\t\tuserCondtitions: [...this.state.userCondtitions, ...data.userConditions],\r\n\t\t\t\t\t\t\t\ttotalRecords: data.totalRecords\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tshowEditDialog = (show: boolean) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleDialog: show\r\n\t\t});\r\n\t};\r\n\r\n\thandleAddAndEditClick = (condId: number) => {\r\n\t\tthis.setState({\r\n\t\t\tdialogHeader: Translate('EditCondition'),\r\n\t\t\tcurrentConditionId: condId,\r\n\t\t\tisVisibleDialog: true\r\n\t\t});\r\n\t};\r\n\r\n\thandleCloseAddEditClick = (getCond?: boolean) => {\r\n\t\tif (getCond) {\r\n\t\t\tthis.setState({\r\n\t\t\t\tisVisibleDialog: false,\r\n\t\t\t\tfirst: initFrom,\r\n\t\t\t\trows: numberOfRows\r\n\t\t\t}, () => this.getConditions(true));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.setState({\r\n\t\t\t\tisVisibleDialog: false,\r\n\t\t\t\tfirst: initFrom,\r\n\t\t\t\trows: numberOfRows\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\thandleDeleteClick = (conditionId: number) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: true,\r\n\t\t\tselectedConditionId: conditionId,\r\n\t\t\tdeleteValidationMessage: Translate('ConditionConfirm') + '?'\r\n\t\t});\r\n\t}\r\n\r\n\tdeleteCondition = (id: number) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\r\n\t\tthis.userConditionService.deleteCondition(id)\r\n\t\t\t.then(\r\n\t\t\t\tdata => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n\t\t\t\t\tthis.setState({ first: initFrom, rows: numberOfRows }, () => this.getConditions(true));\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tpaginatorClick = (e, isInit: boolean) => {\r\n\t\tthis.setState({ first: e.first }, () => this.getConditions(isInit));\r\n\t}\r\n\r\n\thandleChange = (key, value) => {\r\n\t\tconst userFilter: UserConditionListFilterModel = { ...this.state.currentFilters };\r\n\t\tuserFilter[key] = value;\r\n\t\tthis.setState({ currentFilters: { ...userFilter } })\r\n\t};\r\n\r\n\thandleChekbox = (key) => {\r\n\t\tlet dateEarly = this.getMonthEarlier(new Date().toString())\r\n\t\tif (key == 0) {\r\n\t\t\tthis.setState(prevState => ({\r\n\t\t\t\tstartDate: !prevState.startDate\r\n\t\t\t}), () => this.handleChange('startDate', dateEarly));\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.setState(prevState => ({\r\n\t\t\t\tendDate: !prevState.endDate\r\n\t\t\t}), () => this.handleChange('endDate', new Date()));\r\n\t\t}\r\n\t}\r\n\r\n\thandleCloseView = () => {\r\n\t\tthis.setState({ isVisibleView: false });\r\n\t}\r\n\r\n\tgetFiltersummary = () => {\r\n\t\tlet nameSet: any = null;\r\n\t\tlet startSet: any = null;\r\n\t\tlet endSet: any = null;\r\n\r\n\t\tif (this.state.selectedConditionValue > 0) {\r\n\t\t\tlet name: string = '';\r\n\t\t\tfor (let cond of this.state.conditionType) {\r\n\t\t\t\tif (cond.value == this.state.selectedConditionValue) {\r\n\t\t\t\t\tname = cond.label\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tnameSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('Characteristic')}:\r\n\t\t\t\t\t {name} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tif (this.state.filters && this.state.filters.startDate) {\r\n\t\t\tstartSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('From')}:\r\n\t\t\t\t\t {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.filters.startDate), this.props.lang)} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tif (this.state.filters && this.state.filters.endDate) {\r\n\t\t\tendSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('To')}:\r\n\t\t\t\t\t {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.filters.endDate), this.props.lang)} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tlet summary =\r\n\t\t\t

    \r\n\t\t\t\t{nameSet}\r\n\t\t\t\t{startSet}\r\n\t\t\t\t{endSet}\r\n\t\t\t

    \r\n\r\n\t\treturn summary;\r\n\t}\r\n\r\n\tgetMonthEarlier = (currentDate: string) => {\r\n\t\tlet d = new Date(currentDate);\r\n\t\td.setMonth(d.getMonth() - 1);\r\n\t\treturn d;\r\n\t}\r\n\r\n\thandleDropChange = (cond) => {\r\n\t\tthis.setState({ currentConditionValue: cond });\r\n\t}\r\n\r\n\taddNewToList = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({ addNew: true, selectedTypes: new Array(0) });\r\n\t}\r\n\r\n\thandleCancelAddNewButton = () => {\r\n\t\tthis.setState({\r\n\t\t\taddNew: false,\r\n\t\t\tselectedTypes: new Array(0),\r\n\t\t\tnewCondition: '',\r\n\t\t\tfirst: initFrom,\r\n\t\t\trows: numberOfRows\r\n\t\t}, () => this.getConditions(true));\r\n\t}\r\n\r\n\tselectTypes = (condition: ConditionDropdownModel, isChecked: boolean) => {\r\n\t\tthis.setState({ isLoadingSecond: true });\r\n\t\tlet uCondition: UserConditionModel = new UserConditionModel();\r\n\t\tuCondition.isSystemType = condition.isSystem;\r\n\t\tcondition.isVisible = isChecked;\r\n\t\tuCondition.userConditionTypeId = condition.value;\r\n\t\tuCondition.isVisible = isChecked;\r\n\t\tthis.userConditionService.addUserCondition(uCondition)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoadingSecond: false\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.handleCloseAddEditClick();\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoadingSecond: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\thandleDeletePersonalClick = (personalCondition: ConditionDropdownModel, e) => {\r\n\t\te.preventDefault();\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmPersonalDialog: true,\r\n\t\t\tpersonalCondition: personalCondition,\r\n\t\t\tdeleteValidationMessage: Translate('PersonalConditionConfirm')\r\n\t\t});\r\n\t}\r\n\r\n\thandleClick = (e) => {\r\n\t\te.preventDefault();\r\n\t\tthis.setState({ popover: true, anchorEl: e.currentTarget });\r\n\t}\r\n\r\n\thandleClose = () => {\r\n\t\tthis.setState({\r\n\t\t\tpopover: false,\r\n\t\t\tnewCondition: '',\r\n\t\t\tminResult: 0,\r\n\t\t\tmaxResult: 0,\r\n\t\t})\r\n\t}\r\n\r\n\thandleAddCharacteristicKeyPress = (e) => {\r\n\t\tif (e.key === 'Enter' && this.state.newCondition && this.state.newCondition.trim() != '') {\r\n\t\t\tthis.handleAddButton(e);\r\n\t\t}\r\n\t}\r\n\r\n\thandleAddButton = (e) => {\r\n\t\te.preventDefault();\r\n\t\tif (this.state.conditionType.some(c => c.label.toLocaleLowerCase() == this.state.newCondition.trim().toLocaleLowerCase())) {\r\n\t\t\tthis.growlSecond.show({ severity: 'warning', summary: Translate('Characteristic already exist') });\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\r\n\t\tlet newPersonal: UserPersonalConditionModel = new UserPersonalConditionModel();\r\n\t\tnewPersonal.personalConditionTypeName = this.state.newCondition;\r\n\t\tnewPersonal.minValue = this.state.minResult;\r\n\t\tnewPersonal.maxValue = this.state.maxResult;\r\n\t\tthis.userConditionService.createPersonalCondition(newPersonal)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tlet condition: ConditionDropdownModel = new ConditionDropdownModel();\r\n\t\t\t\t\tcondition.label = JSON.parse(JSON.stringify(this.state.newCondition));\r\n\t\t\t\t\tcondition.value = data;\r\n\t\t\t\t\tcondition.isSystem = false;\r\n\t\t\t\t\tcondition.isVisible = false;\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tconditionType: this.state.conditionType.concat(condition),\r\n\t\t\t\t\t\tnewCondition: '',\r\n\t\t\t\t\t\tminResult: 0,\r\n\t\t\t\t\t\tmaxResult: 0,\r\n\t\t\t\t\t\tpopover: false\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tnewConditionChange = (value) => {\r\n\t\tthis.setState({ newCondition: value });\r\n\t}\r\n\r\n\topenDialog = () => {\r\n\t\tthis.setState({ isLoading: true });\r\n\t\tthis.userConditionService.getPersonalConditions()\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tpersonalConditions: data,\r\n\t\t\t\t\t\tconditionType: this.conditionEnumToDropdownArray(UserConditionType, true),\r\n\t\t\t\t\t\taddNew: true\r\n\t\t\t\t\t}, this.addPersonalsToDropdown);\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\taddPersonalsToDropdown = () => {\r\n\t\tif (this.state.personalConditions && this.state.personalConditions.length > 0) {\r\n\t\t\tlet conditions: Array = new Array(0);\r\n\t\t\tfor (let cond of this.state.personalConditions) {\r\n\t\t\t\tlet condition: ConditionDropdownModel = new ConditionDropdownModel();\r\n\t\t\t\tcondition.value = cond.personalConditionTypeId;\r\n\t\t\t\tcondition.label = cond.personalConditionTypeName;\r\n\t\t\t\tcondition.isSystem = false;\r\n\t\t\t\tcondition.isVisible = cond.isVisible;\r\n\t\t\t\tconditions.push(condition);\r\n\t\t\t}\r\n\t\t\tthis.setState({ conditionType: this.state.conditionType.concat(conditions) });\r\n\t\t}\r\n\t}\r\n\r\n\tgetPersonalConditions = (isFromDelete: boolean) => {\r\n\t\tthis.setState({ isLoading: true });\r\n\t\tthis.userConditionService.getPersonalConditions()\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tif (isFromDelete) {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tpersonalConditions: data\r\n\t\t\t\t\t\t}, this.addPersonalsToDropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tpersonalConditions: data,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tremovePersonalCondition = (personalCondition: ConditionDropdownModel) => {\r\n\t\tthis.setState({ isLoadingSecond: true });\r\n\t\tthis.userConditionService.deletePersonalCondition(personalCondition.value)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tif (data == false) {\r\n\t\t\t\t\t\tthis.growlSecond.show({ severity: 'error', summary: Translate('Characteristic is used') });\r\n\t\t\t\t\t\tthis.setState({ isLoadingSecond: false });\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tthis.growlSecond.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoadingSecond: false,\r\n\t\t\t\t\t\tconditionType: this.conditionEnumToDropdownArray(UserConditionType, true),\r\n\t\t\t\t\t\tselectedTypes: new Array(0)\r\n\t\t\t\t\t}, () => this.getPersonalConditions(true));\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growlSecond.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoadingSecond: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tchangeMinAndMax = (type, value) => {\r\n\t\tif (type == 'minResult') {\r\n\t\t\tthis.setState({ minResult: value });\r\n\t\t}\r\n\t\tif (type == 'maxResult') {\r\n\t\t\tthis.setState({ maxResult: value });\r\n\t\t}\r\n\t}\r\n\r\n\r\n\tpublic render() {\r\n\t\tconst { isLoading, isVisibleDialog, userCondtitions, filters, expanded,\r\n\t\t\tdialogHeader, selectedConditionId, anchorEl, rows, totalRecords, conditionType,\r\n\t\t\tselectedTypes, popover, isVisibleView, expandedConditions, tabActiveIndex, selectedConditionValue } = this.state;\r\n\r\n\t\tlet showAllLink = false;\r\n\t\tif (filters.startDate || filters.endDate || selectedConditionValue > 0) {\r\n\t\t\tshowAllLink = true\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t this.growl = el} />\r\n\t\t\t\t\t

    {Translate('My Condition')}

    \r\n\r\n\t\t\t\t\t this.openDialog()} className=\"floating-action-button\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t{filters && (filters.startDate || filters.endDate || selectedConditionValue > 0) ?\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t

    {Translate('Filters') + \":\"}

    \r\n\t\t\t\t\t\t\t\t{this.getFiltersummary()}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t: null}\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t{/* {totalRecords > rows ?\r\n this.paginatorClick(e)}>\r\n : null} */}\r\n\t\t\t\t\t{isLoading ? : null}\r\n\t\t\t\t\t{!isLoading && (!userCondtitions || userCondtitions.length == 0) ? Translate(\"No records found\") : null}\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t{isVisibleDialog ? \r\n\t\t\t\t\t: null}\r\n\r\n\t\t\t\t { this.deleteCondition(selectedConditionId) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleConfirmDialog: false, deleteValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteValidationMessage}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{Translate(\"Choose characteristic\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{this.state.isLoadingSecond ? : null}\r\n\t\t\t\t\t\t\t this.growlSecond = el} />\r\n\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t{this.state.conditionType && this.state.conditionType.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\tthis.state.conditionType.map((m: ConditionDropdownModel) =>\r\n\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t this.selectTypes(m, e.target.checked)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue=\"checkedB\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t
      this.selectTypes(m, !m.isVisible)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{m.label}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tm.isSystem ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t) : Translate('No records found')}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t this.handleClick(e)}>\r\n\t\t\t\t\t\t\t\t\t{Translate(\"New Characteristic\")}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.newConditionChange(e.target['value'])}>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.changeMinAndMax('minResult', e.target['value'])}>\r\n\t\t\t\t\t\t\t\t\t\t\t this.changeMinAndMax('maxResult', e.target['value'])}>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t { this.setState({ isVisibleConfirmPersonalDialog: false }, () => this.removePersonalCondition(this.state.personalCondition)) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleConfirmPersonalDialog: false, deleteValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteValidationMessage}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nclass ConditionDropdownModel {\r\n\tvalue: number;\r\n\tlabel: string;\r\n\tisSystem: boolean;\r\n\tisVisible: boolean;\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n\treturn {\r\n\t\tlang: state.common.lang\r\n\t};\r\n}\r\n\r\nexport default connect(mapsStateToProps)(UserConditionComponent);","import \"babel-polyfill\";\r\nimport * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport * as actionTypes from '../../store/actionTypes';\r\nimport Translate from '../../common/functions/translate';\r\nimport { SelectButton } from 'primereact/selectbutton';\r\nimport AuthService from '../../services/authService';\r\nimport UserService from '../../services/userService';\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport * as Constants from '../../common/constants';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\n\r\ninterface IProps {\r\n onLangChange: any\r\n}\r\n\r\ninterface IState {\r\n error: any,\r\n isLoading: boolean,\r\n currentLang: string,\r\n isActivePushNotifications: boolean\r\n}\r\n\r\nclass SettingsComponent extends React.Component {\r\n\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n currentLang: 'bg',\r\n isActivePushNotifications: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n let lang = localStorage.getItem('lang');\r\n\r\n if (!lang) {\r\n localStorage.setItem('lang', 'bg');\r\n } else {\r\n this.props.onLangChange(lang);\r\n }\r\n\r\n this.userHasPushSubscription();\r\n\r\n this.setState({\r\n currentLang: localStorage.getItem('lang') + ''\r\n })\r\n }\r\n\r\n handleChangeLang = (lang) => {\r\n if (lang) {\r\n localStorage.setItem('lang', lang);\r\n this.props.onLangChange(lang);\r\n this.setState({\r\n currentLang: lang\r\n })\r\n }\r\n //window.location.reload();\r\n }\r\n\r\n userHasPushSubscription() {\r\n if (navigator.serviceWorker) {\r\n navigator.serviceWorker.getRegistration().then((registration: any) => {\r\n if (registration) {\r\n registration.pushManager.getSubscription()\r\n .then(subscription => {\r\n if (subscription) {\r\n this.setState({\r\n isActivePushNotifications: true\r\n });\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n handleSwitchPushNotifications(subscribe: boolean) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (subscribe) {\r\n this.subscribeForPushNotifications();\r\n } else {\r\n this.unsubscribeFromPushNotifications();\r\n }\r\n }\r\n\r\n subscribeForPushNotifications() {\r\n const pushIsSupported: boolean = 'serviceWorker' in navigator && 'PushManager' in window;\r\n if (!pushIsSupported)\r\n return;\r\n\r\n let applicationServerPublicKey = HelperFunctions.urlB64ToUint8Array(Constants.applicationServerPublicKey);\r\n\r\n navigator.serviceWorker.getRegistration()\r\n .then((registration: any) => {\r\n if (registration) {\r\n registration.pushManager.getSubscription()\r\n .then(subscription => {\r\n if (subscription) {\r\n // subscription present, no need to register subscription again\r\n this.growl.show({ severity: 'success', summary: Translate('You have already subscribed for Notifications.') });\r\n this.setState({\r\n isLoading: false\r\n });\r\n return;\r\n }\r\n\r\n registration.pushManager.subscribe({\r\n userVisibleOnly: true,\r\n applicationServerKey: applicationServerPublicKey\r\n })\r\n .then(subscription => {\r\n this.userService.createPushSubscription(subscription)\r\n .then((data: any) => {\r\n if (data) {\r\n this.setState({\r\n isActivePushNotifications: true,\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully subscribed for Notifications.') });\r\n }\r\n })\r\n .catch(error => this.catchErrorFailedToSubscribe(error));\r\n })\r\n .catch(error => this.catchErrorFailedToSubscribe(error));\r\n })\r\n .catch(error => this.catchErrorFailedToSubscribe(error));\r\n } else {\r\n this.catchErrorFailedToSubscribe({ message: '' })\r\n }\r\n });\r\n }\r\n\r\n catchErrorFailedToSubscribe = (error) => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: Translate('Failed to subscribe for Push Notifications:') + error.message });\r\n }\r\n\r\n unsubscribeFromPushNotifications() {\r\n navigator.serviceWorker.getRegistration().then((registration: any) => {\r\n registration.pushManager.getSubscription()\r\n .then(subscription => {\r\n if (subscription) {\r\n subscription.unsubscribe()\r\n .then(() => {\r\n this.userService.discardPushSubscription(btoa(subscription.endpoint))\r\n .then((res) => {\r\n this.setState({\r\n isActivePushNotifications: false,\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully unsubscribed from Notifications.') });\r\n })\r\n .catch(error => this.catchErrorFailedToUnsubscribe(error));\r\n })\r\n .catch(error => this.catchErrorFailedToUnsubscribe(error));\r\n }\r\n })\r\n .catch(error => this.catchErrorFailedToUnsubscribe(error));\r\n });\r\n }\r\n\r\n catchErrorFailedToUnsubscribe = (error) => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: Translate('Failed to unsubscribe from Push Notifications:') + error.message });\r\n }\r\n\r\n public render() {\r\n\r\n const { isLoading, currentLang, isActivePushNotifications } = this.state;\r\n\r\n const langs = [\r\n { label: 'BG', value: 'bg' },\r\n { label: 'EN', value: 'en' }\r\n ];\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Settings')}

    \r\n\r\n
      \r\n
    • \r\n
      \r\n
      \r\n {Translate(\"Language\")}\r\n
      \r\n
      \r\n {currentLang == 'bg' ? Translate('Bulgarian') : Translate('English')}\r\n
      \r\n
      \r\n
      \r\n this.handleChangeLang(e.value)} />\r\n
      \r\n
    • \r\n
    • \r\n
      \r\n
      \r\n {Translate(\"Notifications\")}\r\n
      \r\n
      \r\n {!this.authService.isAuthenticated() ? Translate(\"You have to be logged in to activate Notifications.\") : null}\r\n
      \r\n
      \r\n
      \r\n this.handleSwitchPushNotifications(e.target.checked)}\r\n color=\"primary\"\r\n disabled={!this.authService.isAuthenticated()}\r\n />\r\n
      \r\n
    • \r\n\r\n {/*
    • \r\n
      \r\n
      \r\n Item name\r\n
      \r\n
      \r\n Item desc\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • */}\r\n\r\n
    \r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onLangChange: (lang) => dispatch({ type: actionTypes.LANG_CHANGE, lang: lang })\r\n }\r\n}\r\n\r\nexport default connect(null, mapDispatchToProps)(SettingsComponent);","import React from 'react';\r\nimport { withStyles } from '@material-ui/core/styles';\r\nimport SwipeableViews from 'react-swipeable-views';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport Tabs from '@material-ui/core/Tabs';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport * as Constants from '../../common/constants';\r\n\r\ninterface IProps {\r\n classes: any\r\n}\r\n\r\ninterface IState {\r\n value: number\r\n}\r\n\r\nclass ScrollableTabsButtonAuto extends React.Component {\r\n state = {\r\n value: 0,\r\n };\r\n\r\n handleChange = (event, value) => {\r\n this.setState({ value });\r\n };\r\n\r\n handleChangeIndex = index => {\r\n this.setState({ value: index });\r\n };\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const { value } = this.state;\r\n\r\n return (\r\n
    \r\n
    \r\n Name\r\n
    \r\n {/* */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n
    \r\n \r\n
    Item One
    \r\n
    Item Two
    \r\n
    Item Three
    \r\n
    Item Four
    \r\n
    Item Five
    \r\n
    Item Six
    \r\n
    Item Seven
    \r\n {/* {value === 0 &&
    Item One
    }\r\n {value === 1 &&
    Item Two
    }\r\n {value === 2 &&
    Item Three
    }\r\n {value === 3 &&
    Item Four
    }\r\n {value === 4 &&
    Item Five
    }\r\n {value === 5 &&
    Item Six
    }\r\n {value === 6 &&
    Item Seven
    } */}\r\n \r\n
    \r\n
    \r\n );\r\n }\r\n}\r\n\r\n\r\nexport default withStyles(Constants.TabStyles)(ScrollableTabsButtonAuto);","import * as React from 'react';\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport UserService from '../../../services/userService';\r\nimport Translate from '../../../common/functions/translate';\r\nimport { AcceptanceType } from \"../../../common/enums\";\r\nimport { enumToDropdownArray, fomatDateTimeAsString, getEnumLabel } from '../../../common/functions/helperFunctions';\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport { faCheck, faTimes, faClock } from '@fortawesome/free-solid-svg-icons';\r\nimport blue from '@material-ui/core/colors/blue';\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core\";\r\nimport { MuiPickersUtilsProvider, DateTimePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport * as Constants from '../../../common/constants';\r\n\r\ninterface IProps {\r\n isVisible: boolean,\r\n handleCancelButton: any,\r\n handleSaveButton: any,\r\n notifiicationSchedulerId: number\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n selectedAcceptanceType: number;\r\n acceptanceType: Array;\r\n takenAt: string;\r\n isTaken: boolean;\r\n isSnoozed: boolean;\r\n}\r\n\r\nconst theme = createMuiTheme({\r\n overrides: {\r\n MuiFormControl: {\r\n marginNormal: {\r\n marginTop: 5,\r\n marginBottom: 0,\r\n width: '100%'\r\n },\r\n root: {\r\n width: '100%'\r\n }\r\n },\r\n MuiDialog: {\r\n paper: {\r\n margin: 0,\r\n maxWidth: '50% !important',\r\n minWidth: '335px'\r\n }\r\n }\r\n },\r\n palette: {\r\n primary: blue\r\n },\r\n});\r\n\r\nclass UserNotificationAcceptance extends React.Component {\r\n userService = new UserService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n selectedAcceptanceType: 1,\r\n acceptanceType: new Array(0),\r\n takenAt: '',\r\n isTaken: false,\r\n isSnoozed: false,\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true,\r\n acceptanceType: enumToDropdownArray(AcceptanceType, true)\r\n });\r\n this.userService.getNotificationScheduler(this.props.notifiicationSchedulerId).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n selectedAcceptanceType: data.takeTypeId ? data.takeTypeId : 1,\r\n takenAt: data.takenAt ? data.takenAt : fomatDateTimeAsString(new Date()),\r\n isTaken: data.takenAt ? true : false,\r\n isSnoozed: data.isSnoozed === true ? true : false\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n });\r\n\r\n }\r\n\r\n handleDropdownChange = (acceptance) => {\r\n this.setState({ selectedAcceptanceType: acceptance });\r\n }\r\n\r\n handleDateChange = (value) => {\r\n this.setState({ takenAt: value })\r\n }\r\n\r\n handleSave = () => {\r\n if (!this.state.takenAt) {\r\n this.setState({ takenAt: new Date().toUTCString() });\r\n }\r\n this.setState({ takenAt: new Date(this.state.takenAt).toUTCString() }, this.saveTaken);\r\n }\r\n\r\n handleSnooze = () => {\r\n if (!this.state.takenAt) {\r\n this.setState({ takenAt: new Date().toUTCString() });\r\n }\r\n //this.setState({ takenAt: new Date(this.state.takenAt).toUTCString() });\r\n this.setState({ takenAt: new Date(this.state.takenAt).toUTCString() }, this.saveSnoozed);\r\n }\r\n\r\n saveTaken = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.setTakenNotification(this.props.notifiicationSchedulerId, this.state.selectedAcceptanceType, this.state.takenAt).then(\r\n (data: any) => {\r\n if (data) {\r\n this.props.handleCancelButton();\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n });\r\n }\r\n\r\n saveSnoozed = () => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.setSnoozedNotification(this.props.notifiicationSchedulerId, Constants.SnoozeMinutes, this.state.takenAt).then(\r\n (data: any) => {\r\n if (data) {\r\n this.props.handleCancelButton();\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n });\r\n }\r\n\r\n handleSliderChange = (e, value) => {\r\n e.preventDefault();\r\n this.setState({ selectedAcceptanceType: value });\r\n };\r\n\r\n render() {\r\n const { selectedAcceptanceType, acceptanceType, takenAt, isLoading, isTaken, isSnoozed } = this.state;\r\n let buttonFontsize = window.innerWidth < Constants.device.tablet ? 12 : 'unset';\r\n return (\r\n <>\r\n \r\n \r\n {Translate('Specification of intake')}\r\n \r\n\r\n \r\n this.growl = el} />\r\n {isLoading ? : null}\r\n
    \r\n \r\n this.handleDateChange(e)}\r\n />\r\n \r\n
    \r\n
    \r\n \r\n {Translate('Choose acceptance')}\r\n this.handleDropdownChange(e.target.value)}\r\n inputProps={{\r\n id: 'condition-type-label'\r\n }}>\r\n {acceptanceType.map(m => {m.value ? m.label : {m.label}})}\r\n \r\n \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nexport default UserNotificationAcceptance;\r\n","import * as React from \"react\";\r\nimport AuthService from '../../../services/authService';\r\nimport UserService from \"../../../services/userService\";\r\nimport { NotificationSchedulerModel } from '../../../models/notificationSchedulerModel';\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Translate from \"../../../common/functions/translate\";\r\nimport logo01white from \"../../../assets/images/logos/Logo-01-icon.png\";\r\nimport { connect } from 'react-redux';\r\nimport AcceptanceDialog from './userNotificationAcceptanceDialog';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faCalendarCheck, faCalendar, faChevronRight, faCheckSquare, faUserClock, faClock } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IProps {\r\n lang: string;\r\n}\r\n\r\ninterface IState {\r\n notifications: Array;\r\n isLoading: boolean;\r\n first: number;\r\n rows: number;\r\n totalRecords: number;\r\n acceptanceShow: boolean;\r\n selectedId: number;\r\n}\r\n\r\nclass UserNotificationList extends React.Component {\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n intervalId: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n notifications: new Array(),\r\n isLoading: false,\r\n first: 0,\r\n rows: 20,\r\n totalRecords: 0,\r\n acceptanceShow: false,\r\n selectedId: 0\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.onScroll);\r\n }\r\n\r\n\r\n onScroll = () => {\r\n let scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n if (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n this.state.totalRecords > this.state.notifications.length && !this.state.isLoading) {\r\n this.paginatorClick({ first: this.state.first + this.state.rows }, false);\r\n }\r\n };\r\n\r\n paginatorClick = (e, isInit: boolean) => {\r\n this.setState({ first: e.first }, () => this.getNotifications(isInit));\r\n }\r\n\r\n componentDidMount() {\r\n window.addEventListener('scroll', this.onScroll);\r\n this.getNotifications(true);\r\n }\r\n\r\n openDialog = (m: NotificationSchedulerModel, event) => {\r\n event.preventDefault();\r\n this.setState({ selectedId: m.notificationSchedulerId, acceptanceShow: true });\r\n }\r\n\r\n closeDialog = () => {\r\n this.setState({ acceptanceShow: false, first: 0 }, () => this.getNotifications(true));\r\n }\r\n\r\n getNotifications = (isInit: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n this.userService.getAllNotifications(this.state.first, this.state.rows, this.props.lang).then(\r\n (data: any) => {\r\n if (data) {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n totalRecords: data.totalRecords,\r\n notifications: [...data.notifications]\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false,\r\n notifications: [...this.state.notifications, ...data.notifications],\r\n totalRecords: data.totalRecords\r\n });\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n });\r\n }\r\n }\r\n\r\n render() {\r\n const { notifications, isLoading, acceptanceShow, selectedId } = this.state;\r\n\r\n return (\r\n <>\r\n
    \r\n this.growl = el} />\r\n

    {Translate('Notifications')}

    \r\n
      \r\n {notifications && notifications.length > 0 ?\r\n notifications.map((m: NotificationSchedulerModel) =>\r\n
    • this.openDialog(m, e)}>\r\n
      \r\n \"logo\"\r\n
      \r\n
      \r\n
      \r\n {m.userId == this.authService.getUserId() ? Translate(\"You have to take medicines at\") :\r\n m.userName + ' ' + Translate(\"have to take his/hers medicines at\")}\r\n {\" \" + HelperFunctions.fomatTimeAsStringWithoutSeconds(new Date(m.nextExecutionDate))\r\n + \" \" + Translate(\"oclock on date\") + \" \" + HelperFunctions.fomatDatesStringWithLang(new Date(m.nextExecutionDate), this.props.lang)}\r\n
      \r\n
      \r\n {m.medicineName ? m.medicineName : null}\r\n
      \r\n {m.takenAt ?\r\n
      \r\n \r\n {Translate('taken at')} {HelperFunctions.fomatDateTimeAsStringWithLang(new Date(m.takenAt), this.props.lang)}\r\n
      \r\n :\r\n m.isSnoozed === true ?\r\n
      \r\n \r\n {Translate('snoozed for') + \" \" + HelperFunctions.fomatDateTimeAsStringWithLang(new Date(m.executedAt), this.props.lang)}\r\n
      \r\n :\r\n
      \r\n {m.takenAt ? null : Translate('No Intake')}\r\n
      \r\n }\r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n ) : null}\r\n
    \r\n {isLoading ? : null}\r\n {!isLoading && (!notifications || notifications.length == 0) ? Translate(\"No records found\") : null}\r\n
    \r\n {acceptanceShow ?\r\n \r\n \r\n : null}\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps)(UserNotificationList);","import * as React from 'react';\r\nimport { DiseaseGridModel, DiseaseForGridModel, DiseaseFilterSettingsModel } from \"../../models\";\r\n\r\nconst diseasesList = (props) => {\r\n\r\n const listItems =\r\n props.diseases.map((m: DiseaseForGridModel) =>\r\n
  • \r\n
    \r\n
    \r\n {m.diseaseCode} {m.diseaseName}\r\n
    \r\n\r\n
    \r\n
  • );\r\n\r\n return (\r\n
      \r\n {listItems}\r\n
    \r\n )\r\n}\r\n\r\nexport default diseasesList;\r\n","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport * as Constants from '../../common/constants';\r\nimport AlphabeticalFilter from '../../common/components/alphabeticalFilter/alphabeticalFilter';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport DiseaseService from '../../services/diseaseService';\r\nimport { DiseaseGridModel, DiseaseForGridModel, DiseaseFilterSettingsModel } from \"../../models\";\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport DiseaseList from './diseaseList';\r\nimport { connect } from 'react-redux';\r\n\r\ninterface IProps {\r\n history?: any,\r\n location?: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n diseases: Array;\r\n isLoading: boolean;\r\n validationMessage: string;\r\n from: number;\r\n numberOfRows: number;\r\n totalRecordsCount: number;\r\n diseaseSettings: DiseaseFilterSettingsModel;\r\n drawer: boolean;\r\n searchText: string;\r\n}\r\n\r\nconst initFrom = 0;\r\nconst numberOfRows = 20;\r\n\r\nclass DiseaseComponent extends React.Component {\r\n\r\n diseaseService = new DiseaseService(this.props.lang);\r\n messages: any;\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n validationMessage: '',\r\n diseases: new Array(0),\r\n isLoading: false,\r\n from: initFrom,\r\n numberOfRows: numberOfRows,\r\n totalRecordsCount: 0,\r\n diseaseSettings: new DiseaseFilterSettingsModel(),\r\n drawer: false,\r\n searchText: ''\r\n };\r\n }\r\n\r\n // events\r\n componentDidMount() {\r\n window.addEventListener('scroll', this.onScroll);\r\n this.getAllDiseases(this.state.from, this.state.numberOfRows, true);\r\n }\r\n\r\n componentWillUnmount() {\r\n window.removeEventListener('scroll', this.onScroll);\r\n }\r\n\r\n onScroll = () => {\r\n let scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n if (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n this.state.totalRecordsCount > this.state.diseases.length && !this.state.isLoading) {\r\n this.paginatorClick({ first: this.state.from + this.state.numberOfRows }, false);\r\n }\r\n };\r\n\r\n // methods\r\n getAllDiseases(from: number, numberOfRows: number, isInit: boolean) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n const { diseaseSettings } = this.state;\r\n\r\n this.diseaseService.getAllDiseases(from, numberOfRows, diseaseSettings, this.props.lang).then(\r\n (data: any) => {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n from: from,\r\n diseases: data.diseases,\r\n totalRecordsCount: data.totalRecordsCount\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isLoading: false,\r\n diseases: [...this.state.diseases, ...data.diseases],\r\n totalRecordsCount: data.totalRecordsCount\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n paginatorClick = (e, isInit: boolean) => {\r\n this.setState({ from: e.first }, () => this.getAllDiseases(this.state.from, this.state.numberOfRows, isInit));\r\n }\r\n\r\n handleAlphaIndexChange = (e, letter: string) => {\r\n const currentSettings: DiseaseFilterSettingsModel = { ...this.state.diseaseSettings };\r\n if (currentSettings.alphaIndex == letter) {\r\n letter = '';\r\n }\r\n currentSettings.alphaIndex = letter;\r\n this.setState({\r\n diseaseSettings: {\r\n ...currentSettings\r\n }\r\n }, () => this.getAllDiseases(0, this.state.numberOfRows, true));\r\n this.toggleDrawer(false);\r\n }\r\n\r\n\r\n handleChange = (key, value) => {\r\n this.setState({ searchText: value });\r\n };\r\n\r\n handleSearchButtonClick = () => {\r\n\r\n const { searchText } = this.state;\r\n\r\n let searchTextTrim = searchText.trim();\r\n\r\n if (searchTextTrim) {\r\n const currentSettings: DiseaseFilterSettingsModel = { ...this.state.diseaseSettings };\r\n currentSettings.diseaseName = searchText;\r\n this.setState({\r\n diseaseSettings: {\r\n ...currentSettings\r\n }\r\n }, () => this.getAllDiseases(0, this.state.numberOfRows, true));\r\n this.toggleDrawer(false);\r\n }\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick();\r\n this.toggleDrawer(false);\r\n }\r\n }\r\n\r\n toggleDrawer = (open) => {\r\n this.setState({\r\n drawer: open\r\n });\r\n };\r\n\r\n handleShowAllClick = (event) => {\r\n event.preventDefault();\r\n this.setState({\r\n diseaseSettings: new DiseaseFilterSettingsModel(),\r\n from: 0\r\n }, () => this.getAllDiseases(0, this.state.numberOfRows, true));\r\n }\r\n\r\n // render\r\n public render() {\r\n\r\n const { diseases, isLoading, diseaseSettings, totalRecordsCount, searchText } = this.state;\r\n let titleText = '';\r\n\r\n let showAllLink = false;\r\n\r\n if (diseaseSettings && diseaseSettings.alphaIndex) {\r\n titleText = ` ${Translate('starts with')} '${diseaseSettings.alphaIndex}' `;\r\n showAllLink = true;\r\n }\r\n\r\n if (diseaseSettings && diseaseSettings.diseaseName) {\r\n titleText = ` ${Translate('contain text')} '${diseaseSettings.diseaseName}' `;\r\n showAllLink = true;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n this.growl = el} />\r\n\r\n\r\n

    {Translate('Diseases')}{titleText}

    \r\n\r\n this.toggleDrawer(true)} className=\"floating-action-button\">\r\n \r\n \r\n\r\n {!isLoading ?\r\n
    \r\n {totalRecordsCount} {Translate('ResulFound')}\r\n
    : null}\r\n\r\n {showAllLink ?\r\n : null}\r\n\r\n \r\n\r\n {isLoading ? : null}\r\n\r\n <>\r\n this.toggleDrawer(false)}>\r\n \r\n
    \r\n
    \r\n

    {Translate('SearchDiseaseInDatabase')}

    \r\n \r\n this.handleChange('searchByName', e.target['value'])}\r\n onKeyPress={this.handleKeyPress}\r\n value={searchText ? searchText : \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    {Translate('BrowseAlphabetically')}

    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n );\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(DiseaseComponent);\r\n\r\n","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\n\r\nclass DisposalPlacesService {\r\n\r\n constructor(lang?) {\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Pragma: 'no-cache',\r\n \"langId\": HelperFunctions.getLangId(lang)\r\n }\r\n }\r\n\r\n getAllDisposalPlaces(searchedString: string) {\r\n return axios({\r\n url: `${Constants.apiUrl}/disposalPlaces/getAll/`,\r\n method: 'post',\r\n data: JSON.stringify(searchedString)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default DisposalPlacesService;","import 'babel-polyfill';\r\nimport * as React from 'react';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport { Map, TileLayer, Marker, Popup } from 'react-leaflet';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport 'leaflet/dist/leaflet.css'\r\nimport L from 'leaflet';\r\nimport GoogleMapReact from 'google-map-react';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport * as Constants from '../../common/constants';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport MyLocation from '@material-ui/icons/MyLocation';\r\nimport { DisposalPlacesModel } from '../../models/user/disposalPlaces';\r\nimport DisposalPlacesService from '../../services/disposalPlacesService';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faMapMarkedAlt } from '@fortawesome/free-solid-svg-icons';\r\nimport { connect } from 'react-redux';\r\n\r\ndelete L.Icon.Default.prototype._getIconUrl;\r\n\r\nL.Icon.Default.mergeOptions({\r\n iconRetinaUrl: require('leaflet/dist/images/marker-icon-2x.png'),\r\n iconUrl: require('leaflet/dist/images/marker-icon.png'),\r\n shadowUrl: require('leaflet/dist/images/marker-shadow.png')\r\n});\r\n\r\nexport const suitcasePoint = new L.Icon({\r\n iconUrl: require('../../assets/images/icons/markers/location-icon-transparent-background-1.jpg'),\r\n iconRetinaUrl: require('../../assets/images/icons/markers/location-icon-transparent-background-1.jpg'),\r\n iconAnchor: [20, 40],\r\n popupAnchor: [0, -35],\r\n iconSize: [30, 45],\r\n shadowUrl: require('leaflet/dist/images/marker-shadow.png'),\r\n shadowSize: [29, 40],\r\n shadowAnchor: [12, 40],\r\n})\r\n\r\n// const AnyReactComponent = ({ lat, lng, text }) => (\r\n//
    \r\n// {text}\r\n//
    \r\n// );\r\n\r\ninterface IProps {\r\n onLangChange: any,\r\n lang: string,\r\n}\r\n\r\ninterface IState {\r\n error: any,\r\n isLoading: boolean,\r\n longitude: number,\r\n latitude: number,\r\n disposalPlaces: Array,\r\n selectedDisposalPlace: Array,\r\n searchedString: string\r\n}\r\n\r\nclass DisposalPlacesContainer extends React.Component {\r\n growl: any;\r\n disposalPlacesService = new DisposalPlacesService(this.props.lang);\r\n mymap: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n error: null,\r\n isLoading: false,\r\n longitude: 0,\r\n latitude: 0,\r\n disposalPlaces: new Array(0),\r\n selectedDisposalPlace: new Array(0),\r\n searchedString: ''\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getLocation();\r\n this.getDisposals(true);\r\n }\r\n\r\n getLocation = () => {\r\n if (navigator.geolocation) {\r\n navigator.geolocation.getCurrentPosition(this.showPosition);\r\n this.mymap.leafletElement.setView([this.state.latitude, this.state.longitude], 12);\r\n } else {\r\n console.log(\"Geo Location not supported by browser\");\r\n }\r\n }\r\n\r\n //function that retrieves the position\r\n showPosition = (position) => {\r\n var location = {\r\n longitude: position.coords.longitude,\r\n latitude: position.coords.latitude\r\n }\r\n\r\n if (location) {\r\n this.setState({ longitude: location.longitude, latitude: location.latitude });\r\n }\r\n }\r\n\r\n getDisposals = (fromFilter: boolean) => {\r\n this.setState({ isLoading: true });\r\n let searchedString: string = '';\r\n if (this.state.searchedString && this.state.searchedString.trim() != '') {\r\n searchedString = this.state.searchedString.trim();\r\n }\r\n this.disposalPlacesService.getAllDisposalPlaces(searchedString).then(\r\n (data: Array) => {\r\n if (data) {\r\n\r\n if (data && data.length > 0) {\r\n let minLat = data[0].latitude;\r\n let maxLat = data[0].latitude;\r\n let minLong = data[0].longtitude;\r\n let maxLong = data[0].longtitude;\r\n\r\n data.map(place => {\r\n maxLat = place.latitude > maxLat ? place.latitude : maxLat;\r\n minLat = place.latitude < minLat ? place.latitude : minLat;\r\n maxLong = place.longtitude > maxLong ? place.longtitude : maxLong;\r\n minLong = place.longtitude < minLong ? place.longtitude : minLong;\r\n })\r\n\r\n if (fromFilter) {\r\n if (data.length > 1 && (minLat != maxLat || minLong != maxLong)) {\r\n this.mymap.leafletElement.fitBounds([[minLat, maxLong], [maxLat, minLong]]);\r\n this.setState({\r\n isLoading: false,\r\n disposalPlaces: data\r\n });\r\n }\r\n else {\r\n this.mymap.leafletElement.setView([data[0].latitude, data[0].longtitude], 15);\r\n this.setState({\r\n isLoading: false,\r\n disposalPlaces: data\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n isLoading: false,\r\n disposalPlaces: data\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n isLoading: false,\r\n disposalPlaces: data\r\n });\r\n }\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleDropdownChange = (value) => {\r\n this.mymap.leafletElement.setView(value, 15);\r\n this.setState({ selectedDisposalPlace: value });\r\n }\r\n\r\n handleSearch = (e) => {\r\n this.setState({ searchedString: e });\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.handleSearchButtonClick();\r\n }\r\n }\r\n\r\n handleSearchButtonClick = () => {\r\n this.getDisposals(true);\r\n //this.setState({ mapZoom: 7, selectedDisposalPlace: [...this.state.mapCenter] }, () => this.getDisposals(true));\r\n }\r\n\r\n myPositionClick = () => {\r\n this.mymap.leafletElement.setView([this.state.latitude, this.state.longitude], 15);\r\n }\r\n\r\n public render() {\r\n\r\n const { isLoading, latitude, longitude, selectedDisposalPlace, disposalPlaces } = this.state;\r\n let mapCenter: Array = [];\r\n mapCenter = [this.state.latitude, this.state.longitude];\r\n let position = [this.state.latitude, this.state.longitude];\r\n if (selectedDisposalPlace && selectedDisposalPlace.length > 0) {\r\n mapCenter = selectedDisposalPlace;\r\n }\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('DisposalPlaces')}

    \r\n\r\n
    \r\n
    \r\n this.mymap = el}>\r\n \r\n {this.state.latitude != 0 && this.state.longitude != 0 ?\r\n \r\n \r\n {Translate('Your location')}\r\n \r\n : null}\r\n {this.state.disposalPlaces && this.state.disposalPlaces.length > 0 ? this.state.disposalPlaces.map(p =>\r\n \r\n \r\n {p.city ? p.city + ', ' : ''}\r\n {p.region ? p.region + ', ' : ''}\r\n {p.address ? p.address + ', ' : ''}\r\n {p.date ? HelperFunctions.fomatDateAsStringWithLang(new Date(p.date), this.props.lang) + ', ' : ''}\r\n {p.interval ? p.interval : ''}
    \r\n {p.description ? p.description : ''}\r\n
    \r\n
    ) : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    {Translate('Search')}

    \r\n \r\n this.handleSearch(e.target['value'])}\r\n onKeyPress={this.handleKeyPress}\r\n value={this.state.searchedString ? this.state.searchedString : \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n {this.state.latitude != 0 && this.state.longitude != 0 ?\r\n \r\n : null}\r\n
    \r\n
    \r\n
      \r\n {this.state.disposalPlaces.map((m: DisposalPlacesModel) =>\r\n
    • \r\n
      this.handleDropdownChange([m.latitude, m.longtitude])}>\r\n
      \r\n {m.city ? m.city + ', ' : ''}\r\n {m.region ? m.region + ', ' : ''}\r\n {m.address ? m.address : ''}\r\n
      \r\n {m.date ? HelperFunctions.fomatDateAsStringWithLang(new Date(m.date), this.props.lang) + ', ' : ''}\r\n {m.interval ? m.interval : ''}\r\n
      \r\n
      \r\n
      \r\n {m.description ? m.description : ''}\r\n
      \r\n
      \r\n
      this.handleDropdownChange([m.latitude, m.longtitude])}>\r\n \r\n
      \r\n
    • )}\r\n
    \r\n
    \r\n {/*
    \r\n \r\n \r\n \r\n
    */}\r\n
    \r\n\r\n
    \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(DisposalPlacesContainer);","import * as React from \"react\";\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Translate from '../../common/functions/translate';\r\nimport { UserModel } from '../../models/user/userModel';\r\nimport { Link } from \"react-router-dom\";\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport UserService from '../../services/userService';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport GrowlContent from '../../common/components/alertMessage/growlContent';\r\n\r\ninterface IProps {\r\n history: any,\r\n location: any\r\n}\r\n\r\ninterface IState {\r\n isLoading: boolean;\r\n mode: string;\r\n}\r\n\r\nclass ConfirmContainerComponent extends React.Component {\r\n userService = new UserService();\r\n growl: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: false,\r\n mode: 'caretakerConfirm'\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let confirmCodeUrl = HelperFunctions.getURLParameter('confirmCaretakerCode');\r\n\r\n if (confirmCodeUrl) {\r\n let confirmCode = decodeURIComponent(confirmCodeUrl + '');\r\n this.validateConfirmCode(confirmCode);\r\n }\r\n }\r\n\r\n validateConfirmCode(confirmCode) {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.userService.validateCaretaker(confirmCode).then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false\r\n })\r\n } else {\r\n this.setState({\r\n isLoading: false,\r\n mode: 'notValidLink'\r\n })\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false,\r\n mode: 'notValidLink'\r\n });\r\n });\r\n }\r\n\r\n public render() {\r\n const { isLoading, mode } = this.state;\r\n\r\n const caretakerConfirm =\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n const notValidLink =\r\n <>\r\n
    \r\n \r\n
    \r\n \r\n\r\n let resultHtml;\r\n\r\n switch (mode) {\r\n case 'caretakerConfirm':\r\n resultHtml = caretakerConfirm;\r\n break;\r\n case 'notValidLink':\r\n resultHtml = notValidLink;\r\n break;\r\n default:\r\n resultHtml = '';\r\n }\r\n\r\n return (\r\n
    \r\n\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n\r\n

    {Translate('Confirm')}

    \r\n\r\n
    \r\n {resultHtml}\r\n
    \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default ConfirmContainerComponent;","import axios from 'axios';\r\nimport * as Constants from \"../common/constants\";\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport AuthService from './authService';\r\n\r\nclass ChatBotService {\r\n\tauthService = new AuthService();\r\n\t// constructor() {\r\n\t// \taxios.defaults.baseURL = `${Constants.apiUrl}/`;\r\n\t// \taxios.defaults.headers = {\r\n\t// \t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t// \t\tPragma: 'no-cache'\r\n\t// \t}\r\n\t// }\r\n\r\n\tgetChatToken() {\r\n\t\treturn axios({\r\n\t\t\turl: `${Constants.chatApiUrl}/token`,\r\n\t\t\tmethod: 'get',\r\n\t\t\theaders: {\r\n\t\t\t\tAuthorization: `Bearer ${this.authService.getToken()}`,\r\n\t\t\t\t\"Content-Type\": \"application/json; charset=utf-8\",\r\n\t\t\t\tPragma: 'no-cache'\r\n\t\t\t},\r\n\t\t})\r\n\t\t\t.then(res => res.data)\r\n\t\t\t.catch(error =>\r\n\t\t\t\tPromise.reject(HelperFunctions.getErrorMessage(error))\r\n\t\t\t)\r\n\t}\r\n\r\n}\r\n\r\nexport default ChatBotService;\r\n","import * as React from 'react';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Constants from '../../common/constants';\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core\";\r\nimport ReactWebChat, { createDirectLine, createStore } from 'botframework-webchat';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport ChatBotService from '../../services/chatBotService';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport { DirectLine } from 'botframework-directlinejs';\r\nimport AuthService from '../../services/authService';\r\nimport logo01icon from \"../../assets/images/logos/Logo-01-icon.png\";\r\nimport * as HelperFunctions from \"../../common/functions/helperFunctions\";\r\nimport Translate from '../../common/functions/translate';\r\nimport logoCircle from \"../../assets/images/logos/web_hi_res_512.png\";\r\nimport capture from \"../../assets/images/icons/filetypes/tempsnip.png\";\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n token: any;\r\n isLoading: boolean;\r\n langId: string;\r\n userId: string;\r\n}\r\n\r\nclass ChatMobileComponent extends React.Component {\r\n chatBotService = new ChatBotService();\r\n authService = new AuthService();\r\n growl: any;\r\n chat: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n token: null,\r\n isLoading: false,\r\n langId: '',\r\n userId: ''\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let userId = HelperFunctions.getURLParameter('userId');\r\n let langId = HelperFunctions.getURLParameter('langId');\r\n\r\n this.setState({\r\n isLoading: true,\r\n userId: userId ? userId.toString() : '',\r\n langId: langId ? langId.toString() : ''\r\n });\r\n\r\n this.chatBotService.getChatToken().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n token: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message ? error.message : 'Uncaught error' });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n //createDirectLine({ token: token })\r\n\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n\r\n if (nextState.token != this.state.token) {\r\n return true;\r\n }\r\n\r\n if (nextState.isLoading != this.state.isLoading) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n render() {\r\n const { isLoading, token } = this.state;\r\n let lang: string = 'bg-BG';\r\n\r\n if (this.state.langId && this.state.langId != '') {\r\n if (this.state.langId == '1') {\r\n lang = 'bg-BG';\r\n }\r\n if (this.state.langId == '2') {\r\n lang = 'en-US';\r\n }\r\n }\r\n\r\n const store = createStore({}, ({ dispatch }) => next => action => {\r\n if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {\r\n dispatch({\r\n type: 'WEB_CHAT/SEND_EVENT',\r\n payload: {\r\n name: 'webchat/join',\r\n value: { language: window.navigator.language }\r\n }\r\n });\r\n }\r\n return next(action);\r\n })\r\n\r\n return (\r\n <>\r\n {isLoading ? : null}\r\n this.growl = el} />\r\n {token ?\r\n this.chat = el}\r\n locale={lang}\r\n directLine={createDirectLine({ token: token })}\r\n store={store}\r\n styleOptions={{\r\n sendTypingIndicator: true,\r\n hideUploadButton: true,\r\n bubbleFromUserBackground: '#2196f3',\r\n bubbleFromUserTextColor: 'white',\r\n bubbleBorderRadius: 10,\r\n bubbleFromUserBorderRadius: 10,\r\n botAvatarImage: logoCircle,\r\n userAvatarImage: capture\r\n }}\r\n userID={this.state.userId}\r\n username={lang}\r\n /> : null}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default ChatMobileComponent;","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\nimport AuthService from './authService';\r\nimport { UserLaboratoryResultModel } from '../models/user/userLaboratoryResultModel';\r\nimport { UserLaboratoryResultFilterModel } from '../models/user/userLaboratoryResultFilterModel';\r\nimport { PersonalLaboratoryResultModel } from '../models/user/personalLaboratoryResultModel';\r\n\r\nclass LaboratoryResultsService {\r\n\r\n authService = new AuthService();\r\n\r\n constructor() {\r\n //axios.defaults.baseURL = `${Constants.apiUrl}`;\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n }\r\n\r\n getAllLaboratoryResults(from: number, numberOfRows: number, filters: UserLaboratoryResultFilterModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/getAll/${from}/${numberOfRows}/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(filters)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getlaboratoryResult(laboratoryResultId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/get/${laboratoryResultId}/`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n getPersonallaboratoryResults() {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/labTypes/`,\r\n method: 'get',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n addlaboratoryResults(laboratoryResult: UserLaboratoryResultModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(laboratoryResult)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n updatelaboratoryResults(laboratoryResultId: number, laboratoryResult: UserLaboratoryResultModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/${laboratoryResultId}`,\r\n method: 'put',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(laboratoryResult)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deletelaboratoryResult(laboratoryResultId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/${laboratoryResultId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n createPersonallaboratoryResult(personal: PersonalLaboratoryResultModel) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/createType/`,\r\n method: 'post',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n },\r\n data: JSON.stringify(personal)\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n\r\n deletePersonallaboratoryResult(laboratoryResultId: number) {\r\n return axios({\r\n url: `${Constants.apiUrl}/userLabResult/deleteType/${laboratoryResultId}`,\r\n method: 'delete',\r\n headers: {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache'\r\n }\r\n })\r\n .then(res => res.data.data)\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error))\r\n )\r\n }\r\n}\r\n\r\nexport default LaboratoryResultsService;","import { LaboratoryResultTypeModel } from './laboratoryResultTypeModel';\r\nimport {FileModel} from '../fileModel';\r\n\r\nexport class UserLaboratoryResultModel {\r\n public userLaboratoryResultId: number;\r\n public userId: number;\r\n public laboratoryResultDate: string;\r\n public userLaboratoryResultTypes: Array;\r\n public fileResults: Array;\r\n}","export class LaboratoryResultTypeModel {\r\n public laboratoryResultTypeId: number;\r\n public laboratoryResultTypeValue: number;\r\n public laboratoryResultTypeUnit?: string;\r\n public personalLaboratoryResult?: string;\r\n public isSystemType: boolean;\r\n public label?: string;\r\n public minValue: number;\r\n public maxValue: number;\r\n}","export class PersonalLaboratoryResultModel {\r\n personalLaboratoryResultId: number;\r\n personalLaboratoryResultName: string;\r\n minValue: number;\r\n maxValue: number;\r\n}","import * as React from \"react\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport { InputText } from 'primereact/inputtext';\r\nimport { LaboratoryTestType, GenderType, FileSystemType } from \"../../../common/enums\";\r\nimport { enumToDropdownArray, fomatDateTimeAsString } from '../../../common/functions/helperFunctions';\r\nimport { UserLaboratoryResultModel } from '../../../models/user/userLaboratoryResultModel';\r\nimport { LaboratoryResultTypeModel } from \"../../../models/user/laboratoryResultTypeModel\";\r\nimport { getEnumLabel } from '../../../common/functions/helperFunctions';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Button from '@material-ui/core/Button';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport {\r\n\tfaTrash, faTimesCircle, faCheck, faTimes, faBan, faFileExcel, faFileWord, faFileCsv,\r\n\tfaFileImage, faFile, faFilePdf, faDownload, faUpload, faFileArchive, faInfoCircle\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport { PersonalLaboratoryResultModel } from '../../../models/user/personalLaboratoryResultModel';\r\nimport Spinner from \"../../../common/components/spinner/spinner\";\r\nimport UserLaboratoryResultService from \"../../../services/userLaboratoryResultService\";\r\nimport { MuiPickersUtilsProvider, DateTimePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport * as Constants from '../../../common/constants';\r\nimport { MuiThemeProvider, createMuiTheme, ListItemAvatar } from \"@material-ui/core\";\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport Popover from '@material-ui/core/Popover';\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport { FileModel } from \"../../../models/fileModel\";\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport FileSaver from 'file-saver';\r\nimport FileService from \"../../../services/fileService\";\r\nimport { LaboratoryResultUnitRangeModel } from '../../../models/laboratoryResultUnitRangeModel';\r\nimport AuthService from '../../../services/authService';\r\n\r\ninterface IProps {\r\n\tsaveClick: any,\r\n\tcancelClick: any,\r\n\tisVisible: boolean,\r\n\tselectedLaboratoryResult: UserLaboratoryResultModel,\r\n\tdialogHeader: string;\r\n}\r\n\r\ninterface IState {\r\n\tcurrentLaboratoryResult: UserLaboratoryResultModel;\r\n\tisLoading: boolean;\r\n\tvalidationMessage: string;\r\n\tlaboratoryResultType: Array;\r\n\tselectedTypes: Array;\r\n\texpandedlaboratoryResultTypes: Array;\r\n\taddNew: boolean;\r\n\tnewLaboratoryResult: string;\r\n\tisLoadingSecond: boolean;\r\n\tpersonalLaboratoryResults: Array;\r\n\tisVisibleConfirmDialog: boolean;\r\n\tdeleteValidationMessage: string;\r\n\tpersonalLaboratoryResult: LaboratoryResultDropdownModel;\r\n\tanchorEl: any;\r\n\tpopover: boolean;\r\n\tisVisibleFileConfirmDialog: boolean;\r\n\tselectedFile: FileModel;\r\n\tdeleteFileValidationMessage: string;\r\n\ttempId: number;\r\n\tminResult: number;\r\n\tmaxResult: number;\r\n\tunitRanges: Array;\r\n\tinfoPopover: boolean;\r\n\tinfoAchor: any;\r\n\tunitInfo: Array;\r\n\tuserAge: number;\r\n\tuserGender: number;\r\n}\r\n\r\nclass LaboratoryResultAddEditDialog extends React.Component {\r\n\tgrowl: any;\r\n\tgrowlSecond: any;\r\n\tuserLaboratoryResultService = new UserLaboratoryResultService();\r\n\trefLefletFile: any;\r\n\tfileService = new FileService();\r\n\tcurrentFile: FileModel;\r\n\tauthService = new AuthService();\r\n\ttoday = new Date();\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\r\n\t\tif (!props.selectedLaboratoryResult) {\r\n\t\t\tprops.selectedLaboratoryResult = new UserLaboratoryResultModel();\r\n\t\t}\r\n\r\n\t\tthis.state = {\r\n\t\t\tcurrentLaboratoryResult: props.selectedLaboratoryResult,\r\n\t\t\tisLoading: false,\r\n\t\t\tvalidationMessage: '',\r\n\t\t\tlaboratoryResultType: new Array(0),\r\n\t\t\tselectedTypes: new Array(0),\r\n\t\t\texpandedlaboratoryResultTypes: Array(0),\r\n\t\t\taddNew: false,\r\n\t\t\tnewLaboratoryResult: '',\r\n\t\t\tisLoadingSecond: false,\r\n\t\t\tpersonalLaboratoryResults: Array(0),\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tdeleteValidationMessage: '',\r\n\t\t\tpersonalLaboratoryResult: new LaboratoryResultDropdownModel(),\r\n\t\t\tanchorEl: null,\r\n\t\t\tpopover: false,\r\n\t\t\tisVisibleFileConfirmDialog: false,\r\n\t\t\tselectedFile: new FileModel(),\r\n\t\t\tdeleteFileValidationMessage: '',\r\n\t\t\ttempId: -1,\r\n\t\t\tminResult: 0,\r\n\t\t\tmaxResult: 0,\r\n\t\t\tunitRanges: new Array(),\r\n\t\t\tinfoPopover: false,\r\n\t\t\tinfoAchor: null,\r\n\t\t\tunitInfo: new Array(),\r\n\t\t\tuserAge: 0,\r\n\t\t\tuserGender: 0\r\n\t\t};\r\n\r\n\t\tthis.rowExpansionTemplate = this.rowExpansionTemplate.bind(this);\r\n\t}\r\n\r\n\tlaboratoryResultEnumToDropdownArray(enumName, isSystem: boolean) {\r\n\t\tlet enumAsArray: Array = [];\r\n\t\tfor (var n in enumName) {\r\n\t\t\tif (typeof enumName[n] === 'number') {\r\n\t\t\t\tenumAsArray.push({ value: +enumName[n], label: Translate(n) + \" (\" + this.getUnitBylaboratoryResultType(+enumName[n]) + \")\", isSystem: isSystem, minValue: 0, maxValue: 0 });\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn enumAsArray;\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\tthis.setState({ isLoading: true });\r\n\t\tthis.userLaboratoryResultService.getPersonallaboratoryResults()\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tpersonalLaboratoryResults: data.personalLaboratoryResults,\r\n\t\t\t\t\t\tlaboratoryResultType: this.laboratoryResultEnumToDropdownArray(LaboratoryTestType, true),\r\n\t\t\t\t\t\tunitRanges: data.laboratoryResultUnitRanges,\r\n\t\t\t\t\t\tuserAge: data.userAge,\r\n\t\t\t\t\t\tuserGender: data.userGender\r\n\t\t\t\t\t}, this.addPersonalsToDropdown);\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\r\n\t}\r\n\r\n\taddPersonalsToDropdown = () => {\r\n\t\tif (this.state.personalLaboratoryResults && this.state.personalLaboratoryResults.length > 0) {\r\n\t\t\tlet laboratoryResults: Array = new Array(0);\r\n\t\t\tfor (let cond of this.state.personalLaboratoryResults) {\r\n\t\t\t\tlet laboratoryResult: LaboratoryResultDropdownModel = new LaboratoryResultDropdownModel();\r\n\t\t\t\tlaboratoryResult.value = cond.personalLaboratoryResultId;\r\n\t\t\t\tlaboratoryResult.label = cond.personalLaboratoryResultName;\r\n\t\t\t\tlaboratoryResult.isSystem = false\r\n\t\t\t\tlaboratoryResults.push(laboratoryResult);\r\n\t\t\t\tlaboratoryResult.minValue = cond.minValue ? cond.minValue : 0;\r\n\t\t\t\tlaboratoryResult.maxValue = cond.maxValue ? cond.maxValue : 0;\r\n\t\t\t}\r\n\t\t\tthis.setState({ laboratoryResultType: this.state.laboratoryResultType.concat(laboratoryResults) });\r\n\t\t}\r\n\t}\r\n\r\n\thandleSaveButton = (event, close) => {\r\n\t\tthis.setState({ isLoading: true });\r\n\t\tevent.preventDefault();\r\n\t\tif (this.state.currentLaboratoryResult.userLaboratoryResultTypes) {\r\n\t\t\tfor (let i = 0; i < this.state.currentLaboratoryResult.userLaboratoryResultTypes.length; i++) {\r\n\t\t\t\tif (!this.state.currentLaboratoryResult.userLaboratoryResultTypes[i].laboratoryResultTypeValue ||\r\n\t\t\t\t\tthis.state.currentLaboratoryResult.userLaboratoryResultTypes[i].laboratoryResultTypeValue <= 0) {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate('NotAllEntered') });\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tconst laboratoryResult = this.state.currentLaboratoryResult;\r\n\t\tif (!laboratoryResult.laboratoryResultDate) {\r\n\t\t\tlaboratoryResult.laboratoryResultDate = new Date().toUTCString();\r\n\t\t}\r\n\t\t//laboratoryResult.laboratoryResultDate = fomatDateTimeAsString(new Date(laboratoryResult.laboratoryResultDate));\r\n\t\tthis.props.saveClick(laboratoryResult, close);\r\n\t}\r\n\r\n\thandleCancelButton = () => {\r\n\t\tthis.props.cancelClick();\r\n\t}\r\n\r\n\thandleDropdownChange = (laboratoryResult) => {\r\n\t\tthis.setState({ selectedTypes: laboratoryResult }, this.addToList);\r\n\t}\r\n\r\n\thandleChange = (props: LaboratoryResultTypeModel, value) => {\r\n\t\tconst laboratoryResult: UserLaboratoryResultModel = { ...this.state.currentLaboratoryResult };\r\n\t\tconst laboratoryResults: Array = [...laboratoryResult.userLaboratoryResultTypes];\r\n\t\tlet founded = laboratoryResults.findIndex(r => r.laboratoryResultTypeId == props.laboratoryResultTypeId && r.isSystemType == props.isSystemType);\r\n\t\tlaboratoryResults[founded].laboratoryResultTypeValue = value;\r\n\t\tlaboratoryResult.userLaboratoryResultTypes = [...laboratoryResults];\r\n\t\tthis.setState({ currentLaboratoryResult: { ...laboratoryResult } });\r\n\t};\r\n\r\n\taddNewToList = (event) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({ addNew: true, selectedTypes: new Array(0) });\r\n\t}\r\n\r\n\thandleCancelAddNewButton = () => {\r\n\t\tthis.setState({ addNew: false, selectedTypes: new Array(0), newLaboratoryResult: '' });\r\n\t}\r\n\r\n\taddToList = () => {\r\n\t\tlet laboratoryResult: UserLaboratoryResultModel = new UserLaboratoryResultModel();\r\n\t\tlaboratoryResult = { ...this.state.currentLaboratoryResult };\r\n\t\tlet laboratoryResults: Array = laboratoryResult.userLaboratoryResultTypes ? [...laboratoryResult.userLaboratoryResultTypes] : new Array();\r\n\t\tlet names: string[] = [];\r\n\t\tfor (let selectedType of this.state.selectedTypes) {\r\n\t\t\tif (laboratoryResults.some(r => (r.laboratoryResultTypeId === selectedType.value && selectedType.isSystem == true && r.isSystemType == true) ||\r\n\t\t\t\t(r.isSystemType == false && r.laboratoryResultTypeId == selectedType.value && selectedType.isSystem == false))) {\r\n\t\t\t\tnames.push(selectedType.label);\r\n\t\t\t\t//return;\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tif (selectedType.isSystem) {\r\n\t\t\t\t\tlaboratoryResults.push({\r\n\t\t\t\t\t\tlaboratoryResultTypeId: selectedType.value,\r\n\t\t\t\t\t\tlaboratoryResultTypeUnit: this.getUnitBylaboratoryResultType(selectedType.value),\r\n\t\t\t\t\t\tlaboratoryResultTypeValue: 0,\r\n\t\t\t\t\t\tisSystemType: true, personalLaboratoryResult: '',\r\n\t\t\t\t\t\tlabel: '',\r\n\t\t\t\t\t\tminValue: 0,\r\n\t\t\t\t\t\tmaxValue: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tvar name = '';\r\n\t\t\t\t\tlet minValue = 0;\r\n\t\t\t\t\tlet maxValue = 0;\r\n\t\t\t\t\tfor (let cond of this.state.laboratoryResultType) {\r\n\t\t\t\t\t\tif (cond.value == selectedType.value) {\r\n\t\t\t\t\t\t\tname = cond.label;\r\n\t\t\t\t\t\t\tif (cond.minValue) {\r\n\t\t\t\t\t\t\t\tminValue = cond.minValue;\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\tif (cond.maxValue) {\r\n\t\t\t\t\t\t\t\tmaxValue = cond.maxValue;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlaboratoryResults.push({\r\n\t\t\t\t\t\tlaboratoryResultTypeId: selectedType.value,\r\n\t\t\t\t\t\tlaboratoryResultTypeUnit: '',\r\n\t\t\t\t\t\tlaboratoryResultTypeValue: 0, isSystemType: false,\r\n\t\t\t\t\t\tpersonalLaboratoryResult: name,\r\n\t\t\t\t\t\tlabel: '',\r\n\t\t\t\t\t\tminValue: minValue,\r\n\t\t\t\t\t\tmaxValue: maxValue\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tif (names && names.length > 0) {\r\n\t\t\tthis.growlSecond.show({ severity: 'error', summary: Translate('laboratoryResultInList') + \": \" + names.join(', ') });\r\n\t\t\tthis.handleCancelAddNewButton;\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tlaboratoryResult.userLaboratoryResultTypes = [...laboratoryResults];\r\n\t\tthis.setState({ currentLaboratoryResult: { ...laboratoryResult } }, this.handleCancelAddNewButton);\r\n\t}\r\n\r\n\thandleLabResultTypeRemoveClick = (event, condType: number) => {\r\n\t\tevent.preventDefault();\r\n\t\tlet laboratoryResult: UserLaboratoryResultModel = new UserLaboratoryResultModel();\r\n\t\tlaboratoryResult = { ...this.state.currentLaboratoryResult };\r\n\t\tlet laboratoryResults: Array = laboratoryResult.userLaboratoryResultTypes ? [...laboratoryResult.userLaboratoryResultTypes] : new Array();\r\n\t\tlet index = laboratoryResults.findIndex(d => d.laboratoryResultTypeId === condType);\r\n\t\tlaboratoryResults.splice(index, 1);\r\n\t\tlaboratoryResult.userLaboratoryResultTypes = [...laboratoryResults];\r\n\t\tthis.setState({ currentLaboratoryResult: { ...laboratoryResult } });\r\n\t}\r\n\r\n\tgetUnitBylaboratoryResultType(condType: LaboratoryTestType) {\r\n\t\tswitch (condType) {\r\n\t\t\tcase LaboratoryTestType.Hemoglobin:\r\n\t\t\t\treturn 'g/L';\r\n\t\t\tcase LaboratoryTestType.TotalCholesterol:\r\n\t\t\tcase LaboratoryTestType.HighDensityLipoproteinCholesterol:\r\n\t\t\tcase LaboratoryTestType.LowDensityLipoproteinCholesterol:\r\n\t\t\tcase LaboratoryTestType.Triglycerides:\r\n\t\t\tcase LaboratoryTestType.BloodSugar:\r\n\t\t\t\treturn 'mmol/l';\r\n\t\t\tdefault:\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n\tgetPlaceHolder(condType: LaboratoryTestType) {\r\n\t\tswitch (condType) {\r\n\t\t\tcase LaboratoryTestType.Hemoglobin:\r\n\t\t\t\treturn Translate('EnterHemoglobin');\r\n\t\t\tcase LaboratoryTestType.TotalCholesterol:\r\n\t\t\t\treturn Translate('EnterTotalCholesterol');\r\n\t\t\tcase LaboratoryTestType.HighDensityLipoproteinCholesterol:\r\n\t\t\t\treturn Translate('EnterHDL');\r\n\t\t\tcase LaboratoryTestType.LowDensityLipoproteinCholesterol:\r\n\t\t\t\treturn Translate('EnterLDL');\r\n\t\t\tcase LaboratoryTestType.Triglycerides:\r\n\t\t\t\treturn Translate('EnterTriglycerides');\r\n\t\t\tcase LaboratoryTestType.BloodSugar:\r\n\t\t\t\treturn Translate('EnterBloodSugar');\r\n\t\t\tdefault:\r\n\t\t\t\treturn '';\r\n\t\t}\r\n\t}\r\n\r\n\tgetInputElement = (rowData) => {\r\n\t\tif (rowData.isSystemType) {\r\n\t\t\treturn this.handleChange(rowData, e.target['value'])}>;\r\n\r\n\t\t}\r\n\t\telse {\r\n\t\t\tlet helperTextLabel: string = '';\r\n\t\t\tif (rowData.minValue > 0 && rowData.maxValue > 0) {\r\n\t\t\t\thelperTextLabel += Translate('Yours reference values') + \": \" + rowData.minValue.toString() + \" - \" + rowData.maxValue.toString();\r\n\t\t\t}\r\n\t\t\tif (rowData.minValue > 0 && rowData.maxValue <= 0) {\r\n\t\t\t\thelperTextLabel += Translate('Yours reference values') + \": \" + \"> \" + rowData.minValue.toString() + \")\";\r\n\t\t\t}\r\n\t\t\tif (rowData.minValue <= 0 && rowData.maxValue > 0) {\r\n\t\t\t\thelperTextLabel += Translate('Yours reference values') + \": \" + \"< \" + rowData.maxValue.toString();\r\n\t\t\t}\r\n\t\t\treturn this.handleChange(rowData, e.target['value'])}>;\r\n\t\t}\r\n\t}\r\n\r\n\trowExpansionTemplate(rowData: LaboratoryResultTypeModel) {\r\n\t\tconst classrs = {\r\n\t\t\tbackgroundColor: '#17a2b8',\r\n\t\t\tcolor: 'white',\r\n\t\t\tborder: 'none',\r\n\t\t\tborderRadius: '3px',\r\n\t\t\tmarginRight: \".5em\",\r\n\t\t\tfontSize: 16,\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{this.getInputElement(rowData)}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{rowData.isSystemType ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t this.openInfoPopover(e, rowData)}>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t this.handleLabResultTypeRemoveClick(e, rowData.laboratoryResultTypeId)} >\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n\texpandData = (data: LaboratoryResultTypeModel) => {\r\n\t\tif (!this.state.expandedlaboratoryResultTypes.some(r => r.laboratoryResultTypeId == data.laboratoryResultTypeId) || this.state.expandedlaboratoryResultTypes.length == 0) {\r\n\t\t\tthis.setState({ expandedlaboratoryResultTypes: [...this.state.expandedlaboratoryResultTypes, data] });\r\n\t\t} else {\r\n\t\t\tthis.setState({ expandedlaboratoryResultTypes: this.state.expandedlaboratoryResultTypes.filter(r => r.laboratoryResultTypeId != data.laboratoryResultTypeId) });\r\n\t\t}\r\n\t}\r\n\r\n\tcondTypeTemplate(option) {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{option.label}\r\n\t\t\t
    \r\n\t\t);\r\n\t}\r\n\r\n\tnewLaboratoryResultChange = (value) => {\r\n\t\tthis.setState({ newLaboratoryResult: value });\r\n\t}\r\n\r\n\tchangeMinAndMax = (type, value) => {\r\n\t\tif (type == 'minResult') {\r\n\t\t\tthis.setState({ minResult: value });\r\n\t\t}\r\n\t\tif (type == 'maxResult') {\r\n\t\t\tthis.setState({ maxResult: value });\r\n\t\t}\r\n\t}\r\n\r\n\thandleAddButton = (e) => {\r\n\t\te.preventDefault();\r\n\t\tif (this.state.laboratoryResultType.some(c => c.label.toLocaleLowerCase() == this.state.newLaboratoryResult.trim().toLocaleLowerCase())) {\r\n\t\t\tthis.growlSecond.show({ severity: 'warning', summary: Translate('Characteristic already exist') });\r\n\t\t\t//this.setState({ addNew: false, newLaboratoryResult: '' });\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tif ((this.state.minResult && this.state.minResult < 0) || (this.state.maxResult && this.state.maxResult < 0)) {\r\n\t\t\tthis.growlSecond.show({ severity: 'warning', summary: Translate('Enter valid value') });\r\n\t\t\t//this.setState({ addNew: false, newLaboratoryResult: '' });\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\t\tlet newPersonal: PersonalLaboratoryResultModel = new PersonalLaboratoryResultModel();\r\n\t\tnewPersonal.personalLaboratoryResultName = this.state.newLaboratoryResult;\r\n\t\tif (this.state.minResult) {\r\n\t\t\tnewPersonal.minValue = this.state.minResult;\r\n\t\t}\r\n\t\tif (this.state.maxResult) {\r\n\t\t\tnewPersonal.maxValue = this.state.maxResult;\r\n\t\t}\r\n\r\n\t\tthis.userLaboratoryResultService.createPersonallaboratoryResult(newPersonal)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tlet laboratoryResult: LaboratoryResultDropdownModel = new LaboratoryResultDropdownModel();\r\n\t\t\t\t\tlaboratoryResult.label = JSON.parse(JSON.stringify(this.state.newLaboratoryResult));\r\n\t\t\t\t\tlaboratoryResult.value = data;\r\n\t\t\t\t\tlaboratoryResult.minValue = this.state.minResult;\r\n\t\t\t\t\tlaboratoryResult.maxValue = this.state.maxResult;\r\n\r\n\t\t\t\t\tlaboratoryResult.isSystem = false;\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tlaboratoryResultType: this.state.laboratoryResultType.concat(laboratoryResult),\r\n\t\t\t\t\t\tnewLaboratoryResult: '',\r\n\t\t\t\t\t\tpopover: false,\r\n\t\t\t\t\t\tminResult: 0,\r\n\t\t\t\t\t\tmaxResult: 0\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\thandleDateChange = (value) => {\r\n\t\tconst laboratoryResult: UserLaboratoryResultModel = { ...this.state.currentLaboratoryResult };\r\n\t\tlaboratoryResult.laboratoryResultDate = value;\r\n\t\tthis.setState({ currentLaboratoryResult: { ...laboratoryResult } })\r\n\t}\r\n\r\n\thandleDeleteClick = (personalLaboratoryResult: LaboratoryResultDropdownModel, e) => {\r\n\t\te.preventDefault();\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: true,\r\n\t\t\tpersonalLaboratoryResult: personalLaboratoryResult,\r\n\t\t\tdeleteValidationMessage: Translate('PersonalTestConfirm')\r\n\t\t});\r\n\t}\r\n\r\n\tremovepersonalLaboratoryResult = (personalLaboratoryResult: LaboratoryResultDropdownModel) => {\r\n\t\tthis.setState({ isLoadingSecond: true });\r\n\t\tthis.userLaboratoryResultService.deletePersonallaboratoryResult(personalLaboratoryResult.value)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tif (data == false) {\r\n\t\t\t\t\t\tthis.growlSecond.show({ severity: 'error', summary: Translate('Test is used') });\r\n\t\t\t\t\t\tthis.setState({ isLoadingSecond: false });\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (this.state.currentLaboratoryResult && this.state.currentLaboratoryResult.userLaboratoryResultTypes &&\r\n\t\t\t\t\t\tthis.state.currentLaboratoryResult.userLaboratoryResultTypes.some(r => r.isSystemType == false && r.laboratoryResultTypeId == personalLaboratoryResult.value)) {\r\n\t\t\t\t\t\tlet laboratoryResult: UserLaboratoryResultModel = new UserLaboratoryResultModel();\r\n\t\t\t\t\t\tlaboratoryResult = { ...this.state.currentLaboratoryResult };\r\n\t\t\t\t\t\tlet laboratoryResults: Array = laboratoryResult.userLaboratoryResultTypes ? [...laboratoryResult.userLaboratoryResultTypes] : new Array();\r\n\t\t\t\t\t\tlet index = laboratoryResults.findIndex(d => d.laboratoryResultTypeId === personalLaboratoryResult.value);\r\n\t\t\t\t\t\tlaboratoryResults.splice(index, 1);\r\n\t\t\t\t\t\tlaboratoryResult.userLaboratoryResultTypes = [...laboratoryResults];\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tcurrentLaboratoryResult:\r\n\t\t\t\t\t\t\t\t{ ...laboratoryResult },\r\n\t\t\t\t\t\t\tisLoadingSecond: false,\r\n\t\t\t\t\t\t\tlaboratoryResultType: this.laboratoryResultEnumToDropdownArray(LaboratoryTestType, true),\r\n\t\t\t\t\t\t\tselectedTypes: new Array(0)\r\n\t\t\t\t\t\t}, () => this.getpersonalLaboratoryResults(true));\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoadingSecond: false,\r\n\t\t\t\t\t\t\tlaboratoryResultType: this.laboratoryResultEnumToDropdownArray(LaboratoryTestType, true),\r\n\t\t\t\t\t\t\tselectedTypes: new Array(0)\r\n\t\t\t\t\t\t}, () => this.getpersonalLaboratoryResults(true));\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growlSecond.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoadingSecond: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tgetpersonalLaboratoryResults = (isFromDelete: boolean) => {\r\n\t\tthis.setState({ isLoading: true });\r\n\t\tthis.userLaboratoryResultService.getPersonallaboratoryResults()\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tif (isFromDelete) {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tpersonalLaboratoryResults: data.personalLaboratoryResults\r\n\t\t\t\t\t\t}, this.addPersonalsToDropdown);\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\tpersonalLaboratoryResults: data.personalLaboratoryResults,\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tselectTypes = (laboratoryResult: LaboratoryResultDropdownModel) => {\r\n\t\tlet selectedTypes: Array = [...this.state.selectedTypes];\r\n\t\tif (selectedTypes.some(r => r.value == laboratoryResult.value && r.isSystem == r.isSystem)) {\r\n\t\t\tfor (let i = 0; i < selectedTypes.length; i++) {\r\n\t\t\t\tif (selectedTypes[i].value == laboratoryResult.value && selectedTypes[i].isSystem == laboratoryResult.isSystem) {\r\n\t\t\t\t\tselectedTypes.splice(i, 1);\r\n\t\t\t\t\ti--;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tselectedTypes.push(laboratoryResult);\r\n\t\t}\r\n\t\tthis.setState({ selectedTypes: selectedTypes });\r\n\t}\r\n\r\n\thandleSaveAddButton = () => { }\r\n\r\n\thandleClick = (e) => {\r\n\t\te.preventDefault();\r\n\t\tthis.setState({ popover: true, anchorEl: e.currentTarget });\r\n\t}\r\n\r\n\topenInfoPopover = (e, rowData: LaboratoryResultTypeModel) => {\r\n\t\te.preventDefault();\r\n\t\tlet unitInfo: string = '';\r\n\t\tif (rowData.isSystemType) {\r\n\t\t\tlet unitRanges = [...this.state.unitRanges];\r\n\t\t\tlet found = unitRanges.filter(r => r.laboratoryResultSystemTypeId == rowData.laboratoryResultTypeId);\r\n\t\t\tthis.setState({ infoPopover: true, infoAchor: e.currentTarget, unitInfo: found });\r\n\t\t}\r\n\r\n\t}\r\n\r\n\thandleClose = () => {\r\n\t\tthis.setState({\r\n\t\t\tpopover: false, maxResult: 0, minResult: 0\r\n\t\t\t, newLaboratoryResult: ''\r\n\t\t})\r\n\t}\r\n\r\n\thandleInfoClose = () => {\r\n\t\tthis.setState({\r\n\t\t\tinfoPopover: false, unitInfo: new Array(0)\r\n\t\t});\r\n\t}\r\n\r\n\thandleAddCharacteristicKeyPress = (e) => {\r\n\t\tif (e.key === 'Enter' && this.state.newLaboratoryResult && this.state.newLaboratoryResult.trim() != '') {\r\n\t\t\tthis.handleAddButton(e);\r\n\t\t}\r\n\t}\r\n\r\n\thandleOnChange(event) {\r\n\t\tlet file: File = event.target.files[0];\r\n\t\tlet valid: boolean = true;\r\n\t\tlet fileExtension: string = '';\r\n\t\tif (file) {\r\n\t\t\tfileExtension = file.name.substr(file.name.lastIndexOf('.') + 1).toLowerCase();\r\n\r\n\t\t\tthis.currentFile = new FileModel();\r\n\r\n\t\t\tif (!fileExtension.match(/(doc|pdf|docx|jpg|jpeg|png|rar|zip|csv|xls|xlsx)$/i)) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate('Allowed file types are') + ' (doc, pdf, docx, jpg, jpeg, png, rar, zip, csv, xls, xlsx)' });\r\n\t\t\t}\r\n\t\t\tlet allSize: number = 0;\r\n\t\t\tif (this.state.currentLaboratoryResult.fileResults && this.state.currentLaboratoryResult.fileResults.length > 0) {\r\n\t\t\t\tallSize = this.state.currentLaboratoryResult.fileResults.reduce((a, b) => a + b.fileSizeInBytes, 0);\r\n\t\t\t}\r\n\t\t\tif (file.size + allSize > parseInt(Constants.MaxLabResultFileSize || '31457280')) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate('File size is greater than') + \" \" + HelperFunctions.formatBytes(Constants.MaxLabResultFileSize, 3) });\r\n\t\t\t\t//message += Translate('File size is greater than')+\" \" + HelperFunctions.formatBytes(Constants.MaxFileUploadSize, 3) + '.
    ';\r\n\t\t\t}\r\n\r\n\t\t\tif (valid) {\r\n\t\t\t\tthis.currentFile.fileName = file.name;\r\n\t\t\t\tthis.currentFile.fileType = fileExtension;\r\n\t\t\t\tthis.currentFile.fileSizeInBytes = file.size;\r\n\t\t\t\tthis.currentFile.medicineLeafletTypeId = 1;\r\n\t\t\t\tlet content;\r\n\t\t\t\tlet reader = new FileReader();\r\n\t\t\t\treader.addEventListener(\"load\", () => {\r\n\t\t\t\t\tthis.currentFile.fileContent = reader.result;\r\n\t\t\t\t\tlet labResult = { ...this.state.currentLaboratoryResult }\r\n\t\t\t\t\tif (!labResult.fileResults) {\r\n\t\t\t\t\t\tlabResult.fileResults = new Array(0)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tlabResult.fileResults.push(this.currentFile);\r\n\t\t\t\t\tthis.setState({ currentLaboratoryResult: labResult });\r\n\t\t\t\t}, false);\r\n\r\n\t\t\t\tif (file) {\r\n\t\t\t\t\treader.readAsDataURL(file);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tgetDocIcon(ext?: string) {\r\n\t\tswitch (ext) {\r\n\t\t\tcase 'jpg':\r\n\t\t\tcase 'jpeg':\r\n\t\t\t\treturn faFileImage;\r\n\t\t\tcase 'doc':\r\n\t\t\tcase 'docx':\r\n\t\t\t\treturn faFileWord;\r\n\t\t\tcase 'xls':\r\n\t\t\tcase 'csv':\r\n\t\t\t\treturn faFileExcel;\r\n\t\t\tcase 'pdf':\r\n\t\t\t\treturn faFilePdf;\r\n\t\t\tcase 'zip':\r\n\t\t\tcase 'rar':\r\n\t\t\t\treturn faFileArchive;\r\n\t\t\tdefault:\r\n\t\t\t\treturn faFile;\r\n\t\t}\r\n\t}\r\n\r\n\thandleFileRemoveClick = (e, selectedFile) => {\r\n\t\te.preventDefault();\r\n\t\tthis.setState({\r\n\t\t\tisVisibleFileConfirmDialog: true,\r\n\t\t\tselectedFile: selectedFile,\r\n\t\t\tdeleteFileValidationMessage: Translate('FileRemove')\r\n\t\t});\r\n\t}\r\n\r\n\tremoveFile = (file: FileModel) => {\r\n\t\tlet laboratoryResult: UserLaboratoryResultModel = new UserLaboratoryResultModel();\r\n\t\tlaboratoryResult = { ...this.state.currentLaboratoryResult };\r\n\t\tlet atachedFiles: Array = laboratoryResult.fileResults ? [...laboratoryResult.fileResults] : new Array();\r\n\t\tlet index = atachedFiles.indexOf(file);\r\n\t\tatachedFiles.splice(index, 1);\r\n\t\tlaboratoryResult.fileResults = [...atachedFiles];\r\n\t\tthis.setState({\r\n\t\t\tcurrentLaboratoryResult:\r\n\t\t\t\t{ ...laboratoryResult }\r\n\t\t});\r\n\t}\r\n\r\n\tgetPersonalLabel = (personal: LaboratoryResultDropdownModel) => {\r\n\t\tlet label: string = personal.label;\r\n\t\tif (personal.minValue > 0 && personal.maxValue > 0) {\r\n\t\t\tlabel += \" (\" + personal.minValue.toString() + \" - \" + personal.maxValue.toString() + \")\";\r\n\t\t}\r\n\t\tif (personal.minValue > 0 && personal.maxValue <= 0) {\r\n\t\t\tlabel += \" ( > \" + personal.minValue.toString() + \")\";\r\n\t\t}\r\n\t\tif (personal.minValue <= 0 && personal.maxValue > 0) {\r\n\t\t\tlabel += \" ( < \" + personal.maxValue.toString() + \")\";\r\n\t\t}\r\n\t\treturn label;\r\n\t}\r\n\r\n\tgetGender = (gender: number) => {\r\n\t\treturn gender == GenderType.Male ? Translate('Male') : Translate('Female');\r\n\t}\r\n\r\n\tgetHelperText = (rowData: LaboratoryResultTypeModel) => {\r\n\t\tlet rValues: string = '';\r\n\t\tlet ranges = this.state.unitRanges.filter(r => r.laboratoryResultSystemTypeId == rowData.laboratoryResultTypeId);\r\n\t\tif (ranges.length == 1) {\r\n\t\t\tif (ranges[0].minValue > 0 && ranges[0].maxValue > 0) {\r\n\t\t\t\trValues = ranges[0].minValue.toString() + \" - \" + ranges[0].maxValue.toString();\r\n\t\t\t}\r\n\t\t\tif (ranges[0].minValue <= 0 && ranges[0].maxValue > 0) {\r\n\t\t\t\trValues = \"< \" + ranges[0].maxValue.toString();\r\n\t\t\t}\r\n\t\t\tif (ranges[0].minValue > 0 && ranges[0].maxValue <= 0) {\r\n\t\t\t\trValues = \"> \" + ranges[0].minValue.toString();\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t\tfor (var range of ranges) {\r\n\t\t\t\tlet isGenderEqual: boolean = false;\r\n\t\t\t\tlet isMinAgeValid: boolean = false;\r\n\t\t\t\tlet isMaxAgeEqual: boolean = false;\r\n\t\t\t\tif ((range.genderTypeId && this.state.userGender && range.genderTypeId == this.state.userGender) || !range.genderTypeId) {\r\n\t\t\t\t\tisGenderEqual = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ((range.minAge && this.state.userAge && range.minAge <= this.state.userAge) || !range.minAge) {\r\n\t\t\t\t\tisMinAgeValid = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ((range.maxAge && this.state.userAge && range.maxAge >= this.state.userAge) || !range.maxAge) {\r\n\t\t\t\t\tisMaxAgeEqual = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (isGenderEqual && isMinAgeValid && isMaxAgeEqual) {\r\n\t\t\t\t\tif (range.minValue > 0 && range.maxValue > 0) {\r\n\t\t\t\t\t\trValues = range.minValue.toString() + \" - \" + range.maxValue.toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (range.minValue <= 0 && range.maxValue > 0) {\r\n\t\t\t\t\t\trValues = \"< \" + range.maxValue.toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (range.minValue > 0 && range.maxValue <= 0) {\r\n\t\t\t\t\t\trValues = \"> \" + range.minValue.toString();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tlet returnedString = rValues != '' ? Translate('Yours reference values') + \": \" + rValues : '';\r\n\t\treturn returnedString;\r\n\t}\r\n\r\n\tdownoladFile = (event, file: FileModel) => {\r\n\t\tevent.preventDefault();\r\n\t\tthis.setState({ isLoading: true });\r\n\t\tthis.fileService.openFile(file.fileId, file.fileName, FileSystemType.LaboratoryResults)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tFileSaver.saveAs(data, file.fileName)\r\n\t\t\t\t\tthis.setState({ isLoading: false });\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\tpublic render() {\r\n\t\tconst { isLoading, currentLaboratoryResult, laboratoryResultType, selectedTypes, isLoadingSecond, anchorEl, popover } = this.state;\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t{this.props.dialogHeader}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t this.growl = el} />\r\n\t\t\t\t\t\t\t{this.state.validationMessage ? {this.state.validationMessage} : null}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t this.handleDateChange(e)}\r\n\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t

    {Translate('Laboratory result')}

    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t this.addNewToList(e)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t{currentLaboratoryResult && currentLaboratoryResult.userLaboratoryResultTypes &&\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentLaboratoryResult.userLaboratoryResultTypes.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tcurrentLaboratoryResult.userLaboratoryResultTypes.map((m: LaboratoryResultTypeModel) =>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.rowExpansionTemplate(m)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t) : {Translate(\"Add Lab result\")}}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t

    {Translate('Reference values')}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{this.state.unitInfo.map((unit: LaboratoryResultUnitRangeModel, index) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\t\treturn
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.genderTypeId > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{this.getGender(unit.genderTypeId) + ' '}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minAge > 0 && unit.maxAge > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"(\" + unit.minAge + '-' + unit.maxAge + \" \" + Translate('AgeAbb') + \") \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minAge <= 0 && unit.maxAge > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"(\" + Translate('Under') + ' ' + unit.maxAge + \" \" + Translate('AgeAbb') + \") \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.maxAge <= 0 && unit.minAge > 0 ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"(\" + Translate(\"Over\") + unit.minAge + \" \" + Translate('AgeAbb') + \") \"}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minValue > 0 && unit.maxValue > 0 && (unit.genderTypeId || unit.minAge || unit.maxAge) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t- {unit.minValue + '-' + unit.maxValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minValue > 0 && unit.maxValue > 0 && !unit.genderTypeId && !unit.minAge && !unit.maxAge ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minValue + '-' + unit.maxValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minValue <= 0 && unit.maxValue > 0 && (unit.genderTypeId || unit.minAge || unit.maxAge) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t- {\"< \" + unit.maxValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.maxValue <= 0 && unit.minValue > 0 && (unit.genderTypeId || unit.minAge || unit.maxAge) ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t- {\"> \" + unit.minValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.minValue <= 0 && unit.maxValue > 0 && !unit.genderTypeId && !unit.minAge && !unit.maxAge ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"< \" + unit.maxValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{unit.maxValue <= 0 && unit.minValue > 0 && !unit.genderTypeId && !unit.minAge && !unit.maxAge ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{\"> \" + unit.minValue}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: null}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t

    {Translate('Files')}

    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{Translate(\"Allowed formats\")}: doc, pdf, docx, jpg, jpeg, png, rar, zip, csv, xls, xlsx
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{Translate(\"Max total file size\")}: {HelperFunctions.formatBytes(Constants.MaxLabResultFileSize, 3)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleOnChange(e)} style={{ display: 'none' }} ref={(el) => this.refLefletFile = el} />\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.refLefletFile.click()}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{Translate(\"Choose test\")}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{isLoading ? : null}\r\n\t\t\t\t\t\t\t this.growlSecond = el} />\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t{this.state.laboratoryResultType && this.state.laboratoryResultType.length > 0 ?\r\n\t\t\t\t\t\t\t\t\t\tthis.state.laboratoryResultType.map((m: LaboratoryResultDropdownModel) =>\r\n\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t r.value == m.value && r.isSystem == m.isSystem)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange={e => this.selectTypes(m)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcolor=\"primary\"\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t
      this.selectTypes(m)}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{m.isSystem ? m.label : this.getPersonalLabel(m)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t
      \r\n\t\t\t\t\t\t\t\t\t\t\t\t{m.isSystem ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnull\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t
    • \r\n\t\t\t\t\t\t\t\t\t\t) : Translate('No records found')}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t this.handleClick(e)}>\r\n\t\t\t\t\t\t\t\t\t{Translate(\"New laboratory test\")}\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.newLaboratoryResultChange(e.target['value'])}>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t this.changeMinAndMax('minResult', e.target['value'])}>\r\n\t\t\t\t\t\t\t\t\t\t\t this.changeMinAndMax('maxResult', e.target['value'])}>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t { this.setState({ isVisibleConfirmDialog: false }, () => this.removepersonalLaboratoryResult(this.state.personalLaboratoryResult)) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleConfirmDialog: false, deleteValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteValidationMessage}\r\n\t\t\t\t\r\n\r\n\t\t\t\t { this.setState({ isVisibleFileConfirmDialog: false }, () => this.removeFile(this.state.selectedFile)) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleFileConfirmDialog: false, deleteFileValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteFileValidationMessage}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default LaboratoryResultAddEditDialog;\r\n\r\nclass LaboratoryResultDropdownModel {\r\n\tvalue: number;\r\n\tlabel: string;\r\n\tisSystem: boolean;\r\n\tminValue: number;\r\n\tmaxValue: number;\r\n}","import { LaboratoryResultTypeModel } from './laboratoryResultTypeModel'\r\n\r\nexport class UserLaboratoryResultFilterModel {\r\n public userLaboratoryResultType: LaboratoryResultTypeModel;\r\n public startDate: string;\r\n public endDate: string;\r\n}","import * as React from \"react\";\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport Translate from '../../../common/functions/translate';\r\nimport AlertMessage from '../../../common/components/alertMessage/alertMessage';\r\nimport LaboratoryResultsService from '../../../services/userLaboratoryResultService';\r\nimport AuthService from '../../../services/authService';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport { UserForGridModel } from \"../../../models/user\";\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\nimport { UserLaboratoryResultModel } from '../../../models/user/userLaboratoryResultModel';\r\nimport { LaboratoryResultTypeModel } from '../../../models/user/laboratoryResultTypeModel';\r\nimport LaboratoryResultsList from './laboratoryResultsList';\r\nimport LaboratoryResultAddEditDialog from './laboratoryResultsAddEditComponent';\r\nimport { LaboratoryTestType, TimePresetType } from \"../../../common/enums\";\r\nimport { connect } from 'react-redux';\r\nimport { enumToDropdownArray, fomatDateTimeAsString, fomatDateTimeAsStringWithLang } from '../../../common/functions/helperFunctions';\r\nimport { UserLaboratoryResultFilterModel } from '../../../models/user/userLaboratoryResultFilterModel';\r\nimport { MuiPickersUtilsProvider, DatePicker } from '@material-ui/pickers';\r\nimport DateFnsUtils from '@date-io/date-fns';\r\nimport CSSTransition from 'react-transition-group/CSSTransition';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Modal from '../../../common/modalDialog';\r\nimport Fab from '@material-ui/core/Fab';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport ExpandingList from '../../../common/components/expandingList/expandingList';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport * as Constants from '../../../common/constants';\r\nimport * as HelperFunctions from \"../../../common/functions/helperFunctions\";\r\nimport Button from '@material-ui/core/Button';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport { faTimes, faFilter } from '@fortawesome/free-solid-svg-icons';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faFile, faChevronUp, faChevronDown } from '@fortawesome/free-solid-svg-icons';\r\nimport { PersonalLaboratoryResultModel } from '../../../models/user/personalLaboratoryResultModel';\r\nimport { DropdownModel } from \"../../../models/dropdownModel\";\r\nimport FileSaver from 'file-saver';\r\nimport FileService from \"../../../services/fileService\";\r\n\r\ninterface IProps {\r\n\thistory: any;\r\n\tlocation: any;\r\n\tuserId: number;\r\n\tlang: string;\r\n}\r\n\r\ninterface IState {\r\n\tisLoading: boolean;\r\n\ttotalRecordsCount: number;\r\n\tusers: Array;\r\n\tisVisibleDialog: boolean;\r\n\tcurrentlaboratoryResult: UserLaboratoryResultModel;\r\n\tuserLaboratoryResults: Array;\r\n\tdialogHeader: string;\r\n\tisVisibleConfirmDialog: boolean;\r\n\tdeleteValidationMessage: string;\r\n\tselectedLaboratoryResultId: number;\r\n\tfirst: number;\r\n\trows: number;\r\n\ttotalRecords: number;\r\n\tlaboratoryResultType: Array;\r\n\tfilters: UserLaboratoryResultFilterModel;\r\n\tisVisibleView: boolean;\r\n\texpandedLaboratoryResult: Array;\r\n\texpanded: string;\r\n\tdrawer: boolean;\r\n\ttabActiveIndex: number;\r\n\tcurrentFilters: UserLaboratoryResultFilterModel,\r\n\tselectedLaboratoryResultValue: number,\r\n\tcurrentlaboratoryResultValue: number,\r\n\tselectedTime: number;\r\n\tcanChooseDates: boolean;\r\n\ttimeDropdown: Array;\r\n\tfilterByDates: boolean\r\n}\r\n\r\nclass UserlaboratoryResultComponent extends React.Component {\r\n\r\n\tlaboratoryResultsService = new LaboratoryResultsService();\r\n\tauthService = new AuthService();\r\n\tfileService = new FileService();\r\n\tgrowl: any;\r\n\r\n\tconstructor(props: IProps) {\r\n\t\tsuper(props);\r\n\t\tthis.state = {\r\n\t\t\tisLoading: false,\r\n\t\t\ttotalRecordsCount: 0,\r\n\t\t\tusers: new Array(0),\r\n\t\t\tisVisibleDialog: false,\r\n\t\t\tcurrentlaboratoryResult: new UserLaboratoryResultModel(),\r\n\t\t\tuserLaboratoryResults: new Array(),\r\n\t\t\tdialogHeader: '',\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tdeleteValidationMessage: '',\r\n\t\t\tselectedLaboratoryResultId: 0,\r\n\t\t\tfirst: 0,\r\n\t\t\trows: 10,\r\n\t\t\ttotalRecords: 0,\r\n\t\t\tlaboratoryResultType: new Array(0),\r\n\t\t\tfilters: new UserLaboratoryResultFilterModel(),\r\n\t\t\tcurrentFilters: new UserLaboratoryResultFilterModel(),\r\n\t\t\tisVisibleView: false,\r\n\t\t\texpandedLaboratoryResult: new Array(0),\r\n\t\t\texpanded: '',\r\n\t\t\tdrawer: false,\r\n\t\t\ttabActiveIndex: 0,\r\n\t\t\tselectedLaboratoryResultValue: 0,\r\n\t\t\tcurrentlaboratoryResultValue: 0,\r\n\t\t\ttimeDropdown: Array(0),\r\n\t\t\tselectedTime: 1,\r\n\t\t\tcanChooseDates: false,\r\n\t\t\tfilterByDates: false\r\n\t\t};\r\n\t}\r\n\r\n\tcomponentDidMount() {\r\n\t\twindow.addEventListener('scroll', this.onScroll);\r\n\t\tthis.getlaboratoryResults(true);\r\n\t}\r\n\r\n\tlaboratoryResultEnumToDropdownArray(enumName, isSystem: boolean) {\r\n\t\tlet enumAsArray: Array = [];\r\n\t\tfor (var n in enumName) {\r\n\t\t\tif (typeof enumName[n] === 'number') {\r\n\t\t\t\tenumAsArray.push({ value: +enumName[n], label: Translate(n), isSystem: isSystem });\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn enumAsArray;\r\n\t}\r\n\r\n\tcomponentWillUnmount() {\r\n\t\twindow.removeEventListener('scroll', this.onScroll);\r\n\t}\r\n\r\n\tonScroll = () => {\r\n\t\tlet scrollY = window.scrollY ? window.scrollY : window.pageYOffset;\r\n\t\tif (window.innerHeight + scrollY >= document.body.offsetHeight - 250 &&\r\n\t\t\tthis.state.totalRecords > this.state.userLaboratoryResults.length && !this.state.isLoading) {\r\n\t\t\tthis.paginatorClick({ first: this.state.first + this.state.rows }, false);\r\n\t\t}\r\n\t};\r\n\r\n\r\n\r\n\tgetlaboratoryResults(isInit: boolean) {\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true,\r\n\t\t\tlaboratoryResultType: new Array(0)\r\n\t\t});\r\n\r\n\t\tif (this.authService.isAuthenticated()) {\r\n\t\t\tlet filter: UserLaboratoryResultFilterModel = new UserLaboratoryResultFilterModel();\r\n\t\t\tfilter.userLaboratoryResultType = this.state.filters.userLaboratoryResultType;\r\n\r\n\t\t\tif (this.state.filterByDates && this.state.filters.startDate) {\r\n\t\t\t\tfilter.startDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.filters.startDate));\r\n\t\t\t}\r\n\r\n\t\t\tif (this.state.filterByDates && this.state.filters.endDate) {\r\n\t\t\t\tfilter.endDate = HelperFunctions.fomatDateTimeAsString(new Date(this.state.filters.endDate));\r\n\t\t\t}\r\n\r\n\t\t\tif (this.state.selectedLaboratoryResultValue && this.state.selectedLaboratoryResultValue > 0) {\r\n\t\t\t\tlet cond: LaboratoryResultTypeModel = new LaboratoryResultTypeModel();\r\n\t\t\t\tif (this.state.selectedLaboratoryResultValue > 1000) {\r\n\t\t\t\t\tcond.isSystemType = false;\r\n\t\t\t\t\tcond.laboratoryResultTypeId = this.state.selectedLaboratoryResultValue - 1000;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tcond.isSystemType = true;\r\n\t\t\t\t\tcond.laboratoryResultTypeId = this.state.selectedLaboratoryResultValue;\r\n\t\t\t\t}\r\n\t\t\t\tfilter.userLaboratoryResultType = cond;\r\n\t\t\t}\r\n\r\n\t\t\tlet userId = this.props.userId ? this.props.userId : this.authService.getUserId();\r\n\r\n\t\t\tthis.laboratoryResultsService.getAllLaboratoryResults(this.state.first, this.state.rows, filter).then(\r\n\t\t\t\t(data: any) => {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\tlet personalCond: Array = new Array(0);\r\n\t\t\t\t\t\tpersonalCond = data.personallaboratoryResults;\r\n\t\t\t\t\t\tlet laboratoryResultType: Array = [{ label: Translate('Select'), value: 0, isSystem: false }];\r\n\t\t\t\t\t\tlaboratoryResultType.push(...this.laboratoryResultEnumToDropdownArray(LaboratoryTestType, true));\r\n\r\n\t\t\t\t\t\tif (personalCond && personalCond.length > 0) {\r\n\t\t\t\t\t\t\tfor (let cond of personalCond) {\r\n\t\t\t\t\t\t\t\tlet laboratoryResult: LaboratoryResultDropdownModel = new LaboratoryResultDropdownModel();\r\n\t\t\t\t\t\t\t\tlaboratoryResult.value = cond.personalLaboratoryResultId + 1000;\r\n\t\t\t\t\t\t\t\tlaboratoryResult.label = cond.personalLaboratoryResultName;\r\n\t\t\t\t\t\t\t\tlaboratoryResult.isSystem = false\r\n\t\t\t\t\t\t\t\tlaboratoryResultType.push(laboratoryResult);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (isInit) {\r\n\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\t\tuserLaboratoryResults: [...data.userLaboratoryResults],\r\n\t\t\t\t\t\t\t\ttotalRecords: data.totalRecords,\r\n\t\t\t\t\t\t\t\tlaboratoryResultType: this.state.laboratoryResultType.concat(laboratoryResultType)\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\t\t\tuserLaboratoryResults: [...this.state.userLaboratoryResults, ...data.userLaboratoryResults],\r\n\t\t\t\t\t\t\t\ttotalRecords: data.totalRecords,\r\n\t\t\t\t\t\t\t\tlaboratoryResultType: this.state.laboratoryResultType.concat(laboratoryResultType)\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t\t.catch(error => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tsetCurrentlaboratoryResult(laboratoryResult: UserLaboratoryResultModel) {\r\n\t\tthis.setState({ currentlaboratoryResult: { ...laboratoryResult } });\r\n\t}\r\n\r\n\tshowEditDialog = (show: boolean) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleDialog: show\r\n\t\t});\r\n\t};\r\n\r\n\thandleViewClick = id => {\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\t\tthis.laboratoryResultsService.getlaboratoryResult(id)\r\n\t\t\t.then(\r\n\t\t\t\t(data) => {\r\n\t\t\t\t\tthis.setCurrentlaboratoryResult(data.userLaboratoryResult);\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false,\r\n\t\t\t\t\t\tisVisibleView: true\r\n\t\t\t\t\t});\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t);\r\n\t}\r\n\r\n\thandleAddAndEditClick = id => {\r\n\t\tif (!id) { // Add\r\n\t\t\tthis.setCurrentlaboratoryResult(new UserLaboratoryResultModel());\r\n\t\t\tthis.setState({\r\n\t\t\t\tdialogHeader: Translate('Add Laboratory result')\r\n\t\t\t});\r\n\t\t\tthis.showEditDialog(true);\r\n\t\t} else { // Edit\r\n\t\t\tthis.setState({\r\n\t\t\t\tisLoading: true,\r\n\t\t\t\tdialogHeader: Translate('Edit laboratory Result')\r\n\t\t\t});\r\n\t\t\tthis.laboratoryResultsService.getlaboratoryResult(id)\r\n\t\t\t\t.then(\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tthis.setCurrentlaboratoryResult(data.userLaboratoryResult);\r\n\t\t\t\t\t\tthis.showEditDialog(true);\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror => {\r\n\t\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\tgetCondtionTypes(type: LaboratoryTestType, list: Array) {\r\n\t\tlet condValue: number = 0;\r\n\t\tfor (let i = 0; i < list.length; i++) {\r\n\t\t\tif (list[i].laboratoryResultTypeId === type) {\r\n\t\t\t\tcondValue = list[i].laboratoryResultTypeValue;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn condValue;\r\n\t}\r\n\r\n\r\n\thandleCloseAddEditClick = () => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleDialog: false\r\n\t\t});\r\n\t}\r\n\r\n\thandleAddEditSaveClick = (laboratoryResult: UserLaboratoryResultModel, close: boolean) => {\r\n\t\tthis.setState({\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\t\tif (!laboratoryResult.userLaboratoryResultId || laboratoryResult.userLaboratoryResultId <= 0) {\r\n\t\t\tthis.laboratoryResultsService.addlaboratoryResults(laboratoryResult)\r\n\t\t\t\t.then(\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tif (close) {\r\n\t\t\t\t\t\t\tthis.handleCloseAddEditClick();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n\t\t\t\t\t\tthis.setCurrentlaboratoryResult(new UserLaboratoryResultModel);\r\n\t\t\t\t\t\tthis.setState({ first: 0 }, () => this.getlaboratoryResults(true));\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror => {\r\n\t\t\t\t\t\tthis.handleCloseAddEditClick();\r\n\t\t\t\t\t\tthis.setCurrentlaboratoryResult(new UserLaboratoryResultModel);\r\n\t\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t}\r\n\t\telse {\r\n\t\t\tthis.laboratoryResultsService.updatelaboratoryResults(laboratoryResult.userLaboratoryResultId, laboratoryResult)\r\n\t\t\t\t.then(\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tif (close) {\r\n\t\t\t\t\t\t\tthis.handleCloseAddEditClick();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Data Saved Successfully') });\r\n\t\t\t\t\t\tthis.setCurrentlaboratoryResult(new UserLaboratoryResultModel);\r\n\t\t\t\t\t\tthis.setState({ first: 0 }, () => this.getlaboratoryResults(true));\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror => {\r\n\t\t\t\t\t\tthis.handleCloseAddEditClick();\r\n\t\t\t\t\t\tthis.setCurrentlaboratoryResult(new UserLaboratoryResultModel);\r\n\t\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\r\n\t\t}\r\n\t}\r\n\r\n\thandleDeleteClick = (laboratoryResultId: number, laboratoryResultDate: string) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: true,\r\n\t\t\tselectedLaboratoryResultId: laboratoryResultId,\r\n\t\t\tdeleteValidationMessage: Translate('LaboratoryResultConfirm') +\r\n\t\t\t\tfomatDateTimeAsStringWithLang(new Date(laboratoryResultDate), this.props.lang) + '?'\r\n\t\t});\r\n\t}\r\n\r\n\tdeletelaboratoryResult = (id: number) => {\r\n\t\tthis.setState({\r\n\t\t\tisVisibleConfirmDialog: false,\r\n\t\t\tisLoading: true\r\n\t\t});\r\n\r\n\t\tthis.laboratoryResultsService.deletelaboratoryResult(id)\r\n\t\t\t.then(\r\n\t\t\t\tdata => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'success', summary: Translate('Deleted Successfully') });\r\n\t\t\t\t\tthis.setState({ first: 0 }, () => this.getlaboratoryResults(true));\r\n\t\t\t\t},\r\n\t\t\t\terror => {\r\n\t\t\t\t\tthis.growl.show({ severity: 'error', summary: Translate(error.message) });\r\n\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t}\r\n\r\n\tpaginatorClick = (e, isInit: boolean) => {\r\n\t\tthis.setState({ first: e.first }, () => this.getlaboratoryResults(isInit));\r\n\t}\r\n\r\n\thandleChange = (key, value) => {\r\n\t\tconst userFilter: UserLaboratoryResultFilterModel = { ...this.state.currentFilters };\r\n\t\tuserFilter[key] = value;\r\n\t\tthis.setState({ currentFilters: { ...userFilter } })\r\n\t};\r\n\r\n\thandleCloseView = () => {\r\n\t\tthis.setState({ isVisibleView: false });\r\n\t}\r\n\r\n\texpandedData = (rowData: UserLaboratoryResultModel) => {\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t{/* this.handleViewClick(rowData.userlaboratoryResultId)}\r\n\t\t\t\t> */}\r\n\r\n\t\t\t\t this.handleAddAndEditClick(rowData.userLaboratoryResultId)}\r\n\t\t\t\t\tstyle={{ width: 50 }}\r\n\t\t\t\t> \r\n\t\t\t\t this.handleDeleteClick(rowData.userLaboratoryResultId, rowData.laboratoryResultDate)}\r\n\t\t\t\t\tstyle={{ width: 50 }}\r\n\t\t\t\t>\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n\r\n\trowExpansionTemplate = (rowData: UserLaboratoryResultModel) => {\r\n\r\n\t\treturn (\r\n\t\t\t r.userLaboratoryResultId == rowData.userLaboratoryResultId)}\r\n\t\t\t\ttimeout={300} classNames=\"list-slide\" mountOnEnter unmountOnExit>\r\n\t\t\t\t{this.expandedData(rowData)}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\texpandData = (data: UserLaboratoryResultModel) => {\r\n\t\tif (!this.state.expandedLaboratoryResult.some(r => r.userLaboratoryResultId == data.userLaboratoryResultId) || this.state.expandedLaboratoryResult.length == 0) {\r\n\t\t\tthis.setState({ expandedLaboratoryResult: [...this.state.expandedLaboratoryResult, data] });\r\n\t\t} else {\r\n\t\t\tthis.setState({ expandedLaboratoryResult: this.state.expandedLaboratoryResult.filter(r => r.userLaboratoryResultId != data.userLaboratoryResultId) });\r\n\t\t}\r\n\t}\r\n\r\n\thandleExpandChange = panel => (event, expanded) => {\r\n\t\tthis.setState({\r\n\t\t\texpanded: expanded ? panel : false,\r\n\t\t});\r\n\t};\r\n\r\n\ttoggleDrawer = (open) => {\r\n\t\tthis.setState({\r\n\t\t\tdrawer: open\r\n\t\t});\r\n\t};\r\n\r\n\thandleFilter = (e) => {\r\n\t\te.preventDefault();\r\n\t\tlet filters = { ...this.state.currentFilters };\r\n\t\tlet cond = this.state.currentlaboratoryResultValue > 0 ? this.state.currentlaboratoryResultValue : 0;\r\n\t\tthis.setState({ drawer: false, filters: filters, selectedLaboratoryResultValue: cond, first: 0, filterByDates: true }, () => this.getlaboratoryResults(true));\r\n\t}\r\n\r\n\tshowFilters = () => {\r\n\t\tlet currentSettings: UserLaboratoryResultFilterModel = new UserLaboratoryResultFilterModel();\r\n\t\tif (this.state.filters &&\r\n\t\t\t(this.state.filters.endDate || this.state.filters.startDate)) {\r\n\t\t\tcurrentSettings = { ...this.state.filters };\r\n\t\t}\r\n\r\n\t\tlet timeDr = new Array(0);\r\n\t\ttimeDr = HelperFunctions.enumToDropdownArray(TimePresetType, true);\r\n\r\n\t\tlet cond = this.state.selectedLaboratoryResultValue > 0 ? this.state.selectedLaboratoryResultValue : 0;\r\n\t\tthis.setState({ drawer: true, currentFilters: { ...currentSettings }, currentlaboratoryResultValue: cond, timeDropdown: timeDr });\r\n\t}\r\n\r\n\tgetFiltersummary = () => {\r\n\t\tlet nameSet: any = null;\r\n\t\tlet startSet: any = null;\r\n\t\tlet endSet: any = null;\r\n\r\n\t\tif (this.state.selectedLaboratoryResultValue > 0) {\r\n\t\t\tlet name: string = '';\r\n\t\t\tfor (let cond of this.state.laboratoryResultType) {\r\n\t\t\t\tif (cond.value == this.state.selectedLaboratoryResultValue) {\r\n\t\t\t\t\tname = cond.label\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tnameSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('LabTest')}:\r\n\t\t\t\t\t {name} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tif (this.state.filters && this.state.filters.startDate) {\r\n\t\t\tstartSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('From')}:\r\n\t\t\t\t\t {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.filters.startDate), this.props.lang)} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tif (this.state.filters && this.state.filters.endDate) {\r\n\t\t\tendSet =\r\n\t\t\t\t<>\r\n\t\t\t\t\t{Translate('To')}:\r\n\t\t\t\t\t {HelperFunctions.fomatDateAsStringWithLang(new Date(this.state.filters.endDate), this.props.lang)} \r\n\t\t\t\t\r\n\t\t}\r\n\r\n\t\tlet summary =\r\n\t\t\t

    \r\n\t\t\t\t{nameSet}\r\n\t\t\t\t{startSet}\r\n\t\t\t\t{endSet}\r\n\t\t\t

    \r\n\r\n\t\treturn summary;\r\n\t}\r\n\r\n\tclearFilters = (e?) => {\r\n\t\tif (e) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\tthis.setState({\r\n\t\t\tfirst: 0,\r\n\t\t\tdrawer: false, filters: new UserLaboratoryResultFilterModel(),\r\n\t\t\tcurrentFilters: new UserLaboratoryResultFilterModel(),\r\n\t\t\tselectedLaboratoryResultValue: 0, currentlaboratoryResultValue: 0,\r\n\t\t\tfilterByDates: false,\r\n\t\t\tselectedTime: 1,\r\n\t\t}, () => this.getlaboratoryResults(true));\r\n\t}\r\n\r\n\tgetMonthEarlier = (currentDate: string) => {\r\n\t\tlet d = new Date(currentDate);\r\n\t\td.setMonth(d.getMonth() - 1);\r\n\t\treturn d;\r\n\t}\r\n\r\n\thandleDropChange = (cond) => {\r\n\t\tthis.setState({ currentlaboratoryResultValue: cond });\r\n\t}\r\n\r\n\tdownloadFile = (fileId) => {\r\n\t\tif (fileId && fileId > 0) {\r\n\t\t\tthis.fileService.getFile(fileId)\r\n\t\t\t\t.then(\r\n\t\t\t\t\t(data) => {\r\n\t\t\t\t\t\tlet res = new Blob([JSON.stringify(data, null, 2)], { type: 'application/json' });\r\n\t\t\t\t\t\tFileSaver.saveAs(res);\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror => {\r\n\t\t\t\t\t\tthis.growl.show({ severity: 'error', summary: error.message });\r\n\t\t\t\t\t\tthis.setState({\r\n\t\t\t\t\t\t\tisLoading: false\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t);\r\n\t\t}\r\n\t}\r\n\r\n\thandleTimeDropdownChange = (id) => {\r\n\t\tlet filters = { ...this.state.currentFilters };\r\n\t\tlet canChooseDates = false;\r\n\t\tswitch (id) {\r\n\t\t\tcase TimePresetType.OneDay:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 1).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.OneWeek:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getDaysEarlier(new Date().toString(), 7).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.OneMonth:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 1).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.ThreeMonths:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 3).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.SixMonths:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 6).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.OneYear:\r\n\t\t\t\tfilters.startDate = HelperFunctions.getMonthsEarlier(new Date().toString(), 12).toISOString();\r\n\t\t\t\tfilters.endDate = new Date().toISOString();\r\n\t\t\t\tcanChooseDates = false;\r\n\t\t\t\tbreak;\r\n\t\t\tcase TimePresetType.Advanced:\r\n\t\t\t\tcanChooseDates = true;\r\n\t\t}\r\n\t\tthis.setState({ selectedTime: id, currentFilters: filters, canChooseDates: canChooseDates });\r\n\t}\r\n\r\n\tkeyItem = (m: UserLaboratoryResultModel) => {\r\n\t\treturn m.userLaboratoryResultId + 'cond';\r\n\t}\r\n\r\n\titemName = (m: UserLaboratoryResultModel) => {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{HelperFunctions.fomatDateTimeAsStringWithLang(new Date(m.laboratoryResultDate), this.props.lang)}\r\n\t\t\t)\r\n\t}\r\n\r\n\titemDesc = (m: UserLaboratoryResultModel) => {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{m.userLaboratoryResultTypes && m.userLaboratoryResultTypes.length > 0 ? m.userLaboratoryResultTypes.map(u =>\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t{u.isSystemType ?\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t{HelperFunctions.getEnumLabel(u.laboratoryResultTypeId, LaboratoryTestType, true)}:\r\n {u.laboratoryResultTypeValue} {u.laboratoryResultTypeUnit}\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t:\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{u.personalLaboratoryResult}: {u.laboratoryResultTypeValue}\r\n\t\t\t\t\t\t\t
    }\r\n\t\t\t\t\t
    ) : null}\r\n\t\t\t\t{m.fileResults && m.fileResults.length > 0 ?\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t{Translate('Files')}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{m.fileResults.length ? m.fileResults.length : '0'}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t: null}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\titemActions = (m: UserLaboratoryResultModel) => {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{window.innerWidth >= Constants.device.tablet ? this.expandedData(m) :\r\n\r\n\t\t\t\t\tthis.state.expandedLaboratoryResult.some(r => r.userLaboratoryResultId == m.userLaboratoryResultId) ?\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t: \r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t)\r\n\t}\r\n\r\n\tpublic render() {\r\n\t\tconst { isLoading, isVisibleDialog, currentlaboratoryResult, userLaboratoryResults, filters, expanded,\r\n\t\t\tdialogHeader, selectedLaboratoryResultId, first, rows, totalRecords, laboratoryResultType,\r\n\t\t\tisVisibleView, expandedLaboratoryResult, tabActiveIndex, selectedLaboratoryResultValue, selectedTime, timeDropdown } = this.state;\r\n\r\n\t\tlet showAllLink = false;\r\n\t\tif (filters.startDate || filters.endDate || selectedLaboratoryResultValue > 0) {\r\n\t\t\tshowAllLink = true\r\n\t\t}\r\n\r\n\t\tlet laboratoryResults = JSON.parse(JSON.stringify(userLaboratoryResults));\r\n\t\tlet charts: any = null;\r\n\t\t// if (this.state.selectedLaboratoryResultValue > 0 && userLaboratoryResults.length > 1 && !isLoading) {\r\n\t\t// \tfor (let cond of laboratoryResults) {\r\n\t\t// \t\tcond.userlaboratoryResultTypes = cond.userlaboratoryResultTypes\r\n\t\t// \t\t\t.filter(r => r.isSystemType ? r.userlaboratoryResultTypeId == this.state.selectedLaboratoryResultValue : r.userlaboratoryResultTypeId == this.state.selectedLaboratoryResultValue - 1000);\r\n\t\t// \t}\r\n\t\t// \tcharts =\r\n\t\t// \t\t
    \r\n\t\t// \t\t\t\r\n\t\t// \t\t
    ;\r\n\t\t// }\r\n\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
    \r\n\r\n\t\t\t\t\t this.growl = el} />\r\n\t\t\t\t\t

    {Translate('Laboratory result')}

    \r\n\r\n\t\t\t\t\t{charts}\r\n\r\n\t\t\t\t\t this.handleAddAndEditClick(null)} className=\"floating-action-button\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.showFilters()} className=\"floating-action-button-second\">\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t this.toggleDrawer(false)}\r\n\t\t\t\t\t\tfullWidth={window.innerWidth < Constants.device.desktop}\r\n\t\t\t\t\t\taria-labelledby=\"responsive-dialog-title\"\r\n\t\t\t\t\t>\r\n\r\n\t\t\t\t\t\t this.toggleDrawer(false)}>{Translate('Filters')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\r\n\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Translate('LabTest')}\r\n\t\t\t\t\t\t\t\t\t\t this.handleDropChange(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\tinputProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tid: 'laboratoryResult-label'\r\n\t\t\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\t\t\tlaboratoryResultType.map(m => \r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{m.value ? m.label : {m.label}})\r\n\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{Translate('Period')}\r\n\t\t\t\t\t\t\t\t\t\t this.handleTimeDropdownChange(e.target.value)}\r\n\t\t\t\t\t\t\t\t\t\t\tinputProps={{\r\n\t\t\t\t\t\t\t\t\t\t\t\tid: 'preset-type-label'\r\n\t\t\t\t\t\t\t\t\t\t\t}}>\r\n\t\t\t\t\t\t\t\t\t\t\t{timeDropdown.map(m => {m.value ? m.label : {m.label}})}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t{this.state.canChooseDates ?\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleChange('startDate', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t this.handleChange('endDate', e)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t :\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{HelperFunctions.fomatDateAsStringWithLang(this.state.currentFilters.startDate ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(this.state.currentFilters.startDate) : HelperFunctions.getDaysEarlier(new Date().toString(), 1), this.props.lang)}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t\t\t{HelperFunctions.fomatDateAsStringWithLang(this.state.currentFilters.endDate ?\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tnew Date(this.state.currentFilters.endDate) : new Date(), this.props.lang)}\r\n\t\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\r\n\t\t\t\t\t
    \r\n\r\n\t\t\t\t\t\t{filters && (filters.startDate || filters.endDate || selectedLaboratoryResultValue > 0) ?\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t

    {Translate('Filters') + \":\"}

    \r\n\t\t\t\t\t\t\t\t{this.getFiltersummary()}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t: null}\r\n\r\n\t\t\t\t\t\t{showAllLink ?\r\n\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\t this.clearFilters(e)}>{Translate('See All')}\r\n\t\t\t\t\t\t\t
    : null}\r\n\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{/* */}\r\n\t\t\t\t\t
    \r\n\t\t\t\t\t{/* {totalRecords > rows ?\r\n this.paginatorClick(e)}>\r\n : null} */}\r\n\t\t\t\t\t{isLoading ? : null}\r\n\t\t\t\t\t{!isLoading && (!userLaboratoryResults || userLaboratoryResults.length == 0) ? Translate(\"No records found\") : null}\r\n\t\t\t\t
    \r\n\r\n\t\t\t\t{isVisibleDialog ? \r\n\t\t\t\t\t: null}\r\n\r\n\t\t\t\t { this.deletelaboratoryResult(selectedLaboratoryResultId) }}\r\n\t\t\t\t\tnoClick={() => { this.setState({ isVisibleConfirmDialog: false, deleteValidationMessage: '' }) }}>\r\n\t\t\t\t\t{this.state.deleteValidationMessage}\r\n\t\t\t\t\r\n\t\t\t
    \r\n\t\t)\r\n\t}\r\n}\r\n\r\nclass LaboratoryResultDropdownModel {\r\n\tvalue: number;\r\n\tlabel: string;\r\n\tisSystem: boolean;\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n\treturn {\r\n\t\tlang: state.common.lang\r\n\t};\r\n}\r\n\r\nexport default connect(mapsStateToProps)(UserlaboratoryResultComponent);","import axios from 'axios';\r\nimport * as Constants from '../common/constants';\r\nimport AuthService from './authService';\r\nimport * as HelperFunctions from '../common/functions/helperFunctions';\r\n\r\nclass GraphQLService {\r\n authService = new AuthService();\r\n\r\n constructor() {\r\n axios.defaults.headers = {\r\n \"Content-Type\": \"application/json; charset=utf-8\",\r\n Authorization: `Bearer ${this.authService.getToken()}`,\r\n Pragma: 'no-cache',\r\n }\r\n }\r\n\r\n getData(query, variables?) {\r\n return axios({\r\n url: `${Constants.apiUrl}/graphql/`,\r\n method: 'post',\r\n data: {\r\n query: query,\r\n variables: variables\r\n }\r\n })\r\n .then(res => {\r\n if (res.data.errors) {\r\n if (res.data.errors[0].path) {\r\n if (res.data.errors[0].path.length > 0 && res.data.errors[0].path.some(p => p === \"BUSINESS_VALIDATION\")) {\r\n throw new Error(res.data.errors[0].extensions.code);\r\n }\r\n }\r\n throw new Error(res.data.errors[0].message);\r\n }\r\n else {\r\n return res.data;\r\n }\r\n })\r\n .catch(error =>\r\n Promise.reject(HelperFunctions.getErrorMessage(error)));\r\n }\r\n}\r\n\r\n\r\nexport default GraphQLService;","import { UserModel } from './userModel';\r\nimport { MyMedicineModel } from './myMedicineModel'\r\nimport { MyConditionModel } from './myConditionModel';\r\nimport { MyDiseaseModel } from './myDiseaseModel';\r\nimport { MyFamilyModel } from './myFamilyModel';\r\nimport { MyLabResultModel } from './myLabresultModel';\r\nimport { MyPrescriptionMidel } from './myPrescriptionModel';\r\n\r\nexport class UserDashboardModel {\r\n public user: UserModel;\r\n public myMedicine: MyMedicineModel;\r\n public myCondition: MyConditionModel;\r\n public myDisease: MyDiseaseModel;\r\n public myFamily: MyFamilyModel;\r\n public myLabResult: MyLabResultModel;\r\n public myPrescription: MyPrescriptionMidel;\r\n}","import * as React from \"react\";\r\nimport Translate from '../../../common/functions/translate';\r\nimport * as Constants from '../../../common/constants';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faEdit, faStethoscope, faPills, faPrescription, faMapMarkedAlt, faHeartbeat, faUsers, faVial } from '@fortawesome/free-solid-svg-icons';\r\nimport AuthService from '../../../services/authService';\r\nimport GraphQLService from '../../../services/graphqlService'\r\nimport { UserDashboardModel } from '../../../models/user/userDashboardModel'\r\nimport Spinner from '../../../common/components/spinner/spinner';\r\nimport { connect } from 'react-redux';\r\nimport * as actionTypes from '../../../store/actionTypes';\r\nimport Growl from '../../../common/components/alertMessage/growl';\r\nimport * as HelperFunctions from '../../../common/functions/helperFunctions';\r\nimport ConfirmDialog from '../../../common/components/confirmDialog/confirmDialog';\r\n\r\ninterface IProps {\r\n history: any,\r\n classes: any,\r\n onUserLogout: any,\r\n onLogoutButtonClick: any\r\n}\r\n\r\ninterface IState {\r\n email: string;\r\n isLoading: boolean;\r\n userDashboard: UserDashboardModel;\r\n isVisibleConfirmDialog: boolean;\r\n}\r\n\r\nconst GET_DATA = `\r\n query GetData {\r\n userDashboard {\r\n user{\r\n email\r\n name\r\n }\r\n myMedicine{\r\n allMedicinesCount\r\n activeMedicinesCount\r\n }\r\n myDisease{\r\n allDiseasesCount\r\n activeDiseasesCount\r\n }\r\n myPrescription{\r\n allPrescriptionsCount\r\n activePrescriptionsCount\r\n }\r\n myFamily{\r\n allMemebersCount\r\n }\r\n myCondition{\r\n allConditionsCount\r\n }\r\n myLabResult{\r\n allLabResultsCount\r\n }\r\n }\r\n }\r\n`\r\n\r\nclass UserDashboardComoponent extends React.Component {\r\n authService = new AuthService();\r\n growl: any;\r\n grapqlSerice = new GraphQLService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n email: '',\r\n userDashboard: new UserDashboardModel(),\r\n isLoading: false,\r\n isVisibleConfirmDialog: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getData();\r\n }\r\n\r\n getData = () => {\r\n this.setState({ isLoading: true })\r\n this.grapqlSerice.getData(GET_DATA)\r\n .then((data: any) => {\r\n this.setState({\r\n userDashboard: data.data.userDashboard,\r\n isLoading: false\r\n });\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n handleMenuItemClick = (menuUrl, e?) => {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n this.props.history.push(menuUrl);\r\n }\r\n\r\n handleLogout = (e) => {\r\n e.preventDefault();\r\n\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n logoutConfirmClick = () => {\r\n this.authService.logout();\r\n this.props.onUserLogout();\r\n this.props.history.push('/');\r\n this.setState({\r\n isVisibleConfirmDialog: false\r\n })\r\n }\r\n\r\n render() {\r\n const { userDashboard, isLoading } = this.state;\r\n\r\n return (\r\n <>\r\n
    \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n

    {userDashboard && userDashboard.user ? userDashboard.user.name : null}

    \r\n {!isLoading ?\r\n <>\r\n
    {userDashboard && userDashboard.user ? userDashboard.user.email : null}
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/medicines')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n
    \r\n {Translate('My Medicines')}\r\n
    \r\n\r\n
    \r\n
    \r\n {userDashboard && userDashboard.myMedicine ? userDashboard.myMedicine.activeMedicinesCount + \" / \" : null}\r\n {userDashboard && userDashboard.myMedicine ? userDashboard.myMedicine.allMedicinesCount : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    this.handleMenuItemClick('/user/diseases')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n
    \r\n {Translate('My Diseases')}\r\n
    \r\n\r\n
    \r\n
    \r\n {userDashboard && userDashboard.myDisease ? userDashboard.myDisease.activeDiseasesCount + \" / \" : null}\r\n {userDashboard && userDashboard.myDisease ? userDashboard.myDisease.allDiseasesCount : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/prescriptions')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n
    \r\n {Translate('Doctors prescriptions')}\r\n
    \r\n
    \r\n
    \r\n {userDashboard && userDashboard.myPrescription ? userDashboard.myPrescription.activePrescriptionsCount + \" / \" : null}\r\n {userDashboard && userDashboard.myPrescription ? userDashboard.myPrescription.allPrescriptionsCount : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    this.handleMenuItemClick('/user/condition')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n
    \r\n {Translate('My Condition')}\r\n
    \r\n
    \r\n
    \r\n {userDashboard && userDashboard.myCondition ? userDashboard.myCondition.allConditionsCount : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    this.handleMenuItemClick('/user/family')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n
    \r\n {Translate('My Family')}\r\n
    \r\n
    \r\n
    \r\n {userDashboard && userDashboard.myFamily ? userDashboard.myFamily.allMemebersCount : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n
    this.handleMenuItemClick('/user/labresults')}>\r\n
    \r\n = Constants.device.desktop ? \"2x\" : \"lg\"} />\r\n
    \r\n
    \r\n
    \r\n {Translate('Laboratory result')}\r\n
    \r\n
    \r\n
    \r\n {userDashboard && userDashboard.myLabResult ? userDashboard.myLabResult.allLabResultsCount : null}\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n : null}\r\n
    \r\n\r\n {this.state.isVisibleConfirmDialog ?\r\n { this.logoutConfirmClick() }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Are you sure you want to logout\")}\r\n \r\n : null}\r\n\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserLogout: () => dispatch({ type: actionTypes.USER_LOGOUT })\r\n }\r\n}\r\n\r\n\r\nexport default connect(null, mapDispatchToProps)(UserDashboardComoponent);","import * as React from 'react';\r\nimport { BrowserRouter, Route, Link, Switch, Redirect, withRouter } from \"react-router-dom\";\r\nimport { connect } from 'react-redux';\r\nimport Translate from '../../common/functions/translate';\r\nimport AuthService from '../../services/authService';\r\nimport HomeComponent from \"../home/home\";\r\nimport MedicinesContainer from '../medicines/medicinesContainer';\r\nimport MedicineDetails from '../medicines/medicineDetails';\r\nimport LoginComponent from '../login/loginComponent';\r\nimport ForgotPasswordComponent from '../login/forgotPasswordComponent';\r\nimport CreateNewAccountComponent from '../login/createNewAccountComponent';\r\nimport CookiePolicyComponent from '../pages/cookiePolicyComponent';\r\nimport PersonalDataPolicyComponent from '../pages/personalDataPolicyComponent';\r\nimport UserProfileComponent from '../user/userProfile/userProfileComponent';\r\nimport UserMedicinesComponent from '../user/userMedicines/userMedicinesComponent';\r\nimport UserDiseasesComponent from '../user/userDiseases/userDiseasesComponent';\r\nimport UserPrescriptionComponent from '../user/userPrescriptions/userPrescriptionComponent';\r\nimport NewPasswordComponent from '../login/newPasswordComponent';\r\nimport NotAuthenticatedComponent from '../pages/notAuthenticatedComponent';\r\nimport UserFamilyComponent from '../user/userFamily/userFamilyComponent';\r\nimport InteractionsComponent from '../interactions/interactionsComponent';\r\nimport UserConditionComponent from '../user/userCondition/userConditionComponent';\r\nimport SettingsComponent from '../settings/settingsComponent';\r\nimport TestComponent from '../test/testComponent';\r\nimport UserNotificationList from '../user/userNotification/userNotificationList';\r\nimport DiseasesComponent from '../diseases/diseaseComponent';\r\nimport DisposalPlacesContainer from '../disposalPlaces/disposalPlacesContainer';\r\nimport ConfirmContainer from '../login/confirmContainer';\r\nimport ChatMobileComponent from '../chatBot/chatMobileComponent';\r\nimport LaboratoryResultsComponent from '../user/laboratoryResults/laboratoryResultsComponent';\r\nimport UserDashboardComponent from '../user/userDashboard/userDashboard';\r\n\r\nconst NoMatch = () => (\r\n
    \r\n

    \r\n URL address {location.pathname} not match.\r\n

    \r\n
    \r\n);\r\n\r\ninterface IProps {\r\n isUserLogged: boolean;\r\n}\r\n\r\ninterface IState {\r\n}\r\n\r\nclass Content extends React.Component {\r\n\r\n аuthService = new AuthService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n }\r\n\r\n public render() {\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* Medicines */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Interactions */}\r\n \r\n\r\n {/* DisposalPlaces */}\r\n \r\n\r\n {/* Login */}\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* Settings */}\r\n \r\n\r\n {/* Test */}\r\n \r\n\r\n {/* Test */}\r\n \r\n\r\n {/* User */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n )\r\n }\r\n}\r\n\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n isUserLogged: state.common.isUserLogged\r\n };\r\n}\r\n\r\nexport default connect(mapsStateToProps, null)(Content);","import * as React from \"react\";\r\nimport AuthService from '../../services/authService';\r\nimport UserService from \"../../services/userService\";\r\nimport { NotificationSchedulerModel } from '../../models/notificationSchedulerModel';\r\nimport * as HelperFunctions from '../../common/functions/helperFunctions';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport Translate from \"../../common/functions/translate\";\r\nimport logo01white from \"../../assets/images/logos/Logo-01-icon.png\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport AcceptanceDialog from '../user/userNotification/userNotificationAcceptanceDialog';\r\nimport { faCalendarCheck, faCalendar, faChevronRight, faClock } from '@fortawesome/free-solid-svg-icons';\r\n\r\ninterface IProps {\r\n lang: string;\r\n errorShow: any;\r\n updateCount: any;\r\n listElm: any;\r\n history: any;\r\n closeDrawer: any;\r\n}\r\n\r\ninterface IState {\r\n notifications: Array,\r\n isLoading: boolean,\r\n acceptanceShow: boolean,\r\n selectedId: number\r\n}\r\n\r\nclass NotificationComponent extends React.Component {\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n intervalId: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n notifications: new Array(),\r\n isLoading: false,\r\n acceptanceShow: false,\r\n selectedId: 0\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n this.getNotifications(true);\r\n }\r\n\r\n getNotifications = (isInit: boolean) => {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n if (this.authService.isAuthenticated()) {\r\n this.userService.getNotSeenNotifications(this.props.lang).then(\r\n (data: any) => {\r\n if (data) {\r\n if (isInit) {\r\n this.setState({\r\n isLoading: false,\r\n notifications: [...data]\r\n });\r\n }\r\n this.props.updateCount();\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.props.errorShow(error);\r\n });\r\n }\r\n }\r\n\r\n onAllNotificationsClick = (event) => {\r\n event.preventDefault();\r\n this.props.history.push('/user/notifications');\r\n this.props.closeDrawer();\r\n }\r\n\r\n openDialog = (m: NotificationSchedulerModel, event) => {\r\n event.preventDefault();\r\n this.setState({ selectedId: m.notificationSchedulerId, acceptanceShow: true });\r\n }\r\n\r\n closeDialog = () => {\r\n this.setState({ acceptanceShow: false }, () => this.getNotifications(true));\r\n this.props.updateCount();\r\n }\r\n\r\n markAllAsSeen = (event) => {\r\n event.preventDefault();\r\n if (!this.state.notifications || this.state.notifications.length < 1) {\r\n return;\r\n }\r\n this.setState({\r\n isLoading: true\r\n });\r\n if (this.authService.isAuthenticated()) {\r\n this.userService.markAllAsSeen().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false\r\n }, () => this.getNotifications(true));\r\n this.props.updateCount();\r\n }\r\n })\r\n .catch(error => {\r\n this.setState({\r\n isLoading: false\r\n });\r\n this.props.errorShow(error);\r\n });\r\n }\r\n }\r\n\r\n returnNotificationList = (notifications: NotificationSchedulerModel[], stringForEmptyMessage: string) => {\r\n return
      \r\n {notifications && notifications.length > 0 ? notifications.map((m: NotificationSchedulerModel) =>\r\n
    • this.openDialog(m, e)}>\r\n
      \r\n \"logo\"\r\n
      \r\n
      \r\n
      \r\n {m.userId == this.authService.getUserId() ? Translate(\"You have to take medicines at\") :\r\n m.userName + ' ' + Translate(\"have to take his/hers medicines at\")}\r\n {\" \" + HelperFunctions.fomatTimeAsStringWithoutSeconds(new Date(m.nextExecutionDate))\r\n + \" \" + Translate(\"oclock on date\") + \" \" + HelperFunctions.fomatDatesStringWithLang(new Date(m.nextExecutionDate), this.props.lang)}\r\n
      \r\n
      \r\n {m.medicineName ? m.medicineName : null}\r\n
      \r\n {m.isSnoozed === true ?\r\n
      \r\n \r\n {Translate('snoozed for') + \" \" + HelperFunctions.fomatDateTimeAsStringWithLang(new Date(m.executedAt), this.props.lang)}\r\n
      \r\n :\r\n
      \r\n {m.takenAt ? null : Translate('No Intake')}\r\n
      \r\n }\r\n
      \r\n
    • \r\n ) :
      {Translate(stringForEmptyMessage)}
      }\r\n
    \r\n }\r\n\r\n render() {\r\n const { notifications, isLoading, acceptanceShow, selectedId } = this.state;\r\n let newNotifications = notifications.filter(r => r.seenAt == null);\r\n let oldNotifications = notifications.filter(r => r.seenAt != null);\r\n\r\n return (\r\n <>\r\n this.growl = el} />\r\n
    \r\n

    {Translate('Notifications')}

    \r\n {/* */}\r\n
    \r\n
    \r\n
    \r\n
    {Translate(\"New\") + \" (\" + newNotifications.length + \")\"}
    \r\n {this.returnNotificationList(newNotifications, 'You don\\'t have new notifications')}\r\n
    \r\n
    \r\n
    {Translate(\"Old\") + \" (\" + oldNotifications.length + \")\"}
    \r\n {this.returnNotificationList(oldNotifications, 'You don\\'t have old notifications')}\r\n
    \r\n
    \r\n \r\n {isLoading ? : null}\r\n\r\n {acceptanceShow ?\r\n \r\n : null}\r\n \r\n )\r\n }\r\n}\r\n\r\nexport default NotificationComponent;","import * as React from 'react';\r\nimport { BrowserRouter, Route, Link, Switch, Redirect, withRouter } from \"react-router-dom\";\r\nimport Translate from '../../common/functions/translate';\r\nimport { connect } from 'react-redux';\r\nimport * as Constants from '../../common/constants';\r\nimport * as actionTypes from '../../store/actionTypes';\r\nimport AuthService from '../../services/authService';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport {\r\n faChevronRight, faUser, faUsers, faTablets, faNotesMedical, faCog, faPills, faCookie,\r\n faPrescription, faHeartbeat, faSignOutAlt, faDatabase, faStethoscope, faVial\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport ConfirmDialog from '../../common/components/confirmDialog/confirmDialog';\r\n\r\ninterface IProps {\r\n lang: string,\r\n history: any,\r\n isUserLogged: boolean,\r\n onUserLogout: any,\r\n onDrawarMenuLogoutClick: any\r\n}\r\n\r\ninterface IState {\r\n isVisibleConfirmDialog: boolean;\r\n}\r\n\r\nclass MenuNavigation extends React.Component {\r\n\r\n аuthService = new AuthService();\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isVisibleConfirmDialog: false\r\n };\r\n }\r\n\r\n handleLogout = () => {\r\n this.props.onDrawarMenuLogoutClick();\r\n }\r\n\r\n handleMenuItemClick = (menuUrl) => {\r\n this.props.history.push(menuUrl);\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n }\r\n\r\n public render() {\r\n\r\n const UserMenus =\r\n <>\r\n
  • this.handleMenuItemClick('/user/profile')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Profile')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • this.handleMenuItemClick('/user/medicines')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('My Medicines')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • this.handleMenuItemClick('/user/diseases')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('My Diseases')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • this.handleMenuItemClick('/user/prescriptions')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Doctors prescriptions')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • this.handleMenuItemClick('/user/condition')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('My Condition')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • this.handleMenuItemClick('/user/family')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('My Family')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • this.handleMenuItemClick('/user/labresults')}>\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Laboratory result')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n\r\n
  • \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {Translate('Logout')}\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
  • \r\n ;\r\n\r\n return (\r\n <>\r\n\r\n
    \r\n\r\n

    \r\n {this.аuthService.isAuthenticated() ?\r\n
    this.handleMenuItemClick('/user/dashboard')} className=\"menu-dashboard\">\r\n {this.аuthService.getUserName()}\r\n \r\n
    \r\n : Translate('Menu')}\r\n

    \r\n\r\n
      \r\n\r\n {this.аuthService.isAuthenticated() ?\r\n UserMenus :\r\n
    • this.handleMenuItemClick('/login')}>\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {Translate('Login')}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n }\r\n\r\n
    \r\n\r\n
      \r\n\r\n
    • this.handleMenuItemClick('/cookie-policy')}>\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {Translate('Cookies Policy')}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n\r\n
    • this.handleMenuItemClick('/personal-data-policy')}>\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {Translate('Personal Data Policy')}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n\r\n
    \r\n\r\n
      \r\n\r\n
    • this.handleMenuItemClick('/settings')}>\r\n
      \r\n \r\n
      \r\n
      \r\n
      \r\n {Translate('Settings')}\r\n
      \r\n
      \r\n
      \r\n \r\n
      \r\n
    • \r\n\r\n
    \r\n\r\n
    \r\n
    \r\n © {new Date().getFullYear()} ICB - InterConsult Bulgaria.\r\n
    \r\n
    \r\n All rights reserved.\r\n
    \r\n
    \r\n ver. {process.env.REACT_APP_VERSION} ({process.env.NODE_ENV})\r\n
    \r\n
    \r\n
    \r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang,\r\n isUserLogged: state.common.isUserLogged\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onUserLogout: () => dispatch({ type: actionTypes.USER_LOGOUT }),\r\n }\r\n}\r\n\r\nexport default withRouter(connect(mapsStateToProps, mapDispatchToProps)(MenuNavigation));","import * as React from \"react\";\r\nimport { connect } from 'react-redux';\r\nimport * as actionTypes from '../../store/actionTypes';\r\nimport { BrowserRouter, Route, Link, NavLink, Redirect, withRouter } from \"react-router-dom\";\r\nimport NotificationComponent from './notificationComponent';\r\nimport logo01white from \"../../assets/images/logos/Logo-01-white.png\";\r\nimport AuthService from '../../services/authService';\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faBell, faBars, faChevronLeft, faSearch, faSignOutAlt, faUser, faTablets, faPills } from '@fortawesome/free-solid-svg-icons';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport MenuNavigation from '../navigation/menuNavigation';\r\nimport * as Constants from '../../common/constants';\r\nimport Badge from '@material-ui/core/Badge';\r\nimport { MuiThemeProvider, Tooltip } from '@material-ui/core';\r\nimport UserService from \"../../services/userService\";\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport Translate from '../../common/functions/translate';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport InputBase from '@material-ui/core/InputBase';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\nimport AlphabeticalFilter from '../../common/components/alphabeticalFilter/alphabeticalFilter';\r\nimport ConfirmDialog from '../../common/components/confirmDialog/confirmDialog';\r\nimport { constants } from \"http2\";\r\n\r\ninterface IProps {\r\n onSearchLetterClick: any,\r\n onSearchNameClick: any,\r\n lang: string,\r\n isUserLogged: boolean,\r\n history: any,\r\n isNotificationUpdated: boolean,\r\n setNotifications: any,\r\n classes: any,\r\n onUserLogout: any,\r\n isUserJustLogged: boolean,\r\n setUserJustLoggedToFalse: any\r\n}\r\n\r\ninterface IState {\r\n searchText: string,\r\n isDrawerOpen: boolean,\r\n notificationsCount: number,\r\n isLoading: boolean,\r\n isAuthenticated: boolean,\r\n isNotificationDrawerOpen: boolean,\r\n scroll: any,\r\n isSearchDrawerOpen: boolean,\r\n isVisibleConfirmDialog: boolean,\r\n}\r\n\r\nclass HeaderComponent extends React.Component {\r\n userService = new UserService();\r\n authService = new AuthService();\r\n growl: any;\r\n intervalId: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n searchText: '',\r\n isDrawerOpen: false,\r\n notificationsCount: 0,\r\n isLoading: false,\r\n isAuthenticated: this.authService.isAuthenticated(),\r\n isNotificationDrawerOpen: false,\r\n scroll: null,\r\n isSearchDrawerOpen: false,\r\n isVisibleConfirmDialog: false\r\n }\r\n }\r\n\r\n componentDidMount() {\r\n if (this.authService.isAuthenticated()) {\r\n this.getNotifications();\r\n this.repeatGetData();\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.isUserLogged != this.props.isUserLogged && this.authService.isAuthenticated()) {\r\n this.setState({\r\n isAuthenticated: this.authService.isAuthenticated()\r\n }, () => this.updateNotifications())\r\n }\r\n\r\n if (prevProps.isNotificationUpdated != this.props.isNotificationUpdated) {\r\n if (this.authService.isAuthenticated()) {\r\n this.updateNotifications();\r\n }\r\n }\r\n if (this.props.isUserJustLogged) {\r\n this.growl.show({ severity: 'success', summary: Translate('You have successfully logged in.'), life: 5000 });\r\n this.props.setUserJustLoggedToFalse();\r\n }\r\n }\r\n\r\n getNotifications = () => {\r\n if (this.state.isAuthenticated && this.authService.isAuthenticated()) {\r\n this.userService.getAllUserNotifications(this.props.lang)\r\n .then(\r\n (data) => {\r\n if (data != this.state.notificationsCount) {\r\n this.setState({\r\n notificationsCount: data\r\n });\r\n }\r\n if (this.props.isNotificationUpdated) {\r\n this.props.setNotifications();\r\n }\r\n },\r\n error => {\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n }\r\n );\r\n }\r\n else {\r\n this.clearInterval();\r\n }\r\n }\r\n\r\n repeatGetData = () => {\r\n let interval = 1 * 60 * 1000;\r\n this.intervalId = setInterval(() => {\r\n if (this.authService.isAuthenticated()) {\r\n this.getNotifications();\r\n this.authService.checkForRefreshToken();\r\n }\r\n }, interval);\r\n }\r\n\r\n clearInterval = () => {\r\n if (this.intervalId) {\r\n clearInterval(this.intervalId);\r\n }\r\n }\r\n\r\n updateNotifications = () => {\r\n this.clearInterval();\r\n if (this.authService.isAuthenticated()) {\r\n this.getNotifications();\r\n this.repeatGetData();\r\n }\r\n }\r\n\r\n handleAlphaIndexChange = (e, letter: string) => {\r\n e.preventDefault();\r\n this.setState({ isSearchDrawerOpen: false });\r\n this.props.onSearchLetterClick(letter);\r\n }\r\n\r\n handleChange = (key, value) => {\r\n this.setState({ searchText: value });\r\n };\r\n\r\n handleSearchButtonClick = () => {\r\n const { searchText } = this.state;\r\n if (searchText) {\r\n this.setState({ isSearchDrawerOpen: false })\r\n this.props.onSearchNameClick(searchText);\r\n }\r\n }\r\n\r\n handleKeyPress = (e) => {\r\n if (e.key === 'Enter') {\r\n this.setState({ isSearchDrawerOpen: false })\r\n this.handleSearchButtonClick();\r\n }\r\n }\r\n\r\n handleBackClick = (e) => {\r\n e.preventDefault();\r\n this.props.history.goBack();\r\n }\r\n\r\n notificationError = (error) => {\r\n this.setState({ isNotificationDrawerOpen: false });\r\n this.growl.show({ severity: 'error', summary: error.message });\r\n }\r\n\r\n openNotificationDrawer = () => {\r\n //if (this.state.notificationsCount > 0) {\r\n this.setState({ isNotificationDrawerOpen: true });\r\n //}\r\n }\r\n\r\n handleLogout = () => {\r\n this.setState({\r\n isVisibleConfirmDialog: true\r\n });\r\n }\r\n\r\n logoutConfirmClick = () => {\r\n this.authService.logout();\r\n this.props.onUserLogout();\r\n this.props.history.push('/');\r\n this.setState({\r\n isVisibleConfirmDialog: false,\r\n isAuthenticated: this.authService.isAuthenticated()\r\n })\r\n }\r\n\r\n handleLogin = () => {\r\n this.props.history.push('/login');\r\n }\r\n\r\n render() {\r\n const { searchText, notificationsCount, isLoading } = this.state;\r\n const SearchContent = React.forwardRef((props, ref) => );\r\n const NotificationContent = React.forwardRef((props, ref) => \r\n \r\n );\r\n const LogoutContent = React.forwardRef((props, ref) => );\r\n const LoginContent = React.forwardRef((props, ref) => );\r\n\r\n const backButton = location.pathname != '/' ?\r\n
    this.handleBackClick(e)}>\r\n \r\n
    \r\n : null;\r\n\r\n return (\r\n <>\r\n this.growl = el} />\r\n
    \r\n
    \r\n\r\n
    \r\n {window.innerWidth < Constants.device.desktop ? backButton :\r\n <>\r\n {backButton}\r\n
    this.setState({ isDrawerOpen: true })}>\r\n \r\n
    \r\n \r\n
    \r\n {window.innerWidth < Constants.device.desktop ?\r\n : null}\r\n {Translate('Medicines')}\r\n
    \r\n
    \r\n\r\n \r\n
    \r\n {window.innerWidth < Constants.device.desktop ?\r\n : null}\r\n {Translate('Interactions')}\r\n
    \r\n
    \r\n }\r\n
    \r\n\r\n
    \r\n \"logo\"\r\n
    \r\n\r\n
    \r\n\r\n
    this.setState({ isSearchDrawerOpen: true })}>\r\n \r\n \r\n \r\n
    \r\n\r\n {this.authService.isAuthenticated() ?\r\n <>\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n
    \r\n \r\n :\r\n
    \r\n \r\n \r\n \r\n
    }\r\n\r\n
    this.setState({ isDrawerOpen: true })}>\r\n \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n this.setState({ isNotificationDrawerOpen: false })}\r\n onScroll={(el) => this.setState({ scroll: el.nativeEvent })}\r\n >\r\n \r\n this.setState({ isNotificationDrawerOpen: false })}\r\n />\r\n
    \r\n \r\n \r\n\r\n this.setState({ isDrawerOpen: false })}>\r\n this.setState({ isDrawerOpen: false })}\r\n onKeyDown={() => this.setState({ isDrawerOpen: false })}>\r\n\r\n {/* \r\n // @ts-ignore */}\r\n \r\n
    \r\n \r\n\r\n this.setState({ isSearchDrawerOpen: false })}\r\n >\r\n \r\n
    \r\n
    \r\n

    {Translate('SearchMedicineInDatabase')}

    \r\n \r\n this.handleChange('searchByName', e.target['value'])}\r\n onKeyPress={this.handleKeyPress}\r\n value={searchText ? searchText : \"\"}\r\n />\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n

    {Translate('BrowseAlphabetically')}

    \r\n \r\n
    \r\n
    \r\n \r\n \r\n\r\n {this.state.isVisibleConfirmDialog ?\r\n { this.logoutConfirmClick() }}\r\n noClick={() => { this.setState({ isVisibleConfirmDialog: false }) }}>\r\n {Translate(\"Are you sure you want to logout\")}\r\n \r\n : null}\r\n \r\n )\r\n }\r\n}\r\n\r\nconst mapsStateToProps = state => {\r\n return {\r\n lang: state.common.lang,\r\n isUserLogged: state.common.isUserLogged,\r\n isNotificationUpdated: state.common.isNotificationUpdated,\r\n isUserJustLogged: state.common.isUserJustLogged,\r\n };\r\n}\r\n\r\nconst mapDispatchToProps = dispatch => {\r\n return {\r\n onSearchNameClick: (medicineSearchName) => dispatch({ type: actionTypes.MEDICINE_SEARCH_BY_NAME, medicineSearchName: medicineSearchName }),\r\n onSearchLetterClick: (medicineSearchLetter) => dispatch({ type: actionTypes.MEDICINE_SEARCH_BY_LETTER, medicineSearchLetter: medicineSearchLetter }),\r\n onUserLogout: () => dispatch({ type: actionTypes.USER_LOGOUT }),\r\n setNotifications: () => dispatch({ type: actionTypes.SET_USER_NOTIFICATIONS }),\r\n setUserJustLoggedToFalse: () => dispatch({ type: actionTypes.SET_USER_JUST_LOGGED_TO_FALSE }),\r\n }\r\n}\r\n\r\nexport default withRouter(connect(mapsStateToProps, mapDispatchToProps)(HeaderComponent));","import * as React from 'react';\r\nimport { Button } from \"primereact/button\";\r\nimport Translate from '../../functions/translate';\r\n\r\nconst offlineStatusComponent = (props) => {\r\n\r\n const offlineStatus =\r\n
    \r\n {Translate('Application is working Offline.')}\r\n
    ;\r\n\r\n let offlineMode = !navigator.onLine;\r\n\r\n return (\r\n <>\r\n {offlineMode ? offlineStatus : null}\r\n \r\n )\r\n}\r\n\r\nexport default offlineStatusComponent;","import * as React from \"react\";\r\nimport Translate from '../../common/functions/translate';\r\nimport { Link } from \"react-router-dom\";\r\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\r\nimport { faGoogle, faFacebook } from '@fortawesome/free-brands-svg-icons';\r\nimport logo01white from \"../../assets/images/logos/Logo-01-white.png\";\r\n\r\ninterface IProps {\r\n}\r\n\r\ninterface IState {\r\n}\r\n\r\nclass FooterComponent extends React.Component {\r\n\r\n\r\n\tpublic render() {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{/* \"logo\" */}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tContacts\r\n\t\t\t\t\t\t\t7, Indzhe Voivoda Str.
    1309 Sofia, Bulgaria
    \r\n\t\t\t\t\t\t\t+359 2 920 11 20\r\n\t\t\t\t\t\t\ticb@icb.bg\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tSales and Marketing\r\n\t\t\t\t\t\t\t+359 2 812 92 16\r\n\t\t\t\t\t\t\tsales@icb.bg\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\tFollow us\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t© 2019 ICB - InterConsult Bulgaria All rights reserved\r\n
    \r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t{Translate('Cookies Policy')} | {Translate('Personal Data Policy')}\r\n\t\t\t\t\t\t
    \r\n\t\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t)\r\n\t}\r\n}\r\n\r\nexport default FooterComponent;","import * as React from 'react';\r\nimport * as Modal from '../../common/modalDialog';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport * as Constants from '../../common/constants';\r\nimport { MuiThemeProvider, createMuiTheme } from \"@material-ui/core\";\r\nimport ReactWebChat, { createDirectLine, createStore } from 'botframework-webchat';\r\nimport Spinner from '../../common/components/spinner/spinner';\r\nimport ChatBotService from '../../services/chatBotService';\r\nimport Growl from '../../common/components/alertMessage/growl';\r\nimport { DirectLine } from 'botframework-directlinejs';\r\nimport AuthService from '../../services/authService';\r\nimport logo01icon from \"../../assets/images/logos/Logo-01-icon.png\";\r\nimport Translate from '../../common/functions/translate';\r\nimport logoCircle from \"../../assets/images/logos/web_hi_res_512.png\";\r\nimport capture from \"../../assets/images/icons/filetypes/tempsnip.png\"\r\n\r\ninterface IProps {\r\n isVisible: boolean;\r\n closeDialog: any;\r\n}\r\n\r\ninterface IState {\r\n token: any;\r\n isLoading: boolean;\r\n}\r\n\r\nclass ChatComponent extends React.Component {\r\n chatBotService = new ChatBotService();\r\n authService = new AuthService();\r\n growl: any;\r\n chat: any;\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.state = {\r\n token: null,\r\n isLoading: false\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n this.setState({\r\n isLoading: true\r\n });\r\n\r\n this.chatBotService.getChatToken().then(\r\n (data: any) => {\r\n if (data) {\r\n this.setState({\r\n isLoading: false,\r\n token: data\r\n });\r\n }\r\n })\r\n .catch(error => {\r\n this.growl.show({ severity: 'error', summary: error.message ? error.message : 'Uncaught error' });\r\n this.setState({\r\n isLoading: false\r\n });\r\n });\r\n }\r\n\r\n //createDirectLine({ token: token })\r\n\r\n handleCancelButton = () => {\r\n this.props.closeDialog();\r\n }\r\n\r\n shouldComponentUpdate(nextProps, nextState) {\r\n if (this.props.isVisible != nextProps.isVisible) {\r\n return true;\r\n }\r\n\r\n if (nextState.token != this.state.token) {\r\n return true;\r\n }\r\n\r\n if (nextState.isLoading != this.state.isLoading) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n render() {\r\n const { isLoading, token } = this.state;\r\n let userId: number = 0;\r\n let lang: string = 'bg-BG';\r\n let userInitials: string = '';\r\n let chatbot: string = Translate('Chatbot');\r\n\r\n if (this.authService.isAuthenticated()) {\r\n userId = this.authService.getUserId();\r\n let userName: string = this.authService.getUserName();\r\n let userNameSplit = userName.split(' ');\r\n\r\n if (userNameSplit && userNameSplit.length == 1) {\r\n userInitials = userNameSplit[0].slice(0, 1);\r\n }\r\n\r\n if (userNameSplit && userNameSplit.length == 2) {\r\n userInitials = userNameSplit[0].slice(0, 1) + userNameSplit[1].slice(0, 1);\r\n }\r\n }\r\n\r\n let fromlocalstorage = localStorage.getItem('lang');\r\n\r\n if (fromlocalstorage && fromlocalstorage != '') {\r\n\r\n if (fromlocalstorage == 'bg') {\r\n lang = 'bg-BG';\r\n }\r\n\r\n if (fromlocalstorage == 'en') {\r\n lang = 'en-US';\r\n }\r\n }\r\n\r\n const store = createStore({}, ({ dispatch }) => next => action => {\r\n if (action.type === 'DIRECT_LINE/CONNECT_FULFILLED') {\r\n dispatch({\r\n type: 'WEB_CHAT/SEND_EVENT',\r\n payload: {\r\n name: 'webchat/join',\r\n value: { language: window.navigator.language }\r\n }\r\n });\r\n }\r\n return next(action);\r\n })\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n \"logo\"\r\n

    MedXchange {chatbot.toLowerCase()}

    \r\n
    \r\n
    \r\n \r\n {isLoading ? : null}\r\n this.growl = el} />\r\n {token ?\r\n this.chat = el}\r\n locale={lang}\r\n directLine={createDirectLine({ token: token })}\r\n store={store}\r\n styleOptions={{\r\n sendTypingIndicator: true,\r\n hideUploadButton: true,\r\n bubbleFromUserBackground: '#2196f3',\r\n bubbleFromUserTextColor: 'white',\r\n bubbleBorderRadius: 10,\r\n bubbleFromUserBorderRadius: 10,\r\n botAvatarImage: logoCircle,\r\n userAvatarImage: userId == 0 ? capture : null,\r\n userAvatarInitials: userInitials\r\n }}\r\n userID={userId.toString()}\r\n username={lang}\r\n /> : null}\r\n \r\n \r\n
    \r\n )\r\n }\r\n}\r\n\r\nexport default ChatComponent;","import * as React from \"react\";\nimport MainNavigation from \"./components/navigation/mainNavigation\";\nimport Content from \"./components/content/content\";\nimport HeaderComponent from './components/header/headerComponent';\nimport { BrowserRouter, Route, Link, Switch, Redirect, withRouter } from \"react-router-dom\";\nimport CookieConsent from \"react-cookie-consent\";\nimport OfflineStatusComponent from './common/components/offlineStatus/offlineStatusComponent';\nimport Fab from '@material-ui/core/Fab';\nimport Chat from '@material-ui/icons/Chat';\nimport \"primereact/resources/primereact.min.css\";\nimport \"primereact/resources/themes/nova-light/theme.css\";\nimport \"primeicons/primeicons.css\";\nimport \"primeflex/primeflex.css\";\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport DateFnsUtils from '@date-io/date-fns';\nimport blue from '@material-ui/core/colors/blue';\nimport * as Constants from './common/constants';\nimport FooterComponent from './components/footer/footer';\nimport ChatComponent from './components/chatBot/chatComponent';\nimport Translate from \"./common/functions/translate\";\n\nconst theme = createMuiTheme({\n overrides: {\n MuiFormControl: {\n marginNormal: {\n marginTop: 5,\n marginBottom: 0,\n width: '100%'\n },\n root: {\n width: '100%'\n }\n },\n MuiFormControlLabel: {\n root: {\n marginLeft: '0px'\n }\n },\n MuiIconButton: {\n root: {\n padding: '0px',\n paddingRight: '5px'\n }\n },\n MuiTypography: {\n h6: {\n fontSize: '1.2em'\n }\n },\n MuiDialog: {\n paper: {\n margin: 0,\n maxWidth: '90% !important'\n },\n paperFullWidth: {\n width: '100%'\n }\n },\n MuiFab: {\n root: {\n boxShadow: '1px'\n }\n }\n },\n palette: {\n primary: blue\n },\n});\n\ninterface IState {\n isVisibleChat: boolean\n}\n\ninterface IProps {\n location?: any,\n match?: any\n}\n\nclass App extends React.Component {\n\n constructor(props: IProps) {\n super(props);\n this.state = {\n isVisibleChat: false\n }\n }\n\n public render() {\n if (window.innerWidth >= Constants.device.desktop) {\n theme.overrides = { ...theme.overrides, MuiDialog: { paper: { maxWidth: '80% !important', margin: 0 } } }\n }\n\n let isChatbotMobilePath = window.location.pathname && window.location.pathname == '/chatbot';\n\n return (\n <>\n {isChatbotMobilePath ?\n \n \n \n :\n \n \n \n
    \n\n
    \n this.setState({ isVisibleChat: true })} >\n \n \n {window.innerWidth >= Constants.device.desktop ?\n
    \n {Translate('Chatbot')}\n
    \n : null}\n
    \n\n {this.state.isVisibleChat ?\n this.setState({ isVisibleChat: false })}>\n : null}\n\n
    \n \n
    \n\n \n\n
    \n \n
    \n\n
    \n \n
    \n\n
    \n \n
    \n\n \n We have placed cookies on your device to help make this website better. If you don't close the website we’ll assume you’re OK to continue.{\" \"}\n Read more\n \n\n
    \n
    \n
    \n\n
    \n }\n \n\n\n );\n }\n}\n\nexport default App;\n","// tslint:disable:no-console\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(\n process.env.PUBLIC_URL!,\n window.location.toString()\n );\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\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://goo.gl/SC7cgQ'\n );\n });\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl: string) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker) {\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 })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl: string) {\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 * as actionTypes from '../actionTypes';\r\n\r\nconst initialState = {\r\n lang: localStorage.getItem('lang') ? localStorage.getItem('lang') : 'bg',\r\n medicineSearchLetter: '',\r\n medicineSearchName: '',\r\n isUserLogged: false,\r\n isUserJustLogged: false,\r\n isNotificationUpdated: false,\r\n medicineSearchActiveIngredient: ''\r\n}\r\n\r\nconst commonReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.LANG_CHANGE:\r\n return {\r\n ...state,\r\n lang: action.lang\r\n }\r\n case actionTypes.MEDICINE_SEARCH_BY_LETTER:\r\n return {\r\n ...state,\r\n medicineSearchLetter: action.medicineSearchLetter\r\n }\r\n case actionTypes.MEDICINE_SEARCH_BY_NAME:\r\n return {\r\n ...state,\r\n medicineSearchName: action.medicineSearchName\r\n }\r\n case actionTypes.USER_LOGIN:\r\n return {\r\n ...state,\r\n isUserLogged: true,\r\n isUserJustLogged: true\r\n }\r\n case actionTypes.SET_USER_JUST_LOGGED_TO_FALSE:\r\n return {\r\n ...state,\r\n isUserJustLogged: false\r\n }\r\n case actionTypes.USER_LOGOUT:\r\n return {\r\n ...state,\r\n isUserLogged: false\r\n }\r\n case actionTypes.SET_USER_NOTIFICATIONS:\r\n return {\r\n ...state,\r\n isNotificationUpdated: false\r\n }\r\n case actionTypes.NOTIFICATION_ADDED:\r\n return {\r\n ...state,\r\n isNotificationUpdated: true\r\n }\r\n\r\n case actionTypes.MEDICINE_SEARCH_BY_ACTIVE_INGREDIENT:\r\n return {\r\n ...state,\r\n medicineSearchActiveIngredient: action.medicineSearchActiveIngredient\r\n }\r\n }\r\n\r\n return state;\r\n}\r\n\r\nexport default commonReducer;","import 'react-app-polyfill/ie11';\nimport * as React from 'react';\nimport * as ReactDOM from 'react-dom';\n\nimport App from './App';\nimport './assets/css/layout.css';\nimport './assets/css/index.css';\nimport registerServiceWorker from './registerServiceWorker';\n\nimport { createStore, combineReducers, applyMiddleware, compose } from 'redux';\nimport { Provider } from 'react-redux';\nimport commonReducer from './store/reducers/commonReducer';\n\n//import axios from 'axios';\n\n// Logs Requests and Responses\n// axios.interceptors.request.use(request => {\n// console.log(request);\n// return request;\n// }, error => {\n// console.log(error);\n// return Promise.reject(error);\n// });\n\n// axios.interceptors.response.use(response => {\n// console.log(response);\n// return response;\n// }, error => {\n// console.log(error);\n// return Promise.reject(error);\n// });\n\nconst rootReducer = combineReducers({\n common: commonReducer\n})\n\nconst composeEnhancers = window['__REDUX_DEVTOOLS_EXTENSION_COMPOSE__'] || compose;\n\nconst store = createStore(rootReducer, composeEnhancers(applyMiddleware()));\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root') as HTMLElement\n);\nregisterServiceWorker();\n\n\n","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"static/media/web_hi_res_512.79f34d7c.png\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANoAAADaCAIAAABPf8uMAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAnKSURBVHhe7d17TJX3Hcdxqqt4aUEOiAgDUQTkKspVkAKlatkWcS52urq5tlndHzNZ1qVZTfbHauf4c93WdvtrsXWRpl0Dronxgki9XxAERS5FURSp5VJQqbab2Rf5mqIoiOXA5/f8Pq80T5/vE9vzOw9vn3OUwzmPxeSs9SDCME7/TQSAORIQ5khAmCMBYY4EhDkSEOZIQJgjAWGOBIQ5EhDmSECYIwFhjgSEORIQ5khAmCMBYY4EhDkSEOZIQJgjAWGOBIQ5EhDmSECYIwFhjgSEORIQ5khAmCMBYY4EhDkSEOZIQJgjAWGOBIQ5EhDmSECYIwFhjgSEORIQ5khAmCMBYY4EhDkSEOZIQJgjAWGOBIQ5EhDmSECYIwFhjgSEORIQ5khAmCMBYY4E5LGYnLW6S0OZFTIjLyfV18fbz+UlW1+f3q0cb+/sau/slm1bR+92e+mRcxcu9/0nNCzMcWjR4TPTk2KXZCVHR4TqoaHU1DftLDt28PipmobzeogeAnMczLIlGavyn46PCtN5+KrONBYW79m284DONCjmeH+LUuLWrFgiW52/nf1Hq7d8tFO2OtMDMMd7RYaFrF25VK6LOo8cuUZu/mBHXeMFnWmA8f6zEnSXPDxW/iB702u/mBc9R+cRJaEvzU6+eq1HnlnqIbobc/zGxldf+uVP8yd6TtDZDeR/nr0wYcZ039IDFXqI+uGDtSr+56awmYE6uF/j+Zb8FzboQHfwr8F7HSh6azRbFHJzcqM60B3M0aNgwzpvryk6jCK5UblpHeg22587vvDjvJ8/96wOoy5idvCXN25Wnv5UZ+tZneOyJRm///XPdBgj6UmxFy9/XtfYrLPd7H2wDvB3/ebl53QYU7IMWYwOdrM3x9X5uX6u3hdAjDlZhixGB7tZmuOskBmrkAqQxciSdLCYpTnKl3/K5Ik6AJDFQP32GCs25hgdEbo6/2kdYMiSHv4FbE5lY44ZyXHjxsHdcVmSLEwHW9mYY9r8KN0DA7uwUWNdjl5PTkldEK0DGFmYLE8HK1mXY3pSrO5BAl+eu1mYY4zuQQJfnrtZl2NMxCzdgwS+PHezLsfgQH/dgwS+PHezK0dfH+/Jkzx1gCTL6/vZbTvZlWNw4DTdA2bEIt3EthwNeCi0+fGaOcJhjrZobrmie8CMWKSbMEc4zNEWzS2f6x4wIxbpJnbl2N7Z1fPlTR0gyfJkkTrYx64cBfhDoc2P1MK6HKvONOoeJPDluZt1OZYdqtQ9SODLczfrciyvqtc9SODLczfrcrx6vWcv6hVIFibL08FK1uUoTqBegWAXNmpszPFwRc2tW7d0gCFLkoXpYCsbc6ypb9pavEcHGLIkviuujTmKwuKS6z03dAAgi5El6WAxS3M8d+Ey1JdfFsNPRhKW5ii2Fpe0dUB8O06WIYvRwW725th6peOdd4t0GFOyDFmMDnaz+u1GT9c1+fp4x0aO5Q/vvb+t9O3NEL8rENh7deyz8c+bx/C9kOWmZQE6EHMUa9a/MSavOpMblZvWgW5jjr1Svr/uSMUZHUaF3JzcqA50Bz91S23beaCr+1pmarzO7vSnv2554833dKB+mOM3qmvP1tQ3LYiLeGLKJD000uRP0L/b9I//7DqoM92NOd6l6WLr4ROnJ030jAwL0UMjRy7Af/zLe+XVtr9OYhD8TML74+dZjwnmOJhlSzJWL8+Nmztb5+GTJwBbi0r4af8PiTkOLSFmTk76/KyFCXNCg/TQUD5tulR2qLL0YAU/4G1YmOMwRIYF5y5K9PXx9nN5ydbXp3crx9s7u9o7u2Xb1tG7Ldlfzg91ezTMkYDwr8EJCHMkIMyRgDBHAsIcCQhzJCDW/UXPRM8JWWnzYufO9vXxck316tu6fLwe/854/RUeHh9t/2RX2fF9R6t0HgmZKfGLs5JW5D2ls4fH1//9X0dnd8cX3e13tqdqz5YdPnnj5lf6K+xjS44B/q60BdGZqfOWZiXroaFcuPTZofLTRyvO7Cg7poeGT24uZX7UwsSYkKDpemgocnP7jpw8fKLGwh+gcX6Oi5LjVi3PzV746C9cut5zY/+x6spTDZda21o+a5Pt1Wv3fyedJ5+YHBTgFzjdT7YJseFy09/mQ9z3HqosLCqRm9bZAk7OMTE+YlV+bl5Oqs4j5+ZXX0uRff/IKBX2/eM54fG+XzCCtpceKSwuseSdzZyZY8Ts4DU/Wtz/iZrp5Onsln/vqj/r8G+FO/Dlt9/LTSvYsC4xPlJnR4gKn5m7KPFK+xcN5y7qISdyWo7rX1zx2q+enzzp0Z+xwZI7tfippPHjx8mfrvSQ4zgqx4INL/9k+TM6OFRSfGRIkP/ufeU6O4tzcvx7wSvPZCbp4GjyzDg+Kuzj3Yd0dhCHfFdm7cpnR+rnWowgd1busg4O4oSrozzH3/jqSzpYIyM5tq6x2WFvw2f81XFBXMSbr6/XwTJyx+Xu6+AIZuc43c/n9d++qIOV5O7LSdDBfGbn+PyKxaHBATpYSe6+nAQdzGdwjpFhIWsc9JV4ZHIS3PGeGWPC4BzlyzDBDd8jNo6cBMf8tjQ1x7QF0T/My9TBenIq5IToYDJTc+TD9D2ccUKMzPG7M6Zlp8/XgW6TEyKnRQdjGZljVprTXoU0IhxwWozMcVGqRd8PfHgOOC3m5Thpomdmymi8ZbJx5LTIydHBTOblmMNnjQ9m+skxL8eo8Jm6RwOYfnLMy9HXx0v3aADTT455ObqmMscHMv3k8OroKLw6jjZeHQfBq+Noc/Hq+GCmnxzzcuz/3k50D9NPjnk5koMxRwLCHAkIcyQgzJGAMEcCwhwJCHMkIObl2NbRpXs0gOknx7wcW1rbdI8GMP3kmJfj8ao63aMBTD855uVYXXtW92gA00+OeTnu+uT4scpaHagfOS1ycnQwk3k5inc/3KF71I8DTouR737b1Nwq2+SEuX0jibc3F33w8V4djGXqmzEfO1nb2HRpaXaKznZ75Q9vFRbv0cFkBr83eOP5ljMN56e5pgYF+Okh+8jzxYK//Wv3fod8rocTPgQuLyc1MT4iOjw0MMDPz+WtR52rraOrpbWtpqGpvKp+e+kRPeoItnyAMBnByD9Zk1MxRwLCHAkIcyQgzJGAMEcCwhwJCHMkIMyRgDBHAsIcCQhzJCDMkYAwRwLCHAkIcyQgzJGAMEcCwhwJCHMkIMyRgDBHAsIcCQhzJCDMkYAwRwLCHAkIcyQgzJGAMEcCwhwJCHMkIMyRgDBHAsIcCQhzJCDMkYAwRwLCHAkIcyQgzJGAMEcCwhwJCHMkIMyRgDBHAsIcCQhzJCDMkYAwRwLCHAkIcyQgzJFgeHj8H0UPjEo0v07NAAAAAElFTkSuQmCC\"","module.exports = \"data:image/jpeg;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\""],"sourceRoot":""}