{"version":3,"sources":["Components/Logging/TelemetryService.ts","Components/Pages/Errors/ErrorBoundary.tsx","Components/Shared/Loading.tsx","Components/Services/AjaxHelper.ts","Components/Services/AdministrationService.ts","DataClasses/GenericUser.ts","Components/Pages/Errors/Unauthorized.tsx","Configuration/AuthorizationPolicies.ts","Configuration/SharedStyling.ts","Utilities/BaseFroalaConfig.ts","Components/Shared/AlertDialog.tsx","Components/Pages/LegalAgreementSign.tsx","Components/Pages/UpdateYourTitle.tsx","Hooks/ScrollToTop.tsx","DataClasses/SharedData.ts","Components/Authorization/AuthorizedRoute.tsx","Components/Services/UserManagerService.ts","Components/Machines/AllUsersMachine.ts","Components/Shared/ErrorDialog.tsx","Components/Services/ExceptionService.ts","Components/Services/SubmissionsService.ts","Components/Shared/LoadingDataTable.tsx","Configuration/Setting.ts","Components/Pages/AllUsers.tsx","Components/Services/AnnouncementsService.ts","Components/Services/EventsService.ts","Utilities/SharedUtility.ts","Components/Shared/Message.tsx","Components/Pages/BulkUploadDropzone.tsx","Components/Pages/Dashboard.tsx","Components/Pages/Help.tsx","Components/Pages/Home.tsx","Components/Pages/ManageUser.tsx","Components/Services/DbService.ts","Components/Services/ReportsService.ts","Components/Shared/ProcessingDisplay.tsx","DataClasses/SubmissionData.ts","Components/Pages/BulkUpload.tsx","Components/Services/OrganizationService.ts","Components/Pages/BulkDownload.tsx","Components/Shared/Constants.tsx","Components/Pages/BulkMarkFinal.tsx","Components/Pages/BulkAttestation.tsx","Components/Pages/Reports.tsx","Components/Pages/ManageUserRoles.tsx","State/SubmissionListing/Action.ts","Components/Pages/SubmissionListing.tsx","Components/Shared/BackNavigation.tsx","Components/Pages/Reports/FilesUploadReport.tsx","Components/Pages/AnnouncementsList.tsx","Components/Pages/AppInfo.tsx","Components/Pages/ImportSubmissionData.tsx","Components/Pages/MeasureViewer.tsx","Utilities/ProductTypeTranslation.ts","Components/Pages/Subcomponents/SubmissionHome/SubmissionHome.Renderings.tsx","Components/Pages/Subcomponents/SubmissionHome/SubmissionHome.AllDownloads.tsx","Components/Pages/Subcomponents/SubmissionHome/SubmissionHome.LiveMeasureDisplay.tsx","Components/Pages/Subcomponents/SubmissionHome/SubmissionHome.AuditReviewTool.tsx","Components/Pages/Subcomponents/SubmissionHome/SubmissionHome.AttestationSteps.tsx","Images/CheckMarkCircle.png","Components/Pages/SubmissionHome.tsx","Components/Pages/Logs.tsx","Components/Pages/SubmissionAdministration.tsx","Components/Pages/Auditors.tsx","Components/Pages/SubmissionDataExtract.tsx","Components/Pages/LegacyFileConverter.tsx","Components/Pages/VendorMeasureGuidList.tsx","Components/Pages/CacheManagement.tsx","Components/Pages/Administration.tsx","State/Authentication/index.ts","Components/Pages/UsersList.tsx","Components/Pages/Reports/HosVendorSubmissionStatusReport.tsx","Components/Pages/Reports/CahpsVendorSubmissionStatusReport.tsx","Components/Pages/Reports/ActivityReport.tsx","Components/Pages/Reports/SubmissionsDataSummaryReport.tsx","Components/Pages/GenericRedesignUploader.tsx","Components/Pages/BulkUserManagement.tsx","Components/Pages/Reports/ValidationReport.tsx","Components/Pages/Reports/SubmissionCountOnMeasureReport.tsx","Components/Pages/Reports/AccountPage.tsx","Components/Pages/Reports/AccreditationStatusReport.tsx","Components/Root/Main.tsx","Components/Authentication/LoginButton.tsx","Components/Shared/AccountMenu.tsx","Components/Root/NavMenuText.tsx","Images/logo@2x.png","Components/Root/Header.tsx","Components/Root/Sidebar.tsx","Components/Footer/CopyrightBlock.tsx","Components/Footer/PrivacyPolicy.tsx","Components/Footer/CenterLinks.tsx","Images/logo-white@2x.png","Components/Footer/LogoAddress.tsx","Components/Footer/Footer.tsx","Components/Root/AppWithAuthentication.tsx","Components/OpenId Connect/Callback.tsx","Components/OpenId Connect/Login.tsx","Components/OpenId Connect/Logout.tsx","Components/OpenId Connect/SilentRenew.tsx","Components/Logging/telemetry-provider.tsx","Components/Root/App.tsx","Configuration/AuthenticationConfiguration.ts","State/SubmissionListing/Reducer.ts","State/Root/RootReducer.ts","Configuration/ThemeConfiguration.ts","index.tsx"],"names":["reactPlugin","appInsights","ai","initialize","instrumentationKey","browserHistory","Error","ReactPlugin","ApplicationInsights","config","maxBatchInterval","disableFetchTracking","extensions","extensionConfig","identifier","history","loadAppInsights","ErrorBoundaryView","props","state","hasError","error","info","this","setState","trackException","severityLevel","SeverityLevel","children","React","ErrorBoundaryViewState","connect","ErrorBoundary","withStyles","theme","createStyles","flex","flexGrow","root","display","flexDirection","alignItems","justify","background","LoadingDisplay","size","progressText","Grid","container","justifyContent","item","xs","Typography","variant","color","width","height","AjaxHelper","url","headers","ajax","getJSON","pipe","retry","parseInt","process","catchError","handleError","body","post","timeout","user","access_token","errorMessage","status","message","request","console","log","EMPTY","AdministrationService","AjaxGet$","CreateHttpHeaders","fileName","groupId","AjaxPost","key","enable","text","userEmail","productYear","cacheKeysCsv","genericMapStateToProps","AuthenticationReducer","UnauthorizedInitialState","isLoading","payload","isOffseasonMode","isMaintenanceMode","UnauthorizedView","RefreshModel","classes","className","GetAdminModel","toPromise","retval","AjaxError","UnauthorizedViewState","Unauthorized","IsLoggedInPolicy","IsUserPolicy","a","IsUser","IsSystemAccessibleForUser","IsGlobalAdminPolicy","IsGlobalAdmin","IsOrgOrGlobalAdmin","IsOrgAdmin","organizationGroupTypeName","orgadmin","IsUserAdmin","HasOrgAdminRole","IsAdminForOrg","entityId","IsInSysAdminOnlyMode","role","sysGroup","profile","UM_Role","Array","filter","x","SystemGroupTypeName","SystemGroupTypeEntityId","RoleName","toLowerCase","length","indexOf","HasSignedLegalAgreement","NeedsSignerTitle","idssStyles","appLogo","paddingLeft","subNavLink","marginLeft","footerContainer","padding","marginTop","spacing","card","gridDisplay","headerRow","backgroundColor","palette","common","black","white","fontSize","primaryBlue","fontWeight","primaryBlueSmall","primaryBlueMedium","actionBlue","disabledButton","linkButton","linkButtonClear","activeLink","darkGray","submissionTitle","submissionSubtitle","submissionSubtitle1","secondaryText","paddingTop","copyIcon","cursor","noBottomMargin","marginBottom","muiTableTitleMargin","dividerPadding","submissionHomeContent","margin","bodyCopy","inactiveGray","supportingGray","backgroundGray","fullWidth","mainPanel","minHeight","flexRoot","tableRoot","overflowX","tableCellYellow","textAlign","tableCellNcqaBlue","tableCellGray","fab","squareFab","borderRadius","fabGreen","extendedIcon","marginRight","row","default","button","link","paper","minspacing","noflex","gridRowFlex","gridRowCenter","gridColumnFlexEnd","loginGrid","measureHeader","leftMeasure","verticalAlign","rightMeasure","paddingRight","arrow","paddingBottom","greenColor","redColor","darkOrangeColor","dropZone","position","border","borderColor","boxSizing","stripes","backgroundImage","animation","backgroundSize","rejectStripes","dropzoneTextStyle","uploadIconSize","dropzoneParagraph","dropzoneThumbsContainer","flexWrap","dropzoneThumb","dropzoneThumbInner","minWidth","overflow","dropzoneImg","textField","menu","minimumSpacing","submissionsDataHighlight","Default","ValidationDefault","GrayedOut","grey","Warning","Success","HighlightedNote450","fontStyle","HighlightedNote","HighlightedNoteSmall","appBar","toolbar","mixins","fixMinHeight","logo","formControl","maxWidth","chips","chip","noLabel","dialogPaper","secondary","maxHeight","defaultMargin","actionIcon","hidden","mt1","ml1","mr1","mb1","mt2","ml2","mr2","mb2","mt1Neg","ml1Neg","mr1Neg","mb1Neg","widgetNum","widgetNumVsRBorder","borderRight","widgetTxt","textDecoration","widgetTxtBlk","widgetTxtBlkVsRBorder","rightBorder","dashboardTitleGrid","circleNumber","circleNumberText","collapseBtnSmall","collapseBtn","DropzoneContainer","dropzoneText","dropzoneBtn","dialogM","dialog7080","dialogL","menuButton","hide","headerIcon","headerIconCollapse","drawer","flexShrink","whiteSpace","drawerOpen","transition","transitions","create","easing","sharp","duration","enteringScreen","drawerClose","leavingScreen","breakpoints","down","sidebarList","sidebarLogo","appTitle","content","contentShift","fakeToolbar","tabTitle","skeleton300","skeleton50","skeleton50s","errorBlock","lineHeight","browserSupport","centeredHeader","attribution","AlertDialog","idssStyle","Dialog","open","showDialog","onClose","button2Handler","DialogTitle","id","title","DialogContent","DialogContentText","description","DialogActions","isButton1Clicked","style","CircularProgress","Button","onClick","button1Handler","disabled","button1Text","autoFocus","button2Text","LegalAgreementSignView","LogOut","window","location","href","OpenLogoutConfirmDialog","events","logoutConfirmDialogOpen","CloseConfirmDialog","licenseAgreementText","redirect","to","redirectToErrorPage","Loading","direction","alignContent","Paper","model","froalaBaseConfig","AddAgreementForUser","adminModel","setRedirectState","AddLicenseAgreementForUser","resp","LegalAgreementSignWithState","LegalAgreementSignPage","UpdateYourTitleView","openEditDialog","Divider","UpdateTitlePage","ScrollToTop","pathname","useLocation","useEffect","scrollTo","SubmissionType","MessageType","AuthorizedRouteView","isAuthorized","hasSignedLegalAgreement","needsSignerTitle","authorizationPolicy","component","render","authenticationPolicy","rest","search","LegalAgreementSign","UpdateYourTitle","AuthorizedRoute","UserManagerService","userName","BasicUMGet","editUser","BasicUMPost","userToDeleteId","userRoleInfo","orgId","selectedSysGroup","selectedRoles","selectedOrgs","inputSubIds","isNewUser","funcStr","roles","orgIds","subIds","organizationId","selectedSubs","join","actionName","entityType","submissionType","action","callString","bulkAction","sysGroupType","userEmails","entityIds","copyFromUserEmail","removeExistingRoles","data","allUsersMachine","Machine","initial","states","on","OpenUserDialog","OpenManageUser","addUserDialogOpen","CloseUserDialog","manageUserOpen","CloseManageUser","OpenDeleteAllAlertDialog","OpenAddRolesToUserDialog","addRolesToUserDialogOpen","CloseAddRolesToUserDialog","deleteAllAlertDialogOpen","CloseDeleteAllAlertDialog","ErrorDialog","showError","buttonHandler","errorMsg","ExceptionService","response","JSON","stringify","querystring","require","SubmissionsService","currentSubId","vendorId","toString","GetSubmissions","measurementYear","homePayload","productLine","subId","getAllSubmissions","bulkSubs","submissions","fileTypes","attester","vendorName","submissionId","accountLevel","measure","actionType","isFileUploaded","isValidated","stageNumber","attestationFlags","attestationReportingFlags","auditDesignations","subIdStr","BulkSubmissionActionByIdsStr$","measureCode","filterValue","dataExtractionType","LoadingDataTable","cardContent","cardTitle","skeleton","skeleton2","Card","CardContent","titleText","count","doubleRowSpace","SeedTime","subListingOptions","filterType","sort","print","download","viewColumns","selectableRows","rowsPerPage","rowsPerPageOptions","AllUsersView","service","interpret","onTransition","stateMachine","userOptions","userColumns","name","options","customBodyRender","value","deleteButtonClick","buttonYesHandler","send","DeleteAllUserRoles$","targetUser","RefreshRolesForUser","handleClose","handleSave","AddUserToRoles$","map","p","getForm","formikProps","handleSubmit","handleReset","handleChange","handleBlur","touched","errors","values","isSubmitting","isValid","submitForm","onSubmit","matches","TextField","label","type","required","email","Boolean","helperText","undefined","onChange","onBlur","Fade","in","transitionDelay","unmountOnExit","validate","validator","min","max","formikHelpers","setSubmitting","AddNewUserToSystem$","initialState","manageUsersPayload","filterText","allOrgs","allVendors","allSysGroups","allRoles","isProcessing","isUserLockedOut","RefreshManageUsersModel","start","stop","subListingColumns","DoManageUser","initialValues","firstName","lastName","enableReinitialize","columns","renderManageUsers","tableData","entityName","roleType","roleName","sysGroupOption","m","orgOption","orgName","vendorOption","roleOption","addRoles","delleteAll","manageUsers","spacer","updateUser","progress","placeholder","isMulti","matchProp","simpleValue","closeOnSelect","searchable","selectedSysGroupChange","bind","selectedRolesChange","selectedOrgsChange","e","inputSubIdsChange","GetOrgForSubmissionsSummary$","allOrgsRetval","ExceptionSerivce","StandardAjaxExceptionHandler","GetOrgForVendorsSummary$","allVendorsRetval","GetAllSysGroups$","allSysGroupRetval","newValue","GetAllRolesPerSysGroup$","rolesRetval","target","DeleteUserRole$","GetRolesForUser$","targetName","IsUserLockedOut$","retVal","GetAllUsers$","LockUser$","UnLockUser$","AllUsersPageWithState","AllUsersPage","AnnouncementsService","displayOrder","startDate","stopDate","EventsService","SharedUtility","str","buf","ArrayBuffer","bufView","Uint8Array","i","strLen","charCodeAt","obj","Date","toDateString","replace","stageShortName","StatusType","variantIcon","CheckCircleIcon","WarningIcon","ErrorIcon","Information","InfoIcon","UserMessage","success","green","dark","primary","main","warning","icon","iconVariant","opacity","Icon","variantClass","AdapterLink","ref","innerRef","pendingSubmssionsColumns","tableMeta","updateValue","submissionLink","Tooltip","IconButton","Edit","pendingSubmissionsListingOptions","DashboardView","renderLink","primaryText","ListItem","divider","ListItemText","subsStatistics","organization","submission","commercial","medicaid","medicare","exchange","planLocked","auditLocked","pendingEsign","markFinal","announcements","uploadavailabilities","allowsHedisSubmission","allowsCahpsSubmission","allowsHosSubmission","allowsGenericUploads","isExploding","isLoadingStatistic","isLoadingPendingSubmissions","isLoadingEvents","isLoadingAnnouncements","pendingSubmissions","seedTime","addTime","h","w","notDoneSubmissions","shouldShowDoneDialog","shouldShowConfetti","Fab","dashboardCardContent","Skeleton","Grow","Alert","severity","getMessageContent","recentEventsList","announcementContainer","List","GetAnnouncements$","retval1","ToLocaleDateString$","GetSubmissionsStatistics$","retval0","GetUploadAvailabilities$","retval2","GetPendingSubmissions$","retval4","GetStageCleanName","submissionStatus","hasSubmissionAccess","GetEventsStrings$","retval3","DashboardViewWithState","Dashboard","listStyle","borderBottom","HelpView","ListItemIcon","FindInPage","IsDownloading","anchorEl","list","HelpPageWithState","HelpViewPage","menuContainer","HomeView","HomeViewState","defaultProp","Home","ManageUser","match","params","ManageUserPage","DashboardReducer","announcement","DbService","logLevel","fromDate","toDate","pageNumber","resultCount","transactionId","ReportsService","transactionNumber","getAll","ProcessingDisplay","validationMessageList","pgRoot","pgWrapper","pgFabProgress","orange","top","left","zIndex","pgButtonProgress","pgButtonCompleted","completed","SubmissionActionTypes","SubmissionAccreditationSanction","ValidationStatusTypes","S3FileTypes","BulkUploadDropzoneView","onDragEnter","enableDisableDropActive","onDragLeave","onDrop","acceptedFiles","rejectedFiles","setInitialState","FormData","uploadValidationMessages","CreateValidationMessage","enableDropzone","processingFiles","forEach","file","append","localTransactionId","uuidv4","req","query","uploadFileType","set","event","percent","Math","floor","isNaN","processingText","setTimeout","spinWait","end","bulkCall","GetBulkTransactions$","transactionText","finalStrings","startsWith","finalString","result","parse","fatalError","uploadDetail","fileUploaded","validationResult","validationSuccessful","messages","HEDIS","nonSurveyFiles","surveyFiles","newText","renderDownloadReportLink","isDownloading","GetApp","getUploadReport","isDownloadUploadReport","apiCall","ReportService","GetUploadReportCaller","userResponse","Str2ab$","atob","saveAs","Blob","getValidationMessageList","valMessage","dangerouslySetInnerHTML","__html","NewLinesToBreaks$","disableDropzone","showDownloadLink","filesNotProcessed","renderNonSurveyValidationStatus","div","validationStatus","NoIssues","WarningsAndErrors","Fatal","SchemaError","renderSurveySubmissionStatus","retdiv","NotSubmitted","Submitted","Processed","isDownloadValidationReport","dropzoneActive","TextareaAutosize","rowsMax","multiple","allowMultiple","accept","acceptFilesOfType","getRootProps","getInputProps","isDragActive","DropzoneContainerHeight","classNames","downloadBulkFiles","TableContainer","Table","TableHead","TableRow","TableCell","TableBody","Row","submissionID","isProcessed","fileId","submissionsToGet","GetBulkFiles$","isValidDownload","fileContents","isActive","BulkUploadDropzone","Border","justifyItems","BoxDefault","outline","outlineOffset","BoxDragOver","outlineColor","BoxIcon","BulkUploadView","uploaderType","uploadType","getHeaderText","renderByType","getSupportedFilesForTypes","primaryFileType","HOS","CAHPS","BulkUploadPageState","BulkUploadPage","OrganizationService","HEDISFileTypes","HEDIS_ResultXml","HEDIS_ResultCSV","HEDIS_Validation","HEDIS_BULK_VALIDATION","HEDIS_GeneratedDataFilledWorkbook","HEDIS_ART_Excel","HEDIS_ART_Csv","SIGNED_ATTESTATION","CAHPSFileTypes","CAHPS_ErrorReport_SubComponent","CAHPS_PreviewResultsReport_SubComponent","CAHPS_FinalDocuments_SubComponent_ZIP","CAHPSFileTypes_HEDISOnlyUser","CAHPSFileTypes_AdminUser","HOSFileTypes","HOS_Header","HOS_Detail","BulkDownloadView","isDisplayingNote","l","selectedSubmissionIndexes","submissionData","getUserInfoMessage","handleCheckboxChange","itemName","checked","downloadFileTypes","filesToDownload","allChecked","fileType","push","fileTypeId","index","findIndex","f","splice","currentStep","orgData","selectedOrganizationIndexes","downloadInProgress","downloadType","allowValidationDownload","allowResultDownload","canUserDownloadCAHPSReports","isHedisOnlyUser","userDownloadAccessibility","isDialogOpen","selectedRowsPerPage","canUserDownloadCahpsReports","getUserDownloadAccessibility","isUserHEDISOnlyUser","prevProps","ResetState","orgListingOptions","selectableRowsOnClick","selectToolbarPlacement","rowsSelected","onChangeRowsPerPage","numberOfRows","onRowSelectionChange","affectedRows","allSelectedRows","dataIndex","customToolbarSelect","submissionListColumns","submissionListingOptions","isRowSelectable","allRows","SubmissionStatus","toUpperCase","Stepper","activeStep","orientation","Step","StepLabel","StepContent","actionsContainer","SelectOrgAndContinue","GoBackToSelectOrg","SelectSubmissionsAndContinue","FormControl","FormControlLabel","control","Checkbox","FormGroup","downloadOptionsContainer","find","GoBackToSelectSubmissions","DownloadSelected","CloseDialog","GetOrganizationsForSubmissionTypeByAction$","orgRetVal","OrgId","Name","getSubmissions","GetSubmissionsOfTypeForOrgsByAction$","subRetVal","subData","specialProject","CanUserDownloadCAHPSReports$","IsHEDISOnlyUser$","LoadSubmissionsForOrg","stepToUse","selectedSubmissionIds","GetSubmissionsDownloadableInfo$","downloadableInfo","GetFileTypesToDownload","selectedOrganizationIds","sub","AuthorizationPolicies","GetFileTypesToDownload_CAHPS","filteredDownloadFileTypes","BulkDownloadViewWithState","BulkDownloadPage","resetContainer","VIEW_RESULTS_REPORTS_HEDIS","HOS_ENABLE_INTERIM_SUBMISSION","ORG_ID","MEDICAID","LTSS","BulkMarkFinalView","isOrgsLoading","isSubsLoading","isSaved","markFinalType","markFinalInProgress","enableHosInterimDataSubmission","isAttested","isFinal","MarkFinalSelected","GetConfigKey$","BulkMarkFinal","SubmissionsBulkAction$","BulkMarkFinalViewWithState","BulkMarkFinalPage","BulkAttestationView","attestingVendor","attestationLanguage","attestationType","attestationInProgress","attestationDialogOpen","attestationItem1Checked","attestationItem2Checked","openAttestationDialog","onAttesterChange","onVendorNameChange","AttestationSelected","cancelAttestation","GetHosSubmissionsAttestationLanguage","BulkAttestation","SubmissionsBulkAttestation$","GetHosSubmissionsAttestationLanguage$","BulkAttestationViewWithState","BulkAttestationPage","ReportsView","renderCombindedReportLink","showCombinedReport","getCombinedReport","IsDownloadingCombinedReport","renderHosVendorSubmissionStatusReportLink","renderNavigationReportLink","renderCahpsVendorSubmissionStatusReportLink","renderAdminReportsLinks","isNcqaAdmin","renderTemplatesLinks","canUserAccessAttestationTemplates","renderValidationMetadata","isStaticDownload","GetCombinedReportCaller$","str2ab","getLicenseAgreement","IsDownloadingLicenseAgreement","GetUserLicenseAgreement$","fileContent","IsDownloadingOrganizationReport","showAllReports","IsViewReportsActionAuthorized","IsViewCombinedReportActionAuthorized","GetReportsAvailabilities$","CanUserAccessAttestationTemplates","IsActionAuthorized$","CanUserAccessAttestationTemplates$","ReportsViewWithState","ReportsPage","UserRolesView","deleteAllButtonClick","setModalDialogState","addButtonClick","buttonNoHandler","handleUserInput","fullScreen","colSpan","UserRolesPage","ADD_COLUMN","REMOVE_COLUMN","SET_INITIAL_COLUMNS","SET_ALL_SUBMISSIONS","SET_SUBMISSION_PER_PAGE","SET_TABLE_FILTER","TableColumns","AllSubmissionsView","filters","setTableFilter","isAdmin","selectedSubmissions","bulkAnchorEl","tableFilters","refreshModel","showAllSubmissions","viewColumnsSelected","columnsList","c","setInitialColumns","pageFilters","downloadOptions","filename","separator","filterOptions","useDisplayedColumnsOnly","useDisplayedRowsOnly","caseSensitive","rowsPerPageSelected","setRowsPerPage","onViewColumnsChange","columnChanged","addColumn","removeColumn","onFilterChange","column","filterList","hasStoredTableFilter","storedFilterList","getColumnName","showColumn","submissionHomeText","customFilterListOptions","v","logic","includes","names","stage","split","toggleGetAllUsers","Id","some","setAllSubmissions","GetSubmissionsForUser$","canEdit","reportingProduct","specialArea","cmsContractNumber","reportingUnitId","received","componentVendorName","isPublicReported","AvailableSubmissionsPageWithState","SubmissionListingReducer","selectedSubmissionColumns","dispatch","actionTypes","AvailableSubmissionsPage","step","selectedOrganizationId","bulkActionContainer","BackNavigation","FilesUploadReportView","uploadFilesOptions","isSysAdmin","showAllItems","uploadedFilesColumns","rowData","toggleRefreshModel","showAll","GetFilesUploadReportCaller$","organizationName","savedName","createUser","createDate","FilesUploadReportPageWithState","FilesUploadReportPage","AnnouncementsListView","announcementsOptions","openDeleteDialog","editingItemId","editingStartDate","editingStopDate","editingDisplayOrder","fConfig","toolbarButtons","fModel","announcementsColumns","editDialogOpen","Delete","deleteDialogOpen","lastChangedBy","lastChangedOn","addNewAnnounementBtnClicked","handleDisplayOrderChange","utils","DateFnsUtils","disableToolbar","format","invalidDateMessage","handleStartDateChange","KeyboardButtonProps","autoOk","handleEndDateChange","onModelChange","handleEditDialogSave","handleEditDialogClose","deleteDialogClose","handleDeleteAnnouncement","DeleteAnnouncement$","SaveAnnoucement$","Number","date","toISOString","GetAnnouncementsDetail$","AnnouncementsListPageWithState","AnnouncementsListPage","AppInfoView","tblColumns","tblOption","GetAppInfo$","Component","AppInfoPageWithState","AppInfoPage","TabContainer","ImportSubmissionData","AppBar","Tabs","Tab","ImportSubmissionViewWithState","ImportSubmissionDataPage","MeasureViewer","rows","categories","measures","tblKeyMeasure","linkurl","scope","hedisVol2MeasureName","indicators","tblKey","indicatorName","benefitOffered","rate","auditDesignation","comment","tabRoot","submissionIsExtractable","table","GetMeasureIndicatorsForSubmission$","MeasurerViewerViewWithState","MeasureViewerPage","ProductTranslator","productType","translationInterface","SubmissionRedesign","AllowableFileTypesText","AllowableFileTypes","PlanLockButtonTitle","PlanLockButtonMainText","PlanLockButtonTitleUndo","PlanLockButtonMainTextUndo","AuditLockButtonTitle","AuditLockButtonMainText","AuditLockButtonUndoTitle","AuditLockButtonUndoMainText","AuditLockNoActionText","MarkFinalButtonTitle","MarkFinalButtonMainText","MarkFinalButtonTitleUndo","MarkFinalButtonMainTextUndo","MarkFinalNoActionText","AttestationButtonTitle","AttestationButtonMainText","AttestationButtonTitleUndo","AttestationButtonMainTextUndo","AttestationNoActionText","ClearMeasureButtonTitle","ClearMeasureButtonMainText","auditorListingOptions","renderAuditorsTable","auditorListingColumns","renderLoadingSkeleton","renderTopDisplayGrid","allDownloadsOptions","renderAllDownloadsTable","downloadFunc","allDownloadsColumns","tipTxt","customSearch","searchQuery","currentRow","isFound","col","setTableProps","LiveMeasureViewer","getMuiTheme","createMuiTheme","overrides","MuiTableCell","fontFamily","head","paddingNone","handleTabChange","measureData","measureBaseData","measureRaceData","measureEthnicityData","curTabValue","isRaceEthnicity","equal","allDataHeaders","t","allDataTmp","slice","shortDisplayText","trim","draggableColumns","enabled","resizableColumns","fixedHeader","selectedRows","delete","deleteAria","setCellProps","cellValue","rowIndex","columnIndex","foregroundColor","isBold","isHiddenByDefault","isFilterable","Set","z","input","filterVal","setCellHeaderProps","dataTbl","measureName","TabContext","Box","sx","TabList","tabs","TabPanel","GetLiveMeasure","measureWhole","measureBase","measureRace","measureEthnicity","LiveMeasureDisplayPageWithState","LiveMeasureDisplayPage","liveMeasureTable","borderSpacing","rotate_text","AuditReviewToolView","commentOptions","auditDesignationOptions","readOnlyAuditDesignations","ecdsCategory","renderCategoryRow","categoryName","categoryRow","renderMeasureRow","isEcdsCategory","cIndex","mIndex","displayrate","displayRate","artRow","isEcdsMeasure","denominator","measureRowTitleCell","SelectDisplayMeasure","measureLink","canViewResultsReportsHedis","measureCodesForFilter","lastIndexOf","benefitCell","align","isMeasureLevelAudit","rateCellGray","rateCell","auditDesCell","isReadOnly","showComment","renderIndicatorRow","indicator","iIndex","indicatorRowTitleCell","handleCommentChange","isMeasure","element","selectedAuditDesignation","selectedComment","hasChanges","SaveModel","isSaving","UpdateAuditDesignations$","selectedDisplayMeasure","getPreviousMeasure","getNextMeasure","ClearDisplayMeasure","selectedMeasure","getSelectedMeasureIndex","previousMeasure","nextMeasure","measureIndex","setSelectedMeasure","handleMeasureChange","downloadFilteredArt","isDownloadingMeasureData","GetFilteredArtDownloads$","selectedFilterVal","downloadMeasureData","GetMeasureDataDownloadCaller$","origData","origMeasures","selectedAuditFilterVal","artTabRoot","isAuditRequired","Link","Select","ev","MenuItem","iconMargin","measureTable","handleFilterChange","getFilterOptions","handleAuditDesignationFilterChange","getAuditDesignationFilterOptions","tableActionsContainer","isFilteringAll","getFilteredData","auditFilterVal","curData","curMeasures","cats","auditcats","measureCodes","hpr","cmspbp","cmsma","cat","curCat","child","j","items","concat","GetAuditDesignations$","GetMeasureCodesForFilter$","measCodesForFilter","isLTSS","isNB","ad","GetCommentsListFor","opt","AuditReviewToolWithState","AuditReviewToolViewTab","borderTop","boxShadow","borderCollapse","textTransform","float","Transition","Slide","AttestationStepsView","PUBLIC_REPORTING_STEP","REVIEW_AND_SIGN_STEP","getPublicReportingStep","noText","isYesAllowed","optionCard","elevation","handlePublicReportingOption","isPublicReporting","optionButton","startIcon","Check","canManagePublicReporting","isLtss","getReviewAndSignStep","IsNullOrUndefined$","encodedPreviewPDF","document","base64","sourceLastModified","attestationModifiedDate","UpdateSubmissionAttestationReportingFlags$","handleSign","isEsignInProgress","SignPDF$","signDocResult","encodedSignedPDF","cancelPublicReporting","publicReportingDialogOpen","getPublicsReportingDisplay","handleNext","targetStep","isGeneratingPdf","GetESignPDF$","handleBack","onCancel","handleFinish","sleep","onComplete","isCurrentStepInValid","downloadSignedDocument","isDownloadingDocument","ex","downloadPreviewDocument","lastClickedTime","getTime","showEsignDialog","steps","getSteps","alternativeLabel","instructions","CloudDownload","getStepContent","backButton","canEsignAttestation","TransitionComponent","listStyleType","hideEsignDialog","isEnableNext","stepIndex","ms","Promise","resolve","AttestationStepsWithState","AttestationSteps","LightTooltip","tooltip","shadows","TabInfo","Label","AdminOnly","HedisOnly","SubmissionStepsHedis","SubmissionStepsCahps","SubmissionStepsHos","SubmissionHome","submissionActivityOptions","detailedSubmissionOptions","vendorMeasureGuidOptions","SetUserActions","userActions","userAction","canViewArt","canUploadHedis","canUploadNonHedis","canPlanLock","canPlanUnlock","canAuditLock","canAuditUnlock","canMarkFinalHedis","canMarkFinalCahps","canMarkFinalHos","canSubmissionGenericAdmin","canAssignAuditDesignation","canSignAttestationHedis","canSignAttestationHos","canDownloadResultHedis","canDownloadResultCahps","canDownloadResultHos","canManageHedisUser","canViewDownloadErrorsHedis","canViewDownloadErrorsNonHedis","canViewResultReportsHedis","currentTabVal","getUserData","isAuditorTabLoading","GetSubmissionAuditors$","usersData","roleUser","salesforceUser","users","getAccounts","GetAllAuditors$","allAccounts","fetchValidationData","activeStepNumber","GetValidationData$","validations","validation","getSubmissionSummary","refresh","isGenericActionHappening","setMainTabLoadingState","GetSubmissionSummary$","tmpValidation","urlString","headerUrlString","detailUrlString","validationText","validationErrors","subSummary","isOrgAdmin","loading","isMainTabLoading","getSubmissionFileHistory","isHistoryTabLoading","GetUploadedDocsForSubmission$","subHistory","historyData","originalName","getAllDownloads","isAllDownloadsTabLoading","allDownloadsTableData","submissionDownloads","displayName","uploadDay","uploadTime","uploadUser","isArchived","allDownloads","downloadFile","getDownloadUrl","fileUrl","GetSubmissionLink$","isFileProcessed","linkUrl","ShowValidationDialog","shortIndicatorName","ruleName","indicatorKey","validationDialogOpen","currentValidationItem","renderValidationByType","downloadValidationReport","executePlanAction","ExecutePlanAction$","dialogStatus","markFinalUndoOpen","markFinalOpen","planLockOpen","auditLockUndoOpen","auditLockOpen","planLockUndoOpen","attestation","attestationStarted","attestationUndoOpen","renderSubmissionDetails","auths","submissionIntention","isAccredited","cmsContract","Renderings","renderSubmissionDownloads","isHedis","showValidation","uploadSection","uploadCompletionPercent","fileProcessingComplete","GridList","cellHeight","cols","isAllDownloadsOnly","isLicense","toLocaleLowerCase","tile","GridListTile","InsertDriveFile","explanation","handleAttestationStepsComplete","preventDefault","Attestation","attestationSigned","handleAttestationStepsCancel","handleAttestationUndo","UndoSubmissionAttestation$","undoResponse","AttestationUndo","didValidationError","didValidationWarning","isFileUploadAllowed","fileUploadNotAllowedReason","somc","requiredFileName","isCahpsOnlySubmission","hedisSubInMarkFinalOrEarlier","uploadFiles","dropzoneStatusStyle","uploadSuccessful","isGlobalAdmin","isOrgSigner","isVendorSigner","isOrgUser","isAuditor","isViewer","isVendorAdmin","isVenderUser","isSubmissionUser","textLookup","uploadFileText","getProductTypeName","selectedAccount","selectedAccountLevel","planLockTitle","planLockText","planLockUndoTitle","planLockUndoText","auditLockUndoTitle","auditLockUndoText","auditLockNoActionText","auditLockText","auditLockTitle","markFinalText","markFinalTitle","markFinalUndoText","markFinalUndoTitle","markFinalNoActionText","attestationUndoTitle","attestationUndoText","attestationNoActionText","hosAttestationUndoOpen","clearMeasuresOpen","clearMeasuresTitle","clearMeasuresText","attestationTitle","attestationText","isSubmissionActivitiesLoading","isDetailedSubmissionDetailLoading","submissionActivities","detailedSubmissionMeta","isFlagUpdateSuccessful","isAdminUpdatingAttestFlags","showAllDownloads","isVendorMeasureGuidsLoading","vendorMeasureGuids","GetAllAuthorizedUserActions","deleteAuditorIconClick","submissionActivityColumns","stepIndexNumber","GetActualStepIndex","tabValue","accountOption","reactSelectStyles","base","isDisabled","NotRun","LinearProgress","renderActiveComponent","styles","selectedAccountChange","selectedAccountLevelChange","onClickAddAuditor","AllDownloadsTab","CardActions","unSubmitFile","reprocessSubmission","handleAttestationFlagChange","updateSubmissionAttestationFlags","src","alt","getSubmissionActivities","getDetailedSubmissionDetails","getVendorMeasureGuids","GetSubmissionEvents$","timestamp","GetDetailedSubmission$","metadatas","GetVendorMeasureGuids$","GetAllAuthorizedUserActions$","UpdateAuditor$","RefreshAuditorsList","adjustedStepNumber","isCahps","isHOS","isCahpsOnly","canPublicReport","isVendor","canSignHedis","canReportOrSignHedis","isHedisSignable","lockTitle","onDropAccepted","onDropRejected","renderCanMarkFinal","PlanLock","renderValdiationTable","fatalities","renderValidationComponent","AuditLock","renderUndoPlanLock","MarkFinal","AuditUnlock","reportableEvents","MarkFinalUnlock","PlanUnlock","ttStr","showMeasureCode","showShortIndicatorName","showSeverity","showRuleName","validationErrorsColumns","validationColumnWithTooltip","validationErrorsOptions","CloseValidationDialog","InputLabel","shrink","gutterBottom","files","validForUpload","err","res","postUploadFiles","attestationFlag","UnSubmitFile$","alert","ReprocessSubmission$","UpdateSubmissionAttestationFlags$","SubmissionHomePage","eventLevels","logColumns","LogsView","serverSide","page","onChangePage","currentPage","onRowClick","rowState","logId","getSelectedLogDetails","setRowProps","handleLogDialogClose","openLogDialog","handleCopyException","navigator","clipboard","writeText","selectedLogException","countCall","GetLogCount$","subIdFilter","userNameFilter","orgIdFilter","logLevelFilter","messageFilter","fromDateFilter","toDateFilter","countLogs","GetLogs$","foundLogs","moment","timeStamp","exception","eventName","level","weekAgo","setDate","getDate","toLocaleString","selectedLogDate","selectedLogMessage","selectedLogId","mode","currentLogId","levelOption","square","handleFromDateChange","handleToDateChange","selectedLevelChange","menuPortalTarget","menuPortal","rowSpan","getLogDetails","FileCopy","LogsViewWithState","LogsViewPage","REPROCESS","ROLLBACK","UNATTEST","UNMARKFINAL","UNSUBMIT","distinctComponents","distinctStages","distinctSubIds","SubmissionActions","SubmissionAdministrationView","onBulkReprocessingSubmit","isBulkReprocessing","bulkSubmissionIds","time","bulkSelectedSubType","showBulkReprocessSuccess","handleButtonMenuClick","currentTarget","handleButtonMenuClose","setSelectedActionState","openDialog","dialogConfirmationText","getSelectedSubmissionDetails","setStatusMessageState","selectedComponent","selectedStage","errorText","defaultReturn","setActionAndErrorMessage","handleBulkSubmissionAction","selectedAction","BulkSubmissionAction$","setPostProcessingState","statusMessage","renderActions","ArrowDropDown","Menu","keepMounted","PaperProps","ITEM_HEIGHT","Action","closeDialog","openBulkDialog","dataRow","getSubmissionTypeOptions","onChangeBulkSubmissionType","isClearable","multiline","onChangeBulkSubIds","test","SubmissionAdministrationPageWithState","SubmissionAdministrationPage","AuditorsView","handleTextChange","auditorEmail","addAuditor","setProcessingState","AddAuditor","addResp","DeleteAuditor","deleteAuditorDialog","deleteResp","CloseDeleteAuditorConfirmDialog","ShowAuditorDeleteDialog","deleteAuditorConfirmDialogOpen","auditors","auditorListColumns","AuditorListPageWithState","AuditorListPage","SubmissionDataExtractView","extractOptions","isExtractionSuccessful","selectedDataExtractionType","processingState","paperStyle","extractTable","extractSubmissions","verifyDestinationCount","GetSubmissionDataExtractStatistics$","ExtractSubmissions$","allOptions","updatedExtractOptions","option","Object","assign","VerifyDataExtraction$","SubmissionDataExtractPageWithState","SubmissionDataExtractPage","LegacyFileConverterView","selectedFileName","LegacyFileConverterPageWithState","LegacyFileConverterPage","SubIdColumnRender","VendorMeasureGuidListView","clearVendorSubOrgList","vendorSubOrgList","toggleVendorMapping","showVendorMapping","handleClearVendorMeasureCache","clearVendorMeasureCache","handelLoadVendorList","LoadVendorList","inputFileKey","fileTypeValid","isUploading","validationTxt","isClearingCache","vendorOrgId","vmOptions","vlOptions","vName","handleUploadFileChange","uploadVendorMeasureFile","selectedFile","getVendorsTableData","getVendorsTableColumns","vl$","GetSoftwareVendorList$","lastValueFrom","vl","ClearVendorMeasureCache$","Authorization","endsWith","GetVendorMeasures$","VendorMeasureGuidListPageWithState","VendorMeasureGuidListPage","CacheManagementView","downloadCache","isActing","DownloadCache$","isClearingAllCache","customBodyRender_DownloadColumn","customBodyRender_ClearCacheColumn","customToolbar","customToolbar_ClearAll","getLocalExpireTime","expireAfterMilliseconds","clearAllCache","RemoveCircle","clearCache","keysCsv","ClearCaches$","now","year","getFullYear","month","String","getMonth","padStart","day","hours","getHours","minutes","getMinutes","GetMetadataCacheList$","CacheManagementPageWithState","CacheManagementPage","Constants","AdministrationInitialState","enableMeasureGuidValidation","enableExperimentalValidation","enableGenericUpload","measureModelDate","cahpsFileName","cahpsProcessingState","matrixFileTypeValid","showConfirmDialog","confirmDialogTitle","confirmDialogDescription","confirmDialogButtonText","confirmDialogConfirmHandler","frConfig","isLicenseAgreementSaving","selectedConfigurationOption","configurationValue","showHedis","isDownloadInProgress","Administration","renderAdminHomeTab","FormLabel","SetAllowedStatus","ButtonGroup","UpdateAllSubmissionStatuses","ClearLicenseAgreementsDialog","ShowMaintenanceModeConfirmDialog","ShowOffseasonModeConfirmDialog","downloadAllProductLineTemplates","renderSubmissionReprocessingTab","SubmissionAdministration","renderSecurityMatrixTab","handleMatrixFileChange","uploadMatrixFile","selectedMatrixFile","renderLicenseAgreementTab","right","SetLicenseAgreementText","Save","renderAnnouncementsTab","AnnouncementsList","renderAuditorsTab","Auditors","renderSubmissionDataExtractTab","SubmissionDataExtract","renderLegacyFileConversionTab","LegacyFileConverter","renderVendorMeasuresTab","VendorMeasureGuidList","renderAppInfoTab","AppInfo","renderCacheManagementTab","CacheManagement","connection","signalR","withUrl","build","catch","write","sm","scrollButtons","SetStatus","convertedStatus","SetAllowedStatus$","ClearAllLicenseAgreements$","SetMaintenanceMode","ClearAllLicenseAgreements","SetOffseasonMode","DownloadAllProductLineTemplates$","AdministrationViewWithState","AdministrationPage","primaryOrgListingOptions","userRoleListingOptions","selectStyles","UsersListView","openAddUserDialog","closeAddUserDialog","addUser","selectedSystemGroup","selectedRole","getAddUserForm","organizationData","OrgType","selectableRoles","onChangeAddNewUserEmail","GetSysGroupOptions","onChangeAddNewUserSysGroup","isSelectedUserAuditor","r","onChangeAddNewUserSelectedRole","selectedOrgsChange4AddNewUser","maxMenuHeight","showProgress","validateAddUserForm","onAddUserFormSubmit","GetManagableRolesForUser$","userRetVal","userRoles","_","existingRoles","GetAllAuditors","ShowUserEditDialog","editUserDialogOpen","closeEditUserDialog","getEditUserForm","userRoleColumns","username","ShowRoleDeleteDialog","onChangeAddRoleSysGroup","onChangeAddRoleSelectedRole","selectedOrgsChange4AddRole","onEditUserFormSubmit","validateEditUserForm","ShowUserDeleteDialog","deleteUserConfirmDialogOpen","deleteUserDialog","CloseDeleteUserConfirmDialog","DeleteUser","DeleteManagableUserAccess$","GetManagableUsers$","userData","deleteRoleConfirmDialogOpen","deleteRoleDialog","roleInfo","DeleteRole","CloseDeleteRoleConfirmDialog","ShowOrganizationEditDialog","orgType","editOrganizationDialogOpen","isOrgLoading","RefreshUsersForOrganization","editOrganization","selectedUser","refreshSelectableRoles","closeEditOrganizationDialog","backToOrgUsersList","getEditOrganizationForm","userOption","orgUserColumns","handleOrgUserRoleChange","currentlySubmittingRowIndex","btnClickManageSubmissions","ShowOrgUserDeleteDialog","orgUserListingOptions","searchText","userSearchText","onSearchChange","submissionOptions","editSubmissions","selectedSubIndexes","selectedSub","isEditingSubmissions","onChangeSelectUserToEntity","onChangeSelectRoleToEntityUser","onEditOrganizationFormSubmit","existingUsers","ShowAllUserDeleteDialog","currentlyDeletingAllUsersForOrg","isSubmissionTouched","DeleteZeroSubAuditor","isChangeSaved","SaveSubmissionChange","origSelectedSubIndexes","RefreshSubmissionList","validateEditOrganizationForm","GetUsersForOrganization$","orgUsers","deleteOrgUserConfirmDialogOpen","deleteOrgUserDialog","DeleteOrgUser","CloseDeleteOrgUserConfirmDialog","deleteAllUserConfirmDialogOpen","deleteAllUserDialog","DeleteAllOrgUsers","DeleteAllOrgUsers$","CloseDeleteAllUserConfirmDialog","primaryUserListColumns","primaryOrganizationListColumns","GetManagableOrganizationsAndVendors$","sysGroupDup","n","GetAllRolesPerSysGroupEditUser$","UpdateSubUserEntities$","found","GetSubmissionKeysForOrg$","subsRetVal","GetAccessableSubIds$","accessibleSubIds","indexes","indexesAll","UserListsPageWithState","UsersListPage","HosVendorSubmissionStatusReportView","reportOptions","handleSelectedMeasurementYearChange","selectedMeasurementYear","LoadReportFor","availableMeasurementYears","reportColumns","GetAvailableMeasurementYearsCaller$","yearsRetVal","GetHosSubmissionStatusReportCaller$","lastUploadedOn","markedFinal","HosVendorSubmissionStatusReportPageWithState","HosVendorSubmissionStatusReportPage","CahpsVendorSubmissionStatusReportView","GetCahpsSubmissionStatusReportCaller$","CahpsVendorSubmissionStatusReportPageWithState","CahpsVendorSubmissionStatusReportPage","ActivityReportView","GetEventListCaller$","displayComponent","ActivityReportPageWithState","ActivityReportPage","SubmissionsDataSummaryReportView","pagination","hedisData","cahpsData","hosData","findTerm","GetSubmissionsDataSummary$","getData","term","SubmissionsDataSummaryReportPageWithState","SubmissionsDataSummaryReportPage","GenericUploaderView","didError","GenericUploaderPageState","GenericUploaderPage","BulkUserView","closeBulkUserOperationConfirmDialog","bulkUserOperationConfirmDialogOpen","handleBulkUserOperation","BulkUserOperation$","bulkOptionSelected","selectedSystemGroupType","resetState","setErrorMessage","errorMessages","RadioGroup","handleRadioChange","Radio","getSysGroupOptions","onSystemGroupTypeChange","getRoleOptions","onRoleChange","onCopyFromUserEmailChange","onUsersChange","onEntityIdsChange","bulkUserOperationDialog","sysGroupTypes","allSystemGroupTypes","getRolesForSystemGroupType","validateEmail","emailErrors","validateUserEmails","entityIdErrors","validateEntityIds","flattenString","isInteger","BulkUserPageWithState","BulkUserPage","ValidationReportView","renderValaidationDetailGrid","IsNonEmptyStr","s","GetValidationReportData$","ValidationReportPageWithState","ValidationReport","SubmissionCountOnMeasureReportView","GetSubmissionCountOnMeasureReportData$","submissionCount","SubmissionCountOnMeasureReportPageWithState","SubmissionCountOnMeasureReport","AccountPageView","GetAccountRolesForCurrentUser$","AccountPageWithState","AccountPage","AccreditationStatusReportView","GetSubmissionsAccredStatus$","AccreditationStatusReportPageWithState","AccreditationStatusReportPage","MainView","exact","path","HelpPage","MainPropsState","withRouter","defaultProps","Main","LoginButton","AccountMenu","popupState","usePopupState","popupId","bindHover","AccountCircle","bindMenu","getContentAnchorEl","anchorOrigin","vertical","horizontal","transformOrigin","headerStyles","NavMenuTextView","Toolbar","NavMenuTextViewWithState","NavViewTextPage","HeaderView","authLinks","NavMenuText","HeaderPropState","HeaderState","sidebarStyles","collapsedLogoButtonContainer","activeClassName","SidebarView","toggleSidebarOpen","isSidebarOpened","toggleSidebarAction","bulkDownloadsOpen","bulkAttestationOpen","bulkMarkFinalOpen","Drawer","ListAlt","menuItemAvailabilities","allowsBulkDownloadHedis","allowsBulkDownloadCahps","allowsBulkDownloadHos","MoveToInbox","adminConfigOptions","allowsBulkAttestationHos","Work","allowsBulkMarkFinalCahps","allowsBulkMarkFinalHos","AssignmentTurnedIn","Poll","allowsUserManagement","GroupAdd","Settings","Receipt","Computer","SupervisorAccount","Sidebar","CopyrightBlockView","copyrightText","rel","CopyrightContainer","CopyrightBlock","withWidth","PrivacyPolicyHtml","CenterLinksView","showPrivacyPolicyDialog","linksContainer","centerLinks","setDialogState","renderPrivacyPolicyDialog","CenterLinksContainer","CenterLinks","LogoAddressView","logoWhite","address","LogoAddressContainer","up","LogoAddress","FooterView","footer","containerGrid","logoAddressBlock","centerLinkBlock","FooterWithWidth","socialMediaBlock","Footer","AppWithAuthentication","isIE","isEdge","userAgent","CssBaseline","Header","GetMenuItemAvailabilities$","itemAv","adminRetval","AppWithAuthenticationPropState","isUserAdmin","AppWithAuthenticationState","StoreInitialState","isLoadingUser","userExpired","createAction","USER_EXPIRED","userFound","USER_FOUND","silentRenewError","SILENT_RENEW_ERROR","sessionTerminated","SESSION_TERMINATED","userExpiring","USER_EXPIRING","userSignedOut","USER_SIGNED_OUT","Callback","isError","redirectUrl","signInRedirectCallback","userManager","signinRedirectCallback","onRedirectSuccess","onRedirectError","then","Login","signinRedirect","Logout","signoutRedirect","SilentRenew","UserManager","signinSilentCallback","TelemetryProvider","initialized","AppInsightsInstrumentationKey","withAITracking","App","CallbackConfigured","LoginConfigured","LogoutConfigured","AppWithAuthenticationConfigured","onUserLoaded","store","AuthActions","onSilentRenewError","onAccessTokenExpired","onUserUnloaded","onAccessTokenExpiring","onUserSignedOut","addUserLoaded","addSilentRenewError","addAccessTokenExpired","addAccessTokenExpiring","addUserUnloaded","addUserSignedOut","removeUserLoaded","removeSilentRenewError","removeAccessTokenExpired","removeAccessTokenExpiring","removeUserUnloaded","removeUserSignedOut","userManagerConfig","authority","automaticSilentRenew","client_id","loadUserInfo","post_logout_redirect_uri","redirect_uri","response_type","silent_redirect_uri","ConfiguredUserManager","BaseRootReducer","combineReducers","REDIRECT_SUCCESS","LOADING_USER","persistConfig","stateReconciler","autoMergeLevel2","storage","whitelist","RootReducer","persistReducer","myNcqaTheme","createTheme","typography","MuiToolbar","regular","MuiListItem","MuiListItemText","MuiCardActions","MuiStepIcon","MuiStepLabel","MuiCheckbox","colorPrimary","MuiRadio","colorSecondary","MuiTabs","MUIDataTableHeadCell","MuiButton","textPrimary","MuiFab","MuiTableRow","generateClassName","createGenerateClassName","productionPrefix","epicMiddleware","createEpicMiddleware","createStore","composeWithDevTools","applyMiddleware","persistor","persistStore","getUser","getState","idssTheme","ReactDOM","basename","StylesProvider","getElementById"],"mappings":"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","file":"static/js/main.d12f6d0d.chunk.js","sourcesContent":["import { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport { ReactPlugin } from '@microsoft/applicationinsights-react-js';\r\n\r\nlet reactPlugin = null;\r\nlet appInsights = null;\r\n\r\n/**\r\n * Create the App Insights Telemetry Service\r\n * @return {{reactPlugin: ReactPlugin, appInsights: Object, initialize: Function}} - Object\r\n */\r\nconst createTelemetryService = () => {\r\n\r\n /**\r\n * Initialize the Application Insights class\r\n * @param {string} instrumentationKey - Application Insights Instrumentation Key\r\n * @param {Object} browserHistory - client's browser history, supplied by the withRouter HOC\r\n * @return {void}\r\n */\r\n const initialize = (instrumentationKey, browserHistory) => {\r\n if (!browserHistory) {\r\n throw new Error('Could not initialize Telemetry Service');\r\n }\r\n if (!instrumentationKey) {\r\n throw new Error('Instrumentation key not provided in ./src/telemetry-provider.jsx')\r\n }\r\n\r\n reactPlugin = new ReactPlugin();\r\n\r\n appInsights = new ApplicationInsights({\r\n config: {\r\n instrumentationKey: instrumentationKey,\r\n maxBatchInterval: 0,\r\n disableFetchTracking: false,\r\n extensions: [reactPlugin],\r\n extensionConfig: {\r\n [reactPlugin.identifier]: {\r\n history: browserHistory\r\n }\r\n }\r\n }\r\n });\r\n\r\n appInsights.loadAppInsights();\r\n };\r\n\r\n return { reactPlugin, appInsights, initialize };\r\n};\r\n\r\nexport const ai = createTelemetryService();\r\nexport const getAppInsights = () => appInsights;","import * as React from \"react\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { connect } from \"react-redux\";\r\nimport { getAppInsights } from \"../../Logging/TelemetryService\";\r\n\r\ninterface IErrorBoundryStateProps {\r\n hasError: boolean\r\n} \r\n\r\nconst mapStateToProps = (): IErrorBoundryStateProps => ({\r\n hasError: false\r\n});\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n flex: {\r\n flexGrow: 1,\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justify: 'center',\r\n background: 'white',\r\n },\r\n})\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass ErrorBoundaryView extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.state = { hasError: false };\r\n }\r\n\r\n static getDerivedStateFromError(error) {\r\n return { hasError: true };\r\n }\r\n\r\n componentDidCatch(error, info) {\r\n // Display fallback UI\r\n this.setState({ hasError: true });\r\n\r\n const appInsights = getAppInsights();\r\n if (appInsights)\r\n appInsights.trackException({ error: error, severityLevel: SeverityLevel.Error });\r\n }\r\n\r\n render() {\r\n if (this.state.hasError) {\r\n // You can render any custom fallback UI\r\n return

Something went wrong.

;\r\n }\r\n return this.props.children;\r\n }\r\n\r\n componentWillUnmount() {\r\n this.setState({ hasError: false });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst ErrorBoundaryViewState = connect(mapStateToProps)(ErrorBoundaryView);\r\n\r\n// STYLES CONTAINER\r\nconst ErrorBoundary = withStyles(styles)(ErrorBoundaryViewState);\r\n\r\n// REDUX CONTAINER\r\nexport default ErrorBoundary;","import { Grid, Typography } from '@material-ui/core';\r\nimport * as React from 'react';\r\nimport Skeleton from 'react-loading-skeleton';\r\n\r\n\r\ninterface ILoadingProps {\r\n size?: number,\r\n progressText?: string\r\n}\r\n\r\nconst LoadingDisplay: React.StatelessComponent = ({ size = 500, progressText = \"\" }) => {\r\n return (\r\n \r\n {progressText !== \"\" ?\r\n
\r\n \r\n {progressText === \"*\" ?\r\n \r\n : progressText}\r\n
: null\r\n }\r\n
\r\n \r\n \r\n \r\n
\r\n )\r\n};\r\n\r\nexport default LoadingDisplay;","import { ajax, AjaxResponse, AjaxError } from \"rxjs/ajax\";\r\nimport { Observable, EMPTY } from \"rxjs\";\r\nimport { User } from \"oidc-client\";\r\nimport { retry, catchError, timeout } from 'rxjs/operators';\r\n\r\n\r\nclass AjaxHelper {\r\n\r\n\r\n public static AjaxGet$(url: string, headers?: Record): Observable {\r\n return ajax.getJSON(\r\n url, headers\r\n ).pipe(retry(parseInt(process.env.REACT_APP_GENERAL_RETRYLOGICCOUNT)), catchError(this.handleError));\r\n }\r\n\r\n public static AjaxPost(url: string, body?: any, headers?: Record): Observable> {\r\n return ajax.post(\r\n url, body, headers\r\n ).pipe(timeout(30 * 60 * 1000)).pipe(retry(parseInt(process.env.REACT_APP_GENERAL_RETRYLOGICCOUNT)), catchError(this.handleError));\r\n }\r\n\r\n public static CreateHttpHeaders(user: User) {\r\n return {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': 'Bearer ' + user.access_token\r\n }\r\n }\r\n\r\n private static handleError(error: AjaxError) {\r\n var errorMessage = `Error Code: ${error.status}\\nMessage: ${error.message}\\nUrl: ${error.request.url}`;\r\n //right now logging to the console... \r\n console.log(errorMessage);\r\n return EMPTY;\r\n }\r\n}\r\nexport default AjaxHelper;","import { User } from \"oidc-client\";\r\nimport { AjaxError, AjaxResponse } from \"rxjs/ajax\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IAdministrationPayload, IAppInfoItem, ICachingKey } from \"../../DataClasses/AdministrationData\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\nimport { IVendorMeasure, IVendorSubOrgMapping } from \"../../DataClasses/VendorMeasure\";\r\n\r\nclass AdministrationService {\r\n public static GetAdminModel(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetAdminModel',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static ReprocessCahpsFile$(user: User, fileName: string, groupId: any): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/ReprocessCahpsFile?fileName=' + fileName + '&groupId=' + groupId,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static SetAllowedStatus$(user: User, key: string, status: string): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/SetAllowedStatus?key=' + key + '&status=' + status,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UpdateAllSubmissionStatuses(user: User): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/UpdateAllSubmissionStatuses',\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static ClearAllLicenseAgreements$(user: User): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/ClearAllLicenseAgreements',\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static SetMaintenanceMode(user: User, enable: boolean): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/SetMaintenanceMode?enable=' + enable,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static SetOffseasonMode(user: User, enable: boolean): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/SetOffseasonMode?enable=' + enable,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static SetLicenseAgreementText(user: User, text: string): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/SetLicenseAgreementText',\r\n {\r\n text: text\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n\r\n public static HasSignedLegalAgreement(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/HasSignedLegalAgreement',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static AddLicenseAgreementForUser(user: User): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/AddLicenseAgreementForUser',\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static NeedsSignerTitle(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/NeedsSignerTitle',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetAllAuditors$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetAllAuditors',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static DoesAuditorExist$(user: User, userEmail: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/DoesAuditorExist?auditorEmail=' + userEmail,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static AddAuditor(user: User, userEmail: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/AddAuditor?auditorEmail=' + userEmail,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static DeleteAuditor(user: User, userEmail: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/DeleteAuditor?auditorEmail=' + userEmail,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetAppInfo$(user: User): Observable{\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetAppInfo',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetMetadataCacheList$(user: User): Observable{\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetMetadataCacheList',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetConfigKey$(user: User, key: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetConfigKey?key=' + key,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetVendorMeasures$(user: User, productYear: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetVendorMeasures?productYear=' + productYear,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetSoftwareVendorList$(user: User, productYear: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/GetValidSoftwareVendorList?productYear=' + productYear,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static ClearVendorMeasureCache$(user: User){\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/ClearVendorMeasureCache',\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static DownloadCache$(key: string, user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/DownloadCache?key=' + key,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static ClearCaches$(cacheKeysCsv: string, user: User){\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Administration/ClearCaches?cacheKeysCsv=' + cacheKeysCsv,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n}\r\n\r\nexport default AdministrationService;","import { User } from \"oidc-client\";\r\nimport RootState from \"../State/Root/RootState\";\r\n\r\n\r\nexport interface IGenericUserProps {\r\n user: User | null;\r\n}\r\nexport const genericMapStateToProps = (state: RootState): IGenericUserProps => {\r\n return {\r\n user: state.AuthenticationReducer.user\r\n };\r\n}\r\n","import * as React from \"react\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { connect } from \"react-redux\";\r\nimport AdministrationService from \"../../../Components/Services/AdministrationService\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../../DataClasses/GenericUser\";\r\n\r\n\r\ninterface IUnauthorizedState {\r\n isLoading: boolean,\r\n payload: IUnauthorizedPayload\r\n}\r\n\r\ninterface IUnauthorizedPayload {\r\n isOffseasonMode: boolean,\r\n isMaintenanceMode: boolean\r\n}\r\n\r\nexport const UnauthorizedInitialState: IUnauthorizedState = {\r\n isLoading: false,\r\n payload:\r\n {\r\n isOffseasonMode: false,\r\n isMaintenanceMode: false\r\n }\r\n};\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n flex: {\r\n flexGrow: 1,\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justify: 'center',\r\n background: 'white',\r\n },\r\n})\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass UnauthorizedView extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = UnauthorizedInitialState;\r\n }\r\n\r\n public componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n this.RefreshModel();\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n\r\n if (this.state.payload.isOffseasonMode) {\r\n return (
\r\n

Offseason

\r\n

System is currently inactive until the beginning of the season. Please check back later.

\r\n
);\r\n }\r\n\r\n if (this.state.payload.isMaintenanceMode) { \r\n return (
\r\n

Maintenance

\r\n

System is currently undergoing scheduled maintenance. Please check back later.

\r\n
);\r\n }\r\n\r\n return (\r\n
\r\n

Unauthorized

\r\n

You do not have access to the page you requested. If this is a mistake, please contact the system admin.

\r\n
\r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval = await AdministrationService.GetAdminModel(this.props.user).toPromise();\r\n if (retval instanceof AjaxError) {\r\n throw (new Error(\"Ajax Error\"));\r\n }\r\n else {\r\n this.setState({\r\n payload: {\r\n isMaintenanceMode: retval.isMaintenanceMode,\r\n isOffseasonMode: retval.isOffseasonMode\r\n }\r\n })\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst UnauthorizedViewState = connect(genericMapStateToProps)(UnauthorizedView);\r\n\r\n// STYLES CONTAINER\r\nconst Unauthorized = withStyles(styles)(UnauthorizedViewState);\r\n\r\n// REDUX CONTAINER\r\nexport default Unauthorized;","import { User } from \"oidc-client\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport AdministrationService from \"../Components/Services/AdministrationService\";\r\n\r\nexport interface IUmRole {\r\n ApplicationName: string;\r\n ApplicationId: string;\r\n RoleName: string;\r\n RoleId: string;\r\n SystemGroupTypeName: string;\r\n SystemGroupTypeId: string;\r\n SystemGroupTypeEntityId: string;\r\n}\r\n\r\nexport interface IUserProfile {\r\n sub: string;\r\n email?: string;\r\n username?: string;\r\n createdon?: string;\r\n createdby?: string;\r\n modifiedon?: string;\r\n modifiedby?: string;\r\n SfId?: string;\r\n given_name?: string;\r\n family_name?: string;\r\n UM_Role?: IUmRole | IUmRole[];\r\n}\r\n\r\nexport type PolicyName = 'user' | 'admin';\r\n\r\nexport const IsLoggedInPolicy = (user: User | null): boolean => (user ? true : false);\r\n\r\nexport const IsUserPolicy = async (user: User | null): Promise => IsUser(user) && (await IsSystemAccessibleForUser(user));\r\nexport const IsGlobalAdminPolicy = async (user: User | null): Promise => IsGlobalAdmin(user) && (await IsSystemAccessibleForUser(user));\r\nexport const IsOrgAdminPolicy = async (user: User | null, entityId: string): Promise => IsAdminForOrg(user, entityId) && (await IsSystemAccessibleForUser(user));\r\n\r\nexport const IsOrgOrGlobalAdmin = async (user: User | null): Promise => (IsGlobalAdmin(user) || IsOrgAdmin(user)) && (await IsSystemAccessibleForUser(user));\r\n\r\n\r\n// SystemGroupType Names\r\nconst system = \"system\";\r\nconst organizationGroupTypeName = \"organization\";\r\n\r\n// RoleNames \r\nconst admin = \"sysadmin\";\r\nconst orgadmin = \"orgadmin\";\r\n\r\nexport const IsUser = (user: User | null): boolean => (user ? true : false);\r\nexport const IsGlobalAdmin = (user: User | null): boolean => IsUserAdmin(user, admin, system, '-1');\r\nexport const IsOrgAdmin = (user: User | null): boolean => HasOrgAdminRole(user);\r\n\r\nexport const IsAdminForOrg=(user:User|null, entityId: string):boolean=>IsUserAdmin(user,orgadmin,organizationGroupTypeName,entityId);\r\n\r\nexport const UserEmail = (user: User | null): string => user != null ? user.profile.username : '';\r\nexport const UserFirstName = (user: User | null): string => user != null ? user.profile.given_name : '';\r\nexport const UserLastName = (user: User | null): string => user != null ? user.profile.family_name : '';\r\n\r\nconst IsSystemAccessibleForUser = async(user: User | null): Promise => {\r\n return IsGlobalAdmin(user) || !(await IsInSysAdminOnlyMode(user));\r\n}\r\n\r\nconst IsUserAdmin = (user: User | null, role: string, sysGroup: string, entityId: string): boolean => {\r\n if (user && user.profile) {\r\n const profile = user.profile as IUserProfile;\r\n if (profile.UM_Role && profile.UM_Role instanceof Array) {\r\n const satisfyingRoles = profile.UM_Role.filter(x => x.SystemGroupTypeName === sysGroup && x.SystemGroupTypeEntityId === entityId && x.RoleName.toLowerCase() === role);\r\n return satisfyingRoles.length > 0;\r\n }\r\n if (profile.UM_Role && !(profile.UM_Role instanceof Array)) {\r\n const satisfyRole = profile.UM_Role.RoleName.indexOf(role) !== -1;\r\n return satisfyRole;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nconst HasOrgAdminRole = (user: User | null): boolean => {\r\n if (user && user.profile) {\r\n const profile = user.profile as IUserProfile;\r\n if (profile.UM_Role && profile.UM_Role instanceof Array) {\r\n const satisfyingRoles = profile.UM_Role.filter(x => x.SystemGroupTypeName === organizationGroupTypeName && x.RoleName.toLowerCase() === orgadmin);\r\n return satisfyingRoles.length > 0;\r\n }\r\n if (profile.UM_Role && !(profile.UM_Role instanceof Array)) {\r\n const satisfyRole = profile.UM_Role.RoleName.indexOf(orgadmin) !== -1;\r\n return satisfyRole;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nconst IsInSysAdminOnlyMode = async (user: User | null): Promise => {\r\n //TODO: READ OFF USER IF YOU CAN, NO AJAX CALL\r\n const retval = await AdministrationService.GetAdminModel(user).toPromise();\r\n if (retval instanceof AjaxError) {\r\n throw (new Error(\"Ajax Error\"));\r\n }\r\n\r\n return (retval.isOffseasonMode || retval.isMaintenanceMode);\r\n}\r\n\r\nexport const HasSignedLegalAgreement = async (user: User | null): Promise => {\r\n //TODO: READ OFF USER IF YOU CAN, NO AJAX CALL\r\n const retval = await AdministrationService.HasSignedLegalAgreement(user).toPromise();\r\n return retval;\r\n}\r\nexport const NeedsSignerTitle = async (user: User | null): Promise => {\r\n //TODO: READ OFF USER IF YOU CAN, NO AJAX CALL\r\n const retval = await AdministrationService.NeedsSignerTitle(user).toPromise();\r\n return retval;\r\n}","import { Theme } from \"@material-ui/core\";\r\nimport createStyles from '@material-ui/core/styles/createStyles';\r\nconst drawerWidth = 240;\r\n\r\nconst idssStyles = (theme: Theme) => createStyles({\r\n appLogo: {\r\n height: '50px',\r\n paddingLeft: '4px'\r\n },\r\n subNavLink: {\r\n marginLeft: '57px'\r\n },\r\n footerContainer: {\r\n padding: 0,\r\n marginTop: theme.spacing(2)\r\n },\r\n card: {\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n width: '100%'\r\n },\r\n gridDisplay: {\r\n display: \"flex\",\r\n },\r\n headerRow: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n fontSize: 14,\r\n },\r\n primaryBlue: {\r\n color: '#4F758B',\r\n fontSize: '1.2em',\r\n fontWeight: 'bold'\r\n },\r\n primaryBlueSmall: {\r\n color: '#4F758B',\r\n fontSize: '0.9em',\r\n fontWeight: 'bold'\r\n },\r\n primaryBlueMedium: {\r\n color: '#4F758B',\r\n fontSize: '1.0em',\r\n fontWeight: 'bold'\r\n },\r\n actionBlue: {\r\n backgroundColor: '#0099CC',\r\n color: '#FFFFFF',\r\n \"&:hover\": {\r\n backgroundColor: '#4F758B',\r\n color: 'White'\r\n }\r\n },\r\n disabledButton: {\r\n backgroundColor: '#D3D3D3',\r\n color: '#707070',\r\n \"&:hover\": {\r\n backgroundColor: '#D3D3D3'\r\n }\r\n },\r\n linkButton: {\r\n backgroundColor: 'White',\r\n color: 'SteelBlue',\r\n \"&:hover\": {\r\n backgroundColor: '#D3D3D3'\r\n }\r\n },\r\n linkButtonClear: {\r\n backgroundColor: 'White',\r\n color: 'SteelBlue',\r\n \"&:hover\": {\r\n backgroundColor: 'White',\r\n }\r\n },\r\n activeLink: {\r\n color: '#FFFFFF',\r\n fontSize: '15px',\r\n fontWeight: 'bold'\r\n },\r\n darkGray: {\r\n color: '#A9A9A9'\r\n },\r\n submissionTitle: {\r\n color: \"#000000\",\r\n fontSize: '30px',\r\n fontWeight: 'bold'\r\n },\r\n submissionSubtitle: {\r\n color: \"#303030\",\r\n fontSize: '15px',\r\n fontWeight: 'bold'\r\n },\r\n submissionSubtitle1: {\r\n color: \"#707070\",\r\n fontSize: '12px',\r\n fontWeight: 'bold'\r\n },\r\n secondaryText: {\r\n color: \"#707070\",\r\n fontSize: '14px',\r\n paddingTop: '5px'\r\n },\r\n copyIcon: {\r\n color: \"#0099CC\",\r\n cursor: 'pointer',\r\n alignItems: 'center',\r\n },\r\n noBottomMargin: {\r\n marginBottom: '0px'\r\n },\r\n muiTableTitleMargin: {\r\n marginLeft: theme.spacing(-1)\r\n },\r\n marginTop: {\r\n marginTop: '10px'\r\n },\r\n dividerPadding: {\r\n marginLeft: '60px'\r\n },\r\n marginBottom: {\r\n marginBottom: '10px'\r\n },\r\n submissionHomeContent: {\r\n margin: '0px'\r\n },\r\n bodyCopy: {\r\n color: 'rgb(0, 0, 0, 87%)',\r\n },\r\n inactiveGray: {\r\n color: 'rgb(0, 0, 0, 12%)',\r\n },\r\n supportingGray: {\r\n color: 'rgb(0, 0, 0, 54%)',\r\n },\r\n backgroundGray: {\r\n color: '#F5F5F5',\r\n },\r\n flexGrow: {\r\n flexGrow: 1\r\n },\r\n fullWidth: {\r\n width: '100%'\r\n },\r\n mainPanel: {\r\n flexGrow: 1,\r\n minHeight: '72vh'\r\n },\r\n flexRoot: {\r\n display: 'flex',\r\n },\r\n tableRoot: {\r\n width: '100%',\r\n marginTop: theme.spacing(3),\r\n overflowX: 'auto',\r\n },\r\n tableCellYellow: {\r\n backgroundColor: 'yellow',\r\n textAlign: 'center'\r\n },\r\n tableCellNcqaBlue: {\r\n backgroundColor: '#4F758B',\r\n textAlign: 'left'\r\n },\r\n tableCellGray: {\r\n backgroundColor: '#F5F5F5',\r\n },\r\n fab: {\r\n margin: theme.spacing(1),\r\n },\r\n squareFab: {\r\n margin: theme.spacing(1),\r\n borderRadius: \"5px\"\r\n },\r\n fabGreen: {\r\n color: theme.palette.common.white,\r\n backgroundColor: 'green',\r\n '&:hover': {\r\n backgroundColor: 'green',\r\n },\r\n },\r\n extendedIcon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n row: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.background.default,\r\n }\r\n },\r\n button: {\r\n marginRight: 1,\r\n },\r\n link: {\r\n spacing: 1,\r\n },\r\n paper: {\r\n margin: 10,\r\n },\r\n minspacing: {\r\n margin: 5,\r\n },\r\n noflex: {\r\n flexGrow: 0,\r\n },\r\n gridRowFlex: {\r\n margin: 10,\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n gridRowCenter: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n gridColumnFlexEnd: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'flex-end',\r\n },\r\n loginGrid: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justify: 'center',\r\n },\r\n measureHeader: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n textAlign: 'center',\r\n \"margin-bottom\": theme.spacing(1),\r\n \"margin-top\": theme.spacing(1)\r\n },\r\n leftMeasure: {\r\n fontWeight: 'bold',\r\n textAlign: 'left',\r\n paddingLeft: '15px',\r\n verticalAlign: 'middle',\r\n cursor: 'pointer'\r\n },\r\n rightMeasure: {\r\n fontWeight: 'bold',\r\n textAlign: 'right',\r\n paddingRight: '15px',\r\n verticalAlign: 'middle',\r\n cursor: 'pointer'\r\n },\r\n arrow: {\r\n paddingBottom: '3px',\r\n verticalAlign: 'middle'\r\n },\r\n greenColor: {\r\n color: 'green',\r\n },\r\n redColor: {\r\n color: 'red',\r\n },\r\n darkOrangeColor: {\r\n color: 'darkOrange',\r\n },\r\n dropZone: {\r\n position: 'relative',\r\n width: '100%',\r\n minHeight: '250px',\r\n backgroundColor: '#F0F0F0',\r\n border: 'dashed',\r\n borderColor: '#C8C8C8',\r\n cursor: 'pointer',\r\n boxSizing: 'border-box',\r\n },\r\n stripes: {\r\n border: 'solid',\r\n backgroundImage: 'repeating-linear-gradient(-45deg, #F0F0F0, #F0F0F0 25px, #C8C8C8 25px, #C8C8C8 50px)',\r\n animation: 'progress 2s linear infinite !important',\r\n backgroundSize: '150% 100%',\r\n },\r\n rejectStripes: {\r\n border: 'solid',\r\n backgroundImage: 'repeating-linear-gradient(-45deg, #fc8785, #fc8785 25px, #f4231f 25px, #f4231f 50px)',\r\n animation: 'progress 2s linear infinite !important',\r\n backgroundSize: '150% 100%',\r\n },\r\n dropzoneTextStyle: {\r\n textAlign: 'center'\r\n },\r\n uploadIconSize: {\r\n width: 51,\r\n height: 51,\r\n color: '#909090'\r\n },\r\n dropzoneParagraph: {\r\n fontSize: 24\r\n },\r\n dropzoneThumbsContainer: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n marginTop: 16\r\n },\r\n dropzoneThumb: {\r\n display: 'inline-flex',\r\n borderRadius: 2,\r\n border: '1px solid #eaeaea',\r\n marginBottom: 8,\r\n marginRight: 8,\r\n width: 100,\r\n height: 100,\r\n padding: 4,\r\n boxSizing: 'border-box'\r\n },\r\n\r\n dropzoneThumbInner: {\r\n display: 'flex',\r\n minWidth: 0,\r\n overflow: 'hidden'\r\n },\r\n\r\n dropzoneImg: {\r\n display: 'block',\r\n width: 'auto',\r\n height: '100%'\r\n },\r\n\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: 200,\r\n },\r\n\r\n menu: {\r\n width: 200,\r\n },\r\n minimumSpacing: {\r\n paddingLeft: theme.spacing(3),\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexGrow: 1,\r\n minHeight: '72vh',\r\n background: '#f7f7f7',\r\n },\r\n submissionsDataHighlight: {\r\n display: 'inline-block',\r\n fontWeight: \"bolder\",\r\n fontSize: '13px'\r\n },\r\n Default: {\r\n color: theme.palette.common.white,\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n display: 'inline-block',\r\n width: '130px',\r\n padding: '4px',\r\n fontWeight: \"bold\",\r\n fontSize: '13px'\r\n },\r\n ValidationDefault: {\r\n color: theme.palette.common.white,\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n display: 'inline-block',\r\n width: '120px',\r\n padding: '4px',\r\n fontWeight: \"bold\",\r\n fontSize: '13px'\r\n },\r\n GrayedOut: {\r\n backgroundColor: theme.palette.grey[400]\r\n },\r\n Error: {\r\n backgroundColor: '#FF0000'\r\n },\r\n Warning: {\r\n backgroundColor: 'orange'\r\n },\r\n Success: {\r\n backgroundColor: '#008000'\r\n },\r\n HighlightedNote450: {\r\n color: theme.palette.common.black,\r\n width: '450px',\r\n padding: '4px',\r\n fontWeight: \"bold\",\r\n fontStyle: \"italic\",\r\n backgroundColor: 'yellow',\r\n fontSize: '13px'\r\n },\r\n HighlightedNote: {\r\n color: theme.palette.common.black,\r\n padding: '4px',\r\n fontWeight: \"bold\",\r\n fontStyle: \"italic\",\r\n backgroundColor: 'yellow',\r\n fontSize: '13px'\r\n },\r\n HighlightedNoteSmall: {\r\n color: theme.palette.common.black,\r\n padding: '2px',\r\n fontWeight: \"bold\",\r\n fontStyle: \"italic\",\r\n backgroundColor: 'yellow',\r\n fontSize: '12px'\r\n },\r\n appBar: {\r\n backgroundColor: '#4f758b'\r\n },\r\n toolbar: theme.mixins.toolbar,\r\n fixMinHeight: {\r\n display: 'flex'\r\n },\r\n logo: {\r\n height: '80px',\r\n marginBottom: '10px',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n maxWidth: 300,\r\n },\r\n chips: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n },\r\n chip: {\r\n margin: 2,\r\n },\r\n noLabel: {\r\n marginTop: theme.spacing(3),\r\n },\r\n maxWidth: {\r\n flexGrow: 1,\r\n },\r\n dialogPaper: {\r\n padding: theme.spacing(2),\r\n textAlign: 'center',\r\n color: theme.palette.text.secondary,\r\n minHeight: '90%',\r\n maxHeight: '90%',\r\n minWidth: '80%',\r\n maxWidth: '80%',\r\n },\r\n defaultMargin: {\r\n margin: '10px'\r\n },\r\n actionIcon: {\r\n cursor: 'pointer'\r\n },\r\n hidden: {\r\n display: 'none'\r\n },\r\n mt1: {\r\n \"margin-top\": theme.spacing(1)\r\n },\r\n ml1: {\r\n \"margin-left\": theme.spacing(1)\r\n },\r\n mr1: {\r\n \"margin-right\": theme.spacing(1)\r\n },\r\n mb1: {\r\n \"margin-bottom\": theme.spacing(1)\r\n },\r\n mt2: {\r\n \"margin-top\": theme.spacing(2)\r\n },\r\n ml2: {\r\n \"margin-left\": theme.spacing(2)\r\n },\r\n mr2: {\r\n \"margin-right\": theme.spacing(2)\r\n },\r\n mb2: {\r\n \"margin-bottom\": theme.spacing(2)\r\n },\r\n mt1Neg: {\r\n \"margin-top\": \"-5px\"\r\n },\r\n ml1Neg: {\r\n \"margin-left\": \"-5px\"\r\n },\r\n mr1Neg: {\r\n \"margin-right\": \"-5px\"\r\n },\r\n mb1Neg: {\r\n \"margin-bottom\": \"-5px\"\r\n },\r\n widgetNum: {\r\n textAlign: 'left',\r\n verticalAlign: 'bottom',\r\n width: '130px',\r\n height: '55px',\r\n paddingLeft: '25px',\r\n paddingTop: '10px',\r\n fontWeight: \"bold\",\r\n fontSize: '30px'\r\n },\r\n widgetNumVsRBorder: {\r\n textAlign: 'left',\r\n verticalAlign: 'bottom',\r\n width: '120px',\r\n height: '55px',\r\n paddingLeft: '25px',\r\n paddingTop: '10px',\r\n fontWeight: \"bold\",\r\n fontSize: '30px',\r\n borderRight: '1px solid lightgrey'\r\n },\r\n widgetTxt: {\r\n textAlign: 'left',\r\n verticalAlign: 'top',\r\n width: '120px',\r\n paddingLeft: '25px',\r\n fontWeight: \"bold\",\r\n fontSize: '13px',\r\n color: '#0099CC',\r\n textDecoration: 'none'\r\n },\r\n widgetTxtBlk: {\r\n textAlign: 'left',\r\n verticalAlign: 'top',\r\n width: '120px',\r\n paddingLeft: '25px',\r\n fontWeight: \"bold\",\r\n fontSize: '13px',\r\n color: '#000000',\r\n textDecoration: 'none'\r\n },\r\n widgetTxtBlkVsRBorder: {\r\n textAlign: 'left',\r\n verticalAlign: 'top',\r\n paddingLeft: '25px',\r\n width: '120px',\r\n fontWeight: \"bold\",\r\n fontSize: '13px',\r\n color: '#000000',\r\n textDecoration: 'none',\r\n borderRight: '1px solid lightgrey'\r\n },\r\n rightBorder: {\r\n borderRight: '1px solid lightgrey'\r\n },\r\n dashboardTitleGrid: {\r\n height: '70px',\r\n marginBottom: theme.spacing(2)\r\n },\r\n circleNumber: {\r\n backgroundColor: '#4f758b',\r\n borderRadius: '50%',\r\n width: '25px',\r\n height: '25px',\r\n display: 'inline-block',\r\n marginLeft: '-10px',\r\n marginRight: '10px',\r\n color: 'white',\r\n paddingTop: '4px',\r\n //paddingLeft: '8px',\r\n textAlign: 'center'\r\n },\r\n circleNumberText: {\r\n display: 'inline-block'\r\n },\r\n collapseBtnSmall: {\r\n height: '40px',\r\n background: 'none',\r\n border: 'none',\r\n padding: '3px'\r\n },\r\n collapseBtn: {\r\n height: '50px',\r\n background: 'none',\r\n border: 'none',\r\n paddingTop: '18px'\r\n },\r\n DropzoneContainer: {\r\n border: '2px dashed grey',\r\n flexGrow: 1,\r\n backgroundColor: '#f0f0f0',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center'\r\n },\r\n dropzoneText: {\r\n fontSize: \"1.2em\",\r\n width: '100%',\r\n textAlign: 'center'\r\n },\r\n dropzoneBtn: {\r\n padding: theme.spacing(0, 4),\r\n height: theme.spacing(5)\r\n },\r\n dialogM: {\r\n minHeight: '80%',\r\n maxHeight: '80%',\r\n minWidth: '60%',\r\n maxWidth: '60%',\r\n },\r\n dialog7080: {\r\n minHeight: '80%',\r\n maxHeight: '80%',\r\n minWidth: '70%',\r\n maxWidth: '70%',\r\n },\r\n dialogL: {\r\n minHeight: '90%',\r\n maxHeight: '90%',\r\n minWidth: '95%',\r\n maxWidth: '95%',\r\n },\r\n menuButton: {\r\n marginLeft: 12,\r\n marginRight: 36,\r\n },\r\n hide: {\r\n display: \"none\",\r\n },\r\n headerIcon: {\r\n fontSize: 28,\r\n color: \"rgba(255, 255, 255, 0.35)\",\r\n },\r\n headerIconCollapse: {\r\n color: \"white\",\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n whiteSpace: \"nowrap\",\r\n },\r\n drawerOpen: {\r\n width: drawerWidth,\r\n transition: theme.transitions.create(\"width\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n drawerClose: {\r\n transition: theme.transitions.create(\"width\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n overflowX: \"hidden\",\r\n width: theme.spacing(7) + 5,\r\n [theme.breakpoints.down(\"sm\")]: {\r\n width: drawerWidth,\r\n },\r\n },\r\n sidebarList: {\r\n marginTop: '0px',\r\n paddingTop: '0px'\r\n },\r\n sidebarLogo: {\r\n marginTop: '0px',\r\n paddingTop: '0px',\r\n marginBottom: '1px',\r\n paddingBottom: '5px',\r\n },\r\n appTitle: {\r\n fontSize: '1.10rem'\r\n },\r\n root: {\r\n display: \"flex\",\r\n maxWidth: \"100vw\",\r\n overflowX: \"hidden\",\r\n padding: theme.spacing(3, 2),\r\n background: '#f7f7f7',\r\n },\r\n content: {\r\n flexGrow: 1,\r\n width: `calc(100vw - ${theme.spacing(7) + 20})`,\r\n marginLeft: theme.spacing(7) + 20,\r\n minHeight: \"100vh\"\r\n },\r\n contentShift: {\r\n width: `calc(100vw - ${theme.spacing(3) + 240}px)`,\r\n marginLeft: '240px',\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n },\r\n fakeToolbar: {\r\n ...theme.mixins.toolbar,\r\n },\r\n tabTitle: {\r\n margin: \"10px 5px\",\r\n color: 'SteelBlue',\r\n fontWeight: 'bold'\r\n },\r\n skeleton300: {\r\n margin: theme.spacing(1, 2),\r\n width: \"98%\",\r\n height: 300\r\n },\r\n skeleton50: {\r\n margin: theme.spacing(1, 2),\r\n width: \"98%\",\r\n height: 50\r\n },\r\n skeleton50s: {\r\n margin: theme.spacing(1, 2),\r\n width: \"60%\",\r\n height: 50\r\n },\r\n errorBlock: {\r\n paddingTop: '30px',\r\n width: '100%',\r\n textAlign: 'left',\r\n color: '#A9A9A9',\r\n fontSize: 25,\r\n fontWeight: 700,\r\n lineHeight: 1.1\r\n },\r\n browserSupport: {\r\n width: '100%',\r\n textAlign: 'center',\r\n color: '#A9A9A9',\r\n fontSize: 20,\r\n fontWeight: 500,\r\n lineHeight: 1.1\r\n },\r\n centeredHeader: {\r\n '& span': {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n alignItems: 'center',\r\n textAlign: 'center'\r\n },\r\n },\r\n})\r\nexport default idssStyles;","export default {\r\n key:\r\n \"hWA2C-7E2B2B1B3D4F2vd1EAJLQCVLUVBa1NXNRSSATEXD-13C3B2E2G2E3B1C2C7C2D1==\",\r\n attribution: false,\r\n};\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, CircularProgress } from '@material-ui/core';\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\ntype IStylesProps = WithStyles;\r\n// REDUX PROPS\r\ninterface IDialogProps {\r\n showDialog: boolean,\r\n title: string,\r\n description: string,\r\n button1Text: string,\r\n button2Text: string,\r\n button1Handler: any;\r\n button2Handler: any;\r\n isButton1Clicked?: boolean;\r\n}\r\n\r\nconst AlertDialogRaw = (props: IDialogProps & IStylesProps) => (\r\n
\r\n \r\n {props.title}\r\n \r\n \r\n {props.description}\r\n \r\n \r\n \r\n {props.isButton1Clicked && props.isButton1Clicked === true ? : null}\r\n \r\n \r\n \r\n \r\n
\r\n);\r\n\r\nconst AlertDialog = withStyles(styles)(AlertDialogRaw);\r\n\r\nexport default AlertDialog;","import { Grid, Typography, Paper, Button } from \"@material-ui/core\";\r\nimport * as React from \"react\";\r\nimport \"@material-ui/core/styles\";\r\nimport {\r\n Theme,\r\n withStyles,\r\n WithStyles,\r\n createStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps,\r\n} from \"../../DataClasses/GenericUser\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport LoadingDisplay from \"../Shared/Loading\";\r\nimport FroalaEditorView from \"react-froala-wysiwyg/FroalaEditorView\";\r\nimport froalaBaseConfig from \"../../Utilities/BaseFroalaConfig\";\r\nimport AlertDialog from \"../Shared/AlertDialog\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n flexGrow: 1,\r\n },\r\n });\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalState {\r\n licenseAgreementText: string;\r\n isLoading: boolean;\r\n events: ILegalAgreementViewEvents;\r\n redirect: boolean;\r\n}\r\n\r\nexport interface ILegalAgreementViewEvents {\r\n logoutConfirmDialogOpen: boolean;\r\n}\r\n\r\n// VIEW\r\nclass LegalAgreementSignView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ILocalState\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n licenseAgreementText: \"\",\r\n isLoading: true,\r\n events: {\r\n logoutConfirmDialogOpen: false,\r\n },\r\n redirect: false\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n if (this.state.isLoading) {\r\n return ;\r\n } else {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n IDSS User License Agreement\r\n \r\n \r\n \r\n \r\n \r\n \r\n this.OpenLogoutConfirmDialog()}\r\n >\r\n I Disagree\r\n \r\n this.AddAgreementForUser()}\r\n >\r\n I Agree\r\n \r\n\r\n this.LogOut()}\r\n button2Handler={() => this.CloseConfirmDialog()}\r\n />\r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const adminModel = await AdministrationService.GetAdminModel(\r\n this.props.user\r\n ).toPromise();\r\n\r\n if (adminModel instanceof AjaxError || !adminModel) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n licenseAgreementText: adminModel.licenseAgreementText,\r\n isLoading: false,\r\n });\r\n }\r\n }\r\n\r\n private async AddAgreementForUser() {\r\n this.setState({\r\n isLoading: true,\r\n });\r\n\r\n const resp = await AdministrationService.AddLicenseAgreementForUser(\r\n this.props.user\r\n ).toPromise();\r\n if (resp instanceof AjaxError || !resp) {\r\n this.setRedirectState();\r\n } else {\r\n window.location.href = \"dashboard\";\r\n }\r\n }\r\n\r\n private LogOut = () => {\r\n window.location.href = \"logout\";\r\n };\r\n\r\n private OpenLogoutConfirmDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n logoutConfirmDialogOpen: true,\r\n },\r\n });\r\n };\r\n\r\n private CloseConfirmDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n logoutConfirmDialogOpen: false,\r\n },\r\n });\r\n };\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst LegalAgreementSignWithState = connect(\r\n genericMapStateToProps\r\n)(LegalAgreementSignView);\r\n\r\n// STYLES CONTAINER\r\nconst LegalAgreementSignPage = withStyles(styles)(LegalAgreementSignWithState);\r\n\r\nexport default LegalAgreementSignPage;\r\n","import * as React from \"react\";\r\nimport \"@material-ui/core\";\r\nimport { Theme, WithStyles, createStyles, withStyles, } from \"@material-ui/core/styles\";\r\nimport {\r\n Dialog,\r\n DialogTitle,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n Button,\r\n Divider,\r\n} from \"@material-ui/core\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\n\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ITitleViewState {\r\n openEditDialog: boolean;\r\n};\r\n\r\nclass UpdateYourTitleView extends React.Component\r\n{\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n openEditDialog: true\r\n };\r\n }\r\n\r\n\r\n public render() {\r\n return (\r\n\r\n \r\n \r\n Update your title \r\n \r\n \r\n \r\n \r\n Your title information is missing. Clicking \"OK\" will redirect you to my.ncqa.org and please fill out the title for attestation purposes.\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n\r\n// STYLES CONTAINER\r\nconst UpdateTitlePage = withStyles(styles)(UpdateYourTitleView);\r\n\r\nexport default UpdateTitlePage;","import { useEffect } from \"react\";\r\nimport { useLocation } from \"react-router-dom\";\r\n\r\nexport default function ScrollToTop() {\r\n const { pathname } = useLocation();\r\n\r\n useEffect(() => {\r\n window.scrollTo(0, 0);\r\n }, [pathname]);\r\n\r\n return null;\r\n}\r\n","export enum SubmissionType {\r\n HEDIS = \"HEDIS\",\r\n HOS = \"HOS\",\r\n CAHPS = \"CAHPS\"\r\n}\r\n\r\nexport enum MessageType {\r\n Warning = 'Warning',\r\n Error = 'Error',\r\n Information = 'Information',\r\n Success = 'Success'\r\n}\r\n\r\nexport interface ValidationMessage {\r\n message: string;\r\n severity: number;\r\n}\r\n\r\nexport interface ValidationError {\r\n measureCode: string;\r\n shortIndicatorName: string;\r\n indicatorKey: string;\r\n severity: string;\r\n message: string;\r\n ruleName: string;\r\n}\r\n\r\nexport interface ValidationRptError {\r\n orgId: number;\r\n subId: number;\r\n orgName: string;\r\n measureCode: string;\r\n shortIndicatorName: string;\r\n indicatorKey: string;\r\n severity: string;\r\n message: string;\r\n ruleName: string;\r\n}\r\n\r\nexport interface KeyValuePair {\r\n key: string;\r\n value: string;\r\n}","import { User } from \"oidc-client\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Redirect, Route, RouteProps } from \"react-router-dom\";\r\nimport RootState from \"../../State/Root/RootState\";\r\nimport ErrorBoundary from \"../../Components/Pages/Errors/ErrorBoundary\";\r\nimport LoadingDisplay from \"../Shared/Loading\";\r\nimport Unauthorized from \"../Pages/Errors/Unauthorized\";\r\nimport { HasSignedLegalAgreement, NeedsSignerTitle } from \"../../Configuration/AuthorizationPolicies\";\r\nimport LegalAgreementSignPage from \"../Pages/LegalAgreementSign\";\r\nimport UpdateYourTitle from \"../Pages/UpdateYourTitle\";\r\nimport ScrollToTop from '../../Hooks/ScrollToTop'\r\n\r\n// ATTRIBUTE PROPS\r\ninterface IProps {\r\n authenticationPolicy: (user: User | null) => boolean;\r\n authorizationPolicy: (user: User | null) => Promise;\r\n}\r\n\r\n// REDUX PROPS\r\ninterface IReduxProps {\r\n user: User | null;\r\n}\r\n\r\ninterface IAuthorizedRouteState {\r\n isAuthorized?: boolean;\r\n hasSignedLegalAgreement?: boolean;\r\n needsSignerTitle: boolean;\r\n}\r\n\r\nconst mapStateToProps = (state: RootState): IReduxProps => ({\r\n user: state.AuthenticationReducer.user\r\n});\r\n\r\n// REACT VIEW\r\nclass AuthorizedRouteView extends React.Component<\r\n RouteProps & IProps & IReduxProps, IAuthorizedRouteState\r\n > {\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = { isAuthorized: null, hasSignedLegalAgreement: null, needsSignerTitle:true };\r\n }\r\n\r\n // Do asynchronous action here\r\n async componentDidMount() {\r\n try {\r\n const isAuthorized = await this.props.authorizationPolicy(this.props.user);\r\n const hasSignedLegalAgreement = await HasSignedLegalAgreement(this.props.user);\r\n const needsSignerTitle = await NeedsSignerTitle(this.props.user);\r\n this.setState({ isAuthorized, hasSignedLegalAgreement, needsSignerTitle })\r\n } catch (err) {\r\n // error handling\r\n }\r\n }\r\n\r\n public render() {\r\n const { component, render, user, authenticationPolicy, ...rest } = this.props;\r\n\r\n const isAuthenticated = authenticationPolicy(user);\r\n\r\n if (!isAuthenticated) {\r\n // Redirect to unAuthorized path (or home if not specified) if not authenticated, or no component/render defined\r\n return (\r\n \r\n );\r\n }\r\n\r\n // Determine if the user is authorized\r\n if (this.state.isAuthorized != null) {\r\n\r\n if (this.state.isAuthorized) {\r\n if (this.state.hasSignedLegalAgreement) {\r\n if (!this.state.needsSignerTitle) {\r\n // Render function is defined\r\n if (render) {\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n );\r\n }\r\n\r\n // Component is defined\r\n if (component) {\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 else {\r\n return ()\r\n }\r\n }\r\n else {\r\n return ();\r\n }\r\n }\r\n return ();\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AuthorizedRoute = connect(mapStateToProps)(\r\n AuthorizedRouteView\r\n);\r\n\r\nexport default AuthorizedRoute;\r\n","import { User } from \"oidc-client\";\r\nimport { AjaxError, AjaxResponse } from \"rxjs/ajax\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IUserRolePayload, IOrgUserPayload } from \"../../DataClasses/UsersData\";\r\nimport { IMenuActionAllowance } from \"../../DataClasses/ActionAllowanceData\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\n\r\nclass UserManagerService {\r\n\r\n //#region Global Manage Users\r\n\r\n public static GetRolesForUser$(user: User, userName: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetUserOrgsAndRoles?userName=' + userName,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetManagableRolesForUser$(user: User, userName: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetManagableRolesForUser?userName=' + userName,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetAccountRolesForCurrentUser$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetAccountRolesForCurrentUser',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetAllRolesPerSysGroup$(user: User, sysGroup: string): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllRolesPerSysGroup?sysGroup=' + sysGroup);\r\n }\r\n public static GetAllRolesPerSysGroupEditUser$(user: User, sysGroup: string, editUser: string): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllRolesPerSysGroup?sysGroup=' + sysGroup + '&editUser=' + editUser);\r\n }\r\n public static GetAllSysGroups$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllSysGroups');\r\n }\r\n public static GetAllOrgRoles$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllOrgRoles');\r\n }\r\n\r\n public static GetAllSubmissionRoles$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllSubmissionRoles');\r\n }\r\n public static GetAllSystemRoles$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllSystemRoles');\r\n }\r\n public static GetAllVendorRoles$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllVendorRoles');\r\n }\r\n\r\n public static AddNewUserToSystem$(user: User, userEmail: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/AddNewUserToSystem?userEmail=' + userEmail);\r\n }\r\n\r\n // Not at all sure this one works.\r\n public static DeleteUserRole$(user: User, userToDeleteId: string, userRoleInfo: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/DeleteUserRole?userId=' + userToDeleteId + '&userRoleInfo=' + userRoleInfo);\r\n }\r\n\r\n public static DeleteAllUserRoles$(user: User, userToDeleteId: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/DeleteAllUserRoles?userId=' + userToDeleteId);\r\n }\r\n\r\n public static DeleteAllOrgUsers$(user: User, orgId: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/DeleteAllOrgUsers?organizationId=' + orgId);\r\n }\r\n\r\n\r\n public static DeleteUserAccess$(user: User, userToDeleteId: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/DeleteUserAccess?userId=' + userToDeleteId);\r\n }\r\n\r\n public static DeleteManagableUserAccess$(user: User, userToDeleteId: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/DeleteManagableUserAccess?userName=' + userToDeleteId);\r\n }\r\n\r\n public static AddUserToRoles$(user: User, userName: string, selectedSysGroup: string, selectedRoles: string, selectedOrgs: string, inputSubIds: string, isNewUser: boolean): Observable | AjaxError> {\r\n var funcStr = isNewUser ? 'AddNewUserToRoles' : 'AddUserToRoles';\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/' + funcStr,\r\n {\r\n userName: userName,\r\n sysGroup: selectedSysGroup,\r\n roles: selectedRoles,\r\n orgIds: selectedOrgs,\r\n subIds: inputSubIds\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UpdateSubUserEntities$(user: User, userName: string, organizationId: number, selectedSubs: number[]): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/UpdateSubUserEntities?userName=' + userName + '&orgId=' + organizationId + '&subIds=' + selectedSubs.join(','));\r\n }\r\n\r\n public static IsActionAuthorized$(user: User, actionName: string, entityType: string, entityId: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/IsActionAuthorized?actionName=' + actionName + '&entityType=' + entityType + '&entityId=' + entityId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static GetAllAuthorizedUserActions$(user: User, entityType: string, entityId: number): Observable> {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetAllAuthorizedUserActions?entityType=' + entityType + '&entityId=' + entityId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n // #endregion\r\n\r\n //#region All Users\r\n public static GetAllUsers$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetAllUsers');\r\n }\r\n //#endregion\r\n\r\n //#region get Managable Users\r\n public static GetManagableUsers$(user: User): Observable {\r\n return UserManagerService.BasicUMGet(user, '/api/UserManager/GetManagableUsers');\r\n }\r\n\r\n public static GetUsersForOrganization$(user: User, organizationId: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetUsersForOrganization?organizationId=' + organizationId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static CanUserDownloadCAHPSReports$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/CanUserDownloadCAHPSReports',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static IsHEDISOnlyUser$(user: User, submissionType: string, action: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/IsHEDISOnlyUser?submissionType=' + submissionType + '&action=' + action,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n private static BasicUMGet(user: User, callString: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + callString,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static BasicUMPost(user: User, callString: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + callString,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetMenuItemAvailabilities$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetMenuActionAvailabilities',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetAccessableSubIds$(user: User, userName): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/GetAccessableSubIds?userName=' + userName,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static BulkUserOperation$(user: User, bulkAction: string, sysGroupType: string, role: string, userEmails: string,\r\n entityIds: string, copyFromUserEmail: string, removeExistingRoles: boolean): Observable | AjaxError> {\r\n var data = {\r\n bulkAction: bulkAction,\r\n sysGroupType: sysGroupType,\r\n role: role,\r\n userEmails: userEmails,\r\n entityIds: entityIds,\r\n copyFromUserEmail: copyFromUserEmail,\r\n removeExistingRoles: removeExistingRoles\r\n };\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/BulkUserOperation',\r\n data,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static LockUser$(user: User, userEmail: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/LockUser?userEmail=' + userEmail);\r\n }\r\n\r\n public static UnLockUser$(user: User, userEmail: string): Observable | AjaxError> {\r\n return UserManagerService.BasicUMPost(user, '/api/UserManager/UnLockUser?userEmail=' + userEmail);\r\n }\r\n\r\n public static IsUserLockedOut$(user: User, userEmail: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/UserManager/IsUserLockedOut?userEmail=' + userEmail,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n}\r\n\r\nexport default UserManagerService;","import { Machine } from 'xstate';\r\n\r\nexport const allUsersMachineDefaultState = \"default\";\r\n\r\nexport interface AllUsersMachineSchema {\r\n states: {\r\n default: {};\r\n addUserDialogOpen: {};\r\n manageUserOpen: {};\r\n addRolesToUserDialogOpen: {};\r\n deleteAllAlertDialogOpen: {};\r\n };\r\n}\r\n\r\n// The events that the machine handles\r\n// The context (extended state) of the machine\r\ninterface AllUsersMachineContext {\r\n}\r\n\r\nexport type AllUsersMachineEvents =\r\n | { type: 'OpenUserDialog' }\r\n | { type: 'OpenManageUser' }\r\n | { type: 'CloseUserDialog' }\r\n | { type: 'CloseManageUser' }\r\n | { type: 'OpenDeleteAllAlertDialog' }\r\n | { type: 'OpenAddRolesToUserDialog' }\r\n | { type: 'CloseAddRolesToUserDialog' }\r\n | { type: 'CloseDeleteAllAlertDialog' }\r\n ;\r\n\r\n// Although it's hard to tell here, strong typing the Machine provides strong type checking in the using class\r\nexport const allUsersMachine = Machine({\r\n id: 'allUsers',\r\n initial: 'default',\r\n states: {\r\n default: {\r\n on: {\r\n OpenUserDialog: 'addUserDialogOpen',\r\n OpenManageUser: 'manageUserOpen'\r\n }\r\n },\r\n addUserDialogOpen: {\r\n on: { CloseUserDialog: 'default' }\r\n },\r\n manageUserOpen: {\r\n on: {\r\n CloseManageUser: 'default',\r\n OpenDeleteAllAlertDialog: 'deleteAllAlertDialogOpen',\r\n OpenAddRolesToUserDialog: 'addRolesToUserDialogOpen',\r\n OpenUserDialog: 'addUserDialogOpen',\r\n }\r\n },\r\n addRolesToUserDialogOpen: {\r\n on: { CloseAddRolesToUserDialog: 'manageUserOpen' }\r\n },\r\n deleteAllAlertDialogOpen: {\r\n on: { CloseDeleteAllAlertDialog: 'manageUserOpen' }\r\n },\r\n }\r\n});\r\n","import Button from '@material-ui/core/Button';\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\n\r\n// REDUX PROPS\r\ninterface IDialogProps {\r\n showError: boolean,\r\n errorMsg: string,\r\n buttonHandler: any\r\n}\r\n\r\nconst ErrorDialog = (props: IDialogProps) => (\r\n
\r\n \r\n Error\r\n \r\n \r\n {props.errorMsg}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n);\r\n\r\nexport default ErrorDialog;","import { AjaxError } from \"rxjs/ajax\";\r\n\r\nclass ExceptionService {\r\n public static StandardAjaxExceptionHandler(error: AjaxError): string {\r\n switch (error.status) {\r\n case 400: //Invalid field\r\n if (error.response != null)\r\n return JSON.stringify(error.response);\r\n else return \"Some fields are not valid. Please correct and try again.\";\r\n case 401: //Not Authorized\r\n return \"The action requested requires you to be logged in to the site. You may not have logged in or your session has expired. Please log in before continuing.\";\r\n case 403: //Forbidden\r\n return \"You do not have sufficient privileges to complete this action.\";\r\n case 500: // INTERNAL SERVER ERROR\r\n return \"An error occurred while getting or saving your information. Please try again. If this problem persists, please contact us.\";\r\n case 404: // Page not found\r\n return \"The requested page not found.\";\r\n case 0: // Connection issue\r\n return \"Not connected.\\nPlease verify your network connection.\";\r\n default: // EVERYTHING ELSE\r\n return \"An unexpected error occurred. Please try again. If this problem persists, please contact us.\";\r\n }\r\n }\r\n}\r\n\r\nexport default ExceptionService;\r\n\r\n\r\n","import { User } from \"oidc-client\";\r\nimport { AjaxResponse } from \"rxjs/ajax\";\r\nimport { Observable } from \"rxjs\";\r\nimport { ISubmissionPayload, ISelectedSubmissionsHolder, ISubmissionHomePayload, IValidationResponsePayload, ISubmissionUserPayload, IOrgSummary, SubmissionActionTypes, ISubmissionAttestationFlags, ISubmissionAllowance, ISubmissionLockEvent, ISubmissionsStatistics, ISubmissionAttestationReportingFlags, ISubmissionKey, IDetailedSubmission } from \"../../DataClasses/SubmissionData\";\r\nimport { ILiveMeasure, IMeasureCodesForFilter, IWrappedMeasureCategories } from \"../../DataClasses/MeasureViewerData\";\r\nimport { AjaxError } from 'rxjs/ajax';\r\nimport { IFilesUploadReportPayload } from \"../../DataClasses/ReportData\";\r\nimport { SubmissionType } from \"../../DataClasses/SharedData\";\r\nimport { KeyValuePair } from \"../../DataClasses/SharedData\";\r\nimport { IArtDefault } from \"../../DataClasses/ArtDefault\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\nconst querystring = require('querystring');\r\n\r\nclass SubmissionsService {\r\n\r\n //#region Submissions\r\n\r\n public static GetSubmissionSummary$(user: User, currentSubId: string, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionSummary?subId=' + currentSubId + '&component=' + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetDetailedSubmission$(user: User, currentSubId: string, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetDetailedSubmission?submissionId=' + currentSubId + '&component=' + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetVendorMeasureGuids$(user: User, vendorId: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetVendorMeasureGuids?vendorId=' + vendorId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionsForOrg$(user: User, orgId: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionsForOrg?orgId=' + orgId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetSubmissionKeysForOrg$(user: User, orgId: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionKeysForOrg?orgId=' + orgId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionsOfTypeForOrgsByAction$(user: User, orgIds: number[], submissionType: SubmissionType, action: string): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionsOfTypeForOrgsByAction',\r\n {\r\n 'OrgIds': orgIds,\r\n 'SubmissionType': submissionType.toString(),\r\n 'Action': action,\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionsDownloadableInfo$(user: User, subIds: number[], submissionType: SubmissionType): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionsDownloadableInfo?submissionIds=' + subIds.join(',') + \"&submissionType=\" + submissionType.toString(),\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetSubmissionsOfTypeForOrgs$(user: User, orgIds: number[], submissionType: SubmissionType): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionsOfTypeForOrgs?orgIds=' + orgIds.join(',') + \"&submissionType=\" + submissionType.toString(),\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetAllSubmissions$(user: User): Observable {\r\n return this.GetSubmissions(user, '/api/Submissions/GetAllSubmissions');\r\n }\r\n\r\n public static GetSubmissionLockEvents$(user: User, measurementYear: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionLockEvents?measurementYear=' + measurementYear,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetValidationData$(user: User, currentSubId: string, homePayload: ISubmissionHomePayload): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL +\r\n '/api/Submissions/GetValidationData?subId=' +\r\n currentSubId + '&productLine=' + homePayload.productLine +\r\n '&submissionComponent=' + homePayload.component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionAuditors$(user: User, orgId: number, subId: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionAuditors?orgId=' + orgId + '&subId=' + subId,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionsForUser$(user: User, getAllSubmissions: boolean): Observable {\r\n return this.GetSubmissions(user, '/api/Submissions/GetSubmissionsForUser?getAllSubmissions=' + getAllSubmissions);\r\n }\r\n\r\n public static GetBulkFiles$(user: User, bulkSubs: ISelectedSubmissionsHolder): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetBulkFilesNCQAUseOnly',\r\n {\r\n 'Submissions': bulkSubs.submissions,\r\n 'FileTypes': bulkSubs.fileTypes,\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static SubmissionsBulkAction$(user: User, bulkSubs: ISelectedSubmissionsHolder, action: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/ExecuteBulkSubmissionAction?action=' + action,\r\n bulkSubs,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static SubmissionsBulkAttestation$(user: User, bulkSubs: ISelectedSubmissionsHolder, attester: string, vendorName: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/ExecuteBulkSubmissionAttestation?attester=' + attester + '&vendorName=' + vendorName,\r\n bulkSubs,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UpdateAuditor$(user: User, orgId: number, submissionId: number, userName: string, accountLevel: string, action: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/UpdateAuditor?orgId=' + orgId + '&submissionId=' + submissionId + '&userName=' + userName + '&accountLevel=' + accountLevel + '&action=' + action,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n private static GetSubmissions(user: User, callString: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + callString,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n //#endregion\r\n\r\n //#region Submission Measure\r\n\r\n public static GetMeasureIndicatorsForSubmission$(user: User, subId: string, productLine: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetMeasureIndicatorsForSubmission?subId=' + subId + '&productLine=' + productLine,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetLiveMeasure(user: User, submissionId: string, productLine: string, measure: string, measurementYear: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + `/api/Submissions/GetLiveMeasure?submissionId=${submissionId}&productLine=${productLine}&measure=${measure}&measurementYear=${measurementYear}`,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n //#endregion\r\n\r\n public static GetOrgForSubmissionsSummary$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetOrgForSubmissionsSummary',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetOrgForVendorsSummary$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetOrgForVendorsSummary',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static ExecutePlanAction$(user: User, submissionId: string, component: string, actionType: SubmissionActionTypes): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/ExecutePlanAction?submissionId=' + submissionId + '&component=' + component + '&action=' + actionType,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UnSubmitFile$(user: User, submissionId: number, component: string): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/UnSubmitFile?submissionId=' + submissionId + '&component=' + component,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static ReprocessSubmission$(user: User, submissionId: number, component: string, groupId: any): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/ReprocessSubmission?submissionId=' + submissionId + '&component=' + component + '&groupId=' + groupId,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetUploadedDocsForSubmission$(user: User, submissionId: number, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionUploadedDocuments?submissionId=' + submissionId + '&component=' + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionLink$(user: User, submissionId: number, component: string, isFileUploaded: boolean, isValidated: boolean, stageNumber: number, key: string, productLine: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL +\r\n '/api/Submissions/GetSubmissionDownloadString?component=' + component +\r\n '&submissionId=' + submissionId +\r\n '&productLine=' + productLine +\r\n '&isFileUploaded=' + isFileUploaded +\r\n '&isValidated=' + isValidated +\r\n '&stageNumber=' + stageNumber +\r\n '&key=' + key,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UpdateSubmissionAttestationFlags$(user: User, attestationFlags: ISubmissionAttestationFlags): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/UpdateSubmissionAttestationFlags?' + querystring.stringify(attestationFlags),\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UpdateSubmissionAttestationReportingFlags$(user: User, attestationReportingFlags: ISubmissionAttestationReportingFlags): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/UpdateSubmissionAttestationReportingFlags?' + querystring.stringify(attestationReportingFlags),\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UndoSubmissionAttestation$(user: User, submissionId: string, component: string): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/UndoSubmissionAttestation?submissionId=' + submissionId + \"&component=\" + component,\r\n {\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n\r\n public static GetUploadAvailabilities$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetBulkUploadAvailabilities',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetReportsAvailabilities$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetReportsAvailabilities',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static UpdateAuditDesignations$(user: User, subId: string, component: string, auditDesignations: IWrappedMeasureCategories): Observable> {\r\n return AjaxHelper.AjaxPost(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/UpdateAuditDesignations?submissionId=' + subId + \"&component=\" + component,\r\n auditDesignations,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetAuditDesignations$(user: User, subId: string, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetAuditDesignations?submissionId=' + subId + \"&component=\" + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetMeasureCodesForFilter$(user: User, productLine: string): Observable{\r\n return AjaxHelper.AjaxGet$(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetMeasureCodesForFilter?productLine=' + productLine,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetSubmissionsStatistics$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionsStatistics',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetESignPDF$(user: User, submissionId: number, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetESignPDF?submissionId=' + submissionId + \"&component=\" + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static SignPDF$(user: User, submissionId: number, component: string): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/SignPDF?submissionId=' + submissionId + \"&component=\" + component,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetPendingSubmissions$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetPendingSubmissions',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetArtDefaults$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetArtDefaults',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static IsSubmissionAuditorWritable$(user: User, orgId: number, subId: number, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/IsSubmissionAuditorWritable?orgId=' + orgId + '&submissionId=' + subId + '&component=' + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static BulkSubmissionAction$(user: User, subIds: number[], component: string, action: string): Observable> {\r\n var subIdStr = subIds.join(',');\r\n return this.BulkSubmissionActionByIdsStr$(user, subIdStr, component, action);\r\n }\r\n\r\n public static BulkSubmissionActionByIdsStr$(user: User, subIds: string, component: string, action: string): Observable> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/BulkSubmissionAction?subIds=' + subIds + '&component=' + component + '&action=' + action,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetMeasureDataDownloadCaller$(user: User, subId: string, measureCode: string) {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetMeasureDataDownload?subId=' + subId + '&measureCode=' + measureCode,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetFilteredArtDownloads$(user: User, subId: string, filterValue: string) {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetFilteredArtDownload?subId=' + subId + '&filterValue=' + filterValue,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionDataExtractStatistics$(user: User): Observable> {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionDataExtractStatistics',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static ExtractSubmissions$(user: User, dataExtractionType: string): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/ExtractSubmissions?dataExtractionType=' + dataExtractionType,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static VerifyDataExtraction$(user: User, dataExtractionType: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/VerifyDataExtraction?dataExtractionType=' + dataExtractionType,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static DownloadAllProductLineTemplates$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/DownloadAllProductLineTemplates',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetHosSubmissionsAttestationLanguage$(user: User): Observable> {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetHosSubmissionsAttestationLanguage',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n } \r\n}\r\n\r\nexport default SubmissionsService;","import { Card, CardContent, Typography } from '@material-ui/core';\r\nimport Skeleton from 'react-loading-skeleton';\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\n\r\ninterface ILoadingProps {\r\n count?: number,\r\n titleText?: string,\r\n doubleRowSpace?: boolean,\r\n width?: string\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n cardContent: {\r\n padding: '0',\r\n '& table': {\r\n margin: theme.spacing(2, 0)\r\n },\r\n '& ul': {\r\n margin: theme.spacing(2)\r\n },\r\n },\r\n cardTitle: {\r\n margin: theme.spacing(2)\r\n },\r\n skeleton: {\r\n margin: theme.spacing(1, 2),\r\n },\r\n skeleton2: {\r\n margin: theme.spacing(2, 2),\r\n }\r\n});\r\ntype IStylesProps = WithStyles;\r\nconst LoadingDataTableRaw = (props: ILoadingProps & IStylesProps) => {\r\n return (\r\n \r\n {props.titleText == null ? null :\r\n \r\n {props.titleText === \"*\" ?\r\n \r\n : props.titleText}\r\n \r\n }\r\n \r\n \r\n \r\n )\r\n};\r\n\r\nconst LoadingDataTable = withStyles(styles)(LoadingDataTableRaw);\r\n\r\nexport default LoadingDataTable;","export const SeedTime = 400;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport {\r\n Grid,\r\n Card,\r\n Typography,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n TextField,\r\n DialogActions,\r\n Fade,\r\n CircularProgress,\r\n Button,\r\n CardContent,\r\n} from \"@material-ui/core\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../DataClasses/GenericUser\";\r\nimport { Formik, FormikHelpers, FormikErrors, FormikProps } from \"formik\";\r\nimport * as validator from \"validator\";\r\nimport { allUsersMachine } from '../../Components/Machines/AllUsersMachine';\r\nimport { State, EventObject, interpret } from \"xstate\";\r\nimport AlertDialog from \"../Shared/AlertDialog\";\r\nimport ErrorDialog from \"../Shared/ErrorDialog\";\r\nimport { IUserRolePayload } from \"../../DataClasses/UsersData\";\r\nimport { IOrgSummary } from \"../../DataClasses/SubmissionData\";\r\nimport Select from \"react-select\";\r\nimport ExceptionSerivce from \"../Services/ExceptionService\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n spacer: {\r\n paddingLeft: '10px'\r\n },\r\n progress: {\r\n verticalAlign: 'middle',\r\n paddingLeft: '5px'\r\n }\r\n});\r\n\r\n// REDUX PROPS\r\ninterface IAllUsersViewStateStore {\r\n data: any[];\r\n isLoading: boolean;\r\n stateMachine: State, EventObject>;\r\n manageUsersPayload: IUserRolePayload[];\r\n filterText: string;\r\n targetUser: string;\r\n allOrgs: IOrgSummary[];\r\n allVendors: IOrgSummary[];\r\n allSysGroups: string[];\r\n selectedSysGroup: any;\r\n selectedOrgs: any;\r\n selectedRoles: any;\r\n allRoles: string[];\r\n inputSubIds: string;\r\n errorMsg: string;\r\n redirect: boolean;\r\n isProcessing: boolean;\r\n isUserLockedOut: boolean;\r\n}\r\n\r\ninterface IAddUserForm {\r\n email: string;\r\n firstName: string;\r\n lastName: string;\r\n}\r\n\r\n\r\nconst subListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 25,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n};\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass AllUsersView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAllUsersViewStateStore\r\n > {\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n stateMachine: allUsersMachine.initialState,\r\n manageUsersPayload: [],\r\n targetUser: \"\",\r\n filterText: \"\",\r\n allOrgs: [],\r\n allVendors: [],\r\n allSysGroups: [],\r\n selectedSysGroup: \"\",\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n allRoles: [],\r\n inputSubIds: \"\",\r\n errorMsg: \"\",\r\n redirect: false,\r\n isProcessing: false,\r\n isUserLockedOut: false\r\n };\r\n }\r\n\r\n service = interpret(allUsersMachine).onTransition(stateMachine =>\r\n this.setState({ stateMachine })\r\n );\r\n\r\n private userOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 25,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n private userColumns = [\r\n {\r\n name: \"Entity ID\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Org/Vendor\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Role Type\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Role Name\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n\r\n {\r\n name: \"Action\",\r\n options: {\r\n customBodyRender: value => {\r\n return (\r\n
\r\n this.deleteButtonClick(value)}\r\n >\r\n Delete\r\n \r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n await this.RefreshManageUsersModel();\r\n\r\n // Start the State machine\r\n this.service.start();\r\n }\r\n\r\n public async componentWillUnmount() {\r\n\r\n // Stop the State machine\r\n this.service.stop();\r\n }\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n const subListingColumns = [\r\n {\r\n name: \"Users\",\r\n options: {\r\n filter: true,\r\n customBodyRender: value => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Add Users\r\n \r\n this.service.send('OpenUserDialog')}\r\n className={classes.minspacing}\r\n >\r\n Add\r\n \r\n \r\n initialValues={{\r\n firstName: \"\",\r\n lastName: \"\",\r\n email: \"\"\r\n }}\r\n enableReinitialize={true}\r\n onSubmit={this.onSubmit}\r\n validate={this.validate}\r\n >\r\n {props => this.getForm(props, classes)}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.isLoading?:\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n {this.renderManageUsers()}\r\n
\r\n );\r\n }\r\n\r\n public renderManageUsers() {\r\n const { classes } = this.props;\r\n const tableData = this.state.manageUsersPayload.map(item => {\r\n return [\r\n item.entityId,\r\n item.entityName,\r\n item.roleType,\r\n item.roleName,\r\n item.entityId + \",\" + item.roleType + \",\" + item.roleName\r\n ];\r\n });\r\n const sysGroupOption = this.state.allSysGroups.map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n const orgOption = this.state.allOrgs.map(m => ({\r\n label: m.orgId + \"-\" + m.orgName,\r\n value: m.orgId\r\n }));\r\n const vendorOption = this.state.allVendors.map(m => ({\r\n label: m.orgId + \"-\" + m.orgName,\r\n value: m.orgId\r\n }));\r\n const roleOption = this.state.allRoles.map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n let addRoles = this.state.stateMachine.matches(\"addRolesToUserDialogOpen\");\r\n let delleteAll = this.state.stateMachine.matches(\"deleteAllAlertDialogOpen\");\r\n let manageUsers = this.state.stateMachine.matches(\"manageUserOpen\");\r\n if (addRoles || delleteAll || manageUsers) {\r\n return \r\n \r\n \r\n \r\n Manage Users ({this.state.targetUser})\r\n \r\n\r\n \r\n \r\n this.service.send(\"OpenAddRolesToUserDialog\")}\r\n >\r\n Add\r\n \r\n \r\n {!this.state.isUserLockedOut ? \r\n this.updateUser('lock')} disabled={this.state.isProcessing}>\r\n Lock User (Testing)\r\n \r\n : \r\n this.updateUser('unlock')} disabled={this.state.isProcessing}>\r\n Unlock User\r\n }\r\n {this.state.isProcessing ? : null}\r\n this.service.send(\"CloseAddRolesToUserDialog\")} classes={{ paper: classes.dialogM }} >\r\n \r\n Add Roles to the User ( {this.state.targetUser}):\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
Select System Group:\r\n \r\n
Select Organization(s):\r\n \r\n
\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n \r\n
\r\n this.service.send(\"CloseDeleteAllAlertDialog\")}\r\n />\r\n this.setState({ errorMsg: \"\" })}\r\n />\r\n \r\n
\r\n
\r\n
\r\n }\r\n else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n\r\n //#region Manage Users Region\r\n\r\n private async RefreshManageUsersModel() {\r\n\r\n try {\r\n const allOrgsRetval = await SubmissionsService.GetOrgForSubmissionsSummary$(\r\n this.props.user\r\n ).toPromise();\r\n this.setState({ allOrgs: allOrgsRetval });\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setRedirectState(); \r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n const allVendorsRetval = await SubmissionsService.GetOrgForVendorsSummary$(\r\n this.props.user\r\n ).toPromise();\r\n if (allVendorsRetval instanceof AjaxError || !allVendorsRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allVendors: allVendorsRetval });\r\n }\r\n const allSysGroupRetval = await UserManagerService.GetAllSysGroups$(\r\n this.props.user\r\n ).toPromise();\r\n if (allSysGroupRetval instanceof AjaxError || !allSysGroupRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allSysGroups: allSysGroupRetval });\r\n }\r\n // this.setState({ isLoading: false });\r\n }\r\n\r\n selectedOrgsChange(newValue): void {\r\n this.setState({ selectedOrgs: newValue });\r\n }\r\n async selectedSysGroupChange(newValue) {\r\n this.setState({\r\n selectedSysGroup: newValue,\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n inputSubIds: \"\"\r\n });\r\n const rolesRetval = await UserManagerService.GetAllRolesPerSysGroup$(\r\n this.props.user,\r\n newValue.value\r\n ).toPromise();\r\n if (rolesRetval instanceof AjaxError || !rolesRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allRoles: rolesRetval });\r\n }\r\n }\r\n selectedRolesChange(newValue): void {\r\n this.setState({ selectedRoles: newValue });\r\n }\r\n inputSubIdsChange(e: any): void {\r\n this.setState({ inputSubIds: e.target.value });\r\n }\r\n async deleteButtonClick(userRoleInfo: string) {\r\n try {\r\n await UserManagerService.DeleteUserRole$(\r\n this.props.user,\r\n this.state.targetUser,\r\n userRoleInfo\r\n ).toPromise();\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setRedirectState();\r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n await this.RefreshRolesForUser();\r\n }\r\n private buttonYesHandler = async () => {\r\n this.service.send(\"CloseDeleteAllAlertDialog\");\r\n // dispatch delete all user roles action\r\n await UserManagerService.DeleteAllUserRoles$(\r\n this.props.user,\r\n this.state.targetUser\r\n ).toPromise();\r\n await this.RefreshRolesForUser();\r\n };\r\n handleClose = () => {\r\n this.service.send(\"CloseAddRolesToUserDialog\");\r\n this.setState({\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n selectedSysGroup: \"\",\r\n inputSubIds: \"\"\r\n });\r\n };\r\n\r\n handleSave = async () => {\r\n await UserManagerService.AddUserToRoles$(\r\n this.props.user,\r\n this.state.targetUser,\r\n this.state.selectedSysGroup.value,\r\n this.state.selectedRoles.map(p => p.value).join(\",\"),\r\n this.state.selectedOrgs === \"\"\r\n ? \"\"\r\n : this.state.selectedOrgs.map(p => p.value).join(\",\"),\r\n this.state.inputSubIds,\r\n false\r\n ).toPromise();\r\n await this.RefreshRolesForUser();\r\n this.service.send(\"CloseAddRolesToUserDialog\");\r\n this.setState({\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n selectedSysGroup: \"\",\r\n inputSubIds: \"\"\r\n });\r\n };\r\n\r\n private async RefreshRolesForUser() {\r\n\r\n try {\r\n const retval = await UserManagerService.GetRolesForUser$(\r\n this.props.user,\r\n this.state.targetUser\r\n ).toPromise();\r\n this.setState({ manageUsersPayload: retval });\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setRedirectState();\r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n }\r\n\r\n //#endregion \r\n\r\n private async DoManageUser(targetName: string) {\r\n this.setState({ isUserLockedOut: false });\r\n this.setState(\r\n { targetUser: targetName },\r\n () => {\r\n this.RefreshRolesForUser();\r\n this.service.send(\"OpenManageUser\");\r\n }\r\n );\r\n\r\n //get user locked out status\r\n const retVal = await UserManagerService.IsUserLockedOut$(\r\n this.props.user,\r\n targetName\r\n ).toPromise();\r\n this.setState({ isUserLockedOut: retVal });\r\n }\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval = await UserManagerService.GetAllUsers$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n const data = retval.map(item => {\r\n return [item];\r\n });\r\n this.setState({ data: data });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n\r\n private getForm = (formikProps: FormikProps, classes: any): JSX.Element => {\r\n const {\r\n handleSubmit,\r\n handleReset,\r\n handleChange,\r\n handleBlur,\r\n touched,\r\n errors,\r\n values,\r\n isSubmitting,\r\n isValid,\r\n submitForm\r\n } = formikProps;\r\n\r\n return (\r\n
\r\n
\r\n \r\n Add New User\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Submit\r\n \r\n this.service.send('CloseUserDialog')}\r\n disabled={isSubmitting}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private validate = (values: IAddUserForm): FormikErrors => {\r\n const errors: FormikErrors = {};\r\n\r\n // EMAIL\r\n //1. Require\r\n // 2. Max length = 255\r\n // 3. Valid\r\n if (validator.isEmpty(values.email)) {\r\n errors.email = \"Required\";\r\n } else if (!validator.isLength(values.email, { min: 1, max: 75 })) {\r\n errors.email = \"Email can be no longer than 75 characters\";\r\n } else if (!validator.isEmail(values.email)) {\r\n errors.email = \"Email is not in a valid format\";\r\n }\r\n return errors;\r\n };\r\n\r\n private onSubmit = async (\r\n values: IAddUserForm,\r\n formikHelpers: FormikHelpers\r\n ): Promise => {\r\n const { setSubmitting } = formikHelpers;\r\n try {\r\n const retval = await UserManagerService.AddNewUserToSystem$(\r\n this.props.user,\r\n values.email\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n\r\n // Close the dialog\r\n this.service.send('CloseUserDialog');\r\n } catch (ex) {\r\n } finally {\r\n setSubmitting(false);\r\n this.RefreshModel();\r\n }\r\n };\r\n\r\n async updateUser(type: string) {\r\n try {\r\n this.setState({ isProcessing: true });\r\n if (type === \"lock\") {\r\n await UserManagerService.LockUser$(\r\n this.props.user,\r\n this.state.targetUser\r\n ).toPromise();\r\n this.setState({ isUserLockedOut: true });\r\n }\r\n else if (type === \"unlock\") {\r\n await UserManagerService.UnLockUser$(\r\n this.props.user,\r\n this.state.targetUser\r\n ).toPromise();\r\n this.setState({ isUserLockedOut: false });\r\n }\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setRedirectState();\r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n finally {\r\n this.setState({ isProcessing: false });\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AllUsersPageWithState = connect(\r\n genericMapStateToProps\r\n)(AllUsersView);\r\n\r\n// STYLES CONTAINER\r\nconst AllUsersPage = withStyles(styles)(AllUsersPageWithState);\r\n\r\nexport default AllUsersPage;\r\n","import { User } from \"oidc-client\";\r\nimport { ajax, AjaxError, AjaxResponse } from \"rxjs/ajax\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IAnnouncementPayload } from \"../../DataClasses/AnnouncementData\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\n\r\nclass AnnouncementsService {\r\n public static GetAnnouncements$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Announcements/GetAnnouncements',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetAnnouncementsDetail$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Announcements/GetAnnouncementsDetail',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static SaveAnnoucement$(user: User, id: number, displayOrder: string, startDate: string, stopDate: string, text: string): Observable | AjaxError> {\r\n return ajax.post(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Announcements/SaveAnnouncement',\r\n {\r\n id: id,\r\n displayOrder: displayOrder,\r\n startDate: startDate,\r\n stopDate: stopDate,\r\n text: text\r\n },\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static DeleteAnnouncement$(user: User, id: number): Observable | AjaxError> {\r\n return AjaxHelper.AjaxPost(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Announcements/DeleteAnnouncement?id=' + id,\r\n {},\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n}\r\n\r\nexport default AnnouncementsService;","import { User } from \"oidc-client\";\r\nimport { Observable } from \"rxjs\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\n\r\nclass EventsService {\r\n public static GetEventsStrings$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Events/GetEventsStrings',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n}\r\n\r\nexport default EventsService;","class SharedUtility {\r\n \r\n public static Str2ab$(str) {\r\n const buf = new ArrayBuffer(str.length);\r\n const bufView = new Uint8Array(buf);\r\n for (let i = 0, strLen = str.length; i < strLen; i++) {\r\n bufView[i] = str.charCodeAt(i);\r\n }\r\n return buf;\r\n }\r\n\r\n public static IsNullOrUndefined$(obj:any): boolean {\r\n return obj === null || typeof obj === 'undefined';\r\n }\r\n\r\n public static ToLocaleDateString$(obj: Date | null): string {\r\n return obj != null ? new Date(obj).toDateString() : \"\";\r\n }\r\n\r\n public static NewLinesToBreaks$(text: string): string {\r\n if (text) {\r\n text = text.replace(/\\n/g, \"
\");\r\n }\r\n return text;\r\n }\r\n\r\n public static GetStageCleanName(stageShortName: string): string {\r\n switch (stageShortName) {\r\n case 'MarkFinalHedisHos':\r\n case 'MarkFinalCahps': {\r\n return 'Apply Mark Final';\r\n }\r\n case 'PlanLock': {\r\n return 'Apply Plan Lock';\r\n }\r\n case 'AuditLock': {\r\n return 'Apply Audit Lock';\r\n }\r\n case 'AttestationHedis':\r\n case 'AttestationCahps':\r\n {\r\n return 'Finalize Attestation';\r\n }\r\n case 'AttestationHOS':\r\n case 'AttestationHos':\r\n {\r\n return 'Validations/Attestation';\r\n }\r\n default: {\r\n return stageShortName;\r\n }\r\n }\r\n }\r\n}\r\nexport default SharedUtility;","import * as React from 'react';\r\nimport CheckCircleIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport { green } from '@material-ui/core/colors';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { createStyles, withStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\nimport { MessageType } from '../../DataClasses/SharedData';\r\n\r\nconst variantIcon = {\r\n Success: CheckCircleIcon,\r\n Warning: WarningIcon,\r\n Error: ErrorIcon,\r\n Information: InfoIcon,\r\n};\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(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.main,\r\n },\r\n warning: {\r\n backgroundColor: '#eeaf30'\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 alignItems: 'center',\r\n color: 'white',\r\n padding: theme.spacing(2),\r\n borderRadius: \"5px\"\r\n },\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalProps {\r\n text: React.ReactElement;\r\n variant: MessageType;\r\n}\r\n\r\nconst MessageView: React.StatelessComponent = ({ text, variant, classes }) => {\r\n const Icon = variantIcon[variant];\r\n let variantClass = \"\";\r\n switch (variant) {\r\n case MessageType.Warning:\r\n variantClass = classes.warning;\r\n break;\r\n case MessageType.Error:\r\n variantClass = classes.error;\r\n break;\r\n case MessageType.Information:\r\n variantClass = classes.info;\r\n break;\r\n case MessageType.Success:\r\n variantClass = classes.success;\r\n break;\r\n }\r\n\r\n return (\r\n \r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\n// STYLES CONTAINER\r\nconst UserMessage = withStyles(styles)(MessageView);\r\n\r\nexport default UserMessage;","import * as React from 'react';\r\nimport Dropzone from 'react-dropzone';\r\nimport request from 'superagent';\r\nimport LoadingDisplay from '../Shared/Loading';\r\nimport { CheckCircle as SuccessIcon, GetApp as GetAppIcon, } from '@material-ui/icons';\r\nimport { Grid, Table, TableBody, TableCell, TableRow, TableHead, Tooltip, Typography, Fab, TextareaAutosize, ListItem, ListItemIcon, Fade, CircularProgress, ListItemText, TableContainer, Paper } from '@material-ui/core';\r\nimport classNames from 'classnames'\r\nimport { IGenericUserProps } from '../../DataClasses/GenericUser';\r\nimport { SubmissionType, MessageType, ValidationMessage } from '../../DataClasses/SharedData';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { createStyles, withStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\nimport UserMessage from '../Shared/Message';\r\nimport SharedUtility from '../../Utilities/SharedUtility';\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport { AjaxError } from \"rxjs/ajax\"\r\nimport DbService from '../Services/DbService';\r\nimport { Link } from 'react-router-dom';\r\nimport saveAs from 'file-saver';\r\nimport ReportService from \"../Services/ReportsService\";\r\nimport SubmissionsService from '../Services/SubmissionsService';\r\nimport { ISelectedSubmissions, ISelectedSubmissionsHolder } from '../../DataClasses/SubmissionData';\r\nimport ProcessingDisplay from '../Shared/ProcessingDisplay';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n Border: {\r\n border: '1px solid black'\r\n },\r\n Success: {\r\n color: 'white',\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n height: 22,\r\n width: 75,\r\n backgroundColor: '#008000'\r\n },\r\n Error: {\r\n backgroundColor: '#FF0000',\r\n color: 'white',\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n height: 22,\r\n width: 75\r\n },\r\n Warning: {\r\n backgroundColor: '#ffae42',\r\n color: 'white',\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n height: 22,\r\n width: 75\r\n },\r\n NotSubmitted: {\r\n color: 'white',\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n height: 22,\r\n width: 90,\r\n backgroundColor: '#B0C4DE'\r\n },\r\n Submitted: {\r\n color: 'white',\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n height: 22,\r\n width: 90,\r\n backgroundColor: '#FFA500'\r\n },\r\n Processed: {\r\n color: 'white',\r\n textAlign: 'center',\r\n verticalAlign: 'center',\r\n height: 22,\r\n width: 90,\r\n backgroundColor: '#008000'\r\n },\r\n Row: {\r\n height: '20px !important',\r\n alignItems: 'center',\r\n verticalAlign: 'center',\r\n justifyItems: 'center'\r\n },\r\n BoxDefault: {\r\n outline: '2px dashed #92b0b3',\r\n outlineOffset: '-10px',\r\n fontSize: '1.25rem',\r\n backgroundColor: '#c8dadf',\r\n position: 'relative',\r\n padding: '100px 20px',\r\n textAlign: 'center'\r\n },\r\n BoxDragOver: {\r\n outline: '2px dashed #92b0b3',\r\n outlineOffset: '-20px',\r\n fontSize: '1.25rem',\r\n outlineColor: '#c8dadf',\r\n backgroundColor: '#fff',\r\n position: 'relative',\r\n padding: '100px 20px',\r\n textAlign: 'center'\r\n },\r\n BoxIcon: {\r\n width: '100%',\r\n height: '80px',\r\n display: 'block',\r\n marginBottom: '40px'\r\n },\r\n validationMessageList: {\r\n margin: \"0\",\r\n listStyle: \"none\"\r\n },\r\n DropzoneContainerHeight: {\r\n minHeight: '300px'\r\n }\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nexport interface IFile {\r\n fileId: string,\r\n fileName: string,\r\n submissionID: number,\r\n component: string,\r\n productLine: string,\r\n isProcessed: boolean,\r\n isValidated: boolean,\r\n errorMessage: string\r\n}\r\n\r\nexport interface INonSurveyFile extends IFile {\r\n firstTierValidationStatus: string,\r\n firstTierValidationCount: number,\r\n secondTierValidationStatus: string,\r\n secondTierValidationCount: number,\r\n thirdTierValidationStatus: string,\r\n thirdTierValidationCount: number,\r\n validationStatus: string,\r\n}\r\n\r\nexport interface ISurveyFile extends IFile {\r\n submissionDateTime: Date,\r\n submissionStatus: string,\r\n result: string,\r\n}\r\n\r\nenum StatusType {\r\n Error = \"Error\",\r\n Fatal = \"Fatal\",\r\n WarningsAndErrors = \"WarningsAndErrors\",\r\n SchemaError = \"SchemaError\",\r\n Success = \"Success\",\r\n Warning = \"Warning\",\r\n Submitted = \"Submitted\",\r\n NotSubmitted = \"NotRun\",\r\n Processed = \"Processed\",\r\n NoIssues = \"NoIssues\",\r\n}\r\n\r\ninterface ILocalProps {\r\n uploadFileType: string,\r\n allowMultiple: boolean,\r\n acceptFilesOfType: string\r\n}\r\n\r\n// local state\r\ninterface ILocalState {\r\n isDownloadUploadReport: boolean,\r\n isDownloadValidationReport: boolean,\r\n processingText: string,\r\n transactionId: string,\r\n completed: number,\r\n disableDropzone: boolean,\r\n nonSurveyFiles: INonSurveyFile[],\r\n surveyFiles: ISurveyFile[],\r\n showDownloadLink: boolean,\r\n dropzoneActive: boolean,\r\n filesNotProcessed: string[],\r\n uploadValidationMessages: ValidationMessage[],\r\n processingFiles: boolean\r\n}\r\n\r\nclass BulkUploadDropzoneView extends React.Component {\r\n\r\n constructor(props: IGenericUserProps & ILocalProps & IStylesProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isDownloadUploadReport: false,\r\n isDownloadValidationReport: false,\r\n processingText: \"\",\r\n transactionId: \"\",\r\n completed: 0,\r\n disableDropzone: false,\r\n nonSurveyFiles: [],\r\n surveyFiles: [],\r\n showDownloadLink: false,\r\n dropzoneActive: false,\r\n filesNotProcessed: [],\r\n uploadValidationMessages: [],\r\n processingFiles: false\r\n }\r\n }\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n\r\n {this.state.uploadValidationMessages && this.state.uploadValidationMessages.length > 0 &&\r\n
\r\n \r\n
\r\n }\r\n\r\n \r\n \r\n {this.state.processingFiles ?\r\n
\r\n \r\n \r\n Processing Status\r\n \r\n \r\n
\r\n\r\n :\r\n \r\n\r\n\r\n {({ getRootProps, getInputProps, isDragActive }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Drag and drop file here\r\n \r\n \r\n \r\n \r\n or\r\n \r\n \r\n \r\n \r\n Select File\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.props.uploadFileType === SubmissionType.HEDIS &&\r\n this.state.nonSurveyFiles != null &&\r\n this.state.nonSurveyFiles.length > 0 ?\r\n
\r\n
\r\n {this.renderDownloadReportLink(() => this.getUploadReport(), this.state.isDownloadUploadReport, \"Upload Report\")}\r\n {this.renderDownloadReportLink(() => this.downloadBulkFiles(), this.state.isDownloadValidationReport, \"Validation Report\")}\r\n \r\n \r\n \r\n \r\n File Name\r\n Submission ID\r\n Processing Status\r\n Overall Validation Status\r\n \r\n \r\n \r\n {\r\n this.state.nonSurveyFiles != null &&\r\n this.state.nonSurveyFiles.length > 0 &&\r\n this.state.nonSurveyFiles.map((file: INonSurveyFile) =>\r\n\r\n \r\n {file.fileName}\r\n {file.submissionID}\r\n {(!file.isProcessed ? :\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {file.isValidated && this.renderNonSurveyValidationStatus(file, classes)}\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submission files processed. Please go to Submissions in the left panel to review individual submissions.\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n : ''}\r\n
\r\n
\r\n {this.props.uploadFileType !== SubmissionType.HEDIS &&\r\n this.state.surveyFiles != null &&\r\n this.state.surveyFiles.length > 0 ?\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n File Name\r\n Submission ID\r\n Processing Status\r\n Submission Status\r\n \r\n \r\n \r\n {this.state.surveyFiles != null &&\r\n this.state.surveyFiles.length > 0 &&\r\n this.state.surveyFiles.map((file: ISurveyFile) =>\r\n \r\n {file.fileName}\r\n {file.submissionID}\r\n {(!file.isProcessed ? :\r\n\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {file.isProcessed && this.renderSurveySubmissionStatus(file, classes)}\r\n \r\n \r\n )}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Submission files processed. Please go to Submissions in the left panel to review individual submissions.\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n : ''}\r\n
\r\n \r\n );\r\n }\r\n\r\n private onDragEnter = () => {\r\n this.enableDisableDropActive(true);\r\n }\r\n\r\n private onDragLeave = () => {\r\n this.enableDisableDropActive(false);\r\n }\r\n\r\n // upload the files (dropped in dropzone) to server\r\n private onDrop = (acceptedFiles, rejectedFiles) => {\r\n // set initial state\r\n this.setInitialState();\r\n\r\n const data = new FormData();\r\n if (acceptedFiles.length === 0) {\r\n this.setState({ uploadValidationMessages: [this.CreateValidationMessage('Please select a valid file')] });\r\n\r\n this.enableDropzone();\r\n this.enableDisableDropActive(false);\r\n return;\r\n }\r\n\r\n this.enableDisableDropActive(false);\r\n this.setState({\r\n processingFiles: true,\r\n uploadValidationMessages: []\r\n });\r\n\r\n acceptedFiles.forEach(file => {\r\n data.append(\"files\", file, file.name);\r\n });\r\n const localTransactionId = uuidv4();\r\n this.setState({ transactionId: localTransactionId });\r\n\r\n const req = request.post(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + \"/api/bulkupload/uploadfiles\");\r\n req.query({ submissionType: this.props.uploadFileType });\r\n req.query({ transactionId: localTransactionId });\r\n req.set({ 'Authorization': 'Bearer ' + this.props.user.access_token });\r\n\r\n // show upload progress\r\n req.on('progress', event => {\r\n const percent = Math.floor(event.percent);\r\n if (!isNaN(percent)) {\r\n if (percent >= 100) {\r\n\r\n this.setState({ completed: 100, uploadValidationMessages: [], processingText: \"\", });\r\n } else {\r\n this.setState({ completed: percent });\r\n }\r\n }\r\n });\r\n\r\n setTimeout(\r\n () => this.spinWait(),\r\n 1000\r\n );\r\n\r\n\r\n\r\n // send file(s) to server\r\n req.send(data).end();\r\n // .end((err, res) => this.postUploadFiles(err, res));\r\n };\r\n\r\n private spinWait = async () => {\r\n\r\n\r\n const bulkCall = DbService.GetBulkTransactions$(this.props.user, this.state.transactionId);\r\n\r\n const transactionText = await bulkCall.toPromise();\r\n if (transactionText instanceof AjaxError || transactionText === null) {\r\n if (this.state.processingFiles) {\r\n setTimeout(\r\n () => this.spinWait(),\r\n 2000\r\n );\r\n }\r\n return;\r\n }\r\n else {\r\n var finalStrings = [];\r\n\r\n if (transactionText != null && transactionText.length > 0) {\r\n finalStrings = transactionText.filter((x) => x.startsWith(\"{\"));\r\n }\r\n if (finalStrings !== null && finalStrings.length !== 0) {\r\n var finalString = finalStrings[0];\r\n var result = JSON.parse(finalString);\r\n if (result.fatalError === true) {\r\n this.setState({ uploadValidationMessages: [this.CreateValidationMessage(\"Unexpected error occurred during upload. Please contact NCQA support.\")] });\r\n this.enableDropzone();\r\n this.enableDisableDropActive(true);\r\n this.setState({ processingFiles: false });\r\n return;\r\n }\r\n\r\n if (result.uploadDetail && result.uploadDetail.fileUploaded === false && !result.uploadDetail.validationResult.validationSuccessful) {\r\n this.setState({ uploadValidationMessages: result.uploadDetail.validationResult.messages });\r\n }\r\n if (result.uploadDetail && result.uploadDetail.fileUploaded === true && !result.uploadDetail.validationResult.validationSuccessful) {\r\n this.setState({ uploadValidationMessages: [this.CreateValidationMessage('Validations issue(s) found')] });\r\n }\r\n\r\n if (this.props.uploadFileType === SubmissionType.HEDIS) {\r\n this.setState({ nonSurveyFiles: result.uploadDetail.nonSurveyFiles });\r\n }\r\n else {\r\n this.setState({ surveyFiles: result.uploadDetail.surveyFiles });\r\n }\r\n\r\n this.enableDropzone();\r\n this.enableDisableDropActive(true);\r\n this.setState({ processingFiles: false });\r\n }\r\n else {\r\n var newText = transactionText.join(\"\\n\");\r\n this.setState({ processingText: newText });\r\n }\r\n }\r\n\r\n\r\n if (this.state.processingFiles) {\r\n setTimeout(\r\n () => this.spinWait(),\r\n 2000\r\n );\r\n }\r\n\r\n }\r\n\r\n\r\n private renderDownloadReportLink = (onClick, isDownloading, primaryText) => {\r\n return (\r\n \r\n \r\n {isDownloading ?\r\n (\r\n \r\n )\r\n : }\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private async downloadBulkFiles() {\r\n\r\n this.setState({ isDownloadValidationReport: true });\r\n var submissionsToGet: ISelectedSubmissions[];\r\n if (this.state.nonSurveyFiles && this.state.nonSurveyFiles.length > 0) {\r\n submissionsToGet = this.state.nonSurveyFiles.map(i => {\r\n return {\r\n submissionId: i.submissionID,\r\n productLine: i.productLine,\r\n component: i.component\r\n };\r\n });\r\n }\r\n if (this.state.surveyFiles && this.state.surveyFiles.length > 0) {\r\n submissionsToGet = this.state.surveyFiles.map(i => {\r\n return {\r\n submissionId: i.submissionID,\r\n productLine: i.productLine,\r\n component: i.component\r\n };\r\n });\r\n }\r\n const desiredFiles: number[] = [3];// This is the validation file type\r\n const bulkSubs: ISelectedSubmissionsHolder = {\r\n submissions: submissionsToGet,\r\n fileTypes: desiredFiles\r\n }\r\n\r\n\r\n const retval = await SubmissionsService.GetBulkFiles$(\r\n this.props.user,\r\n bulkSubs\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n // this.setRedirectState();\r\n }\r\n else {\r\n // this.setState({ isValidDownload: retval.response.isValidDownload });\r\n if (retval.response.isValidDownload) { //Make sure file(s) available for download else show \"No files found\" message\r\n const data = SharedUtility.Str2ab$(atob(retval.response.fileContents));\r\n saveAs(\r\n new Blob([data], { type: \"application/octet-stream\" }),\r\n retval.response.fileName\r\n );\r\n }\r\n }\r\n\r\n this.setState({ isDownloadValidationReport: false });\r\n }\r\n\r\n private getUploadReport = async () => {\r\n this.setState({ isDownloadUploadReport: true });\r\n const apiCall = ReportService.GetUploadReportCaller(this.props.user, this.state.transactionId);\r\n\r\n try {\r\n const userResponse = await apiCall.toPromise();\r\n if (typeof userResponse === 'string') {\r\n const data = SharedUtility.Str2ab$(atob(userResponse));\r\n saveAs(new Blob([data], {\r\n type: \"application/octet-stream\"\r\n }), \"UploadReport.xlsx\");\r\n }\r\n }\r\n catch (ex) {\r\n // handle error\r\n }\r\n finally {\r\n this.setState({ isDownloadUploadReport: false });\r\n }\r\n }\r\n\r\n private getValidationMessageList = () => {\r\n const { classes } = this.props;\r\n return (\r\n
    \r\n {this.state.uploadValidationMessages.map(function (valMessage, i) {\r\n return (
  • )\r\n })}\r\n
\r\n );\r\n }\r\n\r\n private enableDropzone = () => {\r\n // enable dropzone\r\n this.setState({ disableDropzone: false });\r\n }\r\n\r\n private enableDisableDropActive(isActive) {\r\n this.setState({ dropzoneActive: isActive });\r\n }\r\n\r\n private setInitialState = () => {\r\n this.setState({\r\n completed: 0,\r\n nonSurveyFiles: [],\r\n surveyFiles: [],\r\n disableDropzone: true,\r\n showDownloadLink: false,\r\n filesNotProcessed: []\r\n });\r\n }\r\n\r\n private renderNonSurveyValidationStatus = (file: INonSurveyFile, classes) => {\r\n let div;\r\n if (file.isValidated) {\r\n switch (file.validationStatus) {\r\n case StatusType.Success:\r\n case StatusType.NoIssues:\r\n div =
No issues
\r\n break;\r\n case StatusType.WarningsAndErrors:\r\n div =
Warnings and Errors
\r\n break;\r\n case StatusType.Error:\r\n div =
Error
\r\n break;\r\n case StatusType.Fatal:\r\n div =
Fatal
\r\n break;\r\n case StatusType.SchemaError:\r\n div =
Schema error
\r\n break;\r\n case StatusType.Warning:\r\n div =
Warning
\r\n break;\r\n }\r\n }\r\n return div;\r\n }\r\n\r\n private renderSurveySubmissionStatus = (file: ISurveyFile, classes) => {\r\n let retdiv =
\r\n if (file.isValidated) {\r\n switch (file.submissionStatus) {\r\n case StatusType.NotSubmitted:\r\n retdiv =
Not submitted
\r\n break;\r\n case StatusType.Submitted:\r\n retdiv =
Submitted
\r\n break;\r\n case StatusType.NoIssues:\r\n case StatusType.Processed:\r\n retdiv =
Processed
\r\n break;\r\n case StatusType.WarningsAndErrors:\r\n retdiv =
Warnings and Errors
\r\n break;\r\n case StatusType.Error:\r\n retdiv =
Error
\r\n break;\r\n case StatusType.Fatal:\r\n retdiv =
Fatal
\r\n break;\r\n case StatusType.SchemaError:\r\n retdiv =
Schema error
\r\n break;\r\n case StatusType.Warning:\r\n retdiv =
Warning
\r\n break;\r\n }\r\n }\r\n return retdiv;\r\n\r\n }\r\n\r\n private CreateValidationMessage = (message: string): ValidationMessage => {\r\n return { message: message, severity: 4 };\r\n }\r\n}\r\n\r\n// STYLES CONTAINER\r\nconst BulkUploadDropzone = withStyles(styles)(BulkUploadDropzoneView);\r\n\r\nexport default BulkUploadDropzone;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Theme,\r\n WithStyles,\r\n createStyles,\r\n withStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Card,\r\n ListItem,\r\n ListItemText,\r\n List,\r\n CardContent,\r\n Fab,\r\n Divider,\r\n IconButton,\r\n Tooltip,\r\n Fade,\r\n} from \"@material-ui/core\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport AddCircle from \"@material-ui/icons/AddCircle\";\r\nimport FroalaEditorView from \"react-froala-wysiwyg/FroalaEditorView\";\r\nimport { Link, LinkProps } from \"react-router-dom\";\r\nimport {\r\n ISubmissionAllowance,\r\n ISubmissionsStatistics,\r\n ISubmissionPayload,\r\n} from \"../../DataClasses/SubmissionData\";\r\nimport SubmissionsService from \"../../Components/Services/SubmissionsService\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps,\r\n} from \"../../DataClasses/GenericUser\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport AnnouncementsService from \"../Services/AnnouncementsService\";\r\nimport EventsService from \"../Services/EventsService\";\r\nimport Grow from \"@material-ui/core/Grow\";\r\nimport Skeleton from \"@material-ui/lab/Skeleton\";\r\nimport froalaBaseConfig from \"../../Utilities/BaseFroalaConfig\";\r\nimport { IAnnouncementPayload } from \"../../DataClasses/AnnouncementData\";\r\nimport SharedUtility from \"../../Utilities/SharedUtility\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Edit as EditIcon } from \"@material-ui/icons\";\r\nimport FindInPageOutlinedIcon from \"@material-ui/icons/FindInPageOutlined\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport UserMessage from '../Shared/Message';\r\nimport { MessageType } from '../../DataClasses/SharedData';\r\nimport ConfettiExplosion from 'react-confetti-explosion';\r\nimport Alert from '@material-ui/lab/Alert';\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n ...idssStyle(theme),\r\n\r\n recentEventsList: {\r\n listStyle: \"none\",\r\n paddingLeft: theme.spacing(2),\r\n \"& li\": {\r\n borderBottom: \"1px solid #f0f0f0\",\r\n padding: theme.spacing(1, 0),\r\n },\r\n },\r\n dashboardCardContent: {\r\n padding: \"0\",\r\n \"& table\": {\r\n margin: theme.spacing(2, 0),\r\n },\r\n \"& ul\": {\r\n margin: theme.spacing(2),\r\n },\r\n },\r\n cardTitle: {\r\n margin: theme.spacing(2),\r\n },\r\n announcementContainer: {\r\n padding: theme.spacing(1, 2),\r\n },\r\n skeleton: {\r\n margin: theme.spacing(1, 2),\r\n width: \"90%\",\r\n height: 150,\r\n },\r\n });\r\n\r\ninterface ILocalState {\r\n isLoadingStatistic: boolean;\r\n isExploding: boolean;\r\n subsStatistics: ISubmissionsStatistics;\r\n\r\n isLoadingAnnouncements: boolean;\r\n announcements: any[];\r\n\r\n isLoadingEvents: boolean;\r\n events: string[];\r\n\r\n uploadavailabilities: ISubmissionAllowance;\r\n\r\n pendingSubmissions: any[];\r\n isLoadingPendingSubmissions: boolean;\r\n redirect: boolean;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\nconst AdapterLink = React.forwardRef(\r\n (props, ref) => \r\n);\r\n\r\nconst pendingSubmssionsColumns = [\r\n {\r\n label: \"Org ID\",\r\n name: \"OrgId\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n label: \"Sub ID\",\r\n name: \"SubId\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"Name\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n label: \"Component\",\r\n name: \"Component\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n label: \"Stage\",\r\n name: \"Stage\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"Actions\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n var submissionLink = \"/submissionHome/\" + value;\r\n return value === \"\" ? 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\nconst pendingSubmissionsListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n};\r\n\r\n// VIEW\r\nclass DashboardView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ILocalState\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n subsStatistics: {\r\n organization: 0,\r\n submission: 0,\r\n commercial: 0,\r\n medicaid: 0,\r\n medicare: 0,\r\n exchange: 0,\r\n planLocked: 0,\r\n auditLocked: 0,\r\n pendingEsign: 0,\r\n markFinal: 0,\r\n },\r\n announcements: [],\r\n events: [],\r\n uploadavailabilities: {\r\n allowsHedisSubmission: false,\r\n allowsCahpsSubmission: false,\r\n allowsHosSubmission: false,\r\n allowsGenericUploads: false\r\n },\r\n isExploding: true,\r\n isLoadingStatistic: true,\r\n isLoadingPendingSubmissions: true,\r\n isLoadingEvents: true,\r\n isLoadingAnnouncements: true,\r\n pendingSubmissions: [],\r\n redirect: false\r\n };\r\n }\r\n\r\n //public componentDidUpdate() {\r\n // if (this.state.isLoadingStatistic === false && this.state.isExploding === true) {\r\n // this.setState({ isExploding: false });\r\n // }\r\n //}\r\n\r\n public componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n // dispatch(Announcement.getDashboardEpic);\r\n this.RefreshModel();\r\n }\r\n\r\n\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n var seedTime = 400;\r\n var addTime = 200;\r\n var h = 35;\r\n var w = 40;\r\n var notDoneSubmissions = this.state.subsStatistics.planLocked + this.state.subsStatistics.auditLocked + this.state.subsStatistics.pendingEsign + this.state.subsStatistics.markFinal;\r\n var shouldShowDoneDialog = this.state.subsStatistics.submission > 0 && notDoneSubmissions === 0 && this.state.isLoadingPendingSubmissions === false && this.state.pendingSubmissions && this.state.pendingSubmissions.length === 0 ;\r\n var shouldShowConfetti = shouldShowDoneDialog && this.state.isExploding;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Dashboard\r\n \r\n \r\n \r\n {this.state.uploadavailabilities.allowsGenericUploads ? (\r\n \r\n \r\n \r\n \r\n Generic Uploads\r\n \r\n \r\n \r\n ) : null}\r\n {this.state.uploadavailabilities.allowsHedisSubmission ? (\r\n \r\n \r\n \r\n \r\n HEDIS Uploads\r\n \r\n \r\n \r\n ) : null}\r\n {this.state.uploadavailabilities.allowsCahpsSubmission ? (\r\n \r\n \r\n \r\n \r\n CAHPS Uploads\r\n \r\n \r\n \r\n ) : null}\r\n {this.state.uploadavailabilities.allowsHosSubmission ? (\r\n \r\n \r\n \r\n \r\n HOS Uploads\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 Overview\r\n \r\n \r\n \r\n
\r\n \r\n \r\n {this.state.isLoadingStatistic ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \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.isLoadingStatistic ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \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.subsStatistics.organization}\r\n
\r\n
\r\n
\r\n \r\n
\r\n {this.state.subsStatistics.commercial}\r\n
\r\n \r\n
\r\n \r\n
{this.state.subsStatistics.medicaid}
\r\n \r\n
\r\n \r\n
{this.state.subsStatistics.medicare}
\r\n \r\n
\r\n \r\n
{this.state.subsStatistics.exchange}
\r\n \r\n
\r\n Organizations\r\n \r\n \r\n Commercial\r\n \r\n \r\n \r\n Medicaid\r\n \r\n \r\n \r\n Medicare\r\n \r\n \r\n \r\n Exchange\r\n \r\n
\r\n \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.subsStatistics.submission}\r\n
\r\n \r\n
\r\n \r\n
\r\n {this.state.subsStatistics.planLocked}\r\n
\r\n \r\n
\r\n \r\n
\r\n {this.state.subsStatistics.auditLocked}\r\n
\r\n \r\n
\r\n \r\n
\r\n {this.state.subsStatistics.pendingEsign}\r\n
\r\n \r\n
\r\n \r\n
{this.state.subsStatistics.markFinal}
\r\n \r\n
\r\n \r\n Submissions\r\n \r\n \r\n \r\n Need Plan Lock\r\n \r\n \r\n \r\n Need Audit Lock\r\n \r\n \r\n \r\n Need Attestation\r\n \r\n \r\n \r\n Need Mark Final\r\n \r\n
\r\n {shouldShowConfetti ?\r\n
\r\n \r\n
\r\n : <>\r\n }\r\n {shouldShowDoneDialog ?\r\n
\r\n All submissions are Complete!\r\n
\r\n : <>\r\n }\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n {!this.state.isLoadingPendingSubmissions ? (\r\n \r\n {this.state.pendingSubmissions.length > 0 ?\r\n\r\n \r\n Pending Submissions\r\n \r\n }\r\n data={this.state.pendingSubmissions}\r\n columns={pendingSubmssionsColumns}\r\n options={pendingSubmissionsListingOptions}\r\n /> : \r\n }\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n Recent Activity\r\n \r\n \r\n \r\n \r\n {!this.state.isLoadingEvents ? (\r\n
    \r\n {this.state.events.map((item, i) => (\r\n
  • \r\n \r\n {item}\r\n \r\n
  • \r\n ))}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Announcements\r\n \r\n \r\n {!this.state.isLoadingAnnouncements ? (\r\n this.state.isLoadingStatistic === null ||\r\n this.state.announcements.length === 0 ? (\r\n \r\n No Announcements at this time\r\n
\r\n ) : (\r\n <>\r\n {this.state.announcements.map((item, i) => (\r\n \r\n \r\n {item.startDate && (\r\n \r\n {item.startDate}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Communications\r\n \r\n \r\n \r\n\r\n {this.renderLink(\"Help/IDSS_MY2023_Release_and_Important_Information.pdf\", \"Release Letter\", \"\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private renderLink = (href, primaryText, secondaryText) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private getMessageContent() {\r\n return (\r\n \r\n Congratulations! All your submissions are received!\r\n \r\n );\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoadingStatistic: true });\r\n //Announcements\r\n const retval1: IAnnouncementPayload[] = await AnnouncementsService.GetAnnouncements$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval1 instanceof AjaxError || !retval1) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n announcements: retval1.map((i) => {\r\n return {\r\n text: i.text,\r\n startDate: SharedUtility.ToLocaleDateString$(i.startDate),\r\n };\r\n }),\r\n isLoadingAnnouncements: false,\r\n });\r\n }\r\n //Statistics\r\n const retval0 = await SubmissionsService.GetSubmissionsStatistics$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval0 instanceof AjaxError || !retval0) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ subsStatistics: retval0, isLoadingStatistic: false });\r\n }\r\n\r\n //bulk upload\r\n const retval2 = await SubmissionsService.GetUploadAvailabilities$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval2 instanceof AjaxError || !retval2) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ uploadavailabilities: retval2 });\r\n }\r\n\r\n //Pending Submissions\r\n const retval4: ISubmissionPayload[] = await SubmissionsService.GetPendingSubmissions$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval4 instanceof AjaxError || !retval4) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n pendingSubmissions: retval4.map((item) => {\r\n return [\r\n item.orgId,\r\n item.subId,\r\n item.orgName,\r\n item.component.replace(\"DST\", \"HEDIS\"),\r\n SharedUtility.GetStageCleanName(item.submissionStatus),\r\n item.hasSubmissionAccess\r\n ? item.subId + \"/\" + item.component + \"/\" + item.productLine\r\n : \"\",\r\n ];\r\n }),\r\n isLoadingPendingSubmissions: false,\r\n });\r\n }\r\n\r\n //events\r\n const retval3 = await EventsService.GetEventsStrings$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval3 instanceof AjaxError || !retval3) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n events: retval3,\r\n isLoadingEvents: false,\r\n });\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst DashboardViewWithState = connect(\r\n genericMapStateToProps\r\n)(DashboardView);\r\n\r\n// STYLES CONTAINER\r\nconst Dashboard = withStyles(styles)(DashboardViewWithState);\r\n\r\nexport default Dashboard;\r\n","import { Grid, List, ListItem, ListItemIcon, ListItemText, Typography, Paper, Fade } from \"@material-ui/core\";\r\nimport * as React from \"react\";\r\nimport '@material-ui/core/styles';\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { IGenericUserProps, genericMapStateToProps } from '../../DataClasses/GenericUser';\r\nimport { FindInPage as FindInPageIcon } from '@material-ui/icons';\r\n\r\n\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n flexGrow: 1\r\n },\r\n list: {\r\n flexGrow: 1\r\n },\r\n menuContainer: {\r\n textAlign: \"right\",\r\n paddingRight: \"10px\"\r\n }\r\n});\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalState {\r\n IsDownloading: boolean;\r\n anchorEl: HTMLElement | null;\r\n}\r\n\r\n\r\n// VIEW\r\nclass HelpView extends React.Component {\r\n\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n IsDownloading: false,\r\n anchorEl: null\r\n };\r\n }\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n Help\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderLink(\"Help/2024_IDSS_FAQ.pdf\", \"HEDIS FAQ\", \"Frequently Asked Questions\")}\r\n {this.renderLink(process.env.REACT_APP_TEMPLATE_AND_MATERIALS, \"IDSS Import Templates and Materials\", \"\")}\r\n {this.renderLink(\"Help/IDSS_User_Guide.pdf\", \"HEDIS User Guide\", \"\")}\r\n {this.renderLink(\"Help/CAHPS_User_Guide.pdf\", \"CAHPS User Guide\", \"\")}\r\n {this.renderLink(\"Help/HOS_User_Guide.pdf\", \"HOS User Guide\", \"\")}\r\n {this.renderLink(\"Help/IDSS_Signer_Instructions.pdf\", \"IDSS Signer Instructions\", \"\")}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private renderLink = (href, primaryText, secondaryText) => {\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// REDUX CONTAINER\r\nconst HelpPageWithState = connect(genericMapStateToProps)(HelpView);\r\n\r\n// STYLES CONTAINER\r\nconst HelpViewPage = withStyles(styles)(HelpPageWithState);\r\n\r\nexport default HelpViewPage;\r\n\r\n\r\n","import * as React from \"react\";\r\nimport { Grid } from '@material-ui/core';\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\n\r\nimport { connect } from \"react-redux\";\r\n\r\ninterface IHomeStateProps {\r\n defaultProp: string\r\n}\r\n\r\nconst mapStateToProps = (): IHomeStateProps => ({\r\n defaultProp: \"\"\r\n});\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n flex: {\r\n flexGrow: 1,\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n alignItems: 'center',\r\n justify: 'center',\r\n background: 'white',\r\n },\r\n})\r\n\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\n// VIEW\r\nclass HomeView extends React.Component {\r\n public render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n You are not logged in\r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst HomeViewState = connect(mapStateToProps)(HomeView);\r\n\r\n\r\n// STYLES CONTAINER\r\nconst Home = withStyles(styles)(HomeViewState);\r\n\r\n// REDUX CONTAINER\r\n\r\nexport default Home;\r\n\r\n\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Link, RouteComponentProps } from \"react-router-dom\";\r\nimport RootState from \"../../State/Root/RootState\";\r\nimport { Paper } from \"@material-ui/core\";\r\n\r\ninterface IManageUserProps {\r\n targetUser: string | null,\r\n}\r\n\r\n\r\n\r\nconst mapStateToProps = (state: RootState): IManageUserProps => {\r\n return ({\r\n targetUser: state.DashboardReducer.announcement,\r\n });\r\n};\r\n\r\n\r\n// VIEW\r\nclass ManageUser extends React.Component> {\r\n\r\n public render() {\r\n return (\r\n \r\n

Manage User: {this.props.match.params.userEmail}

\r\n
\r\n
    \r\n
  • \r\n Here is something you might want to do\r\n
  • \r\n
  • \r\n Here is something else\r\n
  • \r\n
  • \r\n A link\r\n
  • \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst ManageUserPage = connect(mapStateToProps)(ManageUser);\r\n\r\nexport default ManageUserPage;\r\n\r\n\r\n","import { User } from \"oidc-client\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IdssLog } from \"../../DataClasses/DbData\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\n\r\nclass DbService {\r\n\r\n public static GetLogs$(user: User, submissionId: string, userName: string, orgId: string, logLevel: string,\r\n message: string, fromDate: string, toDate: string, pageNumber: number, resultCount: number): Observable | AjaxError> {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + `/api/DB/Logs?submissionId=${submissionId}&userName=${userName}&orgId=${orgId}&logLevel=${logLevel}&message=${message}&fromDate=${fromDate}&toDate=${toDate}&pageNumber=${pageNumber}&resultCount=${resultCount}`,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetLogCount$(user: User, submissionId: string, userName: string, orgId: string, logLevel: string,\r\n message: string, fromDate: string, toDate: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + `/api/DB/LogsCount?submissionId=${submissionId}&userName=${userName}&orgId=${orgId}&logLevel=${logLevel}&message=${message}&fromDate=${fromDate}&toDate=${toDate}`,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetBulkTransactions$(user: User, transactionId: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + `/api/DB/GetBulkTransactions?transaction=${transactionId}`,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n}\r\n\r\nexport default DbService;","import { User } from \"oidc-client\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IFilesUploadReportPayload, ISubmissionAccredStatus, ISurveyVenderSubmissionStatusReportPayload, IUserSubmissionTypeAccessibility } from \"../../DataClasses/ReportData\";\r\nimport { IEvent } from \"../../DataClasses/DbData\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\n\r\nclass ReportsService {\r\n public static GetCombinedReportCaller$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetCombinedReport',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetUploadReportCaller(user: User, transactionNumber: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetUploadReport?transactionNumber=' + transactionNumber,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetFilesUploadReportCaller$(user: User, getAll: boolean): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/DB/FilesUploadReportDatas?getAll=' + getAll,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetHosSubmissionStatusReportCaller$(user: User, measurementYear: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetHosVendorSubmissionStatus?measurementYear=' + measurementYear,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetCahpsSubmissionStatusReportCaller$(user: User, measurementYear: number): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetCahpsVendorSubmissionStatus?measurementYear=' + measurementYear,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetAvailableMeasurementYearsCaller$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetAvailableMeasurementYears',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetEventListCaller$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Events/GetEventsForUser?numberReturned=0&forAllSubs=true',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionEvents$(user: User, subId: number, component: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Events/GetSubmissionEvents?subId=' + subId + '&component=' + component,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionsAccredStatus$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetSubmissionsAccredStatus',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetSubmissionsDataSummary$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionsDataSummary',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static GetValidationReportData$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetValidationReportData',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static GetSubmissionCountOnMeasureReportData$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Submissions/GetSubmissionCountsOnMeasures',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n );\r\n }\r\n\r\n public static GetUserLicenseAgreement$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetUserLicenseAgreement',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetUserSubmissionTypeAccessibility$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/GetUserSubmissionTypeAccessibility',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static CanUserAccessAttestationTemplates$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/Reports/CanUserAccessAttestationTemplates',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n}\r\n\r\nexport default ReportsService;","import { Theme, createStyles, WithStyles, withStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport AutorenewIcon from '@material-ui/icons/Autorenew';\r\nimport CheckCircleOutlineIcon from '@material-ui/icons/CheckCircleOutline';\r\nimport { orange, green } from '@material-ui/core/colors';\r\nimport { CircularProgress } from '@material-ui/core';\r\nimport Grow from '@material-ui/core/Grow';\r\n\r\ninterface IProcessingProps {\r\n completed?: boolean\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n validationMessageList: {\r\n margin: \"0\",\r\n listStyle: \"none\"\r\n },\r\n pgRoot: {\r\n display: 'flex',\r\n alignItems: 'left',\r\n },\r\n pgWrapper: {\r\n margin: theme.spacing(1),\r\n position: 'relative',\r\n },\r\n pgFabProgress: {\r\n color: orange[500],\r\n position: 'absolute',\r\n top: -11,\r\n left: -3,\r\n zIndex: 1,\r\n },\r\n pgButtonProgress: {\r\n color: orange[500],\r\n position: 'absolute',\r\n top: -9,\r\n left: 0,\r\n },\r\n pgButtonCompleted: {\r\n color: green[600],\r\n position: 'absolute',\r\n top: -9,\r\n left: 0,\r\n }\r\n});\r\ntype IStylesProps = WithStyles;\r\nconst Processing = (props: IProcessingProps & IStylesProps) => {\r\n return (\r\n \r\n
\r\n {(props.completed !== null && props.completed) ?\r\n
\r\n \r\n
:\r\n
\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n )\r\n};\r\n/* Keep as reference\r\n {false?\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
: null\r\n }\r\n*/\r\n\r\nconst ProcessingDisplay = withStyles(styles)(Processing);\r\nexport default ProcessingDisplay;","import { User } from \"oidc-client\";\r\nimport { ValidationMessage, ValidationError} from \"./SharedData\";\r\n\r\n//#region Submission Home\r\n\r\nexport interface ICurrentSubAuths {\r\n isGlobalAdmin: boolean,\r\n isOrgAdmin: boolean,\r\n isOrgSigner: boolean,\r\n isVendorSigner: boolean,\r\n isOrgUser: boolean,\r\n isAuditor: boolean,\r\n isViewer: boolean,\r\n isVendorAdmin: boolean,\r\n isVenderUser: boolean,\r\n isSubmissionUser: boolean\r\n user: User | null,\r\n}\r\nexport interface ISubmissionKey {\r\n submissionId: number,\r\n productLine: string,\r\n reportingProduct: string,\r\n specialArea: string,\r\n specialProject: string,\r\n cmsContractNumber: string \r\n}\r\nexport interface ISubmissionHomePayload {\r\n productLine: string,\r\n reportingProduct: string,\r\n reportingUnitId: string,\r\n specialArea: string,\r\n specialProject: string,\r\n cmsContract: string,\r\n subId: number,\r\n orgId: number,\r\n orgName: string,\r\n vendorId: number,\r\n activeStepNumber: number,\r\n hedisSubInMarkFinalOrEarlier: boolean,\r\n component: string,\r\n fileUploadNotAllowedReason: string,\r\n isFileUploadAllowed: boolean,\r\n isFileUploaded: boolean,\r\n isFileProcessed: boolean,\r\n didValidationError: boolean,\r\n didValidationWarning: boolean,\r\n isPublicReported?: boolean,\r\n somc?: boolean,\r\n attestationModifiedDate?: Date,\r\n reportableEvents?: SubmissionAccreditationSanction,\r\n submissionDownloads: ISubmissionDocumentDownload[],\r\n validationStatus:string,\r\n isFinal:boolean,\r\n isAttested:boolean,\r\n isAccredited: boolean,\r\n hasSubmissionAccess: boolean,\r\n isAuditRequired: boolean,\r\n requiredFileName: string,\r\n isCahpsOnlySubmission: boolean,\r\n submissionIntention: string\r\n}\r\n\r\nexport interface ISubmissionAttestationFlags {\r\n submissionId: number,\r\n component: string,\r\n isPublicReported?: boolean,\r\n somc?: boolean,\r\n sourceLastModified: Date\r\n}\r\n\r\nexport interface ISubmissionAttestationReportingFlags {\r\n submissionId: number,\r\n component: string,\r\n isPublicReported: boolean,\r\n sourceLastModified: Date\r\n}\r\n\r\nexport interface ISubmissionHomeText {\r\n uploadFileText: string,\r\n uploadFileType: string,\r\n}\r\n\r\nexport interface ISubmissionDocumentDownload {\r\n key: string,\r\n originalName: string,\r\n displayName: string,\r\n explanation: string,\r\n uploadDay: string,\r\n uploadTime: string,\r\n uploadUser: string,\r\n isArchived: boolean,\r\n isAllDownloadsOnly: boolean,\r\n isLicense: boolean,\r\n}\r\n\r\n\r\nexport interface IValidationResponsePayload {\r\n submissionId: number,\r\n urlString: string,\r\n headerUrlString: string,\r\n detailUrlString: string,\r\n validationText: string,\r\n validationErrors: ValidationError[]\r\n}\r\n\r\nexport interface IValidationReportData{\r\n orgId: number,\r\n subId: number,\r\n orgName: string,\r\n component: string,\r\n productLine: string,\r\n measureCode:string,\r\n shortIndicatorName:string,\r\n indicatorKey:string,\r\n severity:string,\r\n message:string,\r\n ruleName:string\r\n}\r\n\r\nexport interface ISubmissionCountOnMeasureReportData{\r\n measureCode: string,\r\n productLine: string,\r\n submissionCount: number\r\n}\r\n\r\nexport interface ISubmissionHomeParamObject {\r\n currentSubId: string,\r\n component: string,\r\n}\r\n\r\nexport interface IDetailedSubmission {\r\n metadatas: IMetaKeyValuePair[],\r\n}\r\n\r\nexport interface IMetaKeyValuePair {\r\n key: string,\r\n value: string\r\n}\r\n\r\nexport interface ISubmissionUserPayload {\r\n roleUser: IUser,\r\n salesforceUser: ISalesforceContact,\r\n}\r\n\r\nexport interface IUser {\r\n userId: string,\r\n email: string,\r\n roleName: string,\r\n roleType:string,\r\n submissionAuditor:string\r\n}\r\n\r\nexport interface ISalesforceContact {\r\n firstName: string,\r\n lastName: string,\r\n}\r\n\r\nexport interface IUploadSection {\r\n uploadFiles: IFile[],\r\n uploadCompletionPercent: number,\r\n dropzoneStatusStyle: string,\r\n fileProcessingComplete: boolean,\r\n uploadSuccessful: boolean\r\n uploadValidationMessages: ValidationMessage[]\r\n}\r\n\r\nexport interface IFile {\r\n name: string,\r\n path: string,\r\n preview: string,\r\n}\r\n\r\nexport interface IUserAction {\r\n canViewArt: boolean,\r\n canUploadHedis: boolean,\r\n canUploadNonHedis:boolean,\r\n canPlanLock: boolean,\r\n canPlanUnlock: boolean,\r\n canAuditLock: boolean,\r\n canAuditUnlock: boolean,\r\n canMarkFinalHedis: boolean,\r\n canMarkFinalCahps: boolean,\r\n canMarkFinalHos: boolean,\r\n canSubmissionGenericAdmin:boolean,\r\n canAssignAuditDesignation: boolean,\r\n canSignAttestationHedis: boolean,\r\n canSignAttestationHos: boolean,\r\n canDownloadResultHedis: boolean,\r\n canDownloadResultCahps: boolean,\r\n canDownloadResultHos: boolean,\r\n canManageHedisUser: boolean,\r\n canManagePublicReporting:boolean,\r\n canViewDownloadErrorsHedis: boolean,\r\n canViewDownloadErrorsNonHedis: boolean,\r\n canViewResultReportsHedis:boolean\r\n}\r\n\r\nexport enum SubmissionActionTypes\r\n{\r\n PlanLock = \"PlanLock\",\r\n PlanUnlock = \"PlanUnlock\",\r\n AuditLock = \"AuditLock\",\r\n AuditUnlock = \"AuditUnlock\",\r\n MarkFinal = \"MarkFinal\",\r\n MarkFinalUnlock = \"MarkFinalUnlock\",\r\n Attestation = \"Attestation\",\r\n AttestationUndo = \"AttestationUndo\"\r\n}\r\n\r\nexport enum SubmissionAccreditationSanction {\r\n Yes=\"Yes\",\r\n Report=\"Report\",\r\n No=\"No\",\r\n NA=\"NA\"\r\n}\r\n\r\nexport enum ValidationStatusTypes {\r\n NotRun = \"NotRun\",\r\n NoIssues = \"NoIssues\",\r\n Warning = \"Warning\",\r\n Error = \"Error\",\r\n WarningsAndErrors = \"WarningsAndErrors\",\r\n SchemaError = \"SchemaError\",\r\n Fatal = \"Fatal\",\r\n}\r\n\r\nexport enum S3FileTypes{\r\n none = 0,\r\n HEDIS_Audit = 1,\r\n HEDIS_GeneratedDataFilledWorkbook = 2,\r\n HEDIS_Validation = 3,\r\n HEDIS_ResultXml = 4,\r\n CAHPS_ErrorReport_SubComponent = 5,\r\n HOS_Header = 7,\r\n HOS_Detail = 8,\r\n CAHPS_PreviewCCCResultsReport = 9,\r\n CAHPS_PreviewGPResultsReport = 10,\r\n CAHPS_PreviewResultsReport_SubComponent = 11,\r\n Archive = 12,\r\n CAHPS_ErrorReport_FileName = 13,\r\n UploadedFile = 14,\r\n CAHPS_PreviewResultsReport_FileName = 16,\r\n CAHPS_Submission_File = 17,\r\n XML_Workbook_SubId = 18,\r\n CAHPS_FinalDocuments_SubComponent_ZIP = 19,\r\n CAHPS_DeIdentifiedCahpsFile = 20,\r\n HEDIS_ResultCSV = 21,\r\n HEDIS_ART_Excel=22,\r\n HEDIS_ART_Csv = 23,\r\n HOS_FATAL = 24,\r\n HEDIS_BULK_VALIDATION = 25,\r\n SIGNED_ATTESTATION = 26,\r\n}\r\n\r\n//#endregion\r\n\r\n//#region Submission Listing \r\n\r\nexport interface ISubmissionPayload {\r\n subId: number,\r\n orgId: number,\r\n cmsContractNumber: string,\r\n orgName: string,\r\n lockStatus: string,\r\n component: string,\r\n componentVendorId: number,\r\n componentVendorName: string,\r\n submissionStatus: string,\r\n received: string,\r\n specialArea: string,\r\n specialProject: string,\r\n reportingProduct: string,\r\n reportingUnitId: string,\r\n productLine: string,\r\n isFinal: boolean,\r\n validationStatus: string,\r\n attestationStatus: string,\r\n canEdit: boolean,\r\n hasSubmissionAccess: boolean,\r\n isPublicReported?: boolean\r\n}\r\n\r\nexport interface ISelectedSubmissions {\r\n submissionId: number,\r\n productLine: string,\r\n component: string,\r\n stage?: string\r\n}\r\nexport interface ISelectedSubmissionsHolder {\r\n submissions: ISelectedSubmissions[],\r\n fileTypes: number[],\r\n}\r\nexport interface IOrgSummary{\r\n orgId: number,\r\n orgName: string,\r\n}\r\n\r\nexport interface ISubmissionLockEvent {\r\n subId: number,\r\n orgId: number,\r\n orgName: string,\r\n component: string,\r\n productLine: string,\r\n lockApplied: string,\r\n lockStatus: string,\r\n lockAppliedBy: string,\r\n lockAppliedOn: Date\r\n}\r\nexport interface ISubmissionAllowance{\r\n allowsHosSubmission: boolean,\r\n allowsCahpsSubmission: boolean,\r\n allowsHedisSubmission: boolean,\r\n allowsGenericUploads?: boolean\r\n}\r\n\r\nexport interface ISubmissionsStatistics{\r\n organization:number,\r\n submission:number,\r\n commercial:number,\r\n medicaid:number,\r\n medicare:number,\r\n exchange:number,\r\n planLocked:number,\r\n auditLocked:number,\r\n pendingEsign:number,\r\n markFinal:number\r\n}\r\n\r\nexport interface ISubmissionComponentStatus {\r\n subId: number,\r\n orgId: number,\r\n orgName: string,\r\n component: string,\r\n productLine: string,\r\n year: number,\r\n accountManager: string,\r\n reportingProduct: string,\r\n specialProject: string,\r\n specialArea: string,\r\n cmsContactNumber: string,\r\n reportingUnitId: string,\r\n scoringId: number | null,\r\n auditRequired: boolean | null,\r\n type: string,\r\n stage: string,\r\n validationStatus: string,\r\n attest: string,\r\n somc: string,\r\n pubRep: string,\r\n accreditationReporting: string\r\n\r\n}\r\n\r\n//#endregion","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { genericMapStateToProps, IGenericUserProps } from \"../../DataClasses/GenericUser\";\r\nimport { createStyles, withStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\nimport { Typography, Grid } from \"@material-ui/core\";\r\nimport BulkUploadDropzone from './BulkUploadDropzone';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { SubmissionType } from '../../DataClasses/SharedData';\r\nimport UserMessage from '../Shared/Message';\r\nimport { MessageType } from '../../DataClasses/SharedData';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexGrow: 1,\r\n paddingRight: theme.spacing(2)\r\n }\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass BulkUploadView extends React.Component> {\r\n public render() {\r\n const { classes } = this.props;\r\n const uploaderType: SubmissionType = this.props.match.params.uploadType;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {this.getHeaderText(uploaderType)}\r\n \r\n \r\n \r\n {this.renderByType(uploaderType)}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n public renderByType(uploaderType: SubmissionType) {\r\n const fileTypes: string[] = this.getSupportedFilesForTypes(uploaderType);\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n private getMessageContent(primaryFileType: string) {\r\n return (\r\n \r\n You may upload one or more submissions here at the same time. Up to 50 maximum.
\r\n All submissions must be .xml, Files can be bundled in a single zip file. The zip file can also contain nested regular folders containing xml files.
\r\n All zip/nested folders can be named as desired.
\r\n {primaryFileType === \".xml\" ? \"Submission filenames must be of the format <><>.xml; For ex. Commercial1234.xml\" : \"\"}\r\n
\r\n );\r\n }\r\n\r\n private getSupportedFilesForTypes(uploaderType: SubmissionType): string[] {\r\n switch (uploaderType) {\r\n case SubmissionType.HEDIS:\r\n return ['.xml', '.zip'];\r\n case SubmissionType.HOS:\r\n return ['.txt', '.zip'];\r\n case SubmissionType.CAHPS:\r\n return ['.csv', '.zip'];\r\n default:\r\n return [];\r\n }\r\n }\r\n\r\n private getHeaderText(uploaderType: SubmissionType): string {\r\n switch (uploaderType) {\r\n case SubmissionType.HEDIS:\r\n return 'HEDIS File Upload';\r\n case SubmissionType.HOS:\r\n return 'HOS File Upload';\r\n case SubmissionType.CAHPS:\r\n return 'CAHPS File Upload';\r\n default:\r\n return '';\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst BulkUploadPageState = connect(genericMapStateToProps)(BulkUploadView);\r\n\r\n// STYLES CONTAINER\r\nconst BulkUploadPage = withStyles(styles)(BulkUploadPageState);\r\n\r\nexport default BulkUploadPage;\r\n","import { User } from \"oidc-client\";\r\nimport { Observable } from \"rxjs\";\r\nimport { IOrganizationPayload } from \"../../DataClasses/OrganizationData\";\r\nimport { IAttestingVendor } from \"../../DataClasses/AttestingVendor\";\r\nimport { SubmissionType } from \"../../DataClasses/SharedData\";\r\nimport AjaxHelper from \"./AjaxHelper\";\r\n\r\nclass OrganizationService {\r\n\r\n //#region Submissions\r\n\r\n public static GetManagableOrganizationsAndVendors$(user: User): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/organization/GetManagableOrganizationsAndVendors',\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n\r\n public static GetOrganizationsForSubmissionType$(user: User, submissionType: SubmissionType): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/organization/GetOrganizationsForSubmissionType?submissionType=' + submissionType,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetOrganizationsForSubmissionTypeByAction$(user: User, submissionType: SubmissionType, action: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/organization/GetOrganizationsForSubmissionTypeByAction?submissionType=' + submissionType + '&action=' + action,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n public static GetAttestingVendor$(user: User, submissionType: SubmissionType, action: string): Observable {\r\n return AjaxHelper.AjaxGet$(\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + '/api/organization/GetAttestingVendor?submissionType=' + submissionType + '&action=' + action,\r\n AjaxHelper.CreateHttpHeaders(user)\r\n )\r\n }\r\n}\r\n\r\nexport default OrganizationService;","import * as React from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { IGenericUserProps, genericMapStateToProps } from '../../DataClasses/GenericUser';\r\nimport { createStyles, withStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\nimport LoadingDataTable from '../Shared/LoadingDataTable';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport {\r\n Grid, Typography, CardContent, Card, Button, FormControl, FormGroup, FormControlLabel, Checkbox, Fab, Fade, Stepper, Step, StepLabel, StepContent,\r\n Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle\r\n} from '@material-ui/core';\r\nimport MUIDataTable, { MUIDataTableOptions, MUIDataTableColumnDef } from 'mui-datatables';\r\nimport { AjaxError } from 'rxjs/ajax';\r\nimport OrganizationService from '../Services/OrganizationService';\r\nimport SubmissionsService from '../Services/SubmissionsService';\r\nimport { Warning as WarningIcon } from '@material-ui/icons';\r\nimport { SubmissionType, MessageType } from '../../DataClasses/SharedData';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { ISelectedSubmissions, ISelectedSubmissionsHolder, S3FileTypes, ISubmissionAllowance } from '../../DataClasses/SubmissionData';\r\nimport SharedUtility from '../../Utilities/SharedUtility';\r\nimport saveAs from \"file-saver\";\r\nimport UserManagerService from '../Services/UserManagerService';\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport UserMessage from '../Shared/Message';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport ProcessingDisplay from \"../Shared/ProcessingDisplay\";\r\nimport * as AuthorizationPolicies from \"../../Configuration/AuthorizationPolicies\";\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n downloadOptionsContainer: {\r\n height: \"150px\"\r\n },\r\n root: {\r\n width: '90%',\r\n },\r\n button: {\r\n marginTop: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n actionsContainer: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n resetContainer: {\r\n padding: theme.spacing(3),\r\n }\r\n});\r\n\r\ninterface ILocalState {\r\n isLoading: boolean;\r\n currentStep: number;\r\n orgData: any[];\r\n selectedOrganizationIndexes: number[];\r\n submissionData: any[];\r\n selectedSubmissionIndexes: number[];\r\n filesToDownload: number[];\r\n downloadInProgress: boolean;\r\n isValidDownload: boolean;\r\n downloadType: SubmissionType;\r\n allowResultDownload: boolean;\r\n allowValidationDownload: boolean;\r\n canUserDownloadCAHPSReports: boolean;\r\n isHedisOnlyUser: boolean;\r\n userDownloadAccessibility: ISubmissionAllowance;\r\n redirect: boolean;\r\n allChecked: boolean;\r\n downloadFileTypes: { id: number, name: string, type: string }[];\r\n isDialogOpen: boolean;\r\n selectedRowsPerPage: number;\r\n}\r\n\r\n// const TotalSteps: number = 3;\r\n\r\nconst HEDISFileTypes: { id: number, name: string, type: string }[] = [\r\n { \"id\": S3FileTypes.HEDIS_ResultXml, \"name\": \"Result File (XML)\", type: \"result\" },\r\n { \"id\": S3FileTypes.HEDIS_ResultCSV, \"name\": \"Comma Separated Values (CSV) Workbook\", type: \"result\" },\r\n { \"id\": S3FileTypes.HEDIS_Validation, \"name\": \"Validation Report (CSV)\", type: \"validation\" },\r\n { \"id\": S3FileTypes.HEDIS_BULK_VALIDATION, \"name\": \"Bulk Validation Report (CSV)\", type: \"validation\" },\r\n { \"id\": S3FileTypes.HEDIS_GeneratedDataFilledWorkbook, \"name\": \"Data-filled Excel Workbook (EXCEL)\", type: \"result\" },\r\n { \"id\": S3FileTypes.HEDIS_ART_Excel, \"name\": \"Audit Review Table (EXCEL)\", type: \"result\" },\r\n { \"id\": S3FileTypes.HEDIS_ART_Csv, \"name\": \"Audit Review Table (CSV)\", type: \"result\" },\r\n { \"id\": S3FileTypes.SIGNED_ATTESTATION, \"name\": \"Signed Attestation (PDF)\", type: \"result\" },\r\n];\r\n\r\nconst CAHPSFileTypes: { id: number, name: string, type: string }[] = [\r\n { \"id\": S3FileTypes.CAHPS_ErrorReport_SubComponent, \"name\": \"Validation Report (TXT)\", type: \"validation\" },\r\n { \"id\": S3FileTypes.CAHPS_PreviewResultsReport_SubComponent, \"name\": \"Preview Results (EXCEL)\", type: \"result\" },\r\n { \"id\": S3FileTypes.CAHPS_FinalDocuments_SubComponent_ZIP, \"name\": \"Final CAHPS File (ZIP)\", type: \"result\" }\r\n];\r\n\r\nconst CAHPSFileTypes_HEDISOnlyUser: { id: number, name: string, type: string }[] = [\r\n { \"id\": S3FileTypes.CAHPS_FinalDocuments_SubComponent_ZIP, \"name\": \"Final CAHPS File (ZIP)\", type: \"result\" },\r\n { \"id\": S3FileTypes.SIGNED_ATTESTATION, \"name\": \"Signed Attestation (PDF)\", type: \"result\" }\r\n];\r\n\r\nconst CAHPSFileTypes_AdminUser: { id: number, name: string, type: string }[] = [\r\n { \"id\": S3FileTypes.CAHPS_ErrorReport_SubComponent, \"name\": \"Validation Report (TXT)\", type: \"validation\" },\r\n { \"id\": S3FileTypes.CAHPS_PreviewResultsReport_SubComponent, \"name\": \"Preview Results (EXCEL)\", type: \"result\" },\r\n { \"id\": S3FileTypes.CAHPS_FinalDocuments_SubComponent_ZIP, \"name\": \"Final CAHPS File (ZIP)\", type: \"result\" },\r\n { \"id\": S3FileTypes.SIGNED_ATTESTATION, \"name\": \"Signed Attestation (PDF)\", type: \"result\" }\r\n];\r\n\r\nconst HOSFileTypes: { id: number, name: string, type: string }[] = [\r\n { \"id\": S3FileTypes.HOS_Header, \"name\": \"Header Validation Report (EXCEL)\", type: \"validation\" },\r\n { \"id\": S3FileTypes.HOS_Detail, \"name\": \"Detail Validation Report (EXCEL)\", type: \"validation\" }\r\n];\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass BulkDownloadView extends React.Component, ILocalState> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true,\r\n currentStep: 0,\r\n orgData: [],\r\n selectedOrganizationIndexes: [],\r\n submissionData: [],\r\n selectedSubmissionIndexes: [],\r\n filesToDownload: [],\r\n downloadInProgress: false,\r\n isValidDownload: false,\r\n downloadType: this.props.match.params.downloadType,\r\n allowValidationDownload: true,\r\n allowResultDownload: true,\r\n canUserDownloadCAHPSReports: false,\r\n isHedisOnlyUser: false,\r\n userDownloadAccessibility:\r\n {\r\n allowsHedisSubmission: false,\r\n allowsCahpsSubmission: false,\r\n allowsHosSubmission: false\r\n },\r\n redirect: false,\r\n allChecked: false,\r\n downloadFileTypes: [],\r\n isDialogOpen: false,\r\n selectedRowsPerPage: 10\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.canUserDownloadCahpsReports();\r\n await this.getUserDownloadAccessibility();\r\n await this.isUserHEDISOnlyUser();\r\n await this.RefreshModel();\r\n }\r\n\r\n public async componentDidUpdate(prevProps) {\r\n if (this.props.match.params.downloadType !== prevProps.match.params.downloadType) {\r\n await this.ResetState();\r\n }\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n\r\n const orgListColumns = [\r\n {\r\n label: \"Org ID\",\r\n name: \"OrgId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"Name\",\r\n options: {\r\n filter: true\r\n }\r\n }\r\n ];\r\n\r\n const orgListingOptions: MUIDataTableOptions = {\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRowsOnClick: true,\r\n rowsPerPage: this.state.selectedRowsPerPage,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n selectToolbarPlacement: \"above\" as const,\r\n rowsSelected: this.state.selectedOrganizationIndexes,\r\n onChangeRowsPerPage: (numberOfRows: number) => {\r\n this.setState({\r\n selectedRowsPerPage: numberOfRows\r\n })\r\n },\r\n onRowSelectionChange: (affectedRows, allSelectedRows, rowsSelected) => {\r\n this.setState({\r\n selectedOrganizationIndexes: allSelectedRows.map(item => item.dataIndex)\r\n });\r\n },\r\n customToolbarSelect: () => { return null }\r\n };\r\n\r\n const submissionListColumns: MUIDataTableColumnDef[] = [\r\n {\r\n label: \"Sub ID\",\r\n name: \"submissionId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Product Line\",\r\n name: \"productLine\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Component\",\r\n name: \"component\",\r\n options: {\r\n filter: true,\r\n display: (this.state.downloadType === SubmissionType.CAHPS ? \"true\" : \"false\") as any,\r\n }\r\n },\r\n {\r\n label: \"SpecialProject\",\r\n name: \"specialProject\",\r\n options: {\r\n filter: true,\r\n display: \"false\" as any\r\n }\r\n },\r\n {\r\n label: \"Org ID\",\r\n name: \"orgId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"orgName\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Is Uploaded\",\r\n name: \"isFileUploaded\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === 'Yes')\r\n return
{value}
;\r\n else\r\n return
{value}
;\r\n }\r\n }\r\n },\r\n {\r\n label: \"Submission Status\",\r\n name: \"SubmissionStatus\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Validation Status\",\r\n name: \"validationStatus\",\r\n options: {\r\n filter: true,\r\n display: \"true\",\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === 'Error' || value === 'Warning' || value === 'Fatal' || value === 'SchemaError' || value === 'WarningsAndErrors')\r\n return
{value}
;\r\n else if (value === \"NoIssues\")\r\n return
{value}
;\r\n else {\r\n return
{value}
\r\n }\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const submissionListingOptions = {\r\n sort: true,\r\n filterType: \"multiselect\" as any,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n rowsPerPage: this.state.selectedRowsPerPage,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n selectToolbarPlacement: \"above\" as const,\r\n selectableRowsOnClick: true,\r\n rowsSelected: this.state.selectedSubmissionIndexes,\r\n onChangeRowsPerPage: (numberOfRows: number) => {\r\n this.setState({\r\n selectedRowsPerPage: numberOfRows\r\n })\r\n },\r\n onRowSelectionChange: (affectedRows, allSelectedRows, rowsSelected) => {\r\n this.setState({\r\n selectedSubmissionIndexes: allSelectedRows.map(item => item.dataIndex)\r\n });\r\n },\r\n isRowSelectable: (dataIndex, allRows) => {\r\n return (this.props.match.params.downloadType === SubmissionType.CAHPS && this.state.isHedisOnlyUser ? (this.state.submissionData[dataIndex].SubmissionStatus !== \"Import\" && this.state.submissionData[dataIndex].SubmissionStatus !== \"Apply Mark Final\") : this.state.submissionData[dataIndex].isFileUploaded === \"Yes\");\r\n },\r\n customToolbarSelect: () => { return null }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n Bulk Download ({this.state.downloadType.toUpperCase()})\r\n \r\n \r\n {this.state.isLoading ?\r\n \r\n :\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {this.state.downloadType === SubmissionType.HEDIS ?\r\n \r\n Select Organizations\r\n \r\n \r\n
\r\n
\r\n this.SelectOrgAndContinue()}\r\n disabled={this.state.selectedOrganizationIndexes.length === 0}\r\n className={classes.button}\r\n >\r\n Next\r\n \r\n
\r\n
\r\n
\r\n
\r\n : null}\r\n \r\n \r\n Select Submissions\r\n {this.isDisplayingNote() ? (Note: Not all files will download if Schema or Fatal errors are present) : null}\r\n \r\n \r\n {this.state.submissionData.length > 0 ?\r\n \r\n : \r\n {this.state.downloadType === SubmissionType.HEDIS ? <>\r\n \r\n \"The organization selected does not have any submissions, please go back and select another.\"\r\n :\r\n \"No submissions found.\"}\r\n \r\n }\r\n
\r\n
\r\n {this.state.downloadType === SubmissionType.HEDIS ?\r\n this.GoBackToSelectOrg()}\r\n className={classes.button}\r\n >\r\n Back\r\n \r\n : null}\r\n this.SelectSubmissionsAndContinue()}\r\n disabled={this.state.selectedSubmissionIndexes.length === 0}\r\n className={classes.button}\r\n >\r\n Next\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n Download Selection\r\n \r\n \r\n \r\n }\r\n label={Download All}\r\n hidden={this.props.match.params.downloadType === SubmissionType.CAHPS && this.state.isHedisOnlyUser}\r\n />\r\n \r\n \r\n {this.state.downloadFileTypes\r\n .map(fileType =>\r\n f === fileType.id) ? true : false}\r\n disabled={this.state.downloadInProgress}\r\n onChange={this.handleCheckboxChange}\r\n value={fileType.id}\r\n color=\"primary\"\r\n />\r\n }\r\n label={{fileType.name}} />\r\n )\r\n }\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n this.GoBackToSelectSubmissions()}\r\n disabled={this.state.downloadInProgress}\r\n className={this.state.isValidDownload ? classes.hidden : classes.button}\r\n >\r\n Back\r\n \r\n \r\n this.DownloadSelected()} disabled={this.state.downloadInProgress || this.state.filesToDownload.length === 0} className={this.state.isValidDownload ? classes.hidden : classes.fab}>\r\n Download Submissions\r\n \r\n \r\n {!this.state.downloadInProgress && this.state.isValidDownload ?\r\n : null}\r\n \r\n {!this.state.downloadInProgress && this.state.isValidDownload ?\r\n Download Completed\r\n : null\r\n }\r\n \r\n \r\n {this.state.downloadInProgress ? \"Downloading.. This may take couple of minutes for larger downloads, please be patient\" : null}\r\n \r\n \r\n {this.state.downloadInProgress || this.state.isValidDownload ?\r\n \r\n : null\r\n }\r\n
\r\n this.CloseDialog()}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n {\"No file is downloaded\"}\r\n \r\n \r\n There is no file available for downloading. Please change the selection(s) and try again.\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n
\r\n
\r\n }\r\n
\r\n );\r\n }\r\n private CloseDialog() {\r\n this.setState({ isDialogOpen: false });\r\n }\r\n private isDisplayingNote = () => {\r\n for (var i = 0, l = this.state.selectedSubmissionIndexes.length; i < l; i++) {\r\n if (this.state.submissionData[this.state.selectedSubmissionIndexes[i]].validationStatus === 'SchemaError' || this.state.submissionData[this.state.selectedSubmissionIndexes[i]].validationStatus === 'Fatal') { return true }\r\n }\r\n return false;\r\n }\r\n private getUserInfoMessage = () => {\r\n return (\r\n \r\n In Chrome, to choose a name for the downloaded files, go to your browser settings and search for the setting “Ask where to save each file before downloading”.\r\n \r\n );\r\n }\r\n\r\n private handleCheckboxChange = (e) => {\r\n var itemName = e.target.name;\r\n var checked = e.target.checked;\r\n var downloadFileTypes = this.state.downloadFileTypes;\r\n let filesToDownload = [];\r\n var allChecked = false;\r\n if (downloadFileTypes.length > 0) {\r\n if (itemName === \"checkAll\") {\r\n allChecked = checked;\r\n if (checked) {\r\n downloadFileTypes.map(fileType => filesToDownload.push(fileType.id));\r\n }\r\n }\r\n else {\r\n var fileTypeId = parseInt(e.target.value);\r\n filesToDownload = [...this.state.filesToDownload];\r\n if (checked) {\r\n filesToDownload.push(fileTypeId);\r\n } else {\r\n const index = filesToDownload.findIndex((f) => fileTypeId === f);\r\n filesToDownload.splice(index, 1);\r\n }\r\n allChecked = downloadFileTypes.length === filesToDownload.length;\r\n }\r\n this.setState({ allChecked: allChecked, filesToDownload: filesToDownload });\r\n }\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n if (this.props.match.params.downloadType === SubmissionType.HEDIS) {\r\n const orgRetVal = await OrganizationService.GetOrganizationsForSubmissionTypeByAction$(\r\n this.props.user,\r\n this.props.match.params.downloadType,\r\n \"download\"\r\n ).toPromise();\r\n\r\n\r\n if (orgRetVal instanceof AjaxError || !orgRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const orgData = orgRetVal.map(item => {\r\n return {\r\n OrgId: item.orgId,\r\n Name: item.orgName\r\n };\r\n });\r\n\r\n this.setState({\r\n orgData: orgData\r\n });\r\n\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n else {\r\n await this.getSubmissions([]);\r\n }\r\n }\r\n\r\n private async getSubmissions(orgIds: number[]) {\r\n const subRetVal = await SubmissionsService.GetSubmissionsOfTypeForOrgsByAction$(\r\n this.props.user,\r\n orgIds,\r\n this.props.match.params.downloadType,\r\n \"download\"\r\n ).toPromise();\r\n\r\n if (subRetVal instanceof AjaxError || !subRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const subData: any[] = (subRetVal.response as any).map(item => {\r\n return {\r\n submissionId: item.subId,\r\n productLine: item.productLine,\r\n component: item.component,\r\n orgId: item.orgId,\r\n orgName: item.orgName,\r\n isFileUploaded: item.isFileUploaded ? 'Yes' : 'No',\r\n SubmissionStatus: SharedUtility.GetStageCleanName(item.submissionStatus),\r\n validationStatus: item.validationStatus,\r\n specialProject: item.specialProject\r\n };\r\n });\r\n this.setState({\r\n submissionData: subData\r\n });\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n private async canUserDownloadCahpsReports() {\r\n var result = await UserManagerService.CanUserDownloadCAHPSReports$(this.props.user).toPromise();\r\n this.setState({ canUserDownloadCAHPSReports: result });\r\n }\r\n\r\n private async isUserHEDISOnlyUser() {\r\n var result = await UserManagerService.IsHEDISOnlyUser$(this.props.user, this.props.match.params.downloadType, \"download\").toPromise();\r\n this.setState({ isHedisOnlyUser: result });\r\n }\r\n\r\n private async getUserDownloadAccessibility() {\r\n var result = await SubmissionsService.GetUploadAvailabilities$(this.props.user).toPromise();\r\n this.setState({ userDownloadAccessibility: result });\r\n }\r\n\r\n private GoBackToSelectOrg() {\r\n //Set org id in state\r\n this.setState({\r\n currentStep: 0,\r\n submissionData: [],\r\n selectedSubmissionIndexes: []\r\n });\r\n }\r\n\r\n private SelectOrgAndContinue() {\r\n //Set org id in state\r\n this.setState({\r\n currentStep: 1,\r\n isValidDownload: false\r\n });\r\n\r\n this.LoadSubmissionsForOrg();\r\n }\r\n\r\n private GoBackToSelectSubmissions() {\r\n //Set org id in state\r\n const stepToUse = this.state.downloadType === SubmissionType.HEDIS ? 1 : 0;\r\n\r\n this.setState({\r\n currentStep: stepToUse,\r\n isValidDownload: false,\r\n filesToDownload: []\r\n });\r\n }\r\n\r\n private async SelectSubmissionsAndContinue() {\r\n\r\n if (this.state.selectedSubmissionIndexes && this.state.selectedSubmissionIndexes.length > 0) {\r\n const selectedSubmissionIds: number[] = this.state.selectedSubmissionIndexes.map(i => {\r\n return this.state.submissionData[i] != null ? this.state.submissionData[i].submissionId : 0;\r\n });\r\n const downloadableInfo = await SubmissionsService.GetSubmissionsDownloadableInfo$(\r\n this.props.user,\r\n selectedSubmissionIds,\r\n this.state.downloadType\r\n ).toPromise();\r\n if (downloadableInfo instanceof AjaxError || !downloadableInfo) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ allowResultDownload: downloadableInfo[0], allowValidationDownload: downloadableInfo[1] });\r\n const stepToUse = this.state.downloadType === SubmissionType.HEDIS ? 2 : 1;\r\n this.setState({\r\n currentStep: stepToUse\r\n });\r\n\r\n //get download file types\r\n this.GetFileTypesToDownload();\r\n }\r\n }\r\n }\r\n\r\n private async LoadSubmissionsForOrg() {\r\n this.setState({ isLoading: true });\r\n\r\n if (this.state.selectedOrganizationIndexes && this.state.selectedOrganizationIndexes.length > 0) {\r\n const selectedOrganizationIds: number[] = this.state.selectedOrganizationIndexes.map(i => {\r\n return this.state.orgData[i] != null ? this.state.orgData[i].OrgId : 0;\r\n });\r\n\r\n await this.getSubmissions(selectedOrganizationIds);\r\n }\r\n else {\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n private DownloadSelected() {\r\n const submissions: ISelectedSubmissions[] = this.state.selectedSubmissionIndexes.map(i => {\r\n let sub = this.state.submissionData[i];\r\n\r\n return {\r\n submissionId: sub.submissionId,\r\n productLine: sub.productLine,\r\n component: sub.component\r\n };\r\n });\r\n this.downloadBulkFiles({\r\n submissions: submissions,\r\n fileTypes: this.state.filesToDownload\r\n });\r\n }\r\n\r\n private async downloadBulkFiles(bulkSubs: ISelectedSubmissionsHolder) {\r\n this.setState({ downloadInProgress: true, isValidDownload: false });\r\n\r\n const retval = await SubmissionsService.GetBulkFiles$(\r\n this.props.user,\r\n bulkSubs\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ isValidDownload: retval.response.isValidDownload });\r\n if (retval.response.isValidDownload) { //Make sure file(s) available for download else show \"No files found\" message\r\n const data = SharedUtility.Str2ab$(atob(retval.response.fileContents));\r\n saveAs(\r\n new Blob([data], { type: \"application/octet-stream\" }),\r\n retval.response.fileName\r\n );\r\n }\r\n else {\r\n this.setState({ isDialogOpen: true });\r\n }\r\n }\r\n\r\n this.setState({ downloadInProgress: false });\r\n }\r\n private GetFileTypesToDownload_CAHPS() {\r\n if (this.state.isHedisOnlyUser) {\r\n return CAHPSFileTypes_HEDISOnlyUser;\r\n }\r\n else if (AuthorizationPolicies.IsGlobalAdmin(this.props.user)) {\r\n return CAHPSFileTypes_AdminUser;\r\n }\r\n return CAHPSFileTypes;\r\n }\r\n private GetFileTypesToDownload() {\r\n const downloadType = this.state.downloadType;\r\n var downloadFileTypes: { id: number, name: string, type: string }[] = [];\r\n switch (downloadType) {\r\n case SubmissionType.HEDIS:\r\n downloadFileTypes = HEDISFileTypes;\r\n break;\r\n case SubmissionType.CAHPS:\r\n downloadFileTypes = this.GetFileTypesToDownload_CAHPS();\r\n break;\r\n case SubmissionType.HOS:\r\n downloadFileTypes = HOSFileTypes;\r\n break;\r\n default:\r\n throw new Error(\"Missing or Invalid Download Type.\");\r\n }\r\n var filteredDownloadFileTypes = downloadFileTypes.filter(x => (this.state.allowResultDownload && x.type === \"result\") || (this.state.allowValidationDownload && x.type === \"validation\"));\r\n this.setState({ downloadFileTypes: filteredDownloadFileTypes });\r\n return filteredDownloadFileTypes;\r\n }\r\n\r\n private async ResetState() {\r\n this.setState({\r\n currentStep: 0,\r\n orgData: [],\r\n selectedOrganizationIndexes: [],\r\n submissionData: [],\r\n selectedSubmissionIndexes: [],\r\n filesToDownload: [],\r\n downloadType: this.props.match.params.downloadType,\r\n allChecked: false,\r\n isValidDownload: false\r\n });\r\n await this.RefreshModel();\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst BulkDownloadViewWithState = connect(genericMapStateToProps)(BulkDownloadView);\r\n\r\n// STYLES CONTAINER\r\nconst BulkDownloadPage = withStyles(styles)(BulkDownloadViewWithState);\r\n\r\nexport default BulkDownloadPage;","export const UPLOAD_DOCUMENT_HEDIS = \"UPLOAD_DOCUMENT_HEDIS\";\r\nexport const UPLOAD_DOCUMENT_NONHEDIS = \"UPLOAD_DOCUMENT_NONHEDIS\";\r\nexport const DOWNLOAD_RESULTS_HEDIS = \"DOWNLOAD_RESULTS_HEDIS\";\r\nexport const DOWNLOAD_RESULTS_CAHPS = \"DOWNLOAD_RESULTS_CAHPS\";\r\nexport const DOWNLOAD_RESULTS_HOS = \"DOWNLOAD_RESULTS_HOS\";\r\nexport const VIEW_RESULTS_REPORTS_HEDIS = \"VIEW_RESULTS_REPORTS_HEDIS\";\r\nexport const VIEW_RESULTS_REPORTS_NONHEDIS = \"VIEW_RESULTS_REPORTS_NONHEDIS\";\r\nexport const VIEW_ART = \"VIEW_ART\";\r\nexport const ASSIGN_AUDIT_DESIGNATION = \"ASSIGN_AUDIT_DESIGNATION\";\r\nexport const SIGN_ATTESTATION_HEDIS = \"SIGN_ATTESTATION_HEDIS\";\r\nexport const SIGN_ATTESTATION_HOS = \"SIGN_ATTESTATION_HOS\";\r\nexport const PLAN_LOCK = \"PLAN_LOCK\";\r\nexport const AUDIT_LOCK = \"AUDIT_LOCK\";\r\nexport const UNLOCK_PLAN_LOCK = \"UNLOCK_PLAN_LOCK\";\r\nexport const UNLOCK_AUDIT_LOCK = \"UNLOCK_AUDIT_LOCK\";\r\nexport const MARK_FINAL_HEDIS = \"MARK_FINAL_HEDIS\";\r\nexport const MARK_FINAL_CAHPS = \"MARK_FINAL_CAHPS\";\r\nexport const MARK_FINAL_HOS = \"MARK_FINAL_HOS\";\r\nexport const SUBMISSION_GENERIC_ADMIN = \"SUBMISSION_GENERIC_ADMIN\";\r\nexport const VIEW_DOWNLOAD_ERRORS_HEDIS = \"VIEW_DOWNLOAD_ERRORS_HEDIS\";\r\nexport const VIEW_DOWNLOAD_ERRORS_NONHEDIS = \"VIEW_DOWNLOAD_ERRORS_NONHEDIS\";\r\nexport const VIEW_STATUS_HEDIS = \"VIEW_STATUS_HEDIS\";\r\nexport const VIEW_STATUS_NONHEDIS = \"VIEW_STATUS_NONHEDIS\";\r\nexport const MANAGE_PUBLIC_REPORTING = \"MANAGE_PUBLIC_REPORTING\";\r\nexport const VIEW_COMBINED_REPORT = \"VIEW_COMBINED_REPORT\";\r\nexport const DENY_UPLOAD = \"DENY_UPLOAD\";\r\nexport const MANAGE_ADMIN_VENDORSIGNER = \"MANAGE_ADMIN_VENDORSIGNER\";\r\nexport const MANAGE_HEDIS_USER = \"MANAGE_HEDIS_USER\";\r\nexport const MANAGE_NONHEDIS_USER = \"MANAGE_NONHEDIS_USER\";\r\nexport const HOS_ATTESTATIONITEM1 = \"HOS_ATTESTATIONITEM1\";\r\nexport const HOS_ATTESTATIONITEM2 = \"HOS_ATTESTATIONITEM2\";\r\nexport const HOS_ENABLE_INTERIM_SUBMISSION = \"HOS_ENABLE_INTERIM_SUBMISSION\";\r\n\r\nexport const ORG_ID = \"ORG_ID\";\r\nexport const SUB_ID = \"SUB_ID\";\r\n\r\nexport const COMMERCIAL = \"COMMERCIAL\";\r\nexport const MEDICAID = \"MEDICAID\";\r\nexport const MEDICARE = \"MEDICARE\";\r\nexport const EXCHANGE = \"EXCHANGE\";\r\nexport const LTSS = \"LTSS\";\r\n","import * as React from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { IGenericUserProps, genericMapStateToProps } from '../../DataClasses/GenericUser';\r\nimport { createStyles, withStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { SubmissionType } from '../../DataClasses/SharedData';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Grid, Typography, Card, CardContent, Stepper, Step, StepLabel, StepContent, Fab, Fade } from '@material-ui/core';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { AjaxError } from 'rxjs/ajax';\r\nimport SubmissionsService from '../Services/SubmissionsService';\r\nimport { ISelectedSubmissions, ISelectedSubmissionsHolder } from '../../DataClasses/SubmissionData';\r\nimport LoadingDataTable from '../Shared/LoadingDataTable';\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport { HOS_ENABLE_INTERIM_SUBMISSION } from \"../Shared/Constants\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n width: '90%',\r\n },\r\n button: {\r\n marginTop: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n actionsContainer: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n resetContainer: {\r\n padding: theme.spacing(3),\r\n }\r\n});\r\n\r\ninterface ILocalState {\r\n isOrgsLoading: boolean;\r\n isSubsLoading: boolean;\r\n isSaved: boolean;\r\n currentStep: number;\r\n orgData: any[];\r\n selectedOrganizationIndexes: number[];\r\n submissionData: any[];\r\n selectedSubmissionIndexes: number[];\r\n markFinalType: SubmissionType;\r\n markFinalInProgress: boolean;\r\n redirect: boolean;\r\n enableHosInterimDataSubmission: boolean;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass BulkMarkFinalView extends React.Component, ILocalState> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n isOrgsLoading: true,\r\n isSubsLoading: false,\r\n isSaved: false,\r\n currentStep: 0,\r\n orgData: [],\r\n selectedOrganizationIndexes: [],\r\n submissionData: [],\r\n selectedSubmissionIndexes: [],\r\n markFinalType: this.props.match.params.markFinalType,\r\n markFinalInProgress: false,\r\n redirect: false,\r\n enableHosInterimDataSubmission: false\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n }\r\n\r\n public async componentDidUpdate(prevProps) {\r\n if (this.props.match.params.markFinalType !== prevProps.match.params.markFinalType) {\r\n this.ResetState();\r\n }\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n\r\n const submissionListColumns = [\r\n {\r\n label: \"Sub ID\",\r\n name: \"submissionId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Product Line\",\r\n name: \"productLine\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Component\",\r\n name: \"component\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org ID\",\r\n name: \"orgId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"orgName\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Validation Status\",\r\n name: \"validationStatus\",\r\n options: {\r\n display: (this.state.markFinalType !== SubmissionType.HOS ? \"true\" : \"false\") as any,\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === 'NoIssues')\r\n return
{value}
;\r\n else\r\n return value;\r\n }\r\n }\r\n },\r\n {\r\n label: \"IsAttested\",\r\n name: \"isAttested\",\r\n options: {\r\n display: (this.state.markFinalType === SubmissionType.HOS ? \"true\" : \"false\") as any,\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === \"Yes\")\r\n return
{value}
;\r\n else\r\n return value;\r\n }\r\n }\r\n },\r\n {\r\n label: \"IsFinal\",\r\n name: \"isFinal\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === \"No\")\r\n return
{value}
;\r\n else\r\n return value;\r\n }\r\n }\r\n },\r\n ];\r\n\r\n const submissionListingOptions = {\r\n sort: true,\r\n filter: true,\r\n filterType: \"multiselect\" as any,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRowsOnClick: true,\r\n rowsSelected: this.state.selectedSubmissionIndexes,\r\n onRowSelectionChange: (affectedRows, allSelectedRows, rowsSelected) => {\r\n this.setState({\r\n selectedSubmissionIndexes: allSelectedRows.map(item => item.dataIndex)\r\n });\r\n },\r\n isRowSelectable: (dataIndex, allRows) => {\r\n return this.state.markFinalType === SubmissionType.HOS ? (this.state.submissionData[dataIndex].isAttested === \"Yes\" || this.state.enableHosInterimDataSubmission)\r\n && (this.state.submissionData[dataIndex].validationStatus === \"NoIssues\" || this.state.submissionData[dataIndex].validationStatus === \"Warning\") &&\r\n this.state.submissionData[dataIndex].isFinal === \"No\"\r\n : this.state.submissionData[dataIndex].validationStatus === \"NoIssues\" && this.state.submissionData[dataIndex].isFinal === \"No\";\r\n },\r\n customToolbarSelect: () => { return null }\r\n };\r\n\r\n return \r\n \r\n \r\n Bulk Mark Final ({this.state.markFinalType.toUpperCase()})\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n\r\n \r\n Select Submissions\r\n \r\n {this.state.isSubsLoading ? :\r\n
\r\n
\r\n }\r\n
\r\n
\r\n this.MarkFinalSelected()} disabled={this.state.selectedSubmissionIndexes.length === 0 || this.state.markFinalInProgress} className={classes.fab}>\r\n Mark Final\r\n \r\n {\r\n this.state.isSaved ? \r\n Your selections have been saved.\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 private async RefreshModel() {\r\n this.setState({ isSubsLoading: true });\r\n const subRetVal = await SubmissionsService.GetSubmissionsOfTypeForOrgsByAction$(\r\n this.props.user,\r\n [] as any,\r\n this.props.match.params.markFinalType,\r\n \"markFinal\"\r\n ).toPromise();\r\n\r\n if (subRetVal instanceof AjaxError || !subRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n //get hos interim data submission config value\r\n const retval = await AdministrationService.GetConfigKey$(this.props.user, HOS_ENABLE_INTERIM_SUBMISSION).toPromise();\r\n\r\n if (!retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ enableHosInterimDataSubmission: retval.toLowerCase() === 'true' });\r\n }\r\n\r\n const subData: any[] = (subRetVal.response as any).map(item => {\r\n return {\r\n submissionId: item.subId,\r\n productLine: item.productLine,\r\n component: item.component,\r\n orgId: item.orgId,\r\n orgName: item.orgName,\r\n validationStatus: item.validationStatus,\r\n isAttested: item.isAttested ? 'Yes' : 'No',\r\n isFinal: item.isFinal ? 'Yes' : 'No'\r\n };\r\n });\r\n\r\n this.setState({\r\n submissionData: subData\r\n });\r\n }\r\n this.setState({ isSubsLoading: false });\r\n }\r\n\r\n private async ResetState() {\r\n this.setState({\r\n currentStep: 0,\r\n orgData: [],\r\n selectedOrganizationIndexes: [],\r\n submissionData: [],\r\n selectedSubmissionIndexes: [],\r\n markFinalType: this.props.match.params.markFinalType,\r\n isSaved: false\r\n });\r\n await this.RefreshModel();\r\n }\r\n\r\n\r\n private MarkFinalSelected() {\r\n const submissions: ISelectedSubmissions[] = this.state.selectedSubmissionIndexes.map(i => {\r\n let sub = this.state.submissionData[i];\r\n\r\n return {\r\n submissionId: sub.submissionId,\r\n productLine: sub.productLine,\r\n component: sub.component\r\n };\r\n });\r\n\r\n switch (this.state.markFinalType) {\r\n case SubmissionType.HEDIS:\r\n throw new Error(\"Not Implemented\");\r\n case SubmissionType.CAHPS:\r\n case SubmissionType.HOS:\r\n this.BulkMarkFinal({\r\n submissions: submissions,\r\n fileTypes: []\r\n });\r\n break;\r\n }\r\n }\r\n\r\n\r\n private async BulkMarkFinal(bulkSubs: ISelectedSubmissionsHolder) {\r\n this.setState({ markFinalInProgress: true });\r\n this.setState({ isSaved: false });\r\n const retval = await SubmissionsService.SubmissionsBulkAction$(\r\n this.props.user,\r\n bulkSubs,\r\n \"MarkFinal\"\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.RefreshModel();\r\n this.setState({ selectedSubmissionIndexes: [], isSaved: true }, () => this.setState({ markFinalInProgress: false }));\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst BulkMarkFinalViewWithState = connect(genericMapStateToProps)(BulkMarkFinalView);\r\n\r\n// STYLES CONTAINER\r\nconst BulkMarkFinalPage = withStyles(styles)(BulkMarkFinalViewWithState);\r\n\r\nexport default BulkMarkFinalPage;","import * as React from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport { IGenericUserProps, genericMapStateToProps } from '../../DataClasses/GenericUser';\r\nimport { createStyles, withStyles, WithStyles, Theme } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { SubmissionType } from '../../DataClasses/SharedData';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport {\r\n Grid, Typography, Card, CardContent, Stepper, Step, StepLabel, StepContent, Button, Fab\r\n , Dialog, DialogTitle, DialogContent, DialogActions, Divider, Checkbox, TextField, Tooltip,\r\n FormControl, FormGroup, FormControlLabel\r\n} from '@material-ui/core';\r\nimport MUIDataTable from 'mui-datatables';\r\nimport { AjaxError } from 'rxjs/ajax';\r\nimport SubmissionsService from '../Services/SubmissionsService';\r\nimport { Warning as WarningIcon } from '@material-ui/icons';\r\nimport SendIcon from '@material-ui/icons/Send';\r\nimport { ISelectedSubmissions, ISelectedSubmissionsHolder } from '../../DataClasses/SubmissionData';\r\nimport LoadingDataTable from '../Shared/LoadingDataTable';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { HOS_ATTESTATIONITEM1, HOS_ATTESTATIONITEM2 } from '../Shared/Constants'\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n width: '90%',\r\n },\r\n button: {\r\n marginTop: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n actionsContainer: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n resetContainer: {\r\n padding: theme.spacing(3),\r\n }\r\n});\r\n\r\ninterface ILocalState {\r\n isOrgsLoading: boolean;\r\n isSubsLoading: boolean;\r\n isSaved: boolean;\r\n currentStep: number;\r\n attestingVendor: string;\r\n orgData: any[];\r\n attestationLanguage: Map;\r\n selectedOrganizationIndexes: number[];\r\n submissionData: any[];\r\n selectedSubmissionIndexes: number[];\r\n attestationType: SubmissionType;\r\n attestationInProgress: boolean;\r\n attestationDialogOpen: boolean;\r\n attestationItem1Checked: boolean;\r\n attestationItem2Checked: boolean;\r\n attester: string;\r\n vendorName: string;\r\n redirect: boolean;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass BulkAttestationView extends React.Component, ILocalState> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n isOrgsLoading: true,\r\n isSubsLoading: false,\r\n isSaved: false,\r\n currentStep: 0,\r\n attestingVendor: \"\",\r\n orgData: [],\r\n attestationLanguage: null,\r\n selectedOrganizationIndexes: [],\r\n submissionData: [],\r\n selectedSubmissionIndexes: [],\r\n attestationType: this.props.match.params.attestationType,\r\n attestationInProgress: false,\r\n attestationDialogOpen: false,\r\n attestationItem1Checked: false,\r\n attestationItem2Checked: false,\r\n attester: \"\",\r\n vendorName: \"\",\r\n redirect: false\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n await this.RefreshModel();\r\n }\r\n\r\n public async componentDidUpdate(prevProps) {\r\n if (this.props.match.params.attestationType !== prevProps.match.params.attestationType) {\r\n this.setState({ attestationType: this.props.match.params.attestationType })\r\n this.ResetState();\r\n }\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n\r\n const submissionListColumns = [\r\n {\r\n label: \"Sub ID\",\r\n name: \"submissionId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Product Line\",\r\n name: \"productLine\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Component\",\r\n name: \"component\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org ID\",\r\n name: \"orgId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"orgName\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Validation Status\",\r\n name: \"validationStatus\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === 'NoIssues')\r\n return
{value}
;\r\n else if (value === 'Warning')\r\n return
{value}
;\r\n else\r\n return value;\r\n }\r\n }\r\n },\r\n {\r\n label: \"IsAttested\",\r\n name: \"isAttested\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (value === \"No\")\r\n return
{value}
;\r\n else\r\n return value;\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const submissionListingOptions = {\r\n sort: true,\r\n filterType: \"multiselect\" as any,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n selectableRowsOnClick: true,\r\n rowsSelected: this.state.selectedSubmissionIndexes,\r\n onRowSelectionChange: (affectedRows, allSelectedRows, rowsSelected) => {\r\n this.setState({\r\n selectedSubmissionIndexes: allSelectedRows.map(item => item.dataIndex)\r\n });\r\n },\r\n isRowSelectable: (dataIndex, allRows) => {\r\n return (this.state.submissionData[dataIndex].validationStatus === \"NoIssues\" || this.state.submissionData[dataIndex].validationStatus === \"Warning\") && this.state.submissionData[dataIndex].isAttested === \"No\";\r\n },\r\n customToolbarSelect: () => { return null }\r\n };\r\n\r\n return \r\n \r\n \r\n Bulk Attestation ({this.state.attestationType.toUpperCase()})\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n Select Submissions\r\n \r\n {this.state.isSubsLoading ? :\r\n (this.state.submissionData.length > 0 ?\r\n \r\n : \r\n The organization(s) selected does not have any submissions, please go back and select another.\r\n \r\n )\r\n }\r\n\r\n
\r\n
\r\n {true ? null :\r\n this.GoBackToSelectOrg()}\r\n className={classes.button} >\r\n Back\r\n \r\n }\r\n this.openAttestationDialog()} disabled={this.state.selectedSubmissionIndexes.length < 1 || this.state.attestationInProgress} className={classes.fab}>\r\n Attestation\r\n \r\n {\r\n this.state.isSaved ? \r\n Your selections have been saved.\r\n : null\r\n }\r\n\r\n \r\n \r\n HOS Data Attestation Statement\r\n \r\n \r\n \r\n
\r\n \r\n {this.state.attestationLanguage && this.state.attestationLanguage !== null ?\r\n <>\r\n \r\n this.setState({ attestationItem1Checked: !this.state.attestationItem1Checked })}\r\n />\r\n }\r\n label={this.state.attestationLanguage[HOS_ATTESTATIONITEM1].replace('{0}', this.state.attestingVendor)}\r\n />\r\n
\r\n this.setState({ attestationItem2Checked: !this.state.attestationItem2Checked })}\r\n />\r\n }\r\n label={this.state.attestationLanguage[HOS_ATTESTATIONITEM2]}\r\n />\r\n
\r\n \r\n : null}\r\n

\r\n \r\n * Please accept the above statements, complete the fields below, and click the \"Submit\" button to complete the HOS Data Attestation\r\n \r\n
\r\n this.onAttesterChange(e)} />\r\n
\r\n this.onVendorNameChange(e)} />\r\n
\r\n


\r\n \r\n \r\n this.AttestationSelected()} disabled={!this.state.attestationItem1Checked || !this.state.attestationItem2Checked || this.state.attester === \"\" || this.state.vendorName === \"\"}>\r\n \r\n Submit\r\n \r\n \r\n \r\n
\r\n \r\n \r\n this.cancelAttestation()}\r\n >\r\n Cancel\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n //}\r\n }\r\n\r\n private openAttestationDialog() {\r\n this.setState({ isSaved: false })\r\n this.setState({ attestationDialogOpen: true })\r\n }\r\n\r\n private onAttesterChange(e) {\r\n this.setState({ attester: e.target.value })\r\n }\r\n private onVendorNameChange(e) {\r\n this.setState({ vendorName: e.target.value })\r\n }\r\n private cancelAttestation() {\r\n this.setState({ attestationDialogOpen: false, attestationItem1Checked: false, attestationItem2Checked: false, attester: \"\", vendorName: \"\" })\r\n }\r\n\r\n private async RefreshModel() {\r\n await this.LoadSubmissionsForOrg();\r\n await this.GetHosSubmissionsAttestationLanguage();\r\n }\r\n\r\n private async ResetState() {\r\n this.setState({\r\n currentStep: 0,\r\n orgData: [],\r\n selectedOrganizationIndexes: [],\r\n submissionData: [],\r\n selectedSubmissionIndexes: []\r\n });\r\n await this.RefreshModel();\r\n }\r\n\r\n private async LoadSubmissionsForOrg() {\r\n this.setState({ isSubsLoading: true });\r\n const subRetVal = await SubmissionsService.GetSubmissionsOfTypeForOrgsByAction$(\r\n this.props.user,\r\n [] as any,\r\n this.state.attestationType,\r\n \"attestation\"\r\n ).toPromise();\r\n\r\n if (subRetVal instanceof AjaxError || !subRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const subData: any[] = (subRetVal.response as any).map(item => {\r\n return {\r\n submissionId: item.subId,\r\n productLine: item.productLine,\r\n component: item.component,\r\n orgId: item.orgId,\r\n orgName: item.orgName,\r\n validationStatus: item.validationStatus,\r\n isAttested: item.isAttested ? 'Yes' : 'No'\r\n };\r\n });\r\n\r\n this.setState({\r\n submissionData: subData\r\n }, () => this.setState({ isSubsLoading: false }));\r\n }\r\n }\r\n\r\n private GoBackToSelectOrg() {\r\n this.setState({\r\n currentStep: 0,\r\n submissionData: [],\r\n selectedSubmissionIndexes: []\r\n });\r\n }\r\n\r\n private AttestationSelected() {\r\n const submissions: ISelectedSubmissions[] = this.state.selectedSubmissionIndexes.map(i => {\r\n let sub = this.state.submissionData[i];\r\n return {\r\n submissionId: sub.submissionId,\r\n productLine: sub.productLine,\r\n component: sub.component\r\n };\r\n });\r\n if (this.state.attestationType !== SubmissionType.HOS)\r\n throw new Error(\"Not Implemented for\" + this.state.attestationType.toString());\r\n\r\n this.BulkAttestation({\r\n submissions: submissions,\r\n fileTypes: []\r\n });\r\n }\r\n\r\n private async BulkAttestation(bulkSubs: ISelectedSubmissionsHolder) {\r\n this.setState({ attestationInProgress: true });\r\n const retval = await SubmissionsService.SubmissionsBulkAttestation$(\r\n this.props.user,\r\n bulkSubs,\r\n this.state.attester,\r\n this.state.vendorName\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ isSaved: true })\r\n this.LoadSubmissionsForOrg();\r\n this.setState({\r\n selectedSubmissionIndexes: [], attestationInProgress: false,\r\n attestationDialogOpen: false, attestationItem1Checked: false, attestationItem2Checked: false, attester: \"\", vendorName: \"\"\r\n });\r\n }\r\n }\r\n\r\n private async GetHosSubmissionsAttestationLanguage() {\r\n const retVal = await SubmissionsService.GetHosSubmissionsAttestationLanguage$(this.props.user).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({\r\n attestationLanguage: retVal\r\n });\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst BulkAttestationViewWithState = connect(genericMapStateToProps)(BulkAttestationView);\r\n\r\n// STYLES CONTAINER\r\nconst BulkAttestationPage = withStyles(styles)(BulkAttestationViewWithState);\r\n\r\nexport default BulkAttestationPage;","import * as React from \"react\";\r\nimport { Grid, List, ListItem, ListItemIcon, ListItemText, Typography, Paper, Fade, CircularProgress } from \"@material-ui/core\";\r\nimport '@material-ui/core/styles';\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport { GetApp as GetAppIcon, FindInPage as FindInPageIcon } from '@material-ui/icons';\r\nimport ReportService from \"../Services/ReportsService\";\r\nimport saveAs from 'file-saver';\r\nimport { Link, LinkProps } from 'react-router-dom';\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport { VIEW_COMBINED_REPORT, VIEW_RESULTS_REPORTS_HEDIS, VIEW_RESULTS_REPORTS_NONHEDIS, ORG_ID } from \"../Shared/Constants\";\r\nimport * as AuthorizationPolicies from \"../../Configuration/AuthorizationPolicies\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../Services/ReportsService\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport { ISubmissionAllowance } from \"../../DataClasses/SubmissionData\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n flexGrow: 1\r\n },\r\n list: {\r\n flexGrow: 1\r\n },\r\n menuContainer: {\r\n textAlign: \"right\",\r\n paddingRight: \"10px\"\r\n }\r\n});\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalState {\r\n IsDownloadingCombinedReport: boolean;\r\n IsDownloadingLicenseAgreement: boolean;\r\n IsDownloadingOrganizationReport: boolean;\r\n anchorEl: HTMLElement | null;\r\n showAllReports: boolean;\r\n showCombinedReport: boolean;\r\n isNcqaAdmin: boolean;\r\n userDownloadAccessibility: ISubmissionAllowance;\r\n isLoading: boolean;\r\n canUserAccessAttestationTemplates: boolean;\r\n redirect: boolean;\r\n}\r\n\r\nconst AdapterLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n// VIEW\r\nclass ReportsView extends React.Component {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = {\r\n IsDownloadingCombinedReport: false,\r\n IsDownloadingLicenseAgreement: false,\r\n IsDownloadingOrganizationReport: false,\r\n anchorEl: null,\r\n showAllReports: false,\r\n showCombinedReport: false,\r\n isNcqaAdmin: false,\r\n userDownloadAccessibility:\r\n {\r\n allowsHedisSubmission: false,\r\n allowsCahpsSubmission: false,\r\n allowsHosSubmission: false\r\n },\r\n isLoading: true,\r\n canUserAccessAttestationTemplates: false,\r\n redirect: false\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n this.setState({\r\n showAllReports: await this.IsViewReportsActionAuthorized(),\r\n showCombinedReport: await this.IsViewCombinedReportActionAuthorized(),\r\n isNcqaAdmin: AuthorizationPolicies.IsGlobalAdmin(this.props.user),\r\n userDownloadAccessibility: await SubmissionsService.GetReportsAvailabilities$(this.props.user).toPromise(),\r\n canUserAccessAttestationTemplates: await this.CanUserAccessAttestationTemplates()\r\n });\r\n this.setState({ isLoading: false })\r\n }\r\n\r\n private async IsViewReportsActionAuthorized() {\r\n return (await UserManagerService.IsActionAuthorized$(this.props.user, VIEW_RESULTS_REPORTS_HEDIS, ORG_ID, -1).toPromise() ||\r\n await UserManagerService.IsActionAuthorized$(this.props.user, VIEW_RESULTS_REPORTS_NONHEDIS, ORG_ID, -1).toPromise()); //quick fix for now, refactoring\r\n }\r\n\r\n private async IsViewCombinedReportActionAuthorized() {\r\n return await UserManagerService.IsActionAuthorized$(this.props.user, VIEW_COMBINED_REPORT, ORG_ID, -1).toPromise();\r\n }\r\n\r\n private async CanUserAccessAttestationTemplates() {\r\n return await ReportsService.CanUserAccessAttestationTemplates$(this.props.user).toPromise();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n Reports\r\n \r\n \r\n {this.state.showAllReports && !this.state.isLoading ?\r\n <>\r\n \r\n \r\n \r\n \r\n {this.renderCombindedReportLink()}\r\n {this.renderDownloadReportLink(() => this.getLicenseAgreement(), this.state.IsDownloadingLicenseAgreement, \"License Agreement\", \"IDSS License Agreement\")}\r\n {this.renderNavigationReportLink('/filesuploadreportpage', \"File Upload Report\", \"Provide the info about the files uploaded.\")}\r\n {this.renderHosVendorSubmissionStatusReportLink()}\r\n {this.renderCahpsVendorSubmissionStatusReportLink()}\r\n {this.renderNavigationReportLink('/activityreportpage', \"Activity Report\", \"Provide the info about the activitiies.\")}\r\n {this.renderAdminReportsLinks()}\r\n {this.renderTemplatesLinks()}\r\n {this.renderValidationMetadata()}\r\n \r\n \r\n \r\n :\r\n \r\n }\r\n \r\n );\r\n }\r\n\r\n private renderCombindedReportLink = () => {\r\n if (this.state.showCombinedReport)\r\n return this.renderDownloadReportLink(() => this.getCombinedReport(), this.state.IsDownloadingCombinedReport, \"Combined Report\", \"The Combined Report gives the status of all submissions that you have access to.\");\r\n return null;\r\n }\r\n\r\n private renderHosVendorSubmissionStatusReportLink = () => {\r\n if (this.state.userDownloadAccessibility.allowsHosSubmission)\r\n return this.renderNavigationReportLink('/hosvendorsubmissionstatusreportpage', \"HOS Vendor Submission Status Report\", \"Provide the info about the HOS vendor submission status.\");\r\n return null;\r\n }\r\n\r\n private renderCahpsVendorSubmissionStatusReportLink = () => {\r\n if (this.state.userDownloadAccessibility.allowsCahpsSubmission)\r\n return this.renderNavigationReportLink('/cahpsvendorsubmissionstatusreportpage', \"CAHPS Vendor Submission Status Report\", \"Provide the info about the CAHPS vendor submission status.\");\r\n return null;\r\n }\r\n\r\n private renderAdminReportsLinks = () => {\r\n if (this.state.isNcqaAdmin)\r\n return <>\r\n {this.renderNavigationReportLink('/submissionsdatasummaryreportpage', \"Submissions Data Summary Report (Admin Only)\", \"Provide the submissions data summary.\")}\r\n {this.renderNavigationReportLink('/validationreport', \"Validation Report (Admin Only)\", \"Provide HEDIS validation result.\")}\r\n {this.renderNavigationReportLink('/submissioncountonmeasurereport', \"Submission Count on Measure Report (Admin Only)\", \"Provide HEDIS submission counts on measures.\")}\r\n {this.renderNavigationReportLink('/accreditationstatusreport', \"Accreditation Status Report (Admin Only)\", \"Provide Accreditation Status for submissions.\")}\r\n ;\r\n\r\n return null;\r\n }\r\n\r\n private renderTemplatesLinks = () => {\r\n if (this.state.canUserAccessAttestationTemplates)\r\n return <>\r\n {this.renderNavigationReportLink(\"Help/CommercialAttestation.pdf\", \"Commercial Attestation Template\", \"Commercial Attestation Template\", true)}\r\n {this.renderNavigationReportLink(\"Help/ExchangeAttestation.pdf\", \"Exchange Attestation Template\", \"Exchange Attestation Template\", true)}\r\n {this.renderNavigationReportLink(\"Help/MedicaidAttestation.pdf\", \"Medicaid Attestation Template\", \"Medicaid Attestation Template\", true)}\r\n {this.renderNavigationReportLink(\"Help/MedicaidLtssAttestation.pdf\", \"Medicaid LTSS Attestation Template\", \"Medicaid LTSS Attestation Template\", true)}\r\n {this.renderNavigationReportLink(\"Help/MedicareAttestation.pdf\", \"Medicare Attestation Template\", \"Medicare Attestation Template\", true)}\r\n ;\r\n }\r\n\r\n private renderValidationMetadata = () => {\r\n if (this.state.canUserAccessAttestationTemplates)\r\n return <>\r\n {this.renderNavigationReportLink(\"Help/MY2023_HEDIS_ValidationDictionary_FINAL_v2.csv\", \"Validation Metadata Dictionary\", \"Validation Metadata Dictionary\", true)}\r\n ;\r\n }\r\n\r\n private renderDownloadReportLink = (onClick, isDownloading, primaryText, secondaryText) => {\r\n return (\r\n \r\n \r\n {isDownloading ?\r\n (\r\n \r\n )\r\n : }\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private renderNavigationReportLink = (href, primaryText, secondaryText, isStaticDownload = false) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private getCombinedReport = async () => {\r\n this.setState({ IsDownloadingCombinedReport: true });\r\n const apiCall = ReportService.GetCombinedReportCaller$(this.props.user);\r\n\r\n try {\r\n const userResponse = await apiCall.toPromise();\r\n if (typeof userResponse === 'string') {\r\n const data = this.str2ab(atob(userResponse));\r\n saveAs(new Blob([data], {\r\n type: \"application/octet-stream\"\r\n }), \"CombinedReport.xlsx\");\r\n }\r\n }\r\n catch (ex) {\r\n // handle error\r\n }\r\n finally {\r\n this.setState({ IsDownloadingCombinedReport: false });\r\n }\r\n }\r\n\r\n private getLicenseAgreement = async () => {\r\n this.setState({ IsDownloadingLicenseAgreement: true });\r\n\r\n try {\r\n const response: string[] | AjaxError = await ReportService.GetUserLicenseAgreement$(this.props.user).toPromise();\r\n if (response instanceof AjaxError || !response) {\r\n this.setRedirectState();\r\n } else {\r\n var fileName = response[0];\r\n var fileContent = response[1];\r\n\r\n if (fileName !== '' && typeof fileContent === 'string') {\r\n const data = this.str2ab(atob(fileContent));\r\n saveAs(new Blob([data], { type: \"application/octet-stream\" }), fileName);\r\n }\r\n }\r\n }\r\n catch (ex) {\r\n }\r\n finally {\r\n this.setState({ IsDownloadingLicenseAgreement: false });\r\n }\r\n }\r\n\r\n private str2ab(str) {\r\n const buf = new ArrayBuffer(str.length);\r\n const bufView = new Uint8Array(buf);\r\n for (let i = 0, strLen = str.length; i < strLen; i++) {\r\n bufView[i] = str.charCodeAt(i);\r\n }\r\n return buf;\r\n }\r\n}\r\n\r\nconst ReportsViewWithState = connect(genericMapStateToProps)(ReportsView);\r\n\r\n// STYLES CONTAINER\r\nconst ReportsPage = withStyles(styles)(ReportsViewWithState);\r\n\r\nexport default ReportsPage;\r\n\r\n\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { Button, Paper } from \"@material-ui/core\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport AlertDialog from \"../Shared/AlertDialog\";\r\nimport ErrorDialog from \"../Shared/ErrorDialog\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IUserRolePayload } from \"../../DataClasses/UsersData\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../DataClasses/GenericUser\";\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 DialogTitle from \"@material-ui/core/DialogTitle\";\r\nimport { IOrgSummary } from \"../../DataClasses/SubmissionData\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport Select from \"react-select\";\r\nimport ExceptionSerivce from \"../Services/ExceptionService\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\ninterface IUserRolesState {\r\n data: any[];\r\n filterText: string;\r\n showDialog: boolean;\r\n targetUser: string;\r\n open: boolean;\r\n allOrgs: IOrgSummary[];\r\n allVendors: IOrgSummary[];\r\n allSysGroups: string[];\r\n selectedSysGroup: any;\r\n selectedOrgs: any;\r\n selectedRoles: any;\r\n allRoles: string[];\r\n inputSubIds: string;\r\n errorMsg: string;\r\n redirect: boolean\r\n}\r\n\r\nclass UserRolesView extends React.Component<\r\n IGenericUserProps & RouteComponentProps<{ userEmail: string }>,\r\n IUserRolesState\r\n> {\r\n private userOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 15,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n private userColumns = [\r\n {\r\n name: \"Entity ID\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Role Type\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Role Name\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n\r\n {\r\n name: \"Action\",\r\n options: {\r\n customBodyRender: value => {\r\n return (\r\n
\r\n this.deleteButtonClick(value)}\r\n >\r\n Delete\r\n \r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n targetUser: this.props.match.params.userEmail,\r\n data: [],\r\n filterText: \"\",\r\n showDialog: false,\r\n open: false,\r\n allOrgs: [],\r\n allVendors: [],\r\n allSysGroups: [],\r\n selectedSysGroup: \"\",\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n allRoles: [],\r\n inputSubIds: \"\",\r\n errorMsg: \"\",\r\n redirect: false\r\n };\r\n // Bind functions\r\n this.handleUserInput = this.handleUserInput.bind(this);\r\n this.deleteButtonClick = this.deleteButtonClick.bind(this);\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n }\r\n\r\n public handleUserInput(event: any) {\r\n this.setState({ filterText: event.target.value });\r\n }\r\n\r\n public async deleteButtonClick(userRoleInfo: string) {\r\n try {\r\n var response = await UserManagerService.DeleteUserRole$(\r\n this.props.user,\r\n this.state.targetUser,\r\n userRoleInfo\r\n ).toPromise();\r\n if (response instanceof AjaxError || !response) {\r\n this.setRedirectState();\r\n }\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n await this.RefreshRolesForUser();\r\n }\r\n\r\n public deleteAllButtonClick = () => {\r\n // show modal dialog by setting the state to true\r\n this.setModalDialogState(true);\r\n };\r\n\r\n addButtonClick = () => {\r\n this.setState({ open: true });\r\n };\r\n\r\n handleClose = () => {\r\n this.setState({\r\n open: false,\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n selectedSysGroup: \"\",\r\n inputSubIds: \"\"\r\n });\r\n };\r\n\r\n handleSave = async () => {\r\n await UserManagerService.AddUserToRoles$(\r\n this.props.user,\r\n this.props.match.params.userEmail,\r\n this.state.selectedSysGroup.value,\r\n this.state.selectedRoles.map(p => p.value).join(\",\"),\r\n this.state.selectedOrgs === \"\"\r\n ? \"\"\r\n : this.state.selectedOrgs.map(p => p.value).join(\",\"),\r\n this.state.inputSubIds,\r\n false\r\n ).toPromise();\r\n await this.RefreshRolesForUser();\r\n this.setState({\r\n open: false,\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n selectedSysGroup: \"\",\r\n inputSubIds: \"\"\r\n });\r\n };\r\n\r\n public selectedOrgsChange(newValue): void {\r\n this.setState({ selectedOrgs: newValue });\r\n // this.setAddIdpBtnStatus(newValue, this.state.selectedDpVType);\r\n }\r\n public async selectedSysGroupChange(newValue) {\r\n this.setState({\r\n selectedSysGroup: newValue,\r\n selectedOrgs: \"\",\r\n selectedRoles: \"\",\r\n inputSubIds: \"\"\r\n });\r\n const rolesRetval = await UserManagerService.GetAllRolesPerSysGroup$(\r\n this.props.user,\r\n newValue.value\r\n ).toPromise();\r\n if (rolesRetval instanceof AjaxError || !rolesRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allRoles: rolesRetval });\r\n }\r\n }\r\n public selectedRolesChange(newValue): void {\r\n this.setState({ selectedRoles: newValue });\r\n }\r\n public inputSubIdsChange(e: any): void {\r\n this.setState({ inputSubIds: e.target.value });\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const sysGroupOption = this.state.allSysGroups.map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n const orgOption = this.state.allOrgs.map(m => ({\r\n label: m.orgId + \"-\" + m.orgName,\r\n value: m.orgId\r\n }));\r\n const vendorOption = this.state.allVendors.map(m => ({\r\n label: m.orgId + \"-\" + m.orgName,\r\n value: m.orgId\r\n }));\r\n const roleOption = this.state.allRoles.map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n\r\n return (\r\n \r\n

Manage User: {this.props.match.params.userEmail}

\r\n \r\n Delete All\r\n \r\n    \r\n \r\n Add\r\n \r\n \r\n \r\n Add Roles to the User ( {this.props.match.params.userEmail}):\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

\r\n Add Roles to the User ({\" \"}\r\n {this.props.match.params.userEmail})\r\n

\r\n
Select System Group:\r\n \r\n
Select Organization(s):\r\n \r\n
\r\n
\r\n \r\n \r\n Save\r\n \r\n \r\n \r\n
\r\n \r\n this.setState({ errorMsg: \"\" })}\r\n />\r\n\r\n \r\n
\r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n await this.RefreshRolesForUser();\r\n\r\n try {\r\n const allOrgsRetval = await SubmissionsService.GetOrgForSubmissionsSummary$(\r\n this.props.user\r\n ).toPromise();\r\n if (allOrgsRetval instanceof AjaxError || !allOrgsRetval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ allOrgs: allOrgsRetval });\r\n }\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n const allVendorsRetval = await SubmissionsService.GetOrgForVendorsSummary$(\r\n this.props.user\r\n ).toPromise();\r\n if (allVendorsRetval instanceof AjaxError || !allVendorsRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allVendors: allVendorsRetval });\r\n }\r\n const allSysGroupRetval = await UserManagerService.GetAllSysGroups$(\r\n this.props.user\r\n ).toPromise();\r\n if (allSysGroupRetval instanceof AjaxError || !allSysGroupRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allSysGroups: allSysGroupRetval });\r\n }\r\n }\r\n\r\n private async RefreshRolesForUser() {\r\n try {\r\n const retval: IUserRolePayload[] = await UserManagerService.GetRolesForUser$(\r\n this.props.user,\r\n this.state.targetUser\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({\r\n data: retval.map(item => {\r\n return [\r\n item.entityId,\r\n item.roleType,\r\n item.roleName,\r\n item.entityId + \",\" + item.roleType + \",\" + item.roleName\r\n ];\r\n })\r\n });\r\n }\r\n } catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setState({\r\n errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error)\r\n });\r\n }\r\n }\r\n\r\n private buttonYesHandler = async () => {\r\n this.setModalDialogState(false);\r\n // dispatch delete all user roles action\r\n await UserManagerService.DeleteAllUserRoles$(\r\n this.props.user,\r\n this.state.targetUser\r\n ).toPromise();\r\n await this.RefreshRolesForUser();\r\n };\r\n\r\n private buttonNoHandler = () => {\r\n this.setModalDialogState(false);\r\n };\r\n\r\n private setModalDialogState(value: boolean) {\r\n this.setState({ showDialog: value });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst UserRolesPage = connect(genericMapStateToProps)(\r\n UserRolesView\r\n);\r\n\r\nexport default UserRolesPage;\r\n","export const ADD_COLUMN = 'ADD_COLUMN';\r\nexport const REMOVE_COLUMN = 'REMOVE_COLUMN';\r\nexport const SET_INITIAL_COLUMNS = 'SET_INITIAL_COLUMNS';\r\nexport const SET_ALL_SUBMISSIONS = 'SET_ALL_SUBMISSIONS';\r\nexport const SET_SUBMISSION_PER_PAGE = 'SET_SUBS_PER_PAGE';\r\nexport const SET_TABLE_FILTER = \"SET_TABLE_FILTER\";\r\n","import \"@material-ui/core\";\r\nimport {\r\n Paper,\r\n Typography,\r\n FormGroup,\r\n FormControlLabel,\r\n Checkbox,\r\n Tooltip,\r\n Grid,\r\n IconButton,\r\n Fade\r\n} from \"@material-ui/core\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport SharedUtility from \"../../Utilities/SharedUtility\";\r\nimport MUIDataTable, {\r\n MUIDataTableColumnDef, MUIDataTableOptions\r\n} from \"mui-datatables\";\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport {\r\n ISelectedSubmissions\r\n} from \"../../DataClasses/SubmissionData\";\r\n//import {\r\n// IGenericUserProps,\r\n// genericMapStateToProps\r\n//} from \"../../DataClasses/GenericUser\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport * as AuthorizationPolicies from \"../../Configuration/AuthorizationPolicies\";\r\nimport { Edit } from '@material-ui/icons';\r\nimport { Link, LinkProps, RouteComponentProps } from 'react-router-dom';\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport {SeedTime} from \"../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\n//import RootState from \"../../State/Root/RootState\";\r\nimport { User } from \"oidc-client\";\r\nimport * as actionTypes from '../../State/SubmissionListing/Action';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme), \r\n step: {\r\n padding: '10px 22px',\r\n margin: theme.spacing(1)\r\n },\r\n selectedOrganizationId: {\r\n width: '50%',\r\n marginTop: theme.spacing(1)\r\n },\r\n bulkActionContainer: {\r\n flexGrow: 1,\r\n justifyContent: 'left',\r\n justifyItems: 'left'\r\n }\r\n});\r\n\r\nconst TableColumns = [\r\n { \"Id\": 1, \"Name\": \"Actions\" },\r\n { \"Id\": 2, \"Name\": \"Org ID\" },\r\n { \"Id\": 3, \"Name\": \"Sub ID\" },\r\n { \"Id\": 4, \"Name\": \"Org Name\" },\r\n { \"Id\": 5, \"Name\": \"Component\" },\r\n { \"Id\": 6, \"Name\": \"Product Line\" },\r\n { \"Id\": 7, \"Name\": \"Validation Status\" },\r\n { \"Id\": 8, \"Name\": \"Reporting Product\" },\r\n { \"Id\": 9, \"Name\": \"Special Project\" },\r\n { \"Id\": 10, \"Name\": \"Special Area\" },\r\n { \"Id\": 11, \"Name\": \"CMS Contract\" },\r\n { \"Id\": 12, \"Name\": \"Reporting Unit Id\" },\r\n { \"Id\": 13, \"Name\": \"Received\" },\r\n { \"Id\": 14, \"Name\": \"Stage\" },\r\n { \"Id\": 15, \"Name\": \"Survey Vendor\" },\r\n { \"Id\": 16, \"Name\": \"Public Reporting\"}\r\n];\r\n\r\ninterface ISubmissionsListingState {\r\n isLoading: boolean,\r\n isProcessing: boolean,\r\n isValidDownload: boolean,\r\n isAdmin: boolean,\r\n selectedSubmissions: ISelectedSubmissions[],\r\n rowsSelected: number[],\r\n tableData: any[],\r\n bulkAnchorEl: null | Element,\r\n tableFilters: undefined | IFilterInputParameters,\r\n redirect: boolean\r\n}\r\n\r\ninterface IFilterInputParameters {\r\n productLine: string | undefined;\r\n // status: string | undefined;\r\n stage: string | undefined;\r\n orgId: string | undefined;\r\n}\r\n\r\ninterface IComponentStoreProps {\r\n user: User | null;\r\n viewColumnsSelected: string[];\r\n showAllSubmissions: boolean;\r\n rowsPerPageSelected: number;\r\n storedFilterList: any;\r\n}\r\n\r\ninterface IComponentDispatchProps {\r\n addColumn: (column: string) => void;\r\n removeColumn: (column: string) => void;\r\n setInitialColumns: (columnsList: string[]) => void;\r\n setAllSubmissions: (value: boolean) => void;\r\n setRowsPerPage: (value: number) => void;\r\n setTableFilter: (filterList: any) => void;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\ntype IComponentProps = IStylesProps & IComponentStoreProps & IComponentDispatchProps\r\n\r\nconst AdapterLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n// VIEW\r\nclass AllSubmissionsView extends React.Component<\r\n IComponentProps & RouteComponentProps,\r\n ISubmissionsListingState\r\n > {\r\n constructor(props) {\r\n super(props);\r\n\r\n let filters = props.match.params as IFilterInputParameters | undefined;\r\n if(filters && filters.orgId)\r\n {\r\n this.props.setTableFilter([[],[+filters.orgId],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]);\r\n filters.orgId = undefined;\r\n }\r\n this.state =\r\n {\r\n isLoading: true,\r\n isProcessing: false,\r\n isValidDownload: true,\r\n isAdmin: AuthorizationPolicies.IsGlobalAdmin(this.props.user),\r\n selectedSubmissions: [],\r\n rowsSelected: [],\r\n tableData: [],\r\n bulkAnchorEl: null,\r\n tableFilters: filters,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidUpdate(prevProps) {\r\n let filters = this.props.match.params as IFilterInputParameters | undefined;\r\n if(filters && filters.orgId)\r\n {\r\n this.props.setTableFilter([[],[+filters.orgId],[],[],[],[],[],[],[],[],[],[],[],[],[],[]]);\r\n filters.orgId = undefined;\r\n }\r\n if (prevProps.match.params !== filters) {\r\n this.setState({ tableFilters: filters });\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n this.refreshModel(this.props.showAllSubmissions);\r\n\r\n //set all columns in state initially\r\n if (!this.props.viewColumnsSelected || this.props.viewColumnsSelected.length === 0) {\r\n var columnsList = TableColumns.map(c => c.Name);\r\n this.props.setInitialColumns(columnsList);\r\n }\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const pageFilters = this.state.tableFilters;\r\n const { classes } = this.props;\r\n const subListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n print: false,\r\n selectableRows: \"none\",\r\n downloadOptions:{\r\n filename: 'Submissions.csv',\r\n separator:',',\r\n filterOptions:{\r\n useDisplayedColumnsOnly:true,\r\n useDisplayedRowsOnly:true\r\n }\r\n },\r\n viewColumns: true, \r\n rowsSelected: this.state.rowsSelected,\r\n selectToolbarPlacement: \"none\",\r\n caseSensitive: false,\r\n rowsPerPage: this.props.rowsPerPageSelected,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n onChangeRowsPerPage: (numberOfRows: number) => {\r\n this.props.setRowsPerPage(numberOfRows);\r\n },\r\n onViewColumnsChange: (columnChanged, action) => {\r\n if (action === \"add\") {\r\n this.props.addColumn(columnChanged);\r\n }\r\n else if (action === \"remove\") {\r\n this.props.removeColumn(columnChanged);\r\n }\r\n },\r\n onFilterChange: (column, filterList, type) => {\r\n this.props.setTableFilter(filterList);\r\n }\r\n };\r\n\r\n let hasStoredTableFilter = this.props.storedFilterList && this.props.storedFilterList.length > 0;\r\n const subListingColumns: MUIDataTableColumnDef[] = [\r\n\r\n {\r\n name: this.getColumnName(1),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(1)),\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n const submissionHomeText = \"/submissionHome/\" + value;\r\n return (\r\n value === \"\" ? 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\n \r\n\r\n
\r\n\r\n
\r\n );\r\n },\r\n download: false\r\n }\r\n },\r\n {\r\n name: this.getColumnName(2),\r\n options: {\r\n filter: true,\r\n display: this.showColumn(this.getColumnName(2)),\r\n filterType: pageFilters && pageFilters.orgId && pageFilters.orgId !== 'all' ? 'custom' : 'multiselect',\r\n filterList: pageFilters && pageFilters.orgId && pageFilters.orgId !== 'all' ? [pageFilters.orgId] : (hasStoredTableFilter ? this.props.storedFilterList[1]: []),\r\n customFilterListOptions: {\r\n render: v => \"Org Id: \" + v.toString()\r\n },\r\n filterOptions: {\r\n logic(id, filters) {\r\n if (filters === undefined || filters.length === 0) {\r\n if (pageFilters && pageFilters.orgId && pageFilters.orgId !== 'all')\r\n return !(pageFilters.orgId.toString() === id.toString());\r\n return false;\r\n }\r\n return !(filters.includes(id));\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: this.getColumnName(3),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(3))\r\n }\r\n },\r\n {\r\n name: this.getColumnName(4),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(4)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(5),\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true,\r\n filterList: hasStoredTableFilter ? this.props.storedFilterList[4] : [],\r\n display: this.showColumn(this.getColumnName(5)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(6),\r\n options: {\r\n filter: true,\r\n display: this.showColumn(this.getColumnName(6)),\r\n filterType: 'multiselect',\r\n filterList: this.state.tableFilters && this.state.tableFilters.productLine && this.state.tableFilters.productLine !== 'all' ? [this.state.tableFilters.productLine] : (hasStoredTableFilter ? this.props.storedFilterList[5]:[]),\r\n filterOptions: {\r\n names: ['Commercial', 'Medicaid', 'Medicare', 'Exchange']\r\n },\r\n customFilterListOptions: {\r\n render: v => \"Product Line: \" + v.toString()\r\n } \r\n }\r\n },\r\n {\r\n name: this.getColumnName(7),\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true,\r\n filterList: hasStoredTableFilter ? this.props.storedFilterList[6] : [],\r\n display: 'excluded'\r\n }\r\n },\r\n {\r\n name: this.getColumnName(8),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(8)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(9),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(9)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(10),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(10)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(11),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(11)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(12),\r\n options: {\r\n filter: false,\r\n display: this.showColumn(this.getColumnName(12)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(13),\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true,\r\n display: this.showColumn(this.getColumnName(13)),\r\n }\r\n },\r\n {\r\n name: this.getColumnName(14),\r\n options: {\r\n filter: true,\r\n display: this.showColumn(this.getColumnName(14)),\r\n filterType: 'multiselect',\r\n filterList: this.state.tableFilters && this.state.tableFilters.stage && this.state.tableFilters.stage !== 'all' ? this.state.tableFilters.stage.split('&') : (hasStoredTableFilter ? this.props.storedFilterList[13]:[]),\r\n customFilterListOptions: {\r\n render: v=>\"Stage: \"+v.toString()\r\n }\r\n }\r\n },\r\n {\r\n name: this.getColumnName(15),\r\n options: {\r\n display: 'excluded',\r\n filterType: 'multiselect',\r\n filter: this.state.isAdmin,\r\n filterList: hasStoredTableFilter ? this.props.storedFilterList[14] : []\r\n }\r\n },\r\n {\r\n name: this.getColumnName(16),\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true,\r\n filterList: hasStoredTableFilter ? this.props.storedFilterList[15]: [],\r\n customBodyRender(value: string): React.ReactNode{\r\n if(value === \"Not Set\"){\r\n return ({value});\r\n }\r\n return value;\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n {'Submissions' + (this.state.tableFilters && this.state.tableFilters.orgId && this.state.tableFilters.orgId !== 'all' ? ' for Org ID ' + this.state.tableFilters.orgId : '')}\r\n \r\n \r\n \r\n
\r\n {this.state.isAdmin ?\r\n \r\n this.toggleGetAllUsers()}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Show All Submissions\"\r\n />\r\n : ''\r\n }\r\n\r\n {!this.state.isValidDownload ?\r\n \r\n \r\n No files available for download.\r\n \r\n : ''}\r\n
\r\n
\r\n \r\n \r\n {this.state.isLoading?\r\n \r\n :\r\n \r\n
\r\n Available Submissions}\r\n data={this.state.tableData}\r\n columns={subListingColumns}\r\n options={subListingOptions}\r\n />\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n )\r\n }\r\n\r\n private getColumnName(id: number): string {\r\n return TableColumns.find(c => c.Id === id).Name;\r\n }\r\n\r\n private showColumn(name: string): boolean {\r\n if (!this.props.viewColumnsSelected || this.props.viewColumnsSelected.length === 0)\r\n return true;\r\n return this.props.viewColumnsSelected.some(c => c === name);\r\n }\r\n\r\n private async toggleGetAllUsers() {\r\n this.setState({ isLoading: true });\r\n await this.refreshModel(!this.props.showAllSubmissions);\r\n this.props.setAllSubmissions(!this.props.showAllSubmissions);\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n //private async setRowsPerPage(rowPerPage: number) {\r\n // this.props.setAllSubmissions(!this.props.showAllSubmissions);\r\n //}\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n private async refreshModel(showAllSubmissions: boolean) {\r\n this.setState({ isLoading: true });\r\n\r\n const retval = await SubmissionsService.GetSubmissionsForUser$(\r\n this.props.user,\r\n showAllSubmissions\r\n ).toPromise();\r\n\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n let submissionData: any[] = retval\r\n .map(item => {\r\n return [\r\n item.canEdit ? item.subId + \"/\" + item.component + \"/\" + item.productLine : \"\",\r\n item.orgId,\r\n item.subId,\r\n item.orgName,\r\n item.component.replace(\"DST\", \"HEDIS\"),\r\n item.productLine,\r\n item.validationStatus,\r\n item.reportingProduct,\r\n item.specialProject,\r\n item.specialArea,\r\n item.cmsContractNumber,\r\n item.reportingUnitId,\r\n item.received,\r\n SharedUtility.GetStageCleanName(item.submissionStatus),\r\n item.componentVendorName === null ? \"None\" : item.componentVendorName,\r\n item.isPublicReported !== null? (item.isPublicReported === true? \"Yes\":\"No\"): \"Not Set\"\r\n ];\r\n });\r\n\r\n\r\n this.setState({\r\n tableData: submissionData\r\n });\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n}\r\n\r\nconst mapStateToProps = (state) => {\r\n return {\r\n user: state.AuthenticationReducer.user,\r\n viewColumnsSelected: state.SubmissionListingReducer.selectedSubmissionColumns,\r\n rowsPerPageSelected: state.SubmissionListingReducer.rowsPerPageSelected,\r\n showAllSubmissions: state.SubmissionListingReducer.showAllSubmissions,\r\n storedFilterList: state.SubmissionListingReducer.storedFilterList\r\n };\r\n} \r\n\r\nconst mapDispatchToProps = (dispatch): IComponentDispatchProps => {\r\n return {\r\n addColumn: (column: string) => dispatch({ type: actionTypes.ADD_COLUMN, payload: column }),\r\n removeColumn: (column: string) => dispatch({ type: actionTypes.REMOVE_COLUMN, payload: column }),\r\n setInitialColumns: (columnsList: string[]) => dispatch({ type: actionTypes.SET_INITIAL_COLUMNS, payload: columnsList }),\r\n setAllSubmissions: (value: boolean) => dispatch({ type: actionTypes.SET_ALL_SUBMISSIONS, payload: value }),\r\n setRowsPerPage: (value: number) => dispatch({ type: actionTypes.SET_SUBMISSION_PER_PAGE, payload: value }),\r\n setTableFilter: (filterList: any) => dispatch({ type: actionTypes.SET_TABLE_FILTER, payload: filterList})\r\n };\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AvailableSubmissionsPageWithState = connect(\r\n mapStateToProps, mapDispatchToProps\r\n)(AllSubmissionsView);\r\n\r\n// STYLES CONTAINER\r\nconst AvailableSubmissionsPage = withStyles(styles)(\r\n AvailableSubmissionsPageWithState\r\n);\r\n\r\nexport default AvailableSubmissionsPage;\r\n","import * as React from 'react';\r\nimport { Button } from \"@material-ui/core\";\r\nimport ArrowBackIcon from '@material-ui/icons/ArrowBack';\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { Link, LinkProps } from 'react-router-dom';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalProps {\r\n href: string;\r\n text: string;\r\n}\r\nconst AdapterLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\nconst BackNavigationComponent = (props: ILocalProps & IStylesProps) => {\r\n const { classes, href, text } = props;\r\n return (\r\n \r\n )\r\n};\r\n\r\n// STYLES CONTAINER\r\nconst BackNavigation = withStyles(styles)(BackNavigationComponent);\r\n\r\nexport default BackNavigation;","import \"@material-ui/core\";\r\nimport { Button, Grid, FormGroup, FormControlLabel, Checkbox, Fade } from \"@material-ui/core\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport { IFilesUploadReportPayload } from \"../../../DataClasses/ReportData\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { Link, LinkProps } from \"react-router-dom\";\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport * as AuthorizationPolicies from \"../../../Configuration/AuthorizationPolicies\";\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface IFilesUploadReportState {\r\n data: any[];\r\n isLoading: boolean;\r\n isSysAdmin: boolean;\r\n showAllItems: boolean;\r\n redirect: boolean\r\n}\r\n\r\n// The usage of React.forwardRef will no longer be required for react-router-dom v6.\r\n// see https://github.com/ReactTraining/react-router/issues/6056\r\n\r\n\r\n\r\ntype IStylesProps = WithStyles;\r\nconst AdapterLink = React.forwardRef(\r\n (props, ref) => \r\n);\r\n// VIEW\r\nclass FilesUploadReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IFilesUploadReportState\r\n> {\r\n private uploadFilesOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'FilesUploadReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n isSysAdmin: AuthorizationPolicies.IsGlobalAdmin(this.props.user),\r\n showAllItems: true,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel(this.state.showAllItems);\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n const uploadedFilesColumns =\r\n [\r\n {\r\n name: \"Org ID\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Sub ID\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"Org Name\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Component\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"FileName\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"ValidationStatus\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"CreateUser\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"CreateDateTime\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n ];\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.isSysAdmin ? \r\n this.toggleRefreshModel(!this.state.showAllItems)}\r\n color=\"primary\"\r\n />\r\n }\r\n label=\"Show All Submissions\"\r\n />\r\n :
}\r\n {this.state.isLoading ? :\r\n
\r\n
\r\n }\r\n
\r\n \r\n \r\n );\r\n // }\r\n }\r\n private async toggleRefreshModel(showAll: boolean) {\r\n this.setState({ isLoading: true });\r\n await this.RefreshModel(showAll);\r\n this.setState({ showAllItems: showAll })\r\n this.setState({ isLoading: false });\r\n }\r\n private async RefreshModel(showAllItems: boolean) {\r\n this.setState({ isLoading: true });\r\n const retval: IFilesUploadReportPayload[] | AjaxError = await ReportsService.GetFilesUploadReportCaller$(\r\n this.props.user,\r\n showAllItems\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(item => {\r\n return [\r\n item.organizationId,\r\n item.submissionId,\r\n item.organizationName,\r\n item.component,\r\n item.savedName,\r\n item.validationStatus,\r\n item.createUser,\r\n item.createDate\r\n ];\r\n })\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst FilesUploadReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(FilesUploadReportView);\r\n\r\n// STYLES CONTAINER\r\nconst FilesUploadReportPage = withStyles(styles)(\r\n FilesUploadReportPageWithState\r\n);\r\n\r\nexport default FilesUploadReportPage;\r\n","import * as React from \"react\";\r\nimport \"@material-ui/core\";\r\nimport {\r\n Grid,\r\n Dialog,\r\n DialogTitle,\r\n DialogActions,\r\n DialogContent,\r\n Button,\r\n TextField,\r\n DialogContentText,\r\n Tooltip,\r\n IconButton,\r\n Typography,\r\n Fade,\r\n} from \"@material-ui/core\";\r\nimport { connect } from \"react-redux\";\r\nimport FroalaEditorView from \"react-froala-wysiwyg/FroalaEditorView\";\r\nimport \"froala-editor/js/plugins/colors.min.js\";\r\n\r\nimport {\r\n Theme,\r\n WithStyles,\r\n createStyles,\r\n withStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps,\r\n} from \"../../DataClasses/GenericUser\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { IAnnouncementPayload } from \"../../DataClasses/AnnouncementData\";\r\nimport MUIDataTable, {\r\n MUIDataTableOptions,\r\n MUIDataTableColumnDef,\r\n} from \"mui-datatables\";\r\nimport AnnouncementsService from \"../Services/AnnouncementsService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { Delete, Edit } from \"@material-ui/icons\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport {\r\n MuiPickersUtilsProvider,\r\n KeyboardDatePicker,\r\n} from \"@material-ui/pickers\";\r\nimport froalaBaseConfig from \"../../Utilities/BaseFroalaConfig\";\r\nimport FroalaEditor from \"react-froala-wysiwyg\";\r\nimport SharedUtility from \"../../Utilities/SharedUtility\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface IAnnouncementsListStateStore {\r\n payload: IAnnouncementPayload[];\r\n isLoading: boolean;\r\n openEditDialog: boolean;\r\n openDeleteDialog: boolean;\r\n editingItemId: number;\r\n editingStartDate: string;\r\n editingStopDate: string;\r\n editingDisplayOrder: string;\r\n fConfig: any;\r\n fModel: string;\r\n redirect: boolean;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass AnnouncementsListView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAnnouncementsListStateStore\r\n> {\r\n private tableData: any;\r\n private announcementsOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 15,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n constructor(props: any) {\r\n super(props);\r\n\r\n let config: any = {\r\n toolbarButtons: [\r\n \"bold\",\r\n \"textColor\",\r\n \"italic\",\r\n \"underline\",\r\n \"insertLink\",\r\n \"undo\",\r\n \"redo\",\r\n ],\r\n attribution: false,\r\n };\r\n this.state = {\r\n payload: [],\r\n isLoading: true,\r\n openEditDialog: false,\r\n openDeleteDialog: false,\r\n editingItemId: -1,\r\n editingStartDate: \"\",\r\n editingStopDate: \"\",\r\n editingDisplayOrder: \"-1\",\r\n fConfig: config,\r\n fModel: \"\",\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n const announcementsColumns: MUIDataTableColumnDef[] = [\r\n {\r\n name: \"Id\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"Text\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => (\r\n \r\n ),\r\n },\r\n },\r\n {\r\n name: \"StartDate\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"StopDate\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"DisplayOrder\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"CreateUser\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"CreateDate\",\r\n options: {\r\n filter: true,\r\n },\r\n },\r\n {\r\n name: \"Edit\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n console.log(\"Displaying value\");\r\n console.log(value);\r\n return (\r\n <>\r\n \r\n \r\n this.editDialogOpen(value)}\r\n fontSize=\"inherit\"\r\n />\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n },\r\n {\r\n name: \"Delete\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n <>\r\n \r\n \r\n this.deleteDialogOpen(value)}\r\n fontSize=\"inherit\"\r\n />\r\n \r\n \r\n \r\n );\r\n },\r\n },\r\n },\r\n ];\r\n\r\n this.tableData = this.state.payload.map((item) => {\r\n return [\r\n item.id,\r\n item.text,\r\n SharedUtility.ToLocaleDateString$(item.startDate),\r\n SharedUtility.ToLocaleDateString$(item.stopDate),\r\n item.displayOrder,\r\n item.lastChangedBy,\r\n SharedUtility.ToLocaleDateString$(item.lastChangedOn),\r\n item.id,\r\n item.id,\r\n ];\r\n });\r\n return (\r\n \r\n \r\n
\r\n \r\n Add New Announcement\r\n \r\n {this.state.isLoading ? (\r\n \r\n ) : (\r\n \r\n
\r\n \r\n Manage Announcement\r\n \r\n }\r\n data={this.tableData}\r\n columns={announcementsColumns}\r\n options={this.announcementsOptions}\r\n />\r\n
\r\n
\r\n )}\r\n
\r\n \r\n \r\n Add/Edit Announcement (ID: {this.state.editingItemId})\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.handleDisplayOrderChange(e)}\r\n />\r\n
\r\n
\r\n
\r\n \r\n \r\n * The Start/Stop Dates are not required. Leave the\r\n field(s) empty if you don't want it.\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n this.handleStartDateChange(e)}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\",\r\n }}\r\n autoOk={true}\r\n />{\" \"}\r\n       \r\n this.handleEndDateChange(e)}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\",\r\n }}\r\n autoOk={true}\r\n />\r\n \r\n \r\n
Text:
\r\n this.setState({ fModel: e })}\r\n />\r\n
\r\n
\r\n \r\n \r\n new Date(this.state.editingStopDate))\r\n }\r\n onClick={this.handleEditDialogSave.bind(this)}\r\n >\r\n Save\r\n \r\n \r\n Cancel\r\n \r\n \r\n
\r\n \r\n \r\n {\"Are you sure you want to delete this announcement?\"}\r\n \r\n \r\n \r\n The item will be removed from announcements list.\r\n \r\n \r\n \r\n \r\n Yes\r\n \r\n \r\n No\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n }\r\n private deleteDialogClose() {\r\n this.setState({ openDeleteDialog: false, editingItemId: -1 });\r\n }\r\n private async handleDeleteAnnouncement() {\r\n await AnnouncementsService.DeleteAnnouncement$(\r\n this.props.user,\r\n this.state.editingItemId\r\n ).toPromise();\r\n await this.RefreshModel();\r\n this.deleteDialogClose();\r\n }\r\n private async handleEditDialogSave() {\r\n await AnnouncementsService.SaveAnnoucement$(\r\n this.props.user,\r\n this.state.editingItemId,\r\n this.state.editingDisplayOrder,\r\n this.state.editingStartDate,\r\n this.state.editingStopDate,\r\n this.state.fModel\r\n ).toPromise();\r\n await this.RefreshModel();\r\n this.handleEditDialogClose();\r\n }\r\n private handleEditDialogClose() {\r\n this.setState({\r\n openEditDialog: false,\r\n editingDisplayOrder: \"-1\",\r\n editingStartDate: \"\",\r\n editingStopDate: \"\",\r\n fModel: \"\",\r\n editingItemId: -1,\r\n });\r\n }\r\n private handleDisplayOrderChange(e) {\r\n if (Number(e.target.value) && !e.target.value.includes(\".\"))\r\n this.setState({ editingDisplayOrder: e.target.value });\r\n }\r\n\r\n private handleStartDateChange(date) {\r\n if (!isNaN(Date.parse(date))) {\r\n this.setState({ editingStartDate: date ? date.toISOString() : \"\" });\r\n } else {\r\n this.setState({ editingStartDate: date });\r\n }\r\n }\r\n\r\n private handleEndDateChange(date) {\r\n if (!isNaN(Date.parse(date))) {\r\n this.setState({ editingStopDate: date ? date.toISOString() : \"\" });\r\n } else {\r\n this.setState({ editingStopDate: date });\r\n }\r\n }\r\n\r\n private editDialogOpen(value: any) {\r\n console.log(this.state.payload);\r\n var item = this.state.payload.filter((x) => x.id.toString() === value.toString())[0];\r\n console.log(\"found item\");\r\n console.log(item);\r\n\r\n this.setState({\r\n editingItemId: item.id,\r\n editingStartDate: SharedUtility.ToLocaleDateString$(item.startDate),\r\n editingStopDate: SharedUtility.ToLocaleDateString$(item.stopDate),\r\n editingDisplayOrder: item.displayOrder.toString(),\r\n fModel: item.text,\r\n openEditDialog: true,\r\n });\r\n }\r\n private deleteDialogOpen(value) {\r\n this.setState({ editingItemId: value, openDeleteDialog: true });\r\n }\r\n private addNewAnnounementBtnClicked() {\r\n this.setState({\r\n editingItemId: -1,\r\n editingStartDate: null,\r\n editingStopDate: null,\r\n editingDisplayOrder: \"-1\",\r\n fModel: \"\",\r\n openEditDialog: true,\r\n });\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval = await AnnouncementsService.GetAnnouncementsDetail$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ payload: retval });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AnnouncementsListPageWithState = connect(\r\n genericMapStateToProps\r\n)(AnnouncementsListView);\r\n\r\n// STYLES CONTAINER\r\nconst AnnouncementsListPage = withStyles(styles)(\r\n AnnouncementsListPageWithState\r\n);\r\n\r\nexport default AnnouncementsListPage;\r\n","import React from \"react\";\r\nimport { genericMapStateToProps, IGenericUserProps } from \"../../DataClasses/GenericUser\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Theme,\r\n WithStyles,\r\n createStyles,\r\n withStyles,\r\n } from \"@material-ui/core/styles\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IAppInfoItem } from \"../../DataClasses/AdministrationData\";\r\nimport MUIDataTable, { MUIDataTableColumnDef, MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface IAppInfoStateStore {\r\n isLoading: boolean;\r\n redirect: boolean;\r\n data: IAppInfoItem[];\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass AppInfoView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAppInfoStateStore\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n redirect: false,\r\n data: []\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n \r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const tblColumns: MUIDataTableColumnDef[] = [\r\n {\r\n name: \"key\",\r\n label: \"Key\"\r\n },\r\n {\r\n name: \"value\",\r\n label: \"Value\"\r\n }\r\n ];\r\n const tblOption: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 8,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n return (\r\n this.state.isLoading?\r\n \r\n :\r\n
\r\n \r\n x.type === 1)}\r\n columns={tblColumns}\r\n options={tblOption}\r\n />\r\n \r\n
\r\n x.type === 3)}\r\n columns={tblColumns}\r\n options={tblOption}\r\n />\r\n
\r\n x.type === 2)}\r\n columns={tblColumns}\r\n options={tblOption}\r\n /> \r\n
\r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval = await AdministrationService.GetAppInfo$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ data: retval });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AppInfoPageWithState = connect(\r\n genericMapStateToProps\r\n )(AppInfoView);\r\n \r\n // STYLES CONTAINER\r\n const AppInfoPage = withStyles(styles)(\r\n AppInfoPageWithState\r\n );\r\n \r\n export default AppInfoPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport RootState from \"../../State/Root/RootState\";\r\nimport { Tabs, Tab, Typography, AppBar } from \"@material-ui/core\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\n\r\n\r\ninterface ImportSubmissionProps {\r\n targetUser: string | null,\r\n}\r\n\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n root: {\r\n flexGrow: 1,\r\n },\r\n});\r\n\r\nconst mapStateToProps = (state: RootState): ImportSubmissionProps => {\r\n return ({\r\n targetUser: state.DashboardReducer.announcement,\r\n });\r\n};\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\n// VIEW\r\nclass ImportSubmissionData extends React.Component> {\r\n\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Import data for SubID {this.props.match.params.subId}\r\n\r\n
\r\n );\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst ImportSubmissionViewWithState = connect(mapStateToProps)(ImportSubmissionData);\r\n\r\n// STYLES CONTAINER\r\nconst ImportSubmissionDataPage = withStyles(styles)(ImportSubmissionViewWithState);\r\n\r\n// REDUX CONTAINER\r\n\r\nexport default ImportSubmissionDataPage;\r\n\r\n\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport { Tabs, Tab, Typography, AppBar, Paper, TableHead, Table, TableRow, TableCell, TableBody } from \"@material-ui/core\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport LoadingDisplay from \"../Shared/Loading\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IWrappedMeasureCategories } from \"../../DataClasses/MeasureViewerData\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\ninterface IMeasureViewerState {\r\n payload: IWrappedMeasureCategories,\r\n submissionId: string,\r\n isLoading: boolean,\r\n productLine: string,\r\n redirect: boolean\r\n}\r\n\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n headerRow: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n fontSize: 14,\r\n },\r\n\r\n tabRoot: {\r\n // backgroundColor: theme.palette.background.paper,\r\n flexGrow: 1,\r\n },\r\n tableRoot: {\r\n width: '100%',\r\n marginTop: theme.spacing(3),\r\n overflowX: 'auto',\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n tableCellYellow: {\r\n backgroundColor: 'yellow',\r\n },\r\n row: {\r\n '&:nth-of-type(odd)': {\r\n backgroundColor: theme.palette.background.default,\r\n }\r\n }\r\n});\r\n\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\n// VIEW\r\nclass MeasureViewer extends React.Component, IMeasureViewerState> {\r\n\r\n constructor(props: IGenericUserProps & IStylesProps & RouteComponentProps<{ subId: string, component: string, productLine: string }>) {\r\n super(props)\r\n this.state = {\r\n isLoading: true,\r\n payload: null,\r\n submissionId: props.match.params.subId,\r\n productLine: props.match.params.productLine,\r\n redirect: false\r\n }\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel(this.props.match.params.subId, this.props.match.params.productLine);\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n if (this.state.isLoading) {\r\n return ;\r\n }\r\n else {\r\n const { payload } = this.state;\r\n const { classes } = this.props;\r\n let rows: any = [];\r\n if (payload != null) {\r\n payload.categories.forEach(p => {\r\n p.measures.forEach(m => {\r\n const tblKeyMeasure = m.measureCode + \".\";\r\n const linkurl = '/livemeasuredisplay/' + m.measureCode + '/' + this.state.submissionId + '/' + this.props.match.params.productLine + '/2018';\r\n rows.push(\r\n \r\n \r\n \r\n \r\n {m.hedisVol2MeasureName + \"(\" + m.measureCode + \")\"}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n m.indicators.forEach(i => {\r\n const tblKey = m.measureCode + \".\" + i.indicatorName;\r\n rows.push(\r\n \r\n \r\n \r\n {i.indicatorName}\r\n \r\n \r\n \r\n \r\n {i.benefitOffered}\r\n \r\n \r\n \r\n \r\n {i.rate}\r\n \r\n \r\n \r\n \r\n {i.auditDesignation}\r\n \r\n \r\n \r\n \r\n {i.comment}\r\n \r\n \r\n );\r\n }\r\n );\r\n }\r\n );\r\n }\r\n );\r\n }\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Measure Listing for: {this.props.match.params.subId}\r\n \r\n \r\n {\r\n !this.state.payload.submissionIsExtractable ?\r\n \r\n This submission is a Test or Non Audited submission and will not be processed by HDF, and consequently has no data.\r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n Measure / Data Element\r\n \r\n \r\n Benefit Offered\r\n \r\n \r\n Rate\r\n \r\n \r\n Audit Designation\r\n \r\n \r\n Comment\r\n \r\n \r\n \r\n \r\n {rows}\r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n }\r\n\r\n private async RefreshModel(subId: string, productLine: string) {\r\n this.setState({ isLoading: true });\r\n const retval = await SubmissionsService.GetMeasureIndicatorsForSubmission$(this.props.user!, subId, productLine).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ payload: retval })\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst MeasurerViewerViewWithState = connect(genericMapStateToProps)(MeasureViewer);\r\n\r\n// STYLES CONTAINER\r\nconst MeasureViewerPage = withStyles(styles)(MeasurerViewerViewWithState);\r\n\r\n// REDUX CONTAINER\r\n\r\nexport default MeasureViewerPage;\r\n\r\n\r\n","export interface IProductTypeTranslationString {\r\n CAHPS: string;\r\n HOS: string;\r\n SubmissionRedesign: string;\r\n}\r\n\r\nexport class ProductTranslator {\r\n public static getProductTypeName(productType: string, translationInterface: IProductTypeTranslationString): string {\r\n switch (productType) {\r\n case \"CAHPS\":\r\n case \"AdultCAHPS\":\r\n case \"ChildCAHPS\":\r\n case \"ChildCAHPSCCC\":\r\n return translationInterface.CAHPS;\r\n case \"HOS\":\r\n case \"HOSFollowup\":\r\n case \"HOSBaseline\":\r\n return translationInterface.HOS;\r\n case \"HEDISLegacy\":\r\n case \"DST\":\r\n case \"ECDS\":\r\n case \"SubmissionRedesign\":\r\n return translationInterface.SubmissionRedesign\r\n default:\r\n return \"UNKNOWN OPTION SELECTED \" + productType;\r\n }\r\n }\r\n}\r\n\r\nexport class AllowableFileTypesText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Allowable file type: .csv\";\r\n HOS: string = \"Allowable file type: .txt\";\r\n SubmissionRedesign: string = \"Allowable format: <><>.xml\";\r\n}\r\n\r\nexport class AllowableFileTypes implements IProductTypeTranslationString {\r\n CAHPS: string = \".csv\";\r\n HOS: string = \".txt\";\r\n SubmissionRedesign: string = \".xml\";\r\n}\r\n\r\n//#region Plan Lock\r\n\r\nexport class PlanLockButtonTitle implements IProductTypeTranslationString {\r\n CAHPS: string = \"Lock CAHPS Submission\";\r\n HOS: string = \"Lock HOS Submission\";\r\n SubmissionRedesign: string = \"Lock HEDIS Submission\";\r\n}\r\n\r\nexport class PlanLockButtonMainText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to lock this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to lock this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to lock this HEDIS Submission?\";\r\n}\r\n\r\nexport class PlanLockButtonTitleUndo implements IProductTypeTranslationString {\r\n CAHPS: string = \"Unlock CAHPS Submission\";\r\n HOS: string = \"Unlock HOS Submsission\";\r\n SubmissionRedesign: string = \"Unlock HEDIS Submission\";\r\n}\r\n\r\nexport class PlanLockButtonMainTextUndo implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to unlock this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to unlock this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to unlock this HEDIS Submission?\";\r\n}\r\n\r\n//#endregion\r\n\r\n//#region Audit Lock\r\n\r\n\r\nexport class AuditLockButtonTitle implements IProductTypeTranslationString {\r\n CAHPS: string = \"Audit Lock CAHPS Submission\";\r\n HOS: string = \"Audit Lock HOS Submsission\";\r\n SubmissionRedesign: string = \"Audit Lock HEDIS Submission\";\r\n}\r\n\r\nexport class AuditLockButtonMainText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to Audit lock this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to Audit lock this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to Audit lock this HEDIS Submission?\";\r\n}\r\nexport class AuditLockButtonUndoTitle implements IProductTypeTranslationString {\r\n CAHPS: string = \"Audit Unlock CAHPS Submission\";\r\n HOS: string = \"Audit Unlock HOS Submsission\";\r\n SubmissionRedesign: string = \"Audit Unlock HEDIS Submission\";\r\n}\r\n\r\nexport class AuditLockButtonUndoMainText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to Audit unlock this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to Audit unlock this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to Audit unlock this HEDIS Submission?\";\r\n}\r\n\r\nexport class AuditLockNoActionText implements IProductTypeTranslationString {\r\n CAHPS: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n HOS: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n SubmissionRedesign: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n}\r\n\r\n//#endregion\r\n\r\n//#region Mark Final\r\n\r\n\r\nexport class MarkFinalButtonTitle implements IProductTypeTranslationString {\r\n CAHPS: string = \"Mark Final CAHPS Submission\";\r\n HOS: string = \"Mark Final HOS Submsission\";\r\n SubmissionRedesign: string = \"Mark Final HEDIS Submission\";\r\n}\r\n\r\nexport class MarkFinalButtonMainText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to mark this CAHPS submission final?\";\r\n HOS: string = \"Are you sure you want to mark this HOS submission final?\";\r\n SubmissionRedesign: string = \"Are you sure want to mark this HEDIS submission final?\";\r\n}\r\n\r\nexport class MarkFinalButtonTitleUndo implements IProductTypeTranslationString {\r\n CAHPS: string = \"Undo Mark Final CAHPS Submission\";\r\n HOS: string = \"Undo Mark Final HOS Submsission\";\r\n SubmissionRedesign: string = \"Undo Mark Final HEDIS Submission\";\r\n}\r\n\r\nexport class MarkFinalButtonMainTextUndo implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to Undo Mark Final this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to Undo Mark Final this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to Undo Mark Final this HEDIS Submission?\";\r\n}\r\n\r\nexport class MarkFinalNoActionText implements IProductTypeTranslationString {\r\n CAHPS: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n HOS: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n SubmissionRedesign: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n}\r\n\r\n//#endregion\r\n\r\n//#region Attestation\r\n\r\n\r\nexport class AttestationButtonTitle implements IProductTypeTranslationString {\r\n CAHPS: string = \"Attestation CAHPS Submission\";\r\n HOS: string = \"Attestation HOS Submsission\";\r\n SubmissionRedesign: string = \"Attestation HEDIS Submission\";\r\n}\r\n\r\nexport class AttestationButtonMainText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to Attest to this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to Attest to this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to Attest to this HEDIS Submission?\";\r\n}\r\n\r\nexport class AttestationButtonTitleUndo implements IProductTypeTranslationString {\r\n CAHPS: string = \"Undo Mark Final CAHPS Submission\";\r\n HOS: string = \"Undo Mark Final HOS Submsission\";\r\n SubmissionRedesign: string = \"Undo Attestation HEDIS Submission\";\r\n}\r\n\r\nexport class AttestationButtonMainTextUndo implements IProductTypeTranslationString {\r\n CAHPS: string = \"Are you sure you want to Undo Mark Final this CAHPS Submission?\";\r\n HOS: string = \"Are you sure you want to Undo Mark Final this HOS Submission?\";\r\n SubmissionRedesign: string = \"Are you sure you want to Undo Attestation for this HEDIS Submission?\";\r\n}\r\n\r\nexport class AttestationNoActionText implements IProductTypeTranslationString {\r\n CAHPS: string = \"Designated organization users should proceed to complete the submission.\";\r\n HOS: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n SubmissionRedesign: string = \"No further actions are needed on your part. Designated organization users should proceed to complete the submission.\";\r\n}\r\n\r\n//#endregion\r\n//#region Clear Measures\r\n\r\nexport class ClearMeasureButtonTitle implements IProductTypeTranslationString {\r\n SubmissionRedesign: string = \"Clear HEDIS Submission\";\r\n CAHPS: string = \"\";\r\n HOS: string = \"\";\r\n}\r\n\r\nexport class ClearMeasureButtonMainText implements IProductTypeTranslationString {\r\n SubmissionRedesign: string = \"Are you sure you want to clear this submission measure data?\";\r\n CAHPS: string = \"\";\r\n HOS: string = \"\";\r\n}\r\n\r\n\r\n//#endregion","import MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport {\r\n ICurrentSubAuths,\r\n ISubmissionHomePayload\r\n} from \"../../../../DataClasses/SubmissionData\";\r\nimport {\r\n Card,\r\n CardContent,\r\n Typography,\r\n Grid,\r\n Divider,\r\n Table,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n Fade\r\n} from \"@material-ui/core\";\r\nimport Skeleton from \"@material-ui/lab/Skeleton\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst auditorListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n print: false,\r\n viewColumns: false,\r\n downloadOptions: {\r\n filename: 'Auditors.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n selectableRows: \"none\",\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n};\r\n\r\nexport function renderAuditorsTable(data, auditorListingColumns) {\r\n return (\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport function renderSubmissionSummary(\r\n auths: ICurrentSubAuths,\r\n payload: ISubmissionHomePayload,\r\n classes\r\n) {\r\n return (\r\n \r\n \r\n \r\n Submission Details\r\n \r\n \r\n \r\n \r\n \r\n Submission Type\r\n {payload ? payload.component.replace(\"DST\", \"HEDIS\") : null}\r\n \r\n \r\n Submission Intention\r\n {payload ? payload.submissionIntention : null}\r\n \r\n \r\n Special Area\r\n {payload ? payload.specialArea : null}\r\n \r\n \r\n Special Project\r\n {payload ? payload.specialProject : null}\r\n \r\n \r\n Public Reporting\r\n {payload && payload.isPublicReported !== null? (payload.isPublicReported === true? 'Yes' : 'No') : 'Not Set'}\r\n \r\n {payload.productLine != \"Exchange\" ?\r\n \r\n Accreditation Status\r\n {payload ? (payload.isAccredited ? 'Accredited' : 'Not Accredited') : 'Not Accredited'}\r\n : null\r\n }\r\n \r\n CMS Contract\r\n {payload ? payload.cmsContract : null}\r\n \r\n \r\n Reporting Unit Id\r\n {payload ? payload.reportingUnitId : null}\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport function renderLoadingSkeleton(currentSubId: string, classes) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Submission {currentSubId}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\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 function renderTopDisplayGrid(\r\n payload: ISubmissionHomePayload,\r\n currentSubId: string,\r\n classes\r\n) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Submission {currentSubId}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {payload.orgName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {payload.orgId}\r\n \r\n \r\n
\r\n \r\n Org ID\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {payload.productLine}\r\n \r\n
\r\n \r\n Product Line\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n {payload.reportingProduct}\r\n \r\n
\r\n \r\n Reporting Product\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { IconButton, Tooltip, Typography } from \"@material-ui/core\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\n\r\nconst allDownloadsOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n downloadOptions: {\r\n filename: 'AllDownloads.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n selectableRows: \"none\",\r\n viewColumns: false,\r\n rowsPerPage: 15,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n};\r\n\r\nexport function renderAllDownloadsTable(data, downloadFunc, classes) {\r\n\r\n const allDownloadsColumns =\r\n [\r\n {\r\n name: \"Name\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Date\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"User\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n var tipTxt = \"Download File\";\r\n return (\r\n
\r\n \r\n downloadFunc(value)}>\r\n \r\n \r\n \r\n
\r\n );\r\n },\r\n download: false\r\n }\r\n },\r\n ];\r\n\r\n return (All Downloads}\r\n data={data}\r\n columns={allDownloadsColumns}\r\n options={allDownloadsOptions}\r\n />);\r\n}\r\n\r\n","import * as React from 'react';\r\nimport { connect } from 'react-redux';\r\nimport { AjaxError } from 'rxjs/ajax';\r\nimport LoadingDataTable from \"../../../Shared/LoadingDataTable\";\r\nimport SubmissionsService from '../../../Services/SubmissionsService';\r\nimport { ILiveCell } from \"../../../../DataClasses/HdfData\"\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../../../DataClasses/GenericUser\";\r\nimport { Theme, withStyles, WithStyles, createStyles, createMuiTheme, MuiThemeProvider } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../../Configuration/SharedStyling\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Box, Tab, Typography } from '@material-ui/core';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport equal from 'fast-deep-equal'\r\nimport { TabContext, TabList, TabPanel } from '@material-ui/lab';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n liveMeasureTable: {\r\n borderSpacing: 0,\r\n margin: theme.spacing(2),\r\n borderBottom: \"none\",\r\n border: '1px solid #4f758b',\r\n \"& tbody td\": {\r\n padding: theme.spacing(2),\r\n border: '1px solid #4f758b',\r\n margin: '0px'\r\n }\r\n },\r\n rotate_text:\r\n {\r\n 'moz-transform': 'rotate(-90deg)',\r\n 'moz-transform - origin': 'top left',\r\n 'webkit-transform': 'rotate(-90deg)',\r\n 'webkit-transform-origin': 'top left',\r\n 'o-transform': 'rotate(-90deg)',\r\n 'o-transform-origin': 'top left',\r\n position: 'relative',\r\n top: '20px',\r\n },\r\n tabs: { \r\n \"& .Mui-selected\": {\r\n color: 'SteelBlue',\r\n fontWeight: 'bold'\r\n }\r\n }\r\n});\r\n\r\ninterface ILocalProps {\r\n measureCode: string,\r\n measureName: string,\r\n submissionId: string,\r\n productLine: string,\r\n measurementYear: number\r\n}\r\n\r\ninterface ILocalState {\r\n measureData: Array>;\r\n isLoading: boolean;\r\n redirect: boolean;\r\n isRaceEthnicity: boolean;\r\n curTabValue: string;\r\n\r\n measureBaseData: Array>;\r\n measureRaceData: Array>;\r\n measureEthnicityData: Array>;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nconst allDownloadsOptions: MUIDataTableOptions = {\r\n filter: false,\r\n sort: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n download: false,\r\n selectableRows: \"multiple\",\r\n viewColumns: true,\r\n rowsPerPage: 100,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n caseSensitive : false,\r\n customSearch: (searchQuery, currentRow, columns) => {\r\n let isFound = false;\r\n currentRow.forEach(col => {\r\n if (col.text !== null && col.text.toString().indexOf(searchQuery) >= 0) {\r\n isFound = true;\r\n }\r\n });\r\n return isFound;\r\n },\r\n setTableProps: () => {\r\n return {\r\n padding: \"none\",\r\n // material ui v4 only\r\n size: \"small\" ,\r\n };\r\n }\r\n};\r\n\r\nclass LiveMeasureViewer extends React.Component {\r\n\r\n constructor(props: IGenericUserProps & IStylesProps & ILocalProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true,\r\n measureData: [],\r\n redirect: false,\r\n isRaceEthnicity: false,\r\n curTabValue: \"1\",\r\n\r\n measureBaseData: [],\r\n measureRaceData: [],\r\n measureEthnicityData:[]\r\n }\r\n }\r\n\r\n public async componentDidMount() {\r\n await this.RefreshModel();\r\n }\r\n\r\n public async componentDidUpdate(prevProps) {\r\n if (!equal(this.props.measureCode, prevProps.measureCode))\r\n {\r\n await this.RefreshModel();\r\n }\r\n } \r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n getMuiTheme = () => createMuiTheme({\r\n overrides: {\r\n MuiTableCell: {\r\n root: {\r\n fontSize: '0.8125rem',\r\n fontFamily: 'sans-serif',\r\n border: '1px solid #E0E0E0',\r\n },\r\n head: {\r\n color: \"#4F758B\",\r\n fontWeight: 'bold'\r\n },\r\n paddingNone: {\r\n paddingLeft: '2px',\r\n paddingRight: '2px'\r\n }\r\n }\r\n }\r\n })\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n if (this.state.isLoading) {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n else {\r\n const { classes } = this.props;\r\n var allDataHeaders = this.state.measureData[0].map(t => t.text);\r\n var allDataTmp = this.state.measureData.slice(1);\r\n var allDownloadsColumns = this.state.measureData[0].map(x => {\r\n var retval =\r\n {\r\n name: x.text,\r\n label: x.shortDisplayText.replace(/([a-z])([A-Z])/g, '$1 $2').trim(),\r\n draggableColumns:\r\n {\r\n enabled: true\r\n },\r\n resizableColumns: true,\r\n fixedHeader: true,\r\n options: {\r\n selectedRows: {\r\n text: \"row(s) selected\",\r\n delete: \"Delete\",\r\n deleteAria: \"Delete Selected Rows\"\r\n },\r\n\r\n\r\n setCellProps: (cellValue: string, rowIndex: number, columnIndex: number) => {\r\n if (this.state.measureData.slice(1)[rowIndex][columnIndex].foregroundColor === '#4F758B') {\r\n return {\r\n style: {\r\n backgroundColor: '#4F758B',\r\n fontWeight: this.state.measureData.slice(1)[rowIndex][columnIndex].isBold ? 'bold' : 'normal'\r\n }\r\n };\r\n }\r\n else {\r\n return {\r\n style: {\r\n backgroundColor: 'white',\r\n fontWeight: this.state.measureData.slice(1)[rowIndex][columnIndex].isBold ? 'bold' : 'normal'\r\n\r\n }\r\n };\r\n }\r\n\r\n },\r\n display: (x.isHiddenByDefault ? 'false' : 'true') as ('true' | 'false' | 'excluded'),\r\n //hint: x.shortDisplayText !== x.mouseOverDisplayText ? x.mouseOverDisplayText : \"\",\r\n filter: x.isFilterable,\r\n filterOptions: {\r\n names: [...new Set(allDataTmp.map(z => z[allDataHeaders.indexOf(x.text)]).filter(c => c.isFilterable === true).map(a => a.text))],\r\n logic(input, filterVal) {\r\n return input.text !== filterVal[0];\r\n }\r\n },\r\n setCellHeaderProps: () => ({\r\n className: classes.centeredHeader,\r\n }),\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n //#eeaf30 is the highlight yellow\r\n
{value.text}
\r\n )\r\n },\r\n width: \"50px\",\r\n download: false\r\n }\r\n }\r\n return retval;\r\n }\r\n\r\n );\r\n var data = this.state.measureData.slice(1)\r\n const dataTbl = (
\r\n \r\n {this.props.measureName} ({this.props.measureCode})}\r\n data={this.state.measureData.slice(1)}\r\n columns={allDownloadsColumns}\r\n options={allDownloadsOptions}\r\n />\r\n \r\n
);\r\n return (\r\n this.state.isRaceEthnicity?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {dataTbl}\r\n \r\n \r\n {dataTbl}\r\n \r\n \r\n {dataTbl}\r\n \r\n \r\n :\r\n
\r\n \r\n {this.props.measureName} ({this.props.measureCode})}\r\n data={data}\r\n columns={allDownloadsColumns}\r\n options={allDownloadsOptions}\r\n />\r\n \r\n
\r\n\r\n )\r\n }\r\n }\r\n\r\n private handleTabChange = (event, index: string) => {\r\n let data = this.state.measureData;\r\n switch(index){\r\n case \"1\": \r\n data = this.state.measureBaseData;\r\n break;\r\n case \"2\":\r\n data = this.state.measureRaceData;\r\n break;\r\n case \"3\":\r\n data = this.state.measureEthnicityData;\r\n break;\r\n default:\r\n break;\r\n }\r\n this.setState({ curTabValue: index, measureData: data });\r\n };\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n let retval = await SubmissionsService.GetLiveMeasure(this.props.user,\r\n this.props.submissionId,\r\n this.props.productLine,\r\n this.props.measureCode,\r\n this.props.measurementYear).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n let isRaceEthnicity = (retval.measureWhole === null);\r\n let measureData: Array> = [];\r\n let measureBaseData: Array> = [];\r\n let measureRaceData: Array> = [];\r\n let measureEthnicityData: Array> = [];\r\n if(isRaceEthnicity){\r\n measureBaseData = retval.measureBase;\r\n measureRaceData = retval.measureRace;\r\n measureEthnicityData = retval.measureEthnicity;\r\n measureData = retval.measureBase;\r\n }\r\n else{\r\n measureData = retval.measureWhole;\r\n }\r\n this.setState({\r\n measureData: measureData,\r\n isLoading: false,\r\n isRaceEthnicity,\r\n measureBaseData,\r\n measureRaceData,\r\n measureEthnicityData,\r\n curTabValue: \"1\"\r\n });\r\n }\r\n }\r\n}\r\n\r\nconst LiveMeasureDisplayPageWithState = connect(genericMapStateToProps)(LiveMeasureViewer);\r\n\r\nconst LiveMeasureDisplayPage = withStyles(styles)(LiveMeasureDisplayPageWithState);\r\n\r\n\r\nexport default LiveMeasureDisplayPage;\r\n\r\n","import * as React from \"react\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport LoadingDataTable from \"../../../Shared/LoadingDataTable\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../../../DataClasses/GenericUser\";\r\nimport { connect } from \"react-redux\";\r\nimport SubmissionsService from \"../../../Services/SubmissionsService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IWrappedMeasureCategories, IMeasure, IIndicatorRateData, IMeasureCodesForFilter, IMeasureViewerPayload } from \"../../../../DataClasses/MeasureViewerData\";\r\nimport { Paper, Typography, Button, Fab, Select, MenuItem, Fade, CircularProgress, Grid, Link, FormControl, Tooltip } from \"@material-ui/core\";\r\nimport idssStyle from \"../../../../Configuration/SharedStyling\";\r\nimport LiveMeasureDisplayPage from \"./SubmissionHome.LiveMeasureDisplay\";\r\nimport { ArrowBack as ArrowBackIcon} from '@material-ui/icons';\r\nimport CloudDownloadOutlinedIcon from '@material-ui/icons/CloudDownloadOutlined';\r\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport { EXCHANGE, MEDICAID, MEDICARE, LTSS } from \"../../../Shared/Constants\";\r\nimport { IArtRow } from \"../../../../DataClasses/ArtDefault\";\r\nimport { SeedTime } from \"../../../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport IconButton from \"@material-ui/core/IconButton/IconButton\";\r\nimport saveAs from 'file-saver';\r\nimport SharedUtility from \"../../../../Utilities/SharedUtility\";\r\nimport UserMessage from \"../../../Shared/Message\";\r\nimport { MessageType } from \"../../../../DataClasses/SharedData\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n artTabRoot: {\r\n flexGrow: 1,\r\n padding: theme.spacing(1, 2)\r\n },\r\n measureTable: {\r\n border: '1px solid #eeeeee',\r\n borderTop: 'none',\r\n boxShadow: '0px 1px 1px 1px #eeeeee',\r\n borderCollapse: 'collapse',\r\n borderSpacing: '0',\r\n '& tbody tr': {\r\n borderBottom: '1px solid #eeeeee',\r\n },\r\n '& tbody td': {\r\n verticalAlign: 'middle'\r\n },\r\n '& thead tr': {\r\n borderBottom: '1px solid #eeeeee',\r\n },\r\n '& thead th': {\r\n color: '#4f758b',\r\n textAlign: 'left',\r\n padding: theme.spacing(2),\r\n fontSize: '1.1em'\r\n },\r\n '& thead th:nth-child(1)': {\r\n width: '40%'\r\n },\r\n '& thead th:nth-child(2)': {\r\n width: '20%',\r\n textAlign: 'center'\r\n },\r\n '& thead th:nth-child(3)': {\r\n paddingLeft: theme.spacing(1)\r\n },\r\n '& thead th:nth-child(4)': {\r\n textAlign: 'center'\r\n },\r\n\r\n },\r\n measureLink: {\r\n color: '#0099cc',\r\n textTransform: 'inherit',\r\n textAlign: 'left',\r\n '&:hover': {\r\n color: '#0099cc'\r\n }\r\n },\r\n rateCell: {\r\n backgroundColor: '#eeaf30',\r\n fontWeight: 'bold',\r\n paddingLeft: theme.spacing(1),\r\n },\r\n rateCellGray: {\r\n backgroundColor: 'gray',\r\n fontWeight: 'bold',\r\n paddingLeft: theme.spacing(1),\r\n },\r\n benefitCell: {\r\n textAlign: 'center'\r\n },\r\n auditDesCell: {\r\n textAlign: 'center'\r\n },\r\n categoryRow: {\r\n backgroundColor: '#eeeeee',\r\n color: '#4f758b',\r\n fontSize: '1.1em',\r\n fontWeight: 'bold',\r\n '& td': {\r\n padding: theme.spacing(1, 2)\r\n }\r\n },\r\n measureCode: {\r\n color: 'black',\r\n textTransform: 'uppercase'\r\n },\r\n measureRowTitleCell: {\r\n paddingLeft: theme.spacing(1)\r\n },\r\n indicatorRowTitleCell: {\r\n padding: theme.spacing(1, 1, 1, 4),\r\n },\r\n tableActionsContainer: {\r\n float: \"right\",\r\n textAlign: \"right\",\r\n padding: theme.spacing(1, 2)\r\n },\r\n iconMargin: {\r\n margin: theme.spacing(1)\r\n\r\n }\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalProps {\r\n subId: string,\r\n productLine: string,\r\n component: string,\r\n specialProject: string,\r\n isReadOnly: boolean,\r\n canViewResultsReportsHedis: boolean,\r\n isAuditRequired: boolean\r\n}\r\n\r\ninterface ILocalState {\r\n isLoading: boolean,\r\n origData: IWrappedMeasureCategories,\r\n data: IWrappedMeasureCategories,\r\n hasChanges: boolean,\r\n isSaving: boolean,\r\n measurementYear: number,\r\n selectedDisplayMeasure: IMeasure,\r\n redirect: boolean,\r\n origMeasures: IMeasure[],\r\n measures: IMeasure[],\r\n previousMeasure: string,\r\n nextMeasure: string,\r\n isDownloadingMeasureData: boolean,\r\n selectedFilterVal: string,\r\n measureCodesForFilter: IMeasureCodesForFilter,\r\n selectedAuditFilterVal: string\r\n}\r\n\r\nclass AuditReviewToolView extends React.Component {\r\n\r\n private commentOptions = [\r\n { value: 'BR', label: 'Biased Rate' },\r\n { value: 'NB', label: 'No Benefit' },\r\n { value: 'NQ', label: 'Not Required' },\r\n { value: 'NR', label: 'Not Reported' },\r\n { value: 'R', label: 'Reported' }\r\n ];\r\n\r\n private auditDesignationOptions = [\r\n { value: 'ALL', label: 'ALL' },\r\n { value: 'BR', label: 'Biased Rate' },\r\n { value: 'NQ', label: 'Not Required' },\r\n { value: 'NR', label: 'Not Reported' },\r\n { value: 'R', label: 'Reported' },\r\n ];\r\n\r\n private readOnlyAuditDesignations: string[] = [\"R\"];\r\n private ecdsCategory = 'Electronic Clinical Data Systems';\r\n\r\n constructor(props: IGenericUserProps & IStylesProps & ILocalProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isLoading: true,\r\n origData: null,\r\n data: null,\r\n hasChanges: false,\r\n isSaving: false,\r\n measurementYear: parseInt(process.env.REACT_APP_GENERAL_MEASUREYEAR),\r\n selectedDisplayMeasure: null,\r\n redirect: false,\r\n origMeasures: [],\r\n measures: [],\r\n previousMeasure: '',\r\n nextMeasure: '',\r\n isDownloadingMeasureData: false,\r\n selectedFilterVal: 'ALL',\r\n measureCodesForFilter: null,\r\n selectedAuditFilterVal: 'ALL'\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n await this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n private isFilteringAll() {\r\n return this.state.selectedFilterVal.toUpperCase() === 'ALL' && this.state.selectedAuditFilterVal.toUpperCase() === 'ALL';\r\n }\r\n\r\n private getUserInfoMessage = () => {\r\n return (\r\n \r\n Must set filter to ALL to save Audit Designation / Comment changes\r\n \r\n );\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n if (this.state.isLoading) {\r\n return ;\r\n }\r\n else if (this.state.selectedDisplayMeasure) {\r\n return (\r\n \r\n \r\n \r\n {this.state.measures && this.state.selectedDisplayMeasure ?\r\n <>\r\n \r\n \r\n this.setSelectedMeasure(this.state.previousMeasure)}>\r\n {this.state.previousMeasure}\r\n \r\n \r\n \r\n \r\n this.handleMeasureChange(ev)}>\r\n {this.state.measures.map((measure, index) => {\r\n return (\r\n \r\n {measure.hedisVol2MeasureName} ({measure.measureCode})\r\n \r\n );\r\n })};\r\n \r\n \r\n \r\n \r\n \r\n this.downloadMeasureData()}>\r\n \r\n \r\n \r\n \r\n \r\n this.setSelectedMeasure(this.state.nextMeasure)}>\r\n {this.state.nextMeasure}\r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n );\r\n }\r\n else {\r\n const { data } = this.state;\r\n if (data != null) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n { this.props.productLine !== \"Exchange\" ?\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 {data.categories.map((c, cIndex) => {\r\n let isEcdsCategory = (c.categoryName === this.ecdsCategory);\r\n return (\r\n \r\n {this.renderCategoryRow(c.categoryName)}\r\n \r\n {c.measures.map((m, mIndex) => {\r\n return (\r\n \r\n {this.renderMeasureRow(m, isEcdsCategory, cIndex, mIndex)}\r\n {m.indicators.length > 1 ? m.indicators.map((i, iIndex) => {\r\n return this.renderIndicatorRow(m.measureCode, isEcdsCategory, i, cIndex, mIndex, iIndex);\r\n }) : null}\r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n })}\r\n \r\n {!this.props.isReadOnly && this.isFilteringAll() && \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n
\r\n \r\n Filter:\r\n   \r\n this.handleFilterChange(ev)}\r\n >\r\n {this.getFilterOptions().map(x => {\r\n return (\r\n \r\n {x}\r\n \r\n );\r\n })}\r\n \r\n \r\n Audit Designation:\r\n   \r\n this.handleAuditDesignationFilterChange(ev)}\r\n >\r\n {this.getAuditDesignationFilterOptions().map(x => {\r\n return (\r\n \r\n {x.label}\r\n \r\n );\r\n })}\r\n \r\n

* Indicates HPR measure\r\n
\r\n \r\n this.downloadFilteredArt()} disabled={this.state.isDownloadingMeasureData}>\r\n \r\n \r\n \r\n \r\n {\r\n !this.props.isReadOnly && ((this.isFilteringAll() &&\r\n
\r\n this.SaveModel()} disabled={!this.state.hasChanges || this.state.isSaving}>\r\n Save\r\n \r\n {this.state.isSaving ?\r\n \r\n \r\n : null\r\n }\r\n
)\r\n ||\r\n \r\n )\r\n }\r\n
Measure/Data ElementBenefit OfferedRateStatusAudit Designation / Comment
\r\n this.SaveModel()} disabled={!this.state.hasChanges || this.state.isSaving}>\r\n Save\r\n \r\n {this.state.isSaving ?\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 private handleFilterChange (event: React.ChangeEvent<{ name?: string, value: any }>){\r\n let filterVal = event.target.value;\r\n\r\n this.getFilteredData(filterVal, this.state.selectedAuditFilterVal);\r\n }\r\n\r\n // PBI 177031 - Modified existing filter code to work with the new audit designation drop down.\r\n private getFilteredData(filterVal: string, auditFilterVal: string){\r\n let curData: IWrappedMeasureCategories = { ...this.state.origData }; // cover case: ALL\r\n let curMeasures: IMeasure[] = [];\r\n let cats: IMeasureViewerPayload[] = [];\r\n let auditcats: IMeasureViewerPayload[] = [];\r\n let measureCodes: string[] = [];\r\n switch(filterVal.toUpperCase()){\r\n case \"HPR\":\r\n measureCodes = this.state.measureCodesForFilter.hpr;\r\n break;\r\n case \"PBP\":\r\n measureCodes = this.state.measureCodesForFilter.cmspbp;\r\n break;\r\n case \"CMS\":\r\n measureCodes = this.state.measureCodesForFilter.cmsma;\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n // filter by measures if selected\r\n if (measureCodes.length > 0) {\r\n this.state.origData.categories.forEach((cat, i) => {\r\n let curCat = { ...cat };\r\n let measures = cat.measures.filter(x => measureCodes.includes(x.measureCode.toUpperCase()));\r\n if (measures.length > 0) {\r\n curCat.measures = measures;\r\n cats.push(curCat);\r\n }\r\n });\r\n if (cats.length > 0) {\r\n curData.categories = cats;\r\n }\r\n }\r\n\r\n // filter by audit designation if selected\r\n if (auditFilterVal != 'ALL') {\r\n curData.categories.forEach((c, i) => {\r\n let curCat = { ...c };\r\n let measures = c.measures;\r\n\r\n // proper fix for filtering measures with no indicators.\r\n measures = c.measures.filter(item => (item.indicators.find(child => child.auditDesignation.toString() === auditFilterVal.toString())) || (item.indicators.length <= 0 && item.auditDesignation.toString() === auditFilterVal.toString()))\r\n\r\n if (measures.length > 0) {\r\n curCat.measures = measures;\r\n auditcats.push(curCat);\r\n }\r\n });\r\n if (auditcats.length > 0) {\r\n curData.categories = auditcats;\r\n }\r\n else\r\n curData.categories = []; // set to empty if no match for filters.\r\n }\r\n\r\n curData.categories.forEach((c, i) => {\r\n c.measures.forEach((m, j) => {\r\n var measure = {} as IMeasure;\r\n measure.measureCode = m.measureCode;\r\n measure.hedisVol2MeasureName = m.hedisVol2MeasureName;\r\n curMeasures.push(measure);\r\n });\r\n });\r\n\r\n this.setState({\r\n selectedFilterVal: filterVal,\r\n selectedAuditFilterVal: auditFilterVal,\r\n data: curData,\r\n measures: curMeasures\r\n });\r\n }\r\n\r\n private getFilterOptions() {\r\n let items: string[] = [ \"ALL\", \"HPR\"];\r\n if(this.props.productLine.toUpperCase() === \"MEDICARE\") {\r\n items = items.concat([\"CMS\", \"PBP\"]);\r\n }\r\n return items;\r\n }\r\n\r\n private getAuditDesignationFilterOptions() {\r\n return this.auditDesignationOptions;\r\n }\r\n\r\n private handleAuditDesignationFilterChange(event: React.ChangeEvent<{ name?: string, value: any }>) {\r\n let auditFilterVal = event.target.value;\r\n\r\n this.getFilteredData(this.state.selectedFilterVal, auditFilterVal);\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval: IWrappedMeasureCategories = await SubmissionsService.GetAuditDesignations$(this.props.user, this.props.subId, this.props.component).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n //loop thru categories/measures to get all the measures\r\n var measures: IMeasure[] = [];\r\n retval.categories.forEach((c, i) => {\r\n c.measures.forEach((m, j) => {\r\n var measure = {} as IMeasure;\r\n measure.measureCode = m.measureCode;\r\n measure.hedisVol2MeasureName = m.hedisVol2MeasureName;\r\n measures.push(measure);\r\n });\r\n });\r\n const measCodesForFilter: IMeasureCodesForFilter = await SubmissionsService.GetMeasureCodesForFilter$(this.props.user, this.props.productLine).toPromise();\r\n this.setState(\r\n {\r\n origData: retval,\r\n data: retval,\r\n origMeasures: measures,\r\n measures: measures,\r\n measureCodesForFilter: measCodesForFilter\r\n }\r\n )\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private renderCategoryRow = (categoryName: string) => {\r\n const { classes } = this.props;\r\n return (\r\n \r\n {categoryName}\r\n \r\n );\r\n }\r\n\r\n private renderMeasureRow = (measure: IMeasure, isEcdsCategory: boolean, cIndex: number, mIndex: number) => {\r\n const { classes } = this.props;\r\n const benefitOffered = measure.benefitOffered && measure.benefitOffered.length > 0 ? (measure.benefitOffered === \"Y\" ? \"Yes\" : \"No\") : null;\r\n\r\n let rate: string = null;\r\n let displayrate: string = null;\r\n let auditDesignation: string = measure.auditDesignation;\r\n let comment: string = measure.comment;\r\n let status: string = measure.status;\r\n //single rate measure\r\n if (measure.indicators.length === 1) {\r\n rate = measure.indicators[0].rate;\r\n displayrate = measure.indicators[0].displayRate;\r\n auditDesignation = measure.indicators[0].auditDesignation;\r\n comment = measure.indicators[0].comment;\r\n status = measure.indicators[0].status;\r\n }\r\n let artRow: IArtRow = {\r\n measureCode: measure.measureCode, benefitOffered: benefitOffered, isEcdsMeasure: isEcdsCategory,\r\n rate: rate, displayrate: displayrate, denominator: null, auditDesignation: auditDesignation, comment: comment\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {benefitOffered}\r\n \r\n \r\n {measure.indicators.length <= 1 ?\r\n measure.isMeasureLevelAudit ?\r\n \r\n \r\n { displayrate }\r\n \r\n \r\n :\r\n \r\n \r\n { displayrate }\r\n \r\n \r\n : \r\n }\r\n \r\n \r\n {status}\r\n \r\n \r\n \r\n {!this.props.isReadOnly ?\r\n measure.indicators.length <= 1 ?\r\n this.showComment(artRow, cIndex, mIndex, null, true)\r\n : null\r\n : \r\n {auditDesignation}-{comment}\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n private renderIndicatorRow = (measureCode: string, isEcdsCategory: boolean, indicator: IIndicatorRateData, cIndex: number, mIndex: number, iIndex: number) => {\r\n const { classes } = this.props;\r\n const benefitOffered = indicator.benefitOffered && indicator.benefitOffered.length > 0 ? (indicator.benefitOffered === \"Y\" ? \"Yes\" : \"No\") : null;\r\n const rate: string = indicator.rate;\r\n const displayrate: string = indicator.displayRate;\r\n const denominator: string = indicator.denominator;\r\n const artRow: IArtRow = {\r\n measureCode: measureCode, benefitOffered: benefitOffered, isEcdsMeasure: isEcdsCategory,\r\n rate: rate, displayrate: displayrate, denominator: denominator, auditDesignation: indicator.auditDesignation, comment: indicator.comment\r\n };\r\n return (\r\n \r\n \r\n \r\n {indicator.indicatorName}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n { displayrate }\r\n \r\n \r\n \r\n \r\n {indicator.status}\r\n \r\n \r\n \r\n {!this.props.isReadOnly ?\r\n this.showComment(artRow, cIndex, mIndex, iIndex, false)\r\n :\r\n \r\n {indicator.auditDesignation}-{indicator.comment}\r\n \r\n }\r\n \r\n \r\n );\r\n }\r\n\r\n private handleCommentChange = async (event: React.ChangeEvent<{ name?: string, value: any }>,\r\n cIndex: number,\r\n mIndex: number,\r\n iIndex: number,\r\n isMeasure: boolean): Promise => {\r\n\r\n let categories = this.state.data.categories.slice();\r\n let element = null;\r\n if (!isMeasure) {\r\n element = categories[cIndex].measures[mIndex].indicators[iIndex];\r\n }\r\n else {\r\n element = categories[cIndex].measures[mIndex];\r\n }\r\n var selectedAuditDesignation = event.target.value;\r\n var selectedComment = this.commentOptions.filter(c => c.value === selectedAuditDesignation)[0].label;\r\n element.auditDesignation = selectedAuditDesignation;\r\n element.status = selectedAuditDesignation; // This is slightly wrong, but is close enough. The UI isn't really setting status, it's just displaying it. The Status will be recalculated by the nuget package on reload.\r\n element.comment = selectedComment;\r\n\r\n //update the single rate indicator audit designation and comment\r\n if (categories[cIndex].measures[mIndex].indicators.length === 1) {\r\n var indicator = categories[cIndex].measures[mIndex].indicators[0];\r\n indicator.auditDesignation = selectedAuditDesignation;\r\n indicator.comment = selectedComment;\r\n indicator.status = selectedAuditDesignation; // This is slightly wrong, but is close enough. The UI isn't really setting status, it's just displaying it. The Status will be recalculated by the nuget package on reload.\r\n }\r\n\r\n this.setState({\r\n data: {\r\n ...this.state.data,\r\n categories: categories\r\n },\r\n hasChanges: true\r\n });\r\n }\r\n\r\n private GetCommentsListFor(artRow: IArtRow): any[] {\r\n var productLine = this.props.productLine.toUpperCase();\r\n var isLTSS = (productLine === MEDICAID && this.props.specialProject.toUpperCase() === LTSS);\r\n var options = (isLTSS ? this.commentOptions :\r\n this.commentOptions.filter(c => !this.readOnlyAuditDesignations.includes(c.value)));\r\n var benefitOffered = artRow.benefitOffered;\r\n var isEcdsMeasure = artRow.isEcdsMeasure;\r\n var rate = artRow.rate;\r\n var denominator = artRow.denominator;\r\n var isNB = (benefitOffered === \"No\");\r\n\r\n if (isLTSS) {\r\n var auditDesignations = [\"R\"];\r\n //show R for reported & denominator = 0\r\n if (rate || (!rate && denominator === \"0\")) {\r\n options = options.filter(c => auditDesignations.includes(c.value));\r\n }\r\n else if (!rate && !denominator) {\r\n //show NQ, NR & BR for not reported measures\r\n options = options.filter(c => c.value !== \"R\");\r\n }\r\n }\r\n //remove not required for Exchange and ECDS measures\r\n else if (productLine === EXCHANGE\r\n || (productLine !== MEDICARE && isEcdsMeasure)) {\r\n options = options.filter(c => c.value !== \"NQ\");\r\n }\r\n\r\n //remove no benefit if the benefit is not offered\r\n if (!isNB) {\r\n options = options.filter(c => c.value !== \"NB\");\r\n }\r\n return options;\r\n }\r\n\r\n private showComment(artRow: IArtRow, cIndex: number, mIndex: number, iIndex: number, isMeasure: boolean) {\r\n var productLine = this.props.productLine.toUpperCase();\r\n var isLTSS = (productLine === MEDICAID && this.props.specialProject.toUpperCase() === LTSS);\r\n var readOnlyAuditDesignations = this.readOnlyAuditDesignations;\r\n if (isLTSS) {\r\n readOnlyAuditDesignations = this.readOnlyAuditDesignations.filter(ad => ad !== \"R\");\r\n }\r\n return (!readOnlyAuditDesignations.includes(artRow.auditDesignation) ?\r\n this.handleCommentChange(ev, cIndex, mIndex, iIndex, isMeasure)}\r\n >\r\n \r\n \r\n {this.GetCommentsListFor(artRow).map(opt => {\r\n return (\r\n \r\n {opt.label}\r\n \r\n );\r\n })}\r\n :\r\n \r\n {artRow.auditDesignation}-{artRow.comment}\r\n \r\n );\r\n }\r\n\r\n private SaveModel = async () => {\r\n if (!this.state.hasChanges)\r\n return;\r\n\r\n this.setState({ isSaving: true });\r\n const retval = await SubmissionsService.UpdateAuditDesignations$(this.props.user,\r\n this.props.subId,\r\n this.props.component,\r\n this.state.data).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n this.setState({\r\n isSaving: false\r\n });\r\n }\r\n else {\r\n this.setState({\r\n isSaving: false,\r\n hasChanges: false\r\n });\r\n }\r\n }\r\n\r\n private SelectDisplayMeasure = (measure: IMeasure) => {\r\n this.setState({\r\n selectedDisplayMeasure: measure\r\n });\r\n this.getPreviousMeasure(measure.measureCode);\r\n this.getNextMeasure(measure.measureCode);\r\n }\r\n\r\n private ClearDisplayMeasure = () => {\r\n this.setState({\r\n selectedDisplayMeasure: null\r\n });\r\n }\r\n\r\n private getPreviousMeasure = (measureCode: string) => {\r\n if (measureCode) {\r\n var selectedMeasure = measureCode;\r\n var measures = this.state.measures;\r\n var index = this.getSelectedMeasureIndex(measureCode);\r\n if (index === 0) { //return last measure\r\n selectedMeasure = measures[measures.length - 1].measureCode;\r\n }\r\n else {\r\n selectedMeasure = measures[index - 1].measureCode;\r\n }\r\n this.setState({ previousMeasure: selectedMeasure });\r\n return selectedMeasure;\r\n }\r\n }\r\n\r\n private getNextMeasure = (measureCode: string) => {\r\n if (measureCode) {\r\n var selectedMeasure = measureCode;\r\n var measures = this.state.measures;\r\n var index = this.getSelectedMeasureIndex(measureCode);\r\n if (index === measures.length - 1) { //return first measure\r\n selectedMeasure = measures[0].measureCode;\r\n }\r\n else {\r\n selectedMeasure = measures[index + 1].measureCode;\r\n }\r\n this.setState({ nextMeasure: selectedMeasure });\r\n return selectedMeasure;\r\n }\r\n }\r\n\r\n private getSelectedMeasureIndex = (measureCode: string): number => {\r\n var measures = this.state.measures;\r\n var measureIndex = -1;\r\n if (measures) {\r\n measures.forEach((measure, index) => {\r\n if (measure.measureCode === measureCode) {\r\n measureIndex = index;\r\n }\r\n });\r\n }\r\n return measureIndex;\r\n }\r\n\r\n private setSelectedMeasure = (measureCode: string) => {\r\n var measureName = '';\r\n this.state.measures.forEach((measure, index) => {\r\n if (measure.measureCode === measureCode) {\r\n measureName = measure.hedisVol2MeasureName;\r\n }\r\n });\r\n var selectedMeasure = {} as IMeasure;\r\n selectedMeasure.measureCode = measureCode;\r\n selectedMeasure.hedisVol2MeasureName = measureName;\r\n\r\n this.setState({\r\n selectedDisplayMeasure: selectedMeasure\r\n });\r\n this.getPreviousMeasure(measureCode);\r\n this.getNextMeasure(measureCode);\r\n }\r\n\r\n private handleMeasureChange = async (event: React.ChangeEvent<{ name?: string, value: any }>): Promise => {\r\n var measureCode = event.target.value;\r\n this.setSelectedMeasure(measureCode);\r\n }\r\n\r\n private downloadFilteredArt = async () => {\r\n this.setState({isDownloadingMeasureData: true});\r\n const retVal = await SubmissionsService.GetFilteredArtDownloads$(this.props.user, this.props.subId, this.state.selectedFilterVal).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const data = SharedUtility.Str2ab$(atob(retVal.fileContents));\r\n saveAs(\r\n new Blob([data], { type: \"application/octet-stream\" }),\r\n retVal.fileName\r\n );\r\n }\r\n this.setState({isDownloadingMeasureData: false});\r\n }\r\n private downloadMeasureData = async () => {\r\n this.setState({ isDownloadingMeasureData: true });\r\n const apiCall = SubmissionsService.GetMeasureDataDownloadCaller$(this.props.user, this.props.subId, this.state.selectedDisplayMeasure.measureCode);\r\n try {\r\n const userResponse = await apiCall.toPromise();\r\n if (typeof userResponse === 'string') {\r\n const data = this.str2ab(atob(userResponse));\r\n saveAs(new Blob([data], {\r\n type: \"application/octet-stream\"\r\n }), \"DATAWORKSHEET\" + this.props.subId + \"_\" + this.state.selectedDisplayMeasure.measureCode + \".xlsx\");\r\n }\r\n }\r\n catch (ex) {\r\n // handle error\r\n }\r\n finally {\r\n this.setState({ isDownloadingMeasureData: false });\r\n }\r\n }\r\n private str2ab(str) {\r\n const buf = new ArrayBuffer(str.length);\r\n const bufView = new Uint8Array(buf);\r\n for (let i = 0, strLen = str.length; i < strLen; i++) {\r\n bufView[i] = str.charCodeAt(i);\r\n }\r\n return buf;\r\n }\r\n}\r\n\r\n\r\n// REDUX CONTAINER\r\nconst AuditReviewToolWithState = connect(genericMapStateToProps)(AuditReviewToolView);\r\n\r\n// STYLES CONTAINER\r\nconst AuditReviewToolViewTab = withStyles(styles)(AuditReviewToolWithState);\r\n\r\n// REDUX CONTAINER\r\n\r\nexport default AuditReviewToolViewTab;","import * as React from \"react\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../../../DataClasses/GenericUser\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Grid, Button, Stepper, Typography, Step, StepLabel, CardContent, Card, CircularProgress,\r\n Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle\r\n} from '@material-ui/core';\r\nimport idssStyle from \"../../../../Configuration/SharedStyling\";\r\nimport { Check as CheckIcon, Edit as EditIcon, CloudDownload as CloudDownloadIcon } from '@material-ui/icons';\r\nimport { ISubmissionAttestationReportingFlags } from '../../../../DataClasses/SubmissionData';\r\nimport SubmissionsService from '../../../Services/SubmissionsService';\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport PDFViewer from 'pdf-viewer-reactjs'\r\nimport saveAs from 'file-saver';\r\nimport SharedUtility from \"../../../../Utilities/SharedUtility\";\r\nimport { SlideProps } from '@material-ui/core/Slide';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport UserMessage from \"../../../Shared/Message\";\r\nimport { MessageType } from \"../../../../DataClasses/SharedData\";\r\nimport ConfettiExplosion from 'react-confetti-explosion';\r\n\r\nconst Transition = React.forwardRef((props, ref) => );\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n root: {\r\n width: '100%',\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n optionButton: {\r\n width: \"50%\"\r\n },\r\n optionCard: {\r\n textAlign: \"center\",\r\n alignItems: \"center\",\r\n \"& p\": {\r\n textAlign: \"left\",\r\n padding: theme.spacing(2, 1)\r\n }\r\n },\r\n progress: {\r\n verticalAlign: 'middle',\r\n paddingLeft: '5px'\r\n }\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalProps {\r\n submissionId: number,\r\n component: string,\r\n title: string,\r\n description: string,\r\n isPublicReporting?: boolean,\r\n canManagePublicReporting: boolean,\r\n canEsignAttestation: boolean,\r\n isYesAllowed: boolean,\r\n isLtss: boolean,\r\n onComplete: React.MouseEventHandler\r\n onCancel: React.MouseEventHandler\r\n}\r\n\r\ninterface ILocalState {\r\n activeStep: number,\r\n isPublicReporting?: boolean,\r\n isSaving: boolean,\r\n encodedPreviewPDF: string,\r\n encodedSignedPDF: string,\r\n isDownloadingDocument: boolean,\r\n attestationModifiedDate?: Date,\r\n isEsignInProgress: boolean,\r\n isLoading: boolean,\r\n isExploding: boolean,\r\n lastClickedTime: number,\r\n isGeneratingPdf: boolean,\r\n showEsignDialog: boolean,\r\n publicReportingDialogOpen: boolean\r\n}\r\n\r\n\r\nclass AttestationStepsView extends React.Component {\r\n constructor(props: IGenericUserProps & IStylesProps & ILocalProps) {\r\n super(props);\r\n\r\n this.state = {\r\n activeStep: 0,\r\n isPublicReporting: this.props.isPublicReporting,\r\n isSaving: false,\r\n encodedPreviewPDF: null,\r\n encodedSignedPDF: null,\r\n isDownloadingDocument: false,\r\n isEsignInProgress: false,\r\n isLoading: false,\r\n isExploding: false,\r\n lastClickedTime: new Date().getTime(),\r\n isGeneratingPdf: false,\r\n showEsignDialog: false,\r\n publicReportingDialogOpen: false\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n await this.RefreshModel();\r\n }\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n const steps = this.getSteps();\r\n return (
\r\n \r\n {steps.map(label => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {this.state.encodedSignedPDF ? (\r\n \r\n \r\n {/**/}\r\n {/* */}\r\n {/* Signature Applied*/}\r\n {/**/}\r\n {this.state.isExploding && }\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.getStepContent(this.state.activeStep)}\r\n
\r\n \r\n Back\r\n \r\n {this.state.activeStep === this.REVIEW_AND_SIGN_STEP ? (\r\n \r\n \r\n {' '}\r\n\r\n\r\n }\r\n disabled={(this.isCurrentStepInValid() || !this.props.canEsignAttestation)}\r\n >\r\n Sign\r\n \r\n \r\n Esign Confirmation\r\n \r\n \r\n \r\n By clicking \"SIGN\", you agree and consent:

\r\n
    \r\n
  • To contract electronically with NCQA as related to the Attestation;
  • \r\n
  • You are duly authorized to enter into and bind your organization, as applicable, to the Attestation; and
  • \r\n
  • That by clicking “SIGN,” you and/or your organization agree to be bound by the Attestation.
  • \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {this.state.isEsignInProgress ? : null}\r\n \r\n \r\n
\r\n
)\r\n : this.state.activeStep === this.PUBLIC_REPORTING_STEP ? (\r\n \r\n \r\n \r\n Public Reporting Confirmation\r\n \r\n \r\n \r\n You have selected {this.getPublicsReportingDisplay()} to Public Reporting in HPR and QC. Are you sure?
\r\n Please read the public reporting option details carefully. After the submission deadline, no corrections can be made. \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n {this.state.isEsignInProgress ? : null}\r\n \r\n \r\n
)\r\n : ((!this.props.canManagePublicReporting || this.state.isGeneratingPdf) && !this.state.isGeneratingPdf) ?\r\n \r\n You must select or reselect your option to proceed\r\n : null\r\n }\r\n {this.state.isGeneratingPdf ? : null}\r\n\r\n
\r\n
\r\n )}\r\n
\r\n
);\r\n }\r\n\r\n private async RefreshModel() {\r\n\r\n }\r\n\r\n private showEsignDialog() {\r\n this.setState({ showEsignDialog: true });\r\n }\r\n\r\n private hideEsignDialog() {\r\n this.setState({ showEsignDialog: false });\r\n }\r\n\r\n private PUBLIC_REPORTING_STEP: number = 0;\r\n private REVIEW_AND_SIGN_STEP: number = 1;\r\n private getSteps() {\r\n return ['Public Reporting', 'Review and Sign'];\r\n }\r\n\r\n private getStepContent(stepIndex: number) {\r\n switch (stepIndex) {\r\n case this.PUBLIC_REPORTING_STEP:\r\n return this.getPublicReportingStep();\r\n case this.REVIEW_AND_SIGN_STEP:\r\n return this.getReviewAndSignStep();\r\n default:\r\n return 'Unknown stepIndex';\r\n }\r\n }\r\n\r\n private getUserInfoMessage = () => {\r\n return (\r\n \r\n Your signature has been applied. Click \"FINISH\" to complete the attestation process and finalize the submission. You may download your signed document now, or come back later to download it from the All Downloads tab.\r\n \r\n );\r\n }\r\n\r\n private getPublicReportingStep = () => {\r\n const { classes } = this.props;\r\n let noText = \"No\"; //It's about the display of the Yes option, however, the text defaults to No for this case.\r\n if (!this.props.isYesAllowed) {\r\n noText = \"Acknowledge\";\r\n }\r\n return (\r\n \r\n {this.props.isYesAllowed ?\r\n \r\n \r\n \r\n this.handlePublicReportingOption(true)}\r\n color={this.state.isPublicReporting ? \"primary\" : \"default\"}\r\n variant=\"contained\"\r\n className={classes.button + \" \" + classes.optionButton}\r\n startIcon={this.state.isPublicReporting ? : null}\r\n disabled={!this.props.canManagePublicReporting || !this.props.isYesAllowed}\r\n >\r\n Yes\r\n \r\n \r\n I agree that the Data, including Organization or product identifying data, will be publicly reported by NCQA and will be included in NCQA published products and reports (e.g., Quality Compass®, NCQA’s Health Plan Report Card, NCQA’s Health Plan Ratings, or similar products) and the publications of licensees of NCQA. NCQA and its licensees may also report and include the Data as part of roll-up or composite results and reporting categories which may include assigning designations or summary conclusions to Organization's performance based on the Data. Organization acknowledges that NCQA may also choose, at its option, not to publicly report certain Data.\r\n \r\n \r\n \r\n \r\n : null}\r\n \r\n \r\n \r\n this.handlePublicReportingOption(false)}\r\n color={this.state.isPublicReporting === false ? \"primary\" : \"default\"}\r\n startIcon={this.state.isPublicReporting === false ? : null}\r\n variant=\"contained\"\r\n className={classes.button + \" \" + classes.optionButton}\r\n disabled={!this.props.canManagePublicReporting}\r\n >\r\n {noText}\r\n \r\n {this.props.isYesAllowed ?\r\n \r\n Except as otherwise provided in this ATTESTATION and in an Accreditation contract with NCQA, the Data will not be included in NCQA published products and reports (e.g., Quality Compass®, NCQA’s Health Plan Report Card, NCQA’s Health Plan Ratings, or similar products). I understand that by indicating that I do not wish to publicly report the Data, the Organization will be rated by NCQA in its annual rating of health plans at the bottom of the list under the heading of health plans that did not provide HEDIS data or did not permit their HEDIS data to be made public. I understand that NCQA may include the Data in published aggregate statistics and benchmarks without my further permission.\r\n :\r\n !this.props.isLtss ?\r\n \r\n You also acknowledge and agree that NCQA may use and include the Data (to include plan-specific identifiers) in published products and reports (e.g., NCQA’s Quality Compass, NCQA’s Health Plan Report Card, NCQA’s Health Plan Ratings, or similar products) if the Data (to include plan-specific identifiers) is made publicly available by a third party with the right to publish said Data (to include plan-specific identifiers).\r\n :\r\n \r\n You acknowledge and agree that NCQA may: (1) use the Data for research purposes, so long as all plan-specific identifiers are removed in publications; (2) release the Data to third parties for research, so long as such third parties have entered into a confidentiality agreement with NCQA and all plan-specific identifiers are removed in publications; (3) include/use the aggregate statistics and benchmarks of the Data in NCQA published products and reports (e.g., NCQA’s Quality Compass, NCQA’s Health Plan Report Card, NCQA’s Health Plan Ratings, or similar products) and (4) be used for scoring organizations seeking NCQA’s LTSS Accreditation or Distinction programs that voluntarily choose to submit performance results on the HEDIS LTSS Measures instead of providing a documented process or completing file review for certain requirements.\r\n \r\n }\r\n \r\n \r\n \r\n \r\n\r\n );\r\n }\r\n\r\n private getReviewAndSignStep = () => {\r\n const { classes } = this.props;\r\n if (SharedUtility.IsNullOrUndefined$(this.state.encodedPreviewPDF)) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private handlePublicReportingOption = (value: boolean) => {\r\n this.setState({ isPublicReporting: value });\r\n };\r\n\r\n private handleSave = async () => {\r\n const attestationFlags: ISubmissionAttestationReportingFlags = {\r\n submissionId: this.props.submissionId,\r\n component: this.props.component,\r\n isPublicReported: this.state.isPublicReporting,\r\n sourceLastModified: this.state.attestationModifiedDate\r\n };\r\n\r\n const updateAttestationResult = await SubmissionsService.UpdateSubmissionAttestationReportingFlags$(this.props.user,\r\n attestationFlags).toPromise();\r\n\r\n if (updateAttestationResult instanceof AjaxError) {\r\n throw (new Error(\"Ajax Error\"));\r\n }\r\n }\r\n\r\n private handleSign = async () => {\r\n this.setState({ isEsignInProgress: true });\r\n\r\n const signDocResult = await SubmissionsService.SignPDF$(this.props.user, this.props.submissionId, this.props.component).toPromise();\r\n if (signDocResult) {\r\n this.setState({\r\n encodedSignedPDF: signDocResult.response.toString()\r\n });\r\n // await this.handleSave(); This doesn't seem to be needed, it happens at an earlier step, and may be broken.. Keeping it as a comment for now.\r\n this.setState({ activeStep: 3 });\r\n this.setState({ isEsignInProgress: false });\r\n }\r\n };\r\n\r\n private isEnableNext(){\r\n if(this.props.isYesAllowed) {\r\n return this.state.isPublicReporting !== undefined && this.state.isPublicReporting !== null;\r\n }\r\n return this.state.isPublicReporting === false;\r\n }\r\n private cancelPublicReporting = () => {\r\n this.setState({isPublicReporting: undefined, publicReportingDialogOpen: false});\r\n }\r\n\r\n private getPublicsReportingDisplay =() => {\r\n if (this.state.isPublicReporting === undefined || this.state.isPublicReporting === null){\r\n return \"NOTHING\";\r\n }\r\n if(this.state.isPublicReporting === true){\r\n return \"YES\";\r\n }\r\n else{\r\n return \"NO\";\r\n }\r\n }\r\n\r\n private handleNext = async (targetStep: number) => {\r\n this.setState({publicReportingDialogOpen: false});\r\n await this.handleSave();\r\n\r\n if (targetStep === this.REVIEW_AND_SIGN_STEP) {\r\n this.setState({ isGeneratingPdf: true });\r\n const retval = await SubmissionsService.GetESignPDF$(this.props.user, this.props.submissionId, this.props.component).toPromise();\r\n\r\n this.setState({\r\n isGeneratingPdf: false,\r\n activeStep: targetStep,\r\n encodedPreviewPDF: retval\r\n });\r\n }\r\n };\r\n\r\n private handleBack = (event: React.MouseEvent) => {\r\n if (this.state.activeStep === 0)\r\n this.props.onCancel(event);\r\n else {\r\n this.setState({ activeStep: this.state.activeStep - 1 });\r\n }\r\n };\r\n\r\n private handleFinish = (event: React.MouseEvent) => {\r\n this.setState({ isExploding: true });\r\n this.sleep(10000);\r\n this.props.onComplete(event);\r\n };\r\n\r\n sleep(ms) {\r\n return new Promise(resolve => setTimeout(resolve, ms));\r\n }\r\n\r\n private isCurrentStepInValid = (): boolean => {\r\n switch (this.state.activeStep) {\r\n case this.PUBLIC_REPORTING_STEP:\r\n return SharedUtility.IsNullOrUndefined$(this.state.isPublicReporting);\r\n case this.REVIEW_AND_SIGN_STEP:\r\n return SharedUtility.IsNullOrUndefined$(this.state.encodedPreviewPDF);\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private downloadSignedDocument = async (event: React.MouseEvent) => {\r\n this.setState({ isDownloadingDocument: true });\r\n\r\n try {\r\n if (this.state.encodedSignedPDF) {\r\n const data = this.str2ab(atob(this.state.encodedSignedPDF));\r\n saveAs(new Blob([data], { type: \"application/pdf\" }), this.props.submissionId + \"_HEDIS_Signed.pdf\");\r\n }\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n }\r\n finally {\r\n this.setState({ isDownloadingDocument: false });\r\n }\r\n }\r\n\r\n private downloadPreviewDocument = async (event: React.MouseEvent) => {\r\n this.setState({ isDownloadingDocument: true });\r\n\r\n try {\r\n if (this.state.encodedPreviewPDF) {\r\n const data = this.str2ab(atob(this.state.encodedPreviewPDF));\r\n saveAs(new Blob([data], { type: \"application/pdf\" }), this.props.submissionId + \"_HEDIS_Draft.pdf\");\r\n }\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n }\r\n finally {\r\n this.setState({ isDownloadingDocument: false });\r\n }\r\n }\r\n\r\n private str2ab(str) {\r\n const buf = new ArrayBuffer(str.length);\r\n const bufView = new Uint8Array(buf);\r\n for (let i = 0, strLen = str.length; i < strLen; i++) {\r\n bufView[i] = str.charCodeAt(i);\r\n }\r\n return buf;\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AttestationStepsWithState = connect(genericMapStateToProps)(AttestationStepsView);\r\n\r\n// STYLES CONTAINER\r\nconst AttestationSteps = withStyles(styles)(AttestationStepsWithState);\r\n\r\n// REDUX CONTAINER\r\nexport default AttestationSteps;","export default __webpack_public_path__ + \"static/media/CheckMarkCircle.00f41418.png\";","import {\r\n AppBar, Button, Card, CardContent, Checkbox, CircularProgress, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, FormControl,\r\n FormControlLabel, FormGroup, Grid, LinearProgress, Paper, Step, StepLabel, Stepper, Tab, Tabs, Typography, CardActions, GridList, GridListTile, Divider, Tooltip, TextareaAutosize,\r\n Fade, Box, InputLabel, Grow\r\n} from '@material-ui/core';\r\nimport Slide from '@material-ui/core/Slide';\r\nimport { SlideProps } from '@material-ui/core/Slide';\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\n// import { TransitionProps } from \"@material-ui/core/transitions/transition\";\r\n// import { SlideProps } from '@material-ui/core/transitions';\r\n\r\nimport classNames from 'classnames';\r\nimport * as React from \"react\";\r\nimport Dropzone from 'react-dropzone';\r\nimport { connect } from \"react-redux\";\r\nimport { RouteComponentProps } from \"react-router-dom\";\r\nimport Select from \"react-select\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport request from 'superagent';\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { genericMapStateToProps, IGenericUserProps } from \"../../DataClasses/GenericUser\";\r\nimport { ISubmissionAttestationFlags, ICurrentSubAuths, ISubmissionHomePayload, ISubmissionHomeText, ISubmissionUserPayload, IUploadSection, IValidationResponsePayload, SubmissionActionTypes, IUserAction, ValidationStatusTypes } from \"../../DataClasses/SubmissionData\";\r\nimport { AllowableFileTypes, AllowableFileTypesText, AuditLockButtonMainText, AuditLockButtonTitle, AuditLockButtonUndoMainText, AuditLockButtonUndoTitle, MarkFinalButtonMainText, MarkFinalButtonMainTextUndo, MarkFinalButtonTitle, MarkFinalButtonTitleUndo, PlanLockButtonMainText, PlanLockButtonMainTextUndo, PlanLockButtonTitle, PlanLockButtonTitleUndo, ProductTranslator, AuditLockNoActionText, MarkFinalNoActionText, AttestationButtonMainText, AttestationButtonTitle, AttestationButtonMainTextUndo, AttestationButtonTitleUndo, AttestationNoActionText, ClearMeasureButtonTitle, ClearMeasureButtonMainText } from '../../Utilities/ProductTypeTranslation';\r\nimport * as Renderings from \"../Pages/Subcomponents/SubmissionHome/SubmissionHome.Renderings\";\r\nimport * as AllDownloadsTab from \"../Pages/Subcomponents/SubmissionHome/SubmissionHome.AllDownloads\";\r\nimport AuditReviewToolViewTab from \"../Pages/Subcomponents/SubmissionHome/SubmissionHome.AuditReviewTool\";\r\nimport AttestationSteps from \"../Pages/Subcomponents/SubmissionHome/SubmissionHome.AttestationSteps\";\r\nimport ExceptionSerivce from '../Services/ExceptionService';\r\nimport SubmissionsService from '../Services/SubmissionsService';\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport ErrorDialog from '../Shared/ErrorDialog';\r\nimport LoadingDisplay from \"../Shared/Loading\";\r\nimport MUIDataTable, { MUIDataTableColumnDef, MUIDataTableMeta, MUIDataTableOptions } from \"mui-datatables\";\r\nimport { IFilesUploadReportPayload } from \"../../DataClasses/ReportData\";\r\nimport success from '../../Images/CheckMarkCircle.png';\r\nimport * as AuthorizationPolicies from \"../../Configuration/AuthorizationPolicies\";\r\nimport { InsertDriveFile, AddCircle, Delete } from \"@material-ui/icons\";\r\nimport PageviewOutlinedIcon from '@material-ui/icons/PageviewOutlined';\r\nimport { Fab, IconButton } from '@material-ui/core';\r\nimport SharedUtility from \"../../Utilities/SharedUtility\";\r\nimport {\r\n VIEW_ART, UPLOAD_DOCUMENT_HEDIS, UPLOAD_DOCUMENT_NONHEDIS, AUDIT_LOCK, UNLOCK_AUDIT_LOCK, PLAN_LOCK, UNLOCK_PLAN_LOCK, MARK_FINAL_HEDIS, SUBMISSION_GENERIC_ADMIN,\r\n MARK_FINAL_CAHPS, MARK_FINAL_HOS, ASSIGN_AUDIT_DESIGNATION, SIGN_ATTESTATION_HEDIS, SIGN_ATTESTATION_HOS, DOWNLOAD_RESULTS_HEDIS, DOWNLOAD_RESULTS_CAHPS, DOWNLOAD_RESULTS_HOS, MANAGE_HEDIS_USER,\r\n MANAGE_PUBLIC_REPORTING, SUB_ID, VIEW_DOWNLOAD_ERRORS_HEDIS, VIEW_DOWNLOAD_ERRORS_NONHEDIS, VIEW_RESULTS_REPORTS_HEDIS, HOS_ENABLE_INTERIM_SUBMISSION\r\n} from \"../Shared/Constants\";\r\nimport { MessageType, ValidationMessage, ValidationError, KeyValuePair } from '../../DataClasses/SharedData';\r\nimport UserMessage from '../Shared/Message';\r\nimport Moment from 'react-moment';\r\nimport ReportsService from \"../Services/ReportsService\";\r\nimport { IEvent } from \"../../DataClasses/DbData\";\r\nimport saveAs from 'file-saver';\r\nimport LoadingDataTable from '../Shared/LoadingDataTable';\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport ProcessingDisplay from \"../Shared/ProcessingDisplay\";\r\nimport ConfettiExplosion from 'react-confetti-explosion';\r\nconst Transition = React.forwardRef((props, ref) => );\r\n\r\n// const Transition = React.forwardRef => function Transition(props, ref) {\r\n// return ;\r\n// };\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n validationMessageList: {\r\n margin: \"0\",\r\n listStyle: \"none\"\r\n }\r\n});\r\n\r\nconst LightTooltip = withStyles((theme: Theme) => ({\r\n tooltip: {\r\n backgroundColor: '#f2f2f2', // theme.palette.common.white,\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n boxShadow: theme.shadows[16],\r\n fontSize: 11,\r\n fontStyle: 'oblique'\r\n },\r\n}))(Tooltip);\r\n\r\ninterface ISubmissionHomeState {\r\n submissionData: ISubmissionHomePayload,\r\n currentSubId: string,\r\n isMainTabLoading: boolean,\r\n isGenericActionHappening: boolean,\r\n isAuditorTabLoading: boolean,\r\n validation: IValidationResponsePayload,\r\n currentTabVal: number,\r\n component: string,\r\n auths: ICurrentSubAuths,\r\n users: any[],\r\n textLookup: ISubmissionHomeText,\r\n errorMsg: string,\r\n uploadSection: IUploadSection,\r\n allAccounts: string[],\r\n selectedAccount: any,\r\n selectedAccountLevel: any,\r\n dialogStatus: IDialogs,\r\n isHistoryTabLoading: boolean,\r\n isAllDownloadsTabLoading: boolean,\r\n history: any[],\r\n allDownloads: any[],\r\n isSubmissionActivitiesLoading: boolean,\r\n isDetailedSubmissionDetailLoading: boolean,\r\n submissionActivities: any[],\r\n detailedSubmissionMeta: any[],\r\n isFlagUpdateSuccessful: boolean,\r\n isAdminUpdatingAttestFlags: boolean,\r\n isSysAdmin: boolean,\r\n isOrgAdmin: boolean,\r\n attestation: IAttestationState,\r\n userAction: IUserAction,\r\n showAllDownloads: boolean,\r\n redirect: boolean,\r\n validationResult: any,\r\n validationDialogOpen: boolean,\r\n currentValidationItem: ValidationError,\r\n isVendorMeasureGuidsLoading: boolean,\r\n vendorMeasureGuids: any[],\r\n enableHosInterimDataSubmission: boolean\r\n}\r\n\r\ninterface IAttestationState {\r\n attestationStarted: boolean,\r\n attestationTitle: string,\r\n attestationText: string,\r\n attestationSigned: boolean\r\n}\r\n\r\ninterface IDialogs {\r\n planLockOpen: boolean,\r\n planLockTitle: string,\r\n planLockText: string,\r\n planLockUndoOpen: boolean,\r\n planLockUndoTitle: string,\r\n planLockUndoText: string,\r\n auditLockOpen: boolean,\r\n auditLockTitle: string,\r\n auditLockText: string,\r\n auditLockUndoOpen: boolean,\r\n auditLockUndoTitle: string,\r\n auditLockUndoText: string,\r\n auditLockNoActionText: string,\r\n\r\n markFinalOpen: boolean,\r\n markFinalTitle: string,\r\n markFinalText: string,\r\n markFinalUndoOpen: boolean,\r\n markFinalUndoTitle: string,\r\n markFinalUndoText: string,\r\n markFinalNoActionText: string,\r\n\r\n attestationUndoOpen: boolean,\r\n attestationUndoTitle: string,\r\n attestationUndoText: string,\r\n attestationNoActionText: string,\r\n\r\n hosAttestationUndoOpen: boolean,\r\n\r\n clearMeasuresOpen: boolean,\r\n clearMeasuresTitle: string,\r\n clearMeasuresText: string\r\n}\r\n\r\ninterface TabMetadata {\r\n Label: string,\r\n AdminOnly: boolean,\r\n HedisOnly: boolean,\r\n}\r\n\r\nconst SUBMISSION_TAB = 0;\r\nconst AUDIT_REVIEW_TOOL_TAB = 1;\r\nconst AUDITORS_TAB = 2;\r\nconst ALL_DOWNLOADS_TAB = 3;\r\nconst UPLOAD_HISTORY_TAB = 4;\r\nconst CLEAR_ALL_MEASURES = 5;\r\nconst ADMIN_TAB = 6;\r\nconst TabInfo: TabMetadata[] = [\r\n { Label: 'EDIT SUBMISSION', AdminOnly: false, HedisOnly: false },\r\n { Label: 'AUDITOR REVIEW TABLE', AdminOnly: true, HedisOnly: true },\r\n { Label: 'AUDITORS', AdminOnly: true, HedisOnly: false },\r\n { Label: 'ALL DOWNLOADS', AdminOnly: false, HedisOnly: false },\r\n { Label: 'UPLOAD HISTORY', AdminOnly: false, HedisOnly: false },\r\n { Label: 'CLEAR ALL MEASURES', AdminOnly: false, HedisOnly: true },\r\n { Label: 'ADMIN', AdminOnly: true, HedisOnly: false },\r\n];\r\n\r\nconst IMPORT_SUBMISSION_STEP = 1;\r\nconst MARK_FINAL_CAHPS_STEP = 2;\r\nconst PLAN_LOCK_STEP = 3;\r\nconst AUDIT_LOCK_STEP = 4;\r\nconst ATTESTATION_HOS_STEP = 5;\r\nconst MARK_FINAL_HEDIS_HOS_STEP = 6;\r\nconst ATTESTATION_HEDIS_STEP = 7;\r\nconst ATTESTATION_CAHPS_STEP = 8;\r\nconst COMPLETE_STEP = 9;\r\nconst SubmissionStepsHedis = [\r\n { \"Name\": \"Import Submission\", \"Number\": IMPORT_SUBMISSION_STEP },\r\n { \"Name\": \"Apply Plan Lock\", \"Number\": PLAN_LOCK_STEP },\r\n { \"Name\": \"Apply Audit Lock\", \"Number\": AUDIT_LOCK_STEP },\r\n { \"Name\": \"Apply Mark Final\", \"Number\": MARK_FINAL_HEDIS_HOS_STEP },\r\n { \"Name\": \"Finalize Attestation\", \"Number\": ATTESTATION_HEDIS_STEP },\r\n { \"Name\": \"Submission Finalized\", \"Number\": COMPLETE_STEP }\r\n];\r\nconst SubmissionStepsCahps = [\r\n { \"Name\": \"Import Submission\", \"Number\": IMPORT_SUBMISSION_STEP },\r\n { \"Name\": \"Apply Mark Final\", \"Number\": MARK_FINAL_CAHPS_STEP },\r\n { \"Name\": \"Finalize Attestation\", \"Number\": ATTESTATION_CAHPS_STEP },\r\n { \"Name\": \"Submission Finalized\", \"Number\": COMPLETE_STEP }\r\n];\r\nconst SubmissionStepsHos = [\r\n { \"Name\": \"Import Submission\", \"Number\": IMPORT_SUBMISSION_STEP },\r\n { \"Name\": \"Validations/Attestation\", \"Number\": ATTESTATION_HOS_STEP },\r\n { \"Name\": \"Apply Mark Final\", \"Number\": MARK_FINAL_HEDIS_HOS_STEP },\r\n { \"Name\": \"Submission Finalized\", \"Number\": COMPLETE_STEP }\r\n];\r\n\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass SubmissionHome extends React.Component, ISubmissionHomeState> {\r\n private uploadFilesOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n downloadOptions: {\r\n filename: 'UploadHistory.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n selectableRows: \"none\",\r\n viewColumns: false,\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n private submissionActivityOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'ActivityReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n private detailedSubmissionOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'SubmissionInfo.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n private vendorMeasureGuidOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: `VendorMeasureGuids.csv`,\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100]\r\n }\r\n constructor(props: IGenericUserProps & IStylesProps & RouteComponentProps<{ subId: string, component: string }>) {\r\n super(props);\r\n const component = props.match.params.component;\r\n\r\n\r\n this.state =\r\n {\r\n submissionData:\r\n {\r\n productLine: \"\",\r\n reportingProduct: \"\",\r\n reportingUnitId: \"\",\r\n specialArea: \"\",\r\n specialProject: \"\",\r\n subId: Number(props.match.params.subId),\r\n orgId: -1,\r\n orgName: \"\",\r\n cmsContract: \"\",\r\n vendorId: -1,\r\n activeStepNumber: -1,\r\n component: \"\",\r\n isFileProcessed: false,\r\n isFileUploaded: false,\r\n didValidationError: false,\r\n didValidationWarning: false,\r\n isFileUploadAllowed: false,\r\n fileUploadNotAllowedReason: \"\",\r\n submissionDownloads: [],\r\n isPublicReported: null,\r\n somc: null,\r\n attestationModifiedDate: null,\r\n isAccredited: false,\r\n hasSubmissionAccess: false,\r\n isAuditRequired: false,\r\n validationStatus: \"\",\r\n isFinal: null,\r\n isAttested: null,\r\n requiredFileName: null,\r\n isCahpsOnlySubmission: false,\r\n hedisSubInMarkFinalOrEarlier: false,\r\n submissionIntention: \"\",\r\n },\r\n currentSubId: props.match.params.subId,\r\n isMainTabLoading: true,\r\n isAuditorTabLoading: true,\r\n isGenericActionHappening: false,\r\n uploadSection:\r\n {\r\n uploadFiles: [],\r\n dropzoneStatusStyle: \"\",\r\n uploadCompletionPercent: 0,\r\n fileProcessingComplete: false,\r\n uploadValidationMessages: [],\r\n uploadSuccessful: false\r\n },\r\n validation:\r\n {\r\n submissionId: -1,\r\n urlString: \"\",\r\n headerUrlString: \"\",\r\n detailUrlString: \"\",\r\n validationText: \"\",\r\n validationErrors: []\r\n },\r\n currentTabVal: 0,\r\n component: component,\r\n auths: {\r\n isGlobalAdmin: false,\r\n isOrgAdmin: false,\r\n isOrgSigner: false,\r\n isVendorSigner: false,\r\n isOrgUser: false,\r\n isAuditor: false,\r\n isViewer: false,\r\n isVendorAdmin: false,\r\n isVenderUser: false,\r\n isSubmissionUser: false,\r\n user: props.user,\r\n },\r\n users: [],\r\n textLookup:\r\n {\r\n uploadFileText: ProductTranslator.getProductTypeName(component, new AllowableFileTypesText()),\r\n uploadFileType: ProductTranslator.getProductTypeName(component, new AllowableFileTypes()),\r\n },\r\n errorMsg: \"\",\r\n allAccounts: [],\r\n selectedAccount: \"\",\r\n selectedAccountLevel: { label: \"Submission Level\", value: \"submission\" },\r\n dialogStatus:\r\n {\r\n planLockOpen: false,\r\n planLockTitle: ProductTranslator.getProductTypeName(component, new PlanLockButtonTitle()),\r\n planLockText: ProductTranslator.getProductTypeName(component, new PlanLockButtonMainText()),\r\n planLockUndoOpen: false,\r\n planLockUndoTitle: ProductTranslator.getProductTypeName(component, new PlanLockButtonTitleUndo()),\r\n planLockUndoText: ProductTranslator.getProductTypeName(component, new PlanLockButtonMainTextUndo()),\r\n auditLockOpen: false,\r\n auditLockUndoTitle: ProductTranslator.getProductTypeName(component, new AuditLockButtonUndoTitle()),\r\n auditLockUndoText: ProductTranslator.getProductTypeName(component, new AuditLockButtonUndoMainText()),\r\n auditLockNoActionText: ProductTranslator.getProductTypeName(component, new AuditLockNoActionText()),\r\n auditLockUndoOpen: false,\r\n markFinalOpen: false,\r\n markFinalUndoOpen: false,\r\n auditLockText: ProductTranslator.getProductTypeName(component, new AuditLockButtonMainText()),\r\n auditLockTitle: ProductTranslator.getProductTypeName(component, new AuditLockButtonTitle()),\r\n markFinalText: ProductTranslator.getProductTypeName(component, new MarkFinalButtonMainText()),\r\n markFinalTitle: ProductTranslator.getProductTypeName(component, new MarkFinalButtonTitle()),\r\n markFinalUndoText: ProductTranslator.getProductTypeName(component, new MarkFinalButtonMainTextUndo()),\r\n markFinalUndoTitle: ProductTranslator.getProductTypeName(component, new MarkFinalButtonTitleUndo()),\r\n markFinalNoActionText: ProductTranslator.getProductTypeName(component, new MarkFinalNoActionText()),\r\n attestationUndoOpen: false,\r\n attestationUndoTitle: ProductTranslator.getProductTypeName(component, new AttestationButtonTitleUndo()),\r\n attestationUndoText: ProductTranslator.getProductTypeName(component, new AttestationButtonMainTextUndo()),\r\n attestationNoActionText: ProductTranslator.getProductTypeName(component, new AttestationNoActionText()),\r\n hosAttestationUndoOpen: false,\r\n clearMeasuresOpen: false,\r\n clearMeasuresTitle: ProductTranslator.getProductTypeName(component, new ClearMeasureButtonTitle()),\r\n clearMeasuresText: ProductTranslator.getProductTypeName(component, new ClearMeasureButtonMainText())\r\n },\r\n attestation: {\r\n attestationStarted: false,\r\n attestationSigned: false,\r\n attestationTitle: ProductTranslator.getProductTypeName(component, new AttestationButtonTitle()),\r\n attestationText: ProductTranslator.getProductTypeName(component, new AttestationButtonMainText()),\r\n },\r\n isHistoryTabLoading: true,\r\n isAllDownloadsTabLoading: true,\r\n allDownloads: [],\r\n history: [],\r\n isSubmissionActivitiesLoading: true,\r\n isDetailedSubmissionDetailLoading: true,\r\n submissionActivities: [],\r\n detailedSubmissionMeta: [],\r\n isFlagUpdateSuccessful: false,\r\n isAdminUpdatingAttestFlags: false,\r\n isSysAdmin: AuthorizationPolicies.IsGlobalAdmin(this.props.user),\r\n isOrgAdmin: false,\r\n userAction: {\r\n canViewArt: false,\r\n canUploadHedis: false,\r\n canUploadNonHedis: false,\r\n canPlanLock: false,\r\n canPlanUnlock: false,\r\n canAuditLock: false,\r\n canAuditUnlock: false,\r\n canMarkFinalHedis: false,\r\n canMarkFinalCahps: false,\r\n canMarkFinalHos: false,\r\n canSubmissionGenericAdmin: false,\r\n canAssignAuditDesignation: false,\r\n canSignAttestationHedis: false,\r\n canSignAttestationHos: false,\r\n canDownloadResultHedis: false,\r\n canDownloadResultCahps: false,\r\n canDownloadResultHos: false,\r\n canManageHedisUser: false,\r\n canManagePublicReporting: false,\r\n canViewDownloadErrorsHedis: false,\r\n canViewDownloadErrorsNonHedis: false,\r\n canViewResultReportsHedis: false\r\n },\r\n showAllDownloads: true,\r\n redirect: false,\r\n validationResult: {},\r\n validationDialogOpen: false,\r\n currentValidationItem: null,\r\n isVendorMeasureGuidsLoading: false,\r\n vendorMeasureGuids: [],\r\n enableHosInterimDataSubmission: false\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n await this.RefreshModel(this.state.currentTabVal);\r\n\r\n //get all user actions and update the state\r\n var userActions = await this.GetAllAuthorizedUserActions();\r\n if (userActions != null) {\r\n this.SetUserActions(userActions);\r\n }\r\n\r\n //get hos interim data submission config value\r\n const retval = await AdministrationService.GetConfigKey$(this.props.user, HOS_ENABLE_INTERIM_SUBMISSION).toPromise();\r\n if (!retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ enableHosInterimDataSubmission: retval.toLowerCase() === 'true' });\r\n }\r\n }\r\n\r\n private SetUserActions = (userActions: Map) => {\r\n this.setState({\r\n userAction: {\r\n canViewArt: userActions[VIEW_ART],\r\n canUploadHedis: userActions[UPLOAD_DOCUMENT_HEDIS],\r\n canUploadNonHedis: userActions[UPLOAD_DOCUMENT_NONHEDIS],\r\n canPlanLock: userActions[PLAN_LOCK],\r\n canPlanUnlock: userActions[UNLOCK_PLAN_LOCK],\r\n canAuditLock: userActions[AUDIT_LOCK],\r\n canAuditUnlock: userActions[UNLOCK_AUDIT_LOCK],\r\n canMarkFinalHedis: userActions[MARK_FINAL_HEDIS],\r\n canMarkFinalCahps: userActions[MARK_FINAL_CAHPS],\r\n canMarkFinalHos: userActions[MARK_FINAL_HOS],\r\n canSubmissionGenericAdmin: userActions[SUBMISSION_GENERIC_ADMIN],\r\n canAssignAuditDesignation: userActions[ASSIGN_AUDIT_DESIGNATION],\r\n canSignAttestationHedis: userActions[SIGN_ATTESTATION_HEDIS],\r\n canSignAttestationHos: userActions[SIGN_ATTESTATION_HOS],\r\n canDownloadResultHedis: userActions[DOWNLOAD_RESULTS_HEDIS],\r\n canDownloadResultCahps: userActions[DOWNLOAD_RESULTS_CAHPS],\r\n canDownloadResultHos: userActions[DOWNLOAD_RESULTS_HOS],\r\n canManageHedisUser: userActions[MANAGE_HEDIS_USER],\r\n canManagePublicReporting: userActions[MANAGE_PUBLIC_REPORTING],\r\n canViewDownloadErrorsHedis: userActions[VIEW_DOWNLOAD_ERRORS_HEDIS],\r\n canViewDownloadErrorsNonHedis: userActions[VIEW_DOWNLOAD_ERRORS_NONHEDIS],\r\n canViewResultReportsHedis: userActions[VIEW_RESULTS_REPORTS_HEDIS]\r\n }\r\n });\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const auditorListingColumns = [\r\n {\r\n name: \"Email\",\r\n options: {\r\n filter: false,\r\n sort: true,\r\n }\r\n },\r\n {\r\n name: \"Audit Level\",\r\n options: {\r\n filter: true,\r\n sort: true\r\n }\r\n },\r\n {\r\n name: \"First Name\",\r\n options: {\r\n filter: false,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"Last Name\",\r\n options: {\r\n filter: false,\r\n sort: false\r\n }\r\n },\r\n {\r\n name: \"Actions\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n var tipTxt = \"Delete on \" + tableMeta.rowData[1] + \" Level\"\r\n return (\r\n
\r\n {\r\n this.state.userAction.canManageHedisUser ? <>\r\n \r\n this.deleteAuditorIconClick(tableMeta)}>\r\n \r\n \r\n \r\n : null\r\n }\r\n
\r\n );\r\n },\r\n download: false\r\n }\r\n }\r\n ];\r\n const uploadedFilesColumns =\r\n [\r\n\r\n {\r\n name: \"Saved Name\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Original Name\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Component\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"ValidationStatus\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Create User\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Create Date\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n ];\r\n\r\n const submissionActivityColumns =\r\n [\r\n {\r\n name: \"Date\",\r\n options: {\r\n filter: false,\r\n customBodyRender: value => {\r\n return (\r\n \r\n {value}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"User\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Message\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n ];\r\n const detailedSubmissionColumns =\r\n [\r\n {\r\n name: \"Key\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Value\",\r\n options: {\r\n filter: true,\r\n }\r\n }\r\n ];\r\n const vendorMeasureGuidColumns =\r\n [\r\n {\r\n name: \"Measure\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Guid\",\r\n options: {\r\n filter: true,\r\n }\r\n }\r\n ];\r\n const { classes } = this.props;\r\n if (this.state.isMainTabLoading) {\r\n return
\r\n {Renderings.renderLoadingSkeleton(this.state.currentSubId, classes)}\r\n
\r\n }\r\n else {\r\n if (!this.state.submissionData.hasSubmissionAccess) {\r\n return
Access denied} variant={MessageType.Error} />
\r\n }\r\n else {\r\n var steps = SubmissionStepsHedis;\r\n const isHedis = this.state.submissionData.component.includes(\"DST\") || this.state.submissionData.component.includes(\"HEDIS\");\r\n if (this.state.submissionData.component.includes(\"CAHPS\")) {\r\n steps = SubmissionStepsCahps\r\n }\r\n if (this.state.submissionData.component.includes(\"HOS\")) {\r\n steps = SubmissionStepsHos\r\n }\r\n\r\n // const activeStepNumber = this.state.submissionData.activeStepNumber.toString();\r\n let stepIndexNumber = this.GetActualStepIndex();\r\n const tabValue = this.state.currentTabVal;\r\n const accountOption = this.state.allAccounts.map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n const accountLevelOption = [{ label: \"Submission Level\", value: \"submission\" }, { label: \"Organization Level\", value: \"organization\" }];\r\n const reactSelectStyles = {\r\n container: (base, state) => ({\r\n ...base,\r\n opacity: state.isDisabled ? \".5\" : \"1\",\r\n backgroundColor: \"transparent\",\r\n zIndex: \"999\"\r\n })\r\n };\r\n var seedTime = 400;\r\n return (\r\n
\r\n \r\n {Renderings.renderTopDisplayGrid(this.state.submissionData, this.state.currentSubId, classes)}\r\n \r\n \r\n \r\n \r\n {TabInfo.map((item, i) => {\r\n if ((i === AUDIT_REVIEW_TOOL_TAB && (!isHedis || !this.state.userAction.canViewArt || this.state.submissionData.validationStatus === ValidationStatusTypes.NotRun || this.state.submissionData.validationStatus === ValidationStatusTypes.SchemaError || this.state.submissionData.validationStatus === ValidationStatusTypes.Fatal)) ||\r\n (i === AUDITORS_TAB && (!this.state.userAction.canManageHedisUser || !isHedis || !this.state.submissionData.isAuditRequired)) ||\r\n (i === ALL_DOWNLOADS_TAB && !(this.state.userAction.canDownloadResultHedis && isHedis) && !((this.state.userAction.canDownloadResultCahps || this.state.userAction.canDownloadResultHos) && !isHedis)) ||\r\n (i === ADMIN_TAB && !this.state.isSysAdmin) ||\r\n (i === CLEAR_ALL_MEASURES && (this.state.submissionData.activeStepNumber !== PLAN_LOCK_STEP || !this.state.userAction.canUploadHedis)) ||\r\n (item.HedisOnly && !isHedis)) {\r\n return null;\r\n }\r\n else {\r\n return ();\r\n }\r\n })}\r\n \r\n \r\n \r\n \r\n {\r\n tabValue === SUBMISSION_TAB ?\r\n
\r\n \r\n {this.state.isGenericActionHappening || (this.state.uploadSection.uploadCompletionPercent === 100 && !this.state.uploadSection.fileProcessingComplete) ?\r\n
: null}\r\n \r\n \r\n \r\n {steps.map((label) => {\r\n const props = {};\r\n const labelProps = {};\r\n if (label.Number === AUDIT_LOCK_STEP && !this.state.submissionData.isAuditRequired) {\r\n return null;\r\n }\r\n else {\r\n return (\r\n \r\n {label.Name}\r\n \r\n );\r\n }\r\n })}\r\n \r\n \r\n\r\n \r\n {this.renderActiveComponent()}\r\n \r\n \r\n
\r\n
\r\n : tabValue === AUDIT_REVIEW_TOOL_TAB ?\r\n \r\n : tabValue === AUDITORS_TAB ?\r\n
\r\n \r\n {this.state.userAction.canManageHedisUser ? <>\r\n \r\n Assign User as Submission Auditor\r\n \r\n \r\n this.setState({ errorMsg: \"\" })}\r\n />\r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n : null}\r\n \r\n {this.state.isAuditorTabLoading ?\r\n \r\n : Renderings.renderAuditorsTable(this.state.users, auditorListingColumns)}\r\n \r\n
\r\n
\r\n : tabValue === ALL_DOWNLOADS_TAB ?\r\n this.state.isAllDownloadsTabLoading ?\r\n \r\n :\r\n
\r\n \r\n {isHedis ?\r\n \r\n this.setState({ showAllDownloads: !this.state.showAllDownloads })}\r\n color=\"primary\"\r\n />}\r\n label=\"Show All Archived Files\"\r\n />\r\n \r\n : null}\r\n {AllDownloadsTab.renderAllDownloadsTable(this.state.showAllDownloads ? this.state.allDownloads : this.state.allDownloads.filter(x => !x[4]), this.downloadFile, classes)}\r\n \r\n
\r\n\r\n : tabValue === UPLOAD_HISTORY_TAB ?\r\n this.state.isHistoryTabLoading ?\r\n \r\n :\r\n \r\n
\r\n \r\n Uploaded Files}\r\n data={this.state.history}\r\n columns={uploadedFilesColumns}\r\n options={this.uploadFilesOptions}\r\n />\r\n \r\n
\r\n
\r\n : tabValue === CLEAR_ALL_MEASURES ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n All previously uploaded files will be cleared and submission will move to import stage.} variant={MessageType.Warning} />\r\n
\r\n
\r\n \r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, clearMeasuresOpen: true } }) }}>\r\n Clear\r\n \r\n \r\n {this.state.dialogStatus.clearMeasuresTitle}\r\n \r\n \r\n {this.state.dialogStatus.clearMeasuresText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n : tabValue === ADMIN_TAB ?\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Reprocess submission file\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.userAction.canManagePublicReporting ? <>\r\n \r\n \r\n \r\n Manage attestation flags\r\n \r\n \r\n \r\n this.handleAttestationFlagChange('PublicReporting', checked)}\r\n />\r\n }\r\n label=\"Public Reporting\"\r\n />\r\n this.handleAttestationFlagChange('Somc', checked)}\r\n\r\n />\r\n }\r\n label=\"SOMC\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {this.state.isAdminUpdatingAttestFlags && }\r\n {this.state.isFlagUpdateSuccessful && Flags updated succesfully}\r\n \r\n \r\n : null\r\n }\r\n \r\n \r\n \r\n \r\n \r\n Submission activities\r\n \r\n {this.state.isSubmissionActivitiesLoading ?\r\n \r\n :\r\n <>\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Detailed Submission Detail\r\n \r\n {this.state.isDetailedSubmissionDetailLoading ?\r\n \r\n :\r\n <>\r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Vendor Measure Guids\r\n \r\n {this.state.isVendorMeasureGuidsLoading ?\r\n \r\n :\r\n <>\r\n \r\n }\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n
\r\n :\r\n
\r\n \r\n Default\r\n \r\n
\r\n }\r\n \r\n
\r\n );\r\n }\r\n }\r\n }\r\n\r\n public handleTabChange = async (event, index: number) => {\r\n this.setState({ currentTabVal: index });\r\n await this.RefreshModel(index);\r\n };\r\n\r\n private GetActualStepIndex(): number {\r\n var steps = SubmissionStepsHedis;\r\n if (this.state.submissionData.component.includes(\"CAHPS\")) {\r\n steps = SubmissionStepsCahps\r\n }\r\n if (this.state.submissionData.component.includes(\"HOS\")) {\r\n steps = SubmissionStepsHos\r\n }\r\n\r\n let stepIndexNumber = 0;\r\n if (this.state.submissionData.activeStepNumber !== 0) {\r\n stepIndexNumber = steps.findIndex(x => x.Number === this.state.submissionData.activeStepNumber);\r\n\r\n //adjust the step index for audit not required subs (skipping audit lock stage)\r\n if (!this.state.submissionData.isAuditRequired && this.state.submissionData.activeStepNumber >= MARK_FINAL_HEDIS_HOS_STEP) {\r\n stepIndexNumber--;\r\n }\r\n }\r\n\r\n // Always move past the last step - this will make the last step be checked off\r\n if (stepIndexNumber + 1 === steps.length) {\r\n stepIndexNumber = stepIndexNumber + 1;\r\n }\r\n return stepIndexNumber;\r\n }\r\n\r\n private async RefreshModel(index) {\r\n switch (index) {\r\n case SUBMISSION_TAB:\r\n await this.getSubmissionSummary(false);\r\n break;\r\n case AUDITORS_TAB:\r\n this.getUserData();\r\n this.getAccounts();\r\n break;\r\n case ADMIN_TAB:\r\n this.getSubmissionActivities();\r\n this.getDetailedSubmissionDetails();\r\n this.getVendorMeasureGuids();\r\n break;\r\n case ALL_DOWNLOADS_TAB:\r\n this.getAllDownloads();\r\n break;\r\n case UPLOAD_HISTORY_TAB:\r\n this.getSubmissionFileHistory();\r\n break;\r\n }\r\n }\r\n private async getSubmissionActivities() {\r\n this.setState({ isSubmissionActivitiesLoading: true });\r\n const retval: IEvent[] | AjaxError = await ReportsService.GetSubmissionEvents$(this.props.user, this.state.submissionData.subId, this.state.submissionData.component).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n submissionActivities: retval.map(item => {\r\n return [\r\n item.timestamp,\r\n item.user,\r\n item.message\r\n ];\r\n })\r\n });\r\n }\r\n this.setState({ isSubmissionActivitiesLoading: false });\r\n }\r\n\r\n private async getDetailedSubmissionDetails() {\r\n this.setState({ isDetailedSubmissionDetailLoading: true });\r\n const retval = await SubmissionsService.GetDetailedSubmission$(this.props.user, this.state.submissionData.subId.toString(), this.state.submissionData.component).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n detailedSubmissionMeta: retval.metadatas.map(x => {\r\n return [\r\n x.key,\r\n x.value\r\n ];\r\n })\r\n });\r\n }\r\n this.setState({ isDetailedSubmissionDetailLoading: false });\r\n }\r\n\r\n private async getVendorMeasureGuids() {\r\n this.setState({ isVendorMeasureGuidsLoading: true });\r\n const retval: KeyValuePair[] = await SubmissionsService.GetVendorMeasureGuids$(this.props.user, this.state.submissionData.vendorId.toString()).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n vendorMeasureGuids: retval.map(x => {\r\n return [\r\n x.key,\r\n x.value\r\n ];\r\n })\r\n });\r\n }\r\n this.setState({ isVendorMeasureGuidsLoading: false });\r\n }\r\n\r\n private async GetAllAuthorizedUserActions() {\r\n var result = await UserManagerService.GetAllAuthorizedUserActions$(this.props.user, SUB_ID, this.state.submissionData.subId).toPromise();\r\n return result;\r\n }\r\n\r\n private async RefreshAuditorsList() {\r\n const apiCall = SubmissionsService.GetSubmissionAuditors$(this.props.user, this.state.submissionData.orgId, this.state.submissionData.subId);\r\n const userResponse = await apiCall.toPromise();\r\n if (userResponse instanceof AjaxError || !userResponse) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const usersData = userResponse.map(\r\n item => {\r\n return [\r\n item.roleUser.email,\r\n item.roleUser.roleType,\r\n item.salesforceUser.firstName,\r\n item.salesforceUser.lastName,\r\n item.roleUser.email\r\n ]\r\n }\r\n );\r\n this.setState({ users: usersData });\r\n }\r\n }\r\n\r\n private async deleteAuditorIconClick(tableMeta: any) {\r\n try {\r\n await SubmissionsService.UpdateAuditor$(this.props.user, this.state.submissionData.orgId, this.state.submissionData.subId, tableMeta.rowData[0], tableMeta.rowData[1], \"delete\").toPromise();\r\n }\r\n catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setState({ errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error) });\r\n }\r\n\r\n this.RefreshAuditorsList();\r\n }\r\n private selectedAccountChange(newValue): void {\r\n this.setState({ selectedAccount: newValue });\r\n }\r\n private selectedAccountLevelChange(newValue): void {\r\n this.setState({ selectedAccountLevel: newValue });\r\n }\r\n public async onClickAddAuditor(userName: string, accountLevel: string) {\r\n try {\r\n await SubmissionsService.UpdateAuditor$(this.props.user, this.state.submissionData.orgId, this.state.submissionData.subId, userName, accountLevel, \"add\").toPromise();\r\n }\r\n catch (ex) {\r\n const error = ex as AjaxError;\r\n this.setState({ errorMsg: ExceptionSerivce.StandardAjaxExceptionHandler(error) });\r\n }\r\n this.setState({ selectedAccount: \"\", selectedAccountLevel: \"\" });\r\n this.RefreshAuditorsList();\r\n }\r\n\r\n private getUserData = async (): Promise => {\r\n this.setState({ isAuditorTabLoading: true });\r\n const apiCall = SubmissionsService.GetSubmissionAuditors$(this.props.user, this.state.submissionData.orgId, this.state.submissionData.subId);\r\n const userResponse: ISubmissionUserPayload[] = await apiCall.toPromise();\r\n if (userResponse instanceof AjaxError || !userResponse) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const usersData = userResponse.map(\r\n item => {\r\n return [\r\n item.roleUser.email,\r\n item.roleUser.roleType,\r\n item.salesforceUser.firstName,\r\n item.salesforceUser.lastName,\r\n item.roleUser.email\r\n ]\r\n }\r\n );\r\n\r\n this.setState({\r\n users: usersData,\r\n isAuditorTabLoading: false\r\n });\r\n }\r\n }\r\n\r\n private getAccounts = async (): Promise => {\r\n const apiCall = AdministrationService.GetAllAuditors$(this.props.user);\r\n const userResponse = await apiCall.toPromise();\r\n if (userResponse instanceof AjaxError || !userResponse) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ allAccounts: userResponse });\r\n }\r\n }\r\n\r\n private fetchValidationData = async (): Promise => {\r\n if (this.state.submissionData.activeStepNumber === PLAN_LOCK_STEP || this.state.submissionData.activeStepNumber === MARK_FINAL_CAHPS_STEP || this.state.submissionData.activeStepNumber === ATTESTATION_HOS_STEP) {\r\n const apiCall = SubmissionsService.GetValidationData$(this.props.user, this.state.currentSubId, this.state.submissionData);\r\n const validations = await apiCall.toPromise();\r\n if (validations instanceof AjaxError || !validations) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ validation: validations });\r\n }\r\n }\r\n\r\n }\r\n\r\n private getSubmissionSummary = async (refresh: boolean): Promise => {\r\n if (refresh) {\r\n this.setState({ isGenericActionHappening: true });\r\n }\r\n else if (this.state.submissionData == null) {\r\n this.setMainTabLoadingState(true);\r\n }\r\n const apiCall = SubmissionsService.GetSubmissionSummary$(this.props.user, this.state.currentSubId, this.state.component);\r\n\r\n var tmpValidation = {\r\n submissionId: -1,\r\n urlString: \"\",\r\n headerUrlString: \"\",\r\n detailUrlString: \"\",\r\n validationText: \"\",\r\n validationErrors: []\r\n };\r\n //Clear out the validation display.\r\n this.setState({ validation: tmpValidation });\r\n\r\n const subSummary = await apiCall.toPromise();\r\n if (subSummary instanceof AjaxError || !subSummary) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n if (subSummary.hasSubmissionAccess) {\r\n this.setState({\r\n submissionData: subSummary,\r\n isOrgAdmin: AuthorizationPolicies.IsAdminForOrg(this.props.user, subSummary.orgId.toString())\r\n });\r\n }\r\n else {\r\n this.setMainTabLoadingState(false);\r\n }\r\n\r\n if (refresh) {\r\n this.setState({ isGenericActionHappening: false });\r\n }\r\n else {\r\n this.setMainTabLoadingState(false);\r\n }\r\n if (subSummary.hasSubmissionAccess) {\r\n this.fetchValidationData();\r\n }\r\n }\r\n }\r\n\r\n private setMainTabLoadingState = (loading: boolean) => {\r\n this.setState({ isMainTabLoading: loading });\r\n }\r\n\r\n private getSubmissionFileHistory = async (): Promise => {\r\n this.setState({ isHistoryTabLoading: true });\r\n const apiCall = SubmissionsService.GetUploadedDocsForSubmission$(this.props.user, this.state.submissionData.subId, this.state.component);\r\n const subHistory: IFilesUploadReportPayload[] = await apiCall.toPromise();\r\n if (subHistory instanceof AjaxError || !subHistory) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const historyData = subHistory.map(\r\n item => {\r\n return [\r\n item.savedName,\r\n item.originalName,\r\n item.component,\r\n item.validationStatus,\r\n item.createUser,\r\n item.createDate,\r\n ]\r\n }\r\n );\r\n\r\n this.setState({\r\n history: historyData,\r\n isHistoryTabLoading: false\r\n });\r\n }\r\n }\r\n\r\n private getAllDownloads = () => {\r\n this.setState({ isAllDownloadsTabLoading: true });\r\n const allDownloadsTableData = this.state.submissionData.submissionDownloads.map(\r\n item => {\r\n return [\r\n item.displayName,\r\n item.uploadDay + \" \" + item.uploadTime,\r\n item.uploadUser,\r\n item.key,\r\n item.isArchived\r\n ]\r\n }\r\n );\r\n\r\n this.setState({\r\n allDownloads: allDownloadsTableData,\r\n isAllDownloadsTabLoading: false\r\n });\r\n }\r\n\r\n private downloadFile = async (key: string): Promise => {\r\n var fileUrl = await this.getDownloadUrl(key);\r\n window.location.href = fileUrl;\r\n }\r\n\r\n private getDownloadUrl = async (key: string): Promise => {\r\n const apiCall = SubmissionsService.GetSubmissionLink$(\r\n this.props.user,\r\n this.state.submissionData.subId,\r\n this.state.component,\r\n this.state.submissionData.isFileUploaded,\r\n this.state.submissionData.isFileProcessed,\r\n this.state.submissionData.activeStepNumber,\r\n key,\r\n this.state.submissionData.productLine\r\n );\r\n const linkUrl = await apiCall.toPromise();\r\n\r\n return linkUrl;\r\n }\r\n\r\n private renderActiveComponent() {\r\n const { classes } = this.props;\r\n var adjustedStepNumber = this.state.submissionData.activeStepNumber;\r\n const isCahps = this.state.component.includes(\"CAHPS\");\r\n const isHOS = this.state.component.includes(\"HOS\");\r\n const isHedis = this.state.component.includes(\"HEDIS\") || this.state.component.includes(\"DST\");\r\n const isCahpsOnly = this.state.submissionData.isCahpsOnlySubmission;\r\n const canPublicReport = this.state.userAction.canManagePublicReporting;\r\n const isVendor = this.state.userAction.canUploadNonHedis;\r\n const canSignHedis = this.state.userAction.canSignAttestationHedis;\r\n const canReportOrSignHedis = canPublicReport || canSignHedis;\r\n const isHedisSignable = !this.state.submissionData.hedisSubInMarkFinalOrEarlier;\r\n var lockTitle = \"\";\r\n if (isCahps) {\r\n lockTitle = \"Mark Final\";\r\n }\r\n else if (isHedis) {\r\n lockTitle = \"Plan Lock\";\r\n }\r\n else if (isHOS) {\r\n lockTitle = \"Continue\";\r\n }\r\n\r\n switch (adjustedStepNumber) {\r\n case IMPORT_SUBMISSION_STEP:\r\n case MARK_FINAL_CAHPS_STEP:\r\n case ATTESTATION_HOS_STEP:\r\n case PLAN_LOCK_STEP:\r\n //Note: Returning a multi part frament rather than a single node, as it very much impacts rendering.\r\n return <>\r\n {(isHedis && this.state.userAction.canUploadHedis) || (!isHedis && this.state.userAction.canUploadNonHedis) ? <>\r\n \r\n \r\n \r\n \r\n File Management\r\n \r\n {this.state.submissionData.isFileUploadAllowed ?\r\n
\r\n {this.state.uploadSection && this.state.uploadSection.uploadValidationMessages && this.state.uploadSection.uploadValidationMessages.length > 0 ?\r\n
\r\n \r\n
:\r\n \"\"}\r\n
\r\n this.setState({ uploadSection: { ...this.state.uploadSection, dropzoneStatusStyle: classes.stripes } })}\r\n onDropRejected={() => this.setState({ uploadSection: { ...this.state.uploadSection, dropzoneStatusStyle: classes.rejectStripes } })}\r\n >\r\n {({ getRootProps, getInputProps }) => (\r\n \r\n \r\n \r\n \r\n \r\n Drag and drop file here\r\n \r\n \r\n \r\n \r\n or\r\n \r\n \r\n \r\n \r\n Select File\r\n \r\n \r\n \r\n \r\n Allowable format : {this.state.submissionData.requiredFileName}
\r\n
\r\n
\r\n
\r\n
\r\n )}\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.uploadSection.uploadCompletionPercent > 0 ? Status: : null}\r\n \r\n {this.state.uploadSection.uploadCompletionPercent > 0 && this.state.uploadSection.uploadCompletionPercent !== 100 ? : \"\"}\r\n {this.state.uploadSection.uploadCompletionPercent === 100 && !this.state.uploadSection.fileProcessingComplete ? \"Processing\" : null}\r\n {this.state.uploadSection.uploadCompletionPercent === 100 && this.state.uploadSection.fileProcessingComplete ? \"Complete\" : null}\r\n \r\n {this.state.uploadSection.uploadCompletionPercent === 100 ? : null}\r\n
\r\n
\r\n
\r\n : {this.state.submissionData.fileUploadNotAllowedReason}}\r\n \r\n \r\n
\r\n : null\r\n }\r\n\r\n {this.state.submissionData.isFileProcessed && (!this.state.submissionData.didValidationError || this.state.isSysAdmin) ?\r\n \r\n {this.state.uploadSection.uploadCompletionPercent === 100 && !this.state.uploadSection.fileProcessingComplete ?\r\n \r\n \r\n \r\n {lockTitle}\r\n \r\n \r\n \r\n \r\n Apply Plan Lock\r\n \r\n :\r\n \r\n \r\n \r\n \r\n {lockTitle}\r\n \r\n \r\n {\r\n (this.state.submissionData.didValidationError ?\r\n (this.state.isSysAdmin && !isHOS ? \"This submission has Validation Error(s). You may only lock it because you are a NCQA Admin.\" :\r\n isCahps || isHOS ? \"Your submission has Validation Error(s). You may not proceed to the next stage.\" : \"Your submission has Validation Error(s). You may not Plan Lock.\") : null)\r\n }\r\n \r\n \r\n {\r\n !this.state.submissionData.didValidationError && this.state.submissionData.didValidationWarning ?\r\n <>Your submission has encountered Validation warnings. Please review all warnings and verify the data are correct before proceeding. : null\r\n }\r\n \r\n \r\n {isHedis && !this.state.submissionData.didValidationError && this.state.userAction.canPlanLock ?\r\n <>Your data has been validated and ready for plan lock!\r\n\r\n Apply the plan lock after you have reviewed your data through the Auditor Review Table or Submissions Downloads.\r\n Your auditor will review once the lock is applied.\r\n \r\n : null\r\n }\r\n {isCahps && !this.state.userAction.canMarkFinalCahps ?\r\n <>Waiting for Vendor Admin or Vendor User to apply Mark Final. : null\r\n }\r\n {isHOS && !this.state.submissionData.didValidationError ? <>\r\n {this.state.userAction.canSignAttestationHos ?\r\n <>Please perform attestation and mark final processes using the bulk operation.\r\n :\r\n <>Only your organization's Designated Signer may sign the attestation and mark files final.\r\n Please have the Designated Signer log into IDSS, sign the attestation, and mark submissions final.\r\n }\r\n : null\r\n }\r\n \r\n \r\n \r\n {isCahps && this.state.userAction.canMarkFinalCahps ? this.renderCanMarkFinal() : null}\r\n {isHedis && this.state.userAction.canPlanLock ?\r\n
\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, planLockOpen: true } }) }}>\r\n Apply Plan Lock\r\n \r\n \r\n {this.state.dialogStatus.planLockTitle}\r\n \r\n \r\n {this.state.dialogStatus.planLockText}\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
}\r\n
: null}\r\n\r\n {this.state.submissionData.isFileProcessed && ((isHedis && this.state.userAction.canViewDownloadErrorsHedis) || (!isHedis && this.state.userAction.canViewDownloadErrorsNonHedis)) ?\r\n \r\n \r\n {this.state.uploadSection.uploadCompletionPercent === 100 && !this.state.uploadSection.fileProcessingComplete ?\r\n \r\n \r\n :\r\n (\r\n this.state.validation.validationErrors.length > 0 ?\r\n
\r\n {this.renderValdiationTable(this.state.validation)}\r\n
\r\n :\r\n \r\n \r\n Validations\r\n \r\n {this.state.uploadSection.uploadCompletionPercent === 100 && !this.state.uploadSection.fileProcessingComplete ?\r\n :\r\n isCahps && this.state.validationResult.validationSuccessful\r\n && this.state.validationResult.errors.length === 0\r\n && this.state.validationResult.fatalities.length === 0\r\n ?\r\n
\r\n \r\n
:\r\n\r\n this.renderValidationComponent(this.state.submissionData, this.state.validation)\r\n }\r\n
\r\n )\r\n }\r\n
\r\n
: null\r\n }\r\n\r\n\r\n\r\n {(adjustedStepNumber !== IMPORT_SUBMISSION_STEP) && (!isCahps || !this.state.submissionData.didValidationError) ?\r\n \r\n {this.renderSubmissionDownloads(isHedis)}\r\n : null}\r\n \r\n {this.renderSubmissionDetails()}\r\n \r\n {isCahps ?\r\n \r\n : null}\r\n \r\n case AUDIT_LOCK_STEP:\r\n return <>\r\n {this.state.userAction.canAuditLock && this.state.submissionData.isAuditRequired ? <>\r\n \r\n {this.state.submissionData.isFileProcessed ?\r\n \r\n \r\n \r\n Audit Lock\r\n \r\n
\r\n {this.state.userAction.canAuditLock ?\r\n \r\n Submission data are ready to be reviewed.\r\n\r\n Use the Submission Downloads or Bulk downloads section (on the left panel) to review reports.\r\n The Auditor Review Table should be used to make any audit designation changes.\r\n : null\r\n }\r\n {!(this.state.userAction.canPlanUnlock || this.state.userAction.canAuditLock) ?\r\n \r\n {this.state.dialogStatus.auditLockNoActionText}\r\n : null\r\n }\r\n
\r\n \r\n {this.state.userAction.canAuditLock ?\r\n <>\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, auditLockOpen: true } }) }}>\r\n Apply Audit Lock\r\n \r\n \r\n {this.state.dialogStatus.auditLockTitle}\r\n \r\n \r\n {this.state.dialogStatus.auditLockText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n : null\r\n }\r\n {this.state.userAction.canPlanUnlock ?\r\n this.renderUndoPlanLock() : null\r\n }\r\n \r\n
: null}\r\n
\r\n : null}\r\n \r\n {this.renderSubmissionDownloads(isHedis)}\r\n \r\n\r\n \r\n {this.renderSubmissionDetails()}\r\n \r\n \r\n case MARK_FINAL_HEDIS_HOS_STEP:\r\n return <>\r\n {(isHedis && (this.state.userAction.canMarkFinalHedis || this.state.userAction.canAuditUnlock)) || (isHOS) ?\r\n \r\n {this.state.submissionData.isFileProcessed ?\r\n \r\n \r\n \r\n Finalization\r\n \r\n \r\n {isHedis && this.state.userAction.canMarkFinalHedis ?\r\n <>Your Submission has been Audit locked.\r\n\r\n You may proceed with marking your submission final after you have reviewed the Auditor Review Table.\r\n Once marked final, the attestation process will begin, and your signer will complete the submission process.\r\n \r\n : null\r\n }\r\n \r\n \r\n {isHedis ?\r\n \r\n
\r\n {this.state.userAction.canMarkFinalHedis ?\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, markFinalOpen: true } }) }}>\r\n Apply Mark Final\r\n : null\r\n }\r\n \r\n {this.state.dialogStatus.markFinalTitle}\r\n \r\n \r\n {this.state.dialogStatus.markFinalText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.userAction.canAuditUnlock && this.state.submissionData.isAuditRequired ?\r\n
\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, auditLockUndoOpen: true } }) }}>\r\n Undo Audit Lock\r\n \r\n \r\n {this.state.dialogStatus.auditLockUndoTitle}\r\n \r\n \r\n {this.state.dialogStatus.auditLockUndoText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
: null\r\n }\r\n {this.state.userAction.canPlanUnlock && !this.state.submissionData.isAuditRequired ?\r\n this.renderUndoPlanLock() : null\r\n }\r\n\r\n
\r\n :\r\n \r\n {this.state.userAction.canSubmissionGenericAdmin && !this.state.enableHosInterimDataSubmission ?\r\n
\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, hosAttestationUndoOpen: true } }) }}>\r\n Undo Attestation\r\n \r\n \r\n Undo Attestation\r\n \r\n \r\n Are you sure you want to Undo Attestation for this Submission?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n : null}\r\n \r\n {this.state.userAction.canMarkFinalHos ? \"Please perform mark final processes using the bulk operation.\"\r\n : \"Only your organization's Designated Signer may mark files final. Please have the Designated Signer log into IDSS and mark submissions final.\"\r\n }\r\n \r\n
\r\n }\r\n
: null}\r\n
\r\n : null}\r\n \r\n {this.renderSubmissionDownloads(isHedis)}\r\n \r\n \r\n {this.renderSubmissionDetails()}\r\n \r\n\r\n\r\n \r\n case ATTESTATION_CAHPS_STEP:\r\n case ATTESTATION_HEDIS_STEP:\r\n return <>\r\n {(\r\n (isHedis && (canReportOrSignHedis)) ||\r\n (isCahps) ||\r\n (isHOS && (canPublicReport || this.state.userAction.canSignAttestationHos)\r\n )\r\n\r\n ) ? <>\r\n \r\n {this.state.submissionData.isFileProcessed ?\r\n this.state.attestation.attestationStarted && (!isCahps || isCahpsOnly) && (canReportOrSignHedis) ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n \r\n \r\n Attestation\r\n \r\n {!SharedUtility.IsNullOrUndefined$(this.state.submissionData.isPublicReported) && !SharedUtility.IsNullOrUndefined$(this.state.submissionData.reportableEvents) ?\r\n \r\n \r\n Public Reporting: {this.state.submissionData.isPublicReported ? 'Yes' : 'No'}\r\n \r\n : null}\r\n {/* isHedis - This is true when a submission contains HEDIS/DST component */}\r\n {/* isCahps - This is true when a submission contains HEDIS & CAHPS components */}\r\n {/* isCahpsOnly - This is true when a submission contains only CAHPS component */}\r\n {/* isVendor - This is true when a user has vendoruser access or a NCQA ADMIN */}\r\n {/* canPublicReport - This is true when a user has Public Reporting access or a NCQA ADMIN */}\r\n {\r\n (isCahps && isVendor && !canPublicReport)\r\n ?
\r\n \r\n Submission has been marked final. No further actions are needed from survey vendors.\r\n \r\n
: null\r\n }\r\n {\r\n (isCahps && !canPublicReport && !isVendor)\r\n ?
\r\n \r\n No further action needed.\r\n \r\n
: null\r\n }\r\n {\r\n (isCahps && !isCahpsOnly && canPublicReport && isHedisSignable)\r\n ?
\r\n \r\n To sign your attestation, please go to HEDIS submission home page.\r\n \r\n
: null\r\n }\r\n {\r\n (isCahps && !isCahpsOnly && canPublicReport && !isHedisSignable)\r\n ?
\r\n \r\n HEDIS submission stage Mark Final must be completed to start the attestation.\r\n \r\n
: null\r\n }\r\n \r\n All the system generated files are available for download from \"All Downloads\" tab.\r\n \r\n {\r\n ((isHedis || (isCahps && isCahpsOnly)) && !canPublicReport) ?\r\n \r\n {this.state.dialogStatus.attestationNoActionText}\r\n : null\r\n }\r\n
\r\n \r\n {\r\n (isCahps && isCahpsOnly && canPublicReport)\r\n ?
\r\n { this.setState({ attestation: { ...this.state.attestation, attestationStarted: true } }) }}>\r\n {SharedUtility.IsNullOrUndefined$(this.state.submissionData.reportableEvents) ? \"Start Attestation\" : \"Change Attestation\"}\r\n \r\n
: null\r\n }\r\n {\r\n (isHedis && (canPublicReport || canSignHedis)) ||\r\n (isHOS && (canPublicReport || this.state.userAction.canSignAttestationHos))\r\n ?\r\n
\r\n { this.setState({ attestation: { ...this.state.attestation, attestationStarted: true } }) }}>\r\n {SharedUtility.IsNullOrUndefined$(this.state.submissionData.reportableEvents) ? \"Start Attestation\" : \"Change Attestation\"}\r\n \r\n
\r\n : null\r\n }\r\n {this.state.userAction.canSubmissionGenericAdmin ?\r\n
\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, markFinalUndoOpen: true } }) }}>\r\n UnMark Final\r\n \r\n \r\n {this.state.dialogStatus.markFinalUndoTitle}\r\n \r\n \r\n {this.state.dialogStatus.markFinalUndoText}\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 : null\r\n }\r\n
\r\n :\r\n \r\n \r\n \r\n \r\n Attestation\r\n \r\n \r\n No further actions are needed on your part. Designated organization users should proceed to complete the submission.\r\n \r\n \r\n \r\n \r\n }\r\n {isCahps ?\r\n \r\n {this.renderSubmissionDownloads(isHedis)}\r\n : null\r\n }\r\n \r\n {this.renderSubmissionDetails()}\r\n \r\n \r\n case COMPLETE_STEP:\r\n return <>\r\n \r\n \r\n \r\n \r\n
\r\n {\r\n isHedis ?\r\n \r\n Congratulations! Submission process complete.

\r\n Download final files from the \"All downloads\" tab or \"Bulk Downloads\" on the left panel.\r\n
:\r\n \r\n Submission process complete.\r\n \r\n }\r\n
\r\n
\r\n \r\n {this.state.userAction.canSubmissionGenericAdmin ?\r\n
\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, attestationUndoOpen: true } }) }}>\r\n Rollback\r\n \r\n \r\n {this.state.dialogStatus.attestationUndoTitle}\r\n \r\n \r\n {this.state.dialogStatus.attestationUndoText}\r\n \r\n \r\n \r\n \r\n {isCahps || isHOS ?\r\n :\r\n }\r\n \r\n \r\n
: null\r\n }\r\n
\r\n
\r\n
\r\n {isCahps ?\r\n \r\n {this.renderSubmissionDownloads(isHedis)}\r\n : null\r\n }\r\n\r\n \r\n {this.renderSubmissionDetails()}\r\n \r\n \r\n default:\r\n return
This is not a valid stage
;\r\n\r\n }\r\n }\r\n\r\n private renderUndoPlanLock() {\r\n const { classes } = this.props;\r\n return (\r\n <>\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, planLockUndoOpen: true } }) }}>\r\n Undo Plan Lock\r\n \r\n \r\n {this.state.dialogStatus.planLockUndoTitle}\r\n \r\n \r\n {this.state.dialogStatus.planLockUndoText}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private validationColumnWithTooltip(value: string, tableMeta: MUIDataTableMeta) {\r\n let indicatorKey: string = tableMeta.rowData[4];\r\n let ttStr: string = (indicatorKey === null || indicatorKey.length === 0) ? tableMeta.rowData[5] : (\"[IndicatorKey:\" + indicatorKey + \"] \" + tableMeta.rowData[5]);\r\n return (\r\n \r\n
{value}
\r\n
\r\n );\r\n }\r\n private renderValdiationTable(validation: IValidationResponsePayload) {\r\n let showMeasureCode: boolean = this.state.validation.validationErrors.filter(x => x.measureCode !== null && x.measureCode.length > 0).length > 0;\r\n let showShortIndicatorName: boolean = this.state.validation.validationErrors.filter(x => x.shortIndicatorName !== null && x.shortIndicatorName.length > 0).length > 0;\r\n let showSeverity: boolean = this.state.validation.validationErrors.filter(x => x.severity !== null && x.severity.length > 0).length > 0;\r\n let showRuleName: boolean = this.state.validation.validationErrors.filter(x => x.ruleName !== null && x.ruleName.length > 0).length > 0;\r\n const validationErrorsColumns: MUIDataTableColumnDef[] = [\r\n {\r\n label: \"Measure\",\r\n name: \"MeasureCode\",\r\n options: {\r\n filter: showMeasureCode,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n },\r\n display: (showMeasureCode ? 'true' : 'false') as ('true' | 'false' | 'excluded'),\r\n }\r\n },\r\n {\r\n label: \"Indicator\",\r\n name: \"ShortIndicatorName\",\r\n options: {\r\n filter: showShortIndicatorName,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n },\r\n display: (showShortIndicatorName ? 'true' : 'false') as ('true' | 'false' | 'excluded'),\r\n }\r\n },\r\n {\r\n name: \"Severity\",\r\n options: {\r\n filter: showSeverity,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (showRuleName ? this.validationColumnWithTooltip(value, tableMeta) :
{value}
);\r\n },\r\n display: (showSeverity ? 'true' : 'false') as ('true' | 'false' | 'excluded'), //column not show for CAHPS\r\n }\r\n },\r\n {\r\n label: \"Rule Name\",\r\n name: \"RuleName\",\r\n options: {\r\n filter: showRuleName,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n },\r\n display: (showRuleName ? 'true' : 'false') as ('true' | 'false' | 'excluded'),\r\n }\r\n },\r\n {\r\n name: \"IndicatorKey\",\r\n options: {\r\n display: 'excluded',\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Message\",\r\n options: {\r\n // Based on ruleName\r\n display: (showRuleName ? 'excluded' : 'true') as ('true' | 'false' | 'excluded'),\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Details\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\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 this.ShowValidationDialog(tableMeta.rowData[0], tableMeta.rowData[1], tableMeta.rowData[2], tableMeta.rowData[3], tableMeta.rowData[4], tableMeta.rowData[5])}>\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n },\r\n display: (showRuleName ? 'true' : 'false') as ('true' | 'false' | 'excluded'),\r\n },\r\n }\r\n ];\r\n const validationErrorsOptions: MUIDataTableOptions = {\r\n filterType: \"multiselect\" as any,\r\n sort: true,\r\n filter: this.state.submissionData.component.includes(\"DST\") || this.state.submissionData.component.includes(\"HEDIS\"),\r\n print: false,\r\n download: !(this.state.submissionData.component.includes(\"DST\") || this.state.submissionData.component.includes(\"HEDIS\")),\r\n downloadOptions: {\r\n filename: 'Validations.csv',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n caseSensitive: false,\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n const { classes } = this.props;\r\n return (\r\n
\r\n this.CloseValidationDialog()} className={classes.dialogM} TransitionComponent={Grow}>\r\n \r\n \r\n Validation Details\r\n \r\n \r\n \r\n \r\n \r\n {this.state.currentValidationItem !== null && this.state.currentValidationItem.measureCode !== null && this.state.currentValidationItem.measureCode.length > 0 ?\r\n \r\n Measure Code\r\n \r\n {this.state.currentValidationItem.measureCode}\r\n \r\n : null\r\n }\r\n {this.state.currentValidationItem !== null && this.state.currentValidationItem.shortIndicatorName !== null && this.state.currentValidationItem.shortIndicatorName.length > 0 ?\r\n \r\n Short Indicator Name\r\n \r\n {this.state.currentValidationItem.shortIndicatorName}\r\n \r\n : null\r\n }\r\n {this.state.currentValidationItem !== null && this.state.currentValidationItem.indicatorKey !== null && this.state.currentValidationItem.indicatorKey.length > 0 ?\r\n \r\n Indicator Key\r\n \r\n {this.state.currentValidationItem.indicatorKey}\r\n \r\n : null\r\n }\r\n {this.state.currentValidationItem !== null && this.state.currentValidationItem.severity !== null && this.state.currentValidationItem.severity.length > 0 ?\r\n \r\n Severity\r\n \r\n {this.state.currentValidationItem.severity}\r\n \r\n : null\r\n }\r\n {this.state.currentValidationItem !== null && this.state.currentValidationItem.ruleName !== null && this.state.currentValidationItem.ruleName.length > 0 ?\r\n \r\n Rule Name\r\n \r\n {this.state.currentValidationItem.ruleName}\r\n \r\n : null\r\n }\r\n {this.state.currentValidationItem !== null && this.state.currentValidationItem.message !== null && this.state.currentValidationItem.message.length > 0 ?\r\n \r\n Message\r\n \r\n {this.state.currentValidationItem.message}\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 Validations}\r\n data={validation.validationErrors.map((v) => {\r\n return [\r\n v.measureCode,\r\n v.shortIndicatorName,\r\n v.severity,\r\n v.ruleName,\r\n v.indicatorKey,\r\n v.message\r\n ]\r\n })}\r\n columns={validationErrorsColumns}\r\n options={validationErrorsOptions}\r\n />\r\n \r\n \r\n
\r\n );\r\n }\r\n private ShowValidationDialog = (measureCode: string, shortIndicatorName: string, severity: string, ruleName: string, indicatorKey: string, message: string) => {\r\n this.setState({\r\n validationDialogOpen: true,\r\n currentValidationItem: {\r\n measureCode: measureCode,\r\n shortIndicatorName: shortIndicatorName,\r\n severity: severity,\r\n ruleName: ruleName,\r\n indicatorKey: indicatorKey,\r\n message: message\r\n }\r\n });\r\n }\r\n private CloseValidationDialog() {\r\n this.setState({\r\n validationDialogOpen: false,\r\n });\r\n }\r\n private renderValidationComponent(payload: ISubmissionHomePayload, validation: IValidationResponsePayload) {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n {(payload.didValidationError || payload.didValidationWarning) ? <>\r\n \r\n : null}\r\n \r\n \r\n {this.renderValidationByType(payload, validation)}\r\n \r\n \r\n );\r\n }\r\n\r\n private renderValidationByType = (payload: ISubmissionHomePayload, validation: IValidationResponsePayload) => {\r\n const { classes } = this.props;\r\n return
\r\n \r\n
\r\n }\r\n\r\n private downloadValidationReport = (payload: ISubmissionHomePayload, validation: IValidationResponsePayload) => {\r\n var subId = payload.subId;\r\n var validationText = validation.validationText;\r\n var fileName = '';\r\n if (this.state.component.includes(\"CAHPS\")) {\r\n fileName = this.state.submissionData.submissionDownloads.filter(x => x.displayName === \"ValidationResults\")[0].originalName;\r\n }\r\n else {\r\n fileName = `VALIDATION${subId}.CSV`;\r\n }\r\n saveAs(new Blob([validationText], { type: 'text/plain' }), fileName);\r\n }\r\n\r\n private renderCanMarkFinal() {\r\n const isCahps = this.state.component.includes(\"CAHPS\");\r\n const isHOS = this.state.component.includes(\"HOS\");\r\n const isHedis = this.state.component.includes(\"HEDIS\") || this.state.component.includes(\"DST\");\r\n return
\r\n {(isHedis && this.state.userAction.canMarkFinalHedis) || (isCahps && this.state.userAction.canMarkFinalCahps) || (isHOS && this.state.userAction.canMarkFinalHos) ?\r\n
\r\n {\r\n isHedis ? \r\n Your Submission has been Audit locked.\r\n\r\n You may proceed with marking your submission final after you have reviewed the Auditor Review Table.\r\n Once marked final, the attestation process will begin, and your signer will complete the submission process.\r\n : null\r\n }\r\n { this.setState({ dialogStatus: { ...this.state.dialogStatus, markFinalOpen: true } }) }}>\r\n Apply Mark Final\r\n \r\n \r\n {this.state.dialogStatus.markFinalTitle}\r\n \r\n \r\n {this.state.dialogStatus.markFinalText}\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 public onDrop(files) {\r\n var validForUpload = true;\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadCompletionPercent: 0 } });\r\n this.setState({ uploadSection: { ...this.state.uploadSection, fileProcessingComplete: false } });\r\n const data = new FormData();\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadValidationMessages: [] } });\r\n if (files.length === 0) {\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadValidationMessages: [this.CreateValidationMessage('Please select a valid file')] } });\r\n validForUpload = false;\r\n }\r\n\r\n files.forEach(file => {\r\n if (submissionType === \"DST\") {\r\n if (file.name === null || !file.name.toLocaleLowerCase().includes(this.state.submissionData.productLine.toLocaleLowerCase())\r\n || !file.name.toLocaleLowerCase().includes(this.state.submissionData.subId.toString().toLocaleLowerCase())) {\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadValidationMessages: [this.CreateValidationMessage('Invalid file name (need to include product line and submission Id for the current submission).')] } });\r\n validForUpload = false;\r\n return;\r\n }\r\n }\r\n else {\r\n if (file.name === null || !file.name.toLocaleLowerCase().includes(this.state.submissionData.subId.toString().toLocaleLowerCase())) {\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadValidationMessages: [this.CreateValidationMessage('Invalid file name. Submission ID must match the current submission.')] } });\r\n validForUpload = false;\r\n return;\r\n }\r\n }\r\n data.append(\"files\", file, file.name);\r\n });\r\n\r\n let submissionType = this.state.component;\r\n if (submissionType === \"DST\") {\r\n submissionType = \"HEDIS\";\r\n }\r\n\r\n if (validForUpload) {\r\n const req = request.post(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + \"/api/bulkupload/uploadfiles\");\r\n req.query({ submissionType: submissionType });\r\n req.query({ submissionId: this.state.submissionData.subId });\r\n req.set({ 'Authorization': 'Bearer ' + this.props.user.access_token });\r\n\r\n // show upload progress \r\n req.on('progress', event => {\r\n const percent = Math.floor(event.percent);\r\n if (!isNaN(percent)) {\r\n if (percent >= 100) {\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadCompletionPercent: 100 } });\r\n } else {\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadCompletionPercent: percent } });\r\n }\r\n }\r\n });\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadFiles: files } });\r\n // send file(s) to server\r\n req.send(data)\r\n .end((err, res) => this.postUploadFiles(err, res));\r\n }\r\n }\r\n\r\n private handleAttestationFlagChange(attestationFlag, checked) {\r\n switch (attestationFlag) {\r\n case \"PublicReporting\":\r\n this.setState({ submissionData: { ...this.state.submissionData, isPublicReported: checked } });\r\n break;\r\n case \"Somc\":\r\n this.setState({ submissionData: { ...this.state.submissionData, somc: checked } });\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n private async postUploadFiles(err, res) {\r\n if (err) {\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadValidationMessages: [this.CreateValidationMessage(\"Upload not Successful\")] } });\r\n }\r\n else {\r\n this.setState({ validationResult: res.body.uploadDetail.validationResult });\r\n if (res.body.success) {\r\n this.setState({\r\n uploadSection: {\r\n ...this.state.uploadSection,\r\n fileProcessingComplete: true,\r\n uploadSuccessful: true\r\n }\r\n });\r\n }\r\n else {\r\n this.setState({\r\n uploadSection: {\r\n ...this.state.uploadSection,\r\n fileProcessingComplete: true,\r\n uploadSuccessful: false,\r\n uploadValidationMessages: res.body.uploadDetail.validationResult.messages\r\n }\r\n });\r\n }\r\n\r\n\r\n await this.getSubmissionSummary(true);\r\n }\r\n }\r\n\r\n private executePlanAction = async (action: SubmissionActionTypes): Promise => {\r\n this.setState({ isGenericActionHappening: true });\r\n const apiCall = SubmissionsService.ExecutePlanAction$(this.props.user, this.state.currentSubId, this.state.submissionData.component, action);\r\n const userResponse = await apiCall.toPromise();\r\n if (userResponse instanceof AjaxError || !userResponse) {\r\n this.setRedirectState();\r\n this.setState({ isGenericActionHappening: false });\r\n }\r\n else {\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, markFinalUndoOpen: false } });\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, markFinalOpen: false } });\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, planLockOpen: false } });\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, auditLockUndoOpen: false } });\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, auditLockOpen: false } });\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, planLockUndoOpen: false } });\r\n this.setState({ attestation: { ...this.state.attestation, attestationStarted: false } });\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, attestationUndoOpen: false } });\r\n\r\n await this.getSubmissionSummary(true);\r\n this.setState({ isGenericActionHappening: false });\r\n }\r\n }\r\n\r\n private async unSubmitFile() {\r\n this.setState({ isGenericActionHappening: true });\r\n const retval = await SubmissionsService.UnSubmitFile$(this.props.user, this.state.submissionData.subId, this.state.submissionData.component).toPromise();\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadCompletionPercent: 0 } });\r\n this.setState({ uploadSection: { ...this.state.uploadSection, fileProcessingComplete: false } });\r\n this.setState({ uploadSection: { ...this.state.uploadSection, uploadValidationMessages: [] } });\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ dialogStatus: { ...this.state.dialogStatus, clearMeasuresOpen: false } });\r\n this.setState({ currentTabVal: 0 });\r\n await this.getSubmissionSummary(true);\r\n this.setState({ isGenericActionHappening: false });\r\n console.log(this.state);\r\n alert(\"All measures data from this submission has been cleared.\")\r\n }\r\n }\r\n\r\n private async reprocessSubmission() {\r\n const groupId = uuidv4();\r\n const retval = await SubmissionsService.ReprocessSubmission$(this.props.user, this.state.submissionData.subId, this.state.submissionData.component, groupId).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n }\r\n\r\n private async updateSubmissionAttestationFlags() {\r\n this.setState({ isAdminUpdatingAttestFlags: true });\r\n const attestationFlags: ISubmissionAttestationFlags = {\r\n submissionId: this.state.submissionData.subId,\r\n component: this.state.submissionData.component,\r\n isPublicReported: this.state.submissionData.isPublicReported || false,\r\n somc: this.state.submissionData.somc || false,\r\n sourceLastModified: this.state.submissionData.attestationModifiedDate\r\n };\r\n const retval = await SubmissionsService.UpdateSubmissionAttestationFlags$(this.props.user, attestationFlags).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ isFlagUpdateSuccessful: true },\r\n () => setTimeout(() => {\r\n this.setState({ isFlagUpdateSuccessful: false });\r\n }, 3000));\r\n await this.getSubmissionSummary(true);\r\n }\r\n\r\n this.setState({ isAdminUpdatingAttestFlags: false });\r\n }\r\n\r\n private renderSubmissionDetails = () => {\r\n const { classes } = this.props;\r\n return (Renderings.renderSubmissionSummary(this.state.auths, this.state.submissionData, classes))\r\n }\r\n\r\n private renderSubmissionDownloads = (isHedis: boolean) => {\r\n const { classes } = this.props;\r\n const showValidation = (isHedis && this.state.userAction.canViewDownloadErrorsHedis) || (!isHedis && this.state.userAction.canViewDownloadErrorsNonHedis);\r\n return (isHedis && this.state.userAction.canDownloadResultHedis) || (!isHedis && (this.state.userAction.canDownloadResultCahps || this.state.userAction.canDownloadResultHos)) ? <>\r\n \r\n {this.state.uploadSection.uploadCompletionPercent === 100 && !this.state.uploadSection.fileProcessingComplete ?\r\n \r\n \r\n Submission Downloads\r\n \r\n \r\n \r\n :\r\n \r\n \r\n Submission Downloads\r\n \r\n \r\n Contains available downloads\r\n \r\n \r\n {this.state.submissionData.submissionDownloads.filter(x => !x.isArchived && !x.isAllDownloadsOnly && !x.isLicense && (showValidation || !x.displayName.toLocaleLowerCase().includes(\"validation\"))).map((tile, i) => (\r\n \r\n \r\n \r\n \r\n this.downloadFile(tile.key)}\r\n startIcon={}\r\n >\r\n {tile.displayName}\r\n \r\n \r\n \r\n {tile.explanation}\r\n \r\n \r\n \r\n {tile.uploadDay}\r\n {tile.uploadTime}\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n {this.state.submissionData.submissionDownloads.length === 0 ?\r\n \r\n You have no downloads available.\r\n : null}\r\n \r\n }\r\n \r\n : null\r\n\r\n }\r\n\r\n private handleAttestationStepsComplete = (event: React.MouseEvent) => {\r\n event.preventDefault();\r\n this.executePlanAction(SubmissionActionTypes.Attestation);\r\n this.setState({ attestation: { ...this.state.attestation, attestationSigned: true } });\r\n\r\n }\r\n\r\n\r\n private handleAttestationStepsCancel = (event: React.MouseEvent) => {\r\n event.preventDefault();\r\n\r\n this.setState({ attestation: { ...this.state.attestation, attestationStarted: false } });\r\n }\r\n\r\n private handleAttestationUndo = async () => {\r\n this.setState({ isGenericActionHappening: true });\r\n const apiCall = SubmissionsService.UndoSubmissionAttestation$(this.props.user, this.state.currentSubId, this.state.component);\r\n const undoResponse = await apiCall.toPromise();\r\n if (undoResponse instanceof AjaxError || !undoResponse) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.executePlanAction(SubmissionActionTypes.AttestationUndo);\r\n }\r\n this.setState({ isGenericActionHappening: false });\r\n }\r\n\r\n private CreateValidationMessage = (message: string): ValidationMessage => {\r\n return { message: message, severity: 4 };\r\n }\r\n\r\n private getValidationMessageList = () => {\r\n const { classes } = this.props;\r\n const isCahps = this.state.component.includes(\"CAHPS\");\r\n var message = 'Validation issues found';\r\n if (isCahps) {\r\n message = 'Validation errors found';\r\n }\r\n if (this.state.uploadSection.uploadValidationMessages.length > 1\r\n || this.state.uploadSection.uploadValidationMessages.filter(m => m.message === \"Revise\" || m.message === \"Review\").length >= 1) {\r\n return (
{message}
);\r\n }\r\n else {\r\n return (\r\n
    \r\n {this.state.uploadSection.uploadValidationMessages.map(function (valMessage, i) {\r\n return (
  • )\r\n })}\r\n
\r\n );\r\n }\r\n\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst MeasurerViewerViewWithState = connect(genericMapStateToProps)(SubmissionHome);\r\n\r\n// STYLES CONTAINER\r\nconst SubmissionHomePage = withStyles(styles)(MeasurerViewerViewWithState);\r\n\r\nexport default SubmissionHomePage;\r\n\r\n\r\n","import \"@material-ui/core\";\r\nimport {\r\n Paper, Button, TextField, Typography, Fade, Dialog, DialogTitle, DialogActions, DialogContent, TextareaAutosize, Table,TableBody, TableRow, TableCell } from \"@material-ui/core\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport * as React from 'react';\r\nimport { connect } from \"react-redux\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport MUIDataTable, { MUIDataTableOptions} from \"mui-datatables\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IdssLog } from '../../DataClasses/DbData';\r\nimport DbService from '../Services/DbService';\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { FileCopy as FileCopyIcon } from '@material-ui/icons';\r\nimport ArrowForwardIosIcon from '@material-ui/icons/ArrowForwardIos';\r\nimport ArrowBackIosIcon from '@material-ui/icons/ArrowBackIos';\r\nimport moment from \"moment\";\r\nimport { KeyboardDatePicker, MuiPickersUtilsProvider } from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\nimport Select from \"react-select\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface ILogViewState {\r\n data: any[],\r\n isLoading: boolean,\r\n userNameFilter: string,\r\n subIdFilter: string,\r\n orgIdFilter: string,\r\n logLevelFilter: any,\r\n messageFilter: string,\r\n fromDateFilter: string,\r\n toDateFilter: string,\r\n redirect: boolean,\r\n openLogDialog: boolean,\r\n selectedLogId: number,\r\n selectedLogDate: string,\r\n selectedLogMessage: string,\r\n selectedLogException: string\r\n}\r\n\r\nconst eventLevels = ['All', 'Fatal', 'Error', 'Warning', 'Information', 'Trace', 'Debug'];\r\n\r\nconst logColumns =\r\n [\r\n {\r\n name: \"Id\",\r\n options: {\r\n display: false,\r\n }\r\n },\r\n {\r\n name: \"TimeStamp\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Message\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Exception\",\r\n options: {\r\n display: false,\r\n }\r\n },\r\n {\r\n name: \"EventName\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"SubmissionId\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"OrganizationId\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"UserName\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Level\",\r\n options: {\r\n filter: false,\r\n }\r\n }\r\n ];\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\n// VIEW\r\nclass LogsView extends React.Component {\r\n\r\n private subListingOptions: MUIDataTableOptions = {\r\n filter: false,\r\n search: false,\r\n sort: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n serverSide: true,\r\n selectableRows: 'none',\r\n rowsPerPage: 100, \r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n page: 0,\r\n onChangePage: (currentPage: number) => {\r\n this.refreshModel(currentPage);\r\n },\r\n onChangeRowsPerPage: (numberOfRows: number) => {\r\n this.subListingOptions.rowsPerPage = numberOfRows;\r\n this.refreshModel(0);\r\n },\r\n onRowClick: (rowData, rowState) => {\r\n let logId = parseInt(rowData[0]);\r\n this.getSelectedLogDetails(logId);\r\n },\r\n setRowProps: row => {\r\n return {\r\n style: { cursor: \"pointer\" }\r\n };\r\n }\r\n };\r\n\r\n constructor(props: any) {\r\n super(props);\r\n var weekAgo = new Date();\r\n weekAgo.setDate(weekAgo.getDate() - 7);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n userNameFilter: \"\",\r\n subIdFilter: \"\",\r\n orgIdFilter: \"\",\r\n logLevelFilter: \"\",\r\n messageFilter: \"\",\r\n fromDateFilter: weekAgo.toLocaleString(),\r\n toDateFilter: (new Date()).toLocaleString(),\r\n redirect: false,\r\n openLogDialog: false,\r\n selectedLogDate: \"\",\r\n selectedLogMessage: \"\",\r\n selectedLogException: \"\",\r\n selectedLogId: -1\r\n };\r\n\r\n }\r\n\r\n public componentDidMount() {\r\n this.refreshModel(0);\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n private getSelectedLogDetails(logId: number) {\r\n var item = this.state.data.filter((x) => x[0] === logId)[0];\r\n if (item) {\r\n this.setState({\r\n openLogDialog: true,\r\n selectedLogId: logId,\r\n selectedLogDate: item[1] ?? \"\",\r\n selectedLogMessage: item[2] ?? \"\",\r\n selectedLogException: item[3] ?? \"No exception details available to show\"\r\n });\r\n }\r\n else {\r\n this.setState({\r\n openLogDialog: false,\r\n selectedLogId: -1,\r\n selectedLogDate: \"\",\r\n selectedLogMessage: \"\",\r\n selectedLogException: \"\"\r\n });\r\n }\r\n }\r\n\r\n private getLogDetails(mode: string) {\r\n var currentLogId = this.state.selectedLogId;\r\n var id = 0;\r\n if (currentLogId > 0) {\r\n var rowIndex = this.state.data.findIndex((x) => x[0] === currentLogId);\r\n if (rowIndex > -1) {\r\n if (mode === \"previous\") { \r\n rowIndex--;\r\n }\r\n else {\r\n rowIndex++;\r\n }\r\n if (rowIndex < 0 || !this.state.data[rowIndex]) {\r\n rowIndex = 0;\r\n }\r\n id = this.state.data[rowIndex][0] ?? null;\r\n if (id) {\r\n this.getSelectedLogDetails(id);\r\n }\r\n }\r\n \r\n }\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n const levelOption = eventLevels.map(m => ({\r\n label: m,\r\n value: m\r\n }));\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n Filters\r\n \r\n \r\n \r\n \r\n this.handleFromDateChange(e)}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\",\r\n }}\r\n autoOk={true}\r\n />\r\n \r\n \r\n \r\n \r\n this.handleToDateChange(e)}\r\n KeyboardButtonProps={{\r\n \"aria-label\": \"change date\",\r\n }}\r\n autoOk={true}\r\n />\r\n \r\n \r\n \r\n ({ ...base, zIndex: 9999 }) }} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n this.setState({ userNameFilter: e.target.value })}\r\n onBlur={e => this.setState({ userNameFilter: e.target.value })}\r\n margin=\"normal\"\r\n />\r\n \r\n \r\n this.setState({ subIdFilter: e.target.value })}\r\n onBlur={e => this.setState({ subIdFilter: e.target.value })}\r\n margin=\"normal\"\r\n />\r\n \r\n \r\n this.setState({ orgIdFilter: e.target.value })}\r\n onBlur={e => this.setState({ orgIdFilter: e.target.value })}\r\n margin=\"normal\"\r\n />\r\n \r\n \r\n this.setState({ messageFilter: e.target.value })}\r\n onBlur={e => this.setState({ messageFilter: e.target.value })}\r\n margin=\"normal\"\r\n />\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {this.state.isLoading?\r\n : \r\n <>\r\n
\r\n \r\n
\r\n \r\n \r\n Log details\r\n
\r\n \r\n \r\n \r\n  \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \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.selectedLogDate}\r\n \r\n
 
\r\n \r\n Message\r\n \r\n
\r\n \r\n
\r\n \r\n Exception \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n Close\r\n \r\n \r\n
\r\n \r\n }\r\n
\r\n );\r\n }\r\n\r\n private selectedLevelChange(newValue) {\r\n this.setState({logLevelFilter: newValue});\r\n }\r\n private handleFromDateChange(date) {\r\n var weekAgo = new Date();\r\n weekAgo.setDate(weekAgo.getDate() - 7);\r\n if (!isNaN(Date.parse(date)) || date===null || date===\"\") {\r\n this.setState({ fromDateFilter: date ? date.toISOString() : weekAgo.toLocaleString() });\r\n } else {\r\n this.setState({ fromDateFilter: date });\r\n }\r\n }\r\n\r\n private handleToDateChange(date) {\r\n if (!isNaN(Date.parse(date)) || date===null || date===\"\") {\r\n this.setState({ toDateFilter: date ? date.toISOString() : (new Date().toLocaleString()) });\r\n } else {\r\n this.setState({ toDateFilter: date });\r\n }\r\n }\r\n\r\n private handleLogDialogClose = () => {\r\n this.setState({\r\n openLogDialog: false\r\n });\r\n }\r\n\r\n private handleCopyException = () => {\r\n navigator.clipboard.writeText(this.state.selectedLogException)\r\n }\r\n\r\n private refreshModel = async (page: number) => {\r\n this.setState({ isLoading: true });\r\n this.subListingOptions.page = page;\r\n\r\n const countCall = DbService.GetLogCount$(this.props.user, this.state.subIdFilter.trim(), this.state.userNameFilter.trim(),\r\n this.state.orgIdFilter, (this.state.logLevelFilter===\"\" || this.state.logLevelFilter.value === \"All\") ? \"\" : this.state.logLevelFilter.value, this.state.messageFilter, this.state.fromDateFilter, this.state.toDateFilter);\r\n\r\n const countLogs = await countCall.toPromise();\r\n\r\n if (countLogs instanceof AjaxError) {\r\n this.setRedirectState();\r\n }\r\n else if (countLogs && countLogs>0) {\r\n this.subListingOptions.count = countLogs;\r\n \r\n\r\n const apiCall = DbService.GetLogs$(this.props.user, this.state.subIdFilter.trim(), this.state.userNameFilter.trim(),\r\n this.state.orgIdFilter, (this.state.logLevelFilter===\"\" || this.state.logLevelFilter.value === \"All\") ? \"\" : this.state.logLevelFilter.value, this.state.messageFilter,\r\n this.state.fromDateFilter, this.state.toDateFilter,\r\n (page + 1), this.subListingOptions.rowsPerPage);\r\n\r\n const foundLogs: IdssLog[] | AjaxError = await apiCall.toPromise();\r\n\r\n if (foundLogs instanceof AjaxError || !foundLogs) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({\r\n data: foundLogs.map(\r\n item => {\r\n return [\r\n item.logId,\r\n moment(item.timeStamp).format(\"MM/DD/YYYY h:mm:ss a\"),\r\n item.message,\r\n item.exception,\r\n item.eventName,\r\n item.submissionId,\r\n item.organizationId,\r\n item.userName,\r\n item.level\r\n ]\r\n }\r\n )\r\n }); \r\n }\r\n }\r\n else {\r\n this.setState({data: []});\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst LogsViewWithState = connect(genericMapStateToProps)(LogsView);\r\n\r\n// STYLES CONTAINER\r\nconst LogsViewPage = withStyles(styles)(LogsViewWithState);\r\n\r\nexport default LogsViewPage;","import \"@material-ui/core\";\r\nimport { Button, Fade, Grid, Menu, MenuItem, Typography, Dialog, DialogTitle, DialogActions, DialogContent, DialogContentText, CircularProgress, Link, Divider, Fab, Box, TextField, InputLabel } from \"@material-ui/core\";\r\nimport { createStyles, Theme, WithStyles, withStyles } from '@material-ui/core/styles';\r\nimport { Autorenew, ArrowDropDown as ArrowDropDownIcon } from '@material-ui/icons';\r\nimport MUIDataTable, { MUIDataTableColumnDef, MUIDataTableOptions } from \"mui-datatables\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { genericMapStateToProps, IGenericUserProps } from \"../../DataClasses/GenericUser\";\r\nimport { ISelectedSubmissions } from \"../../DataClasses/SubmissionData\";\r\nimport SharedUtility from \"../../Utilities/SharedUtility\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport Select from \"react-select\";\r\nimport ProcessingDisplay from \"../Shared/ProcessingDisplay\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\ninterface ISubmissionAdministrationState {\r\n isLoading: boolean,\r\n isProcessing: boolean,\r\n openDialog: boolean;\r\n dialogConfirmationText: string,\r\n selectedSubmissions: ISelectedSubmissions[],\r\n rowsSelected: number[],\r\n submissionData: any[],\r\n anchorEl: HTMLElement | null,\r\n selectedAction: string,\r\n statusMessage: string,\r\n redirect: boolean, \r\n openBulkDialog: boolean,\r\n bulkSubmissionIds: string,\r\n bulkSelectedSubType: any,\r\n isBulkReprocessing: boolean,\r\n showBulkReprocessSuccess: boolean\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\nconst ITEM_HEIGHT: number = 48;\r\nconst HEDIS = \"HEDIS\";\r\nconst HOS = \"HOS\";\r\nconst CAHPS = \"CAHPS\";\r\nconst REPROCESS = \"Reprocess\";\r\nconst ROLLBACK = \"Rollback\";\r\nconst UNATTEST = \"UnAttest\";\r\nconst UNMARKFINAL = \"UnMarkFinal\";\r\nconst UNSUBMIT = \"Unsubmit\";\r\nlet distinctComponents = [];\r\nlet distinctStages = [];\r\nlet distinctSubIds = [];\r\n\r\nconst SubmissionActions = [\r\n { \"Action\": REPROCESS },\r\n { \"Action\": ROLLBACK },\r\n { \"Action\": UNATTEST },\r\n { \"Action\": UNMARKFINAL },\r\n { \"Action\": UNSUBMIT },\r\n];\r\n\r\n// VIEW\r\nclass SubmissionAdministrationView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ISubmissionAdministrationState\r\n> {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state =\r\n {\r\n isLoading: true,\r\n openDialog: false,\r\n dialogConfirmationText: '',\r\n isProcessing: false,\r\n selectedSubmissions: [],\r\n rowsSelected: [],\r\n submissionData: [],\r\n statusMessage: '',\r\n anchorEl: null,\r\n selectedAction: \"Available Actions\",\r\n redirect: false,\r\n openBulkDialog: false,\r\n bulkSubmissionIds: '',\r\n bulkSelectedSubType: '',\r\n isBulkReprocessing: false,\r\n showBulkReprocessSuccess: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.refreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n const open = Boolean(this.state.anchorEl);\r\n\r\n const subListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: false,\r\n print: false,\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n viewColumns: true,\r\n //responsive: \"scrollFullHeight\",\r\n selectableRows: \"multiple\",\r\n rowsSelected: this.state.rowsSelected,\r\n selectToolbarPlacement: 'none',\r\n caseSensitive: false,\r\n onRowSelectionChange: (rowsSelected, allRows) => {\r\n let selectedRows: ISelectedSubmissions[];\r\n selectedRows = [];\r\n allRows.forEach(row => {\r\n if (this.state.statusMessage !== \"\") {\r\n this.setStatusMessageState();\r\n }\r\n const dataRow = this.state.submissionData[row.dataIndex];\r\n selectedRows.push({\r\n submissionId: dataRow[1] || 0,\r\n productLine: dataRow[4] ? dataRow[4].toString() : \"\",\r\n component: dataRow[3] ? dataRow[3].toString() : \"\",\r\n stage: dataRow[12] ? dataRow[12].toString() : \"\",\r\n });\r\n });\r\n\r\n this.setState({\r\n selectedSubmissions: selectedRows,\r\n rowsSelected: allRows.map(row => row.dataIndex)\r\n });\r\n }\r\n };\r\n\r\n const subListingColumns: MUIDataTableColumnDef[] = [\r\n {\r\n name: \"Org ID\",\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Sub ID\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Org Name\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Component\",\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Product Line\",\r\n options: {\r\n filter: true,\r\n filterType: 'multiselect',\r\n filterOptions: {\r\n names: ['Commercial', 'Medicaid', 'Medicare', 'Exchange']\r\n },\r\n customFilterListOptions:\r\n {\r\n render: (value: any) => {\r\n return \"Product Line: \" + value.toString();\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: \"Validation Status\",\r\n options: {\r\n filterType: 'multiselect',\r\n filter: true,\r\n display: 'excluded'\r\n }\r\n },\r\n {\r\n name: \"Reporting Product\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Special Project\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Special Area\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"CMS Contract\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Reporting Unit Id\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Received\",\r\n options: {\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Stage\",\r\n options: {\r\n filter: true,\r\n filterType: 'multiselect',\r\n customFilterListOptions:\r\n {\r\n render: (value: any) => {\r\n return \"Stage: \" + value.toString();\r\n }\r\n }\r\n }\r\n }\r\n ];\r\n\r\n return (\r\n \r\n \r\n \r\n Submissions\r\n \r\n \r\n \r\n {this.setState({openBulkDialog: true})}}>\r\n Click Here for Bulk Reprocessing\r\n \r\n
\r\n \r\n \r\n Bulk Reprocessing Submissions\r\n \r\n \r\n \r\n \r\n \r\n \r\n Select Submission Type\r\n ({ ...base, zIndex: 9999 }) }} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.isBulkReprocessing?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Reprocessing the submissions...\r\n \r\n \r\n
: null\r\n }\r\n {this.state.showBulkReprocessSuccess?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n Submissions reprocessed\r\n \r\n \r\n
: null\r\n }\r\n
\r\n
\r\n
\r\n \r\n \r\n {this.state.showBulkReprocessSuccess?\r\n this.setState({bulkSubmissionIds:\"\", bulkSelectedSubType:\"\", showBulkReprocessSuccess:false, isBulkReprocessing:false})}\r\n disabled={false}\r\n >\r\n Reset\r\n :\r\n \r\n \r\n Reprocess\r\n }\r\n this.setState({bulkSubmissionIds:\"\", bulkSelectedSubType:\"\", openBulkDialog: false})}\r\n disabled={false}\r\n >\r\n Close\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n {this.state.isLoading ?\r\n \r\n :\r\n \r\n
\r\n {this.renderActions(open)}\r\n \r\n {this.renderActions(open)}\r\n
\r\n
\r\n }\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n private async refreshModel() {\r\n this.setState({ isLoading: true });\r\n\r\n const retval = await SubmissionsService.GetSubmissionsForUser$(\r\n this.props.user, true\r\n ).toPromise();\r\n\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n let submissionData: any[] = retval\r\n .map(item => {\r\n return [\r\n item.orgId,\r\n item.subId,\r\n item.orgName,\r\n item.component.replace(\"DST\", \"HEDIS\"),\r\n item.productLine,\r\n item.validationStatus,\r\n item.reportingProduct,\r\n item.specialProject,\r\n item.specialArea,\r\n item.cmsContractNumber,\r\n item.reportingUnitId,\r\n item.received,\r\n SharedUtility.GetStageCleanName(item.submissionStatus)\r\n ];\r\n });\r\n\r\n this.setState({\r\n submissionData: submissionData\r\n });\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n private onBulkReprocessingSubmit = ()=> {\r\n this.setState({isBulkReprocessing: true});\r\n var count=this.state.bulkSubmissionIds.split(',').length;\r\n var time = 8000;\r\n if(count<8) {\r\n time = count * 1000;\r\n }\r\n const response = SubmissionsService.BulkSubmissionActionByIdsStr$(this.props.user, this.state.bulkSubmissionIds, this.state.bulkSelectedSubType.value.replace(\"HEDIS\", \"DST\"), REPROCESS).toPromise();\r\n if (response instanceof AjaxError || !response) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({isBulkReprocessing: true}, \r\n () => setTimeout(() => {\r\n this.setState({ isBulkReprocessing: false, showBulkReprocessSuccess: true });\r\n }, time));\r\n }\r\n }\r\n\r\n private onChangeBulkSubIds(e) {\r\n this.setState({bulkSubmissionIds: e.target.value});\r\n }\r\n private onChangeBulkSubmissionType(newValue){\r\n this.setState({\r\n bulkSelectedSubType: newValue===null?\"\":newValue,\r\n });\r\n }\r\n\r\n private getSubmissionTypeOptions(){\r\n return [\r\n {value: \"HEDIS\", label: \"HEDIS\"},\r\n {value: \"AdultCAHPS\", label: \"AdultCAHPS\"},\r\n {value: \"ChildCAHPS\", label: \"ChildCAHPS\"},\r\n {value: \"ChildCAHPSCCC\", label: \"ChildCAHPSCCC\"},\r\n {value: \"HOS\", label: \"HOS\"}\r\n ];\r\n }\r\n private handleButtonMenuClick = (event: React.MouseEvent) => {\r\n this.setState({ anchorEl: event.currentTarget });\r\n }\r\n\r\n private closeDialog() {\r\n this.setState({ openDialog: false });\r\n this.setSelectedActionState();\r\n }\r\n\r\n private handleButtonMenuClose = (action, event) => {\r\n\r\n var selectedSubmissions = this.state.selectedSubmissions;\r\n\r\n if (typeof action === 'string') {\r\n this.setSelectedActionState(action);\r\n }\r\n else {\r\n this.setSelectedActionState(null);\r\n }\r\n\r\n //validate selected options\r\n if (!this.validate(action, selectedSubmissions)) {\r\n return false;\r\n }\r\n\r\n //show confirmation dialog \r\n this.setState({ openDialog: true, dialogConfirmationText: `Are you sure you want to perform the ${action} action?` });\r\n }\r\n\r\n private validate = (action, selectedSubmissions: ISelectedSubmissions[]): boolean => {\r\n this.getSelectedSubmissionDetails(selectedSubmissions);\r\n\r\n //1. check at least one submission is selected\r\n if (selectedSubmissions.length === 0) {\r\n this.setSelectedActionState();\r\n this.setStatusMessageState(\"Please select a submission\");\r\n return false;\r\n }\r\n\r\n //2. check for multiple components \r\n if (distinctComponents.length > 1) {\r\n this.setSelectedActionState();\r\n this.setStatusMessageState(\"Please select only one submission component type at a time\");\r\n return false;\r\n }\r\n\r\n //3. check for multiple stages\r\n if (distinctStages.length > 1) {\r\n this.setSelectedActionState();\r\n this.setStatusMessageState(\"Please select only one submission stage at a time\");\r\n return false;\r\n }\r\n\r\n var selectedComponent = distinctComponents[0];\r\n var selectedStage = distinctStages[0];\r\n var errorText = `${action} action cannot be performed for the selected stage (\"${selectedStage}\")`;\r\n\r\n //4. validate Unattest for CAHPS\r\n var defaultReturn = false;\r\n if (action === REPROCESS) {\r\n defaultReturn = true;\r\n }\r\n else if (action === UNATTEST) {\r\n defaultReturn = true;\r\n if (selectedComponent.includes(CAHPS)) {\r\n this.setSelectedActionState();\r\n this.setStatusMessageState(`This action (\"${action}\") is not applicable for CAHPS submissions`);\r\n return false;\r\n }\r\n else if ((selectedComponent === HEDIS && selectedStage !== \"Complete\") ||\r\n (selectedComponent === HOS && selectedStage !== \"Apply Mark Final\")) {\r\n this.setActionAndErrorMessage(errorText);\r\n return false;\r\n }\r\n } else if (action === UNSUBMIT) { //5. validate Unsubmit & selected stage\r\n defaultReturn = true;\r\n if ((selectedComponent.includes(CAHPS) && selectedStage !== \"Apply Mark Final\") ||\r\n (selectedComponent === HEDIS && selectedStage !== \"Apply Plan Lock\") ||\r\n (selectedComponent === HOS && selectedStage !== \"Validations/Attestation\")) {\r\n this.setActionAndErrorMessage(errorText);\r\n return false;\r\n }\r\n } else if (action === ROLLBACK && selectedStage !== \"Complete\") { //6. validate Rollback & selected stage\r\n defaultReturn = true;\r\n this.setActionAndErrorMessage(errorText);\r\n return false;\r\n } else if (action === UNMARKFINAL) { // //7. validate Unmarkfinal & selected stage\r\n defaultReturn = true;\r\n if (((selectedComponent.includes(CAHPS) || selectedComponent === HOS) && (selectedStage !== \"Complete\" && selectedStage !== \"Finalize Attestation\")) ||\r\n (selectedComponent === HEDIS && selectedStage !== \"Finalize Attestation\")) {\r\n this.setActionAndErrorMessage(errorText);\r\n return false;\r\n }\r\n }\r\n return defaultReturn;\r\n }\r\n\r\n private getSelectedSubmissionDetails = (selectedSubmissions: ISelectedSubmissions[]) => {\r\n //get distinct components\r\n distinctComponents = [...new Set(selectedSubmissions.map(sub => sub.component))]\r\n //get distinct stages\r\n distinctStages = [...new Set(selectedSubmissions.map(sub => sub.stage))];\r\n //get distinct subids\r\n distinctSubIds = [...new Set(selectedSubmissions.map(sub => sub.submissionId))];\r\n }\r\n\r\n private handleBulkSubmissionAction = () => {\r\n var action = this.state.selectedAction;\r\n var selectedComponent = distinctComponents[0];\r\n\r\n if (selectedComponent === HEDIS)\r\n selectedComponent = \"DST\";\r\n\r\n //do bulk process\r\n this.setState({ isProcessing: true });\r\n const retval = SubmissionsService.BulkSubmissionAction$(this.props.user, distinctSubIds, selectedComponent, action).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n this.setPostProcessingState();\r\n }\r\n else {\r\n this.setPostProcessingState();\r\n this.setActionAndErrorMessage();\r\n this.setState({ rowsSelected: [], selectedSubmissions: [], submissionData: [] });\r\n this.refreshModel();\r\n }\r\n }\r\n\r\n private setActionAndErrorMessage = (message = null) => {\r\n this.setSelectedActionState();\r\n this.setStatusMessageState(message);\r\n }\r\n\r\n private setSelectedActionState = (action = null) => {\r\n this.setState({ anchorEl: null, selectedAction: action ?? \"Available Actions\" });\r\n }\r\n\r\n private setStatusMessageState = (message = null) => {\r\n this.setState({ statusMessage: message ?? \"\" });\r\n }\r\n\r\n private setPostProcessingState = () => {\r\n this.setState({ isProcessing: false, openDialog: false });\r\n }\r\n\r\n private renderActions = (open: boolean) => {\r\n const { classes } = this.props;\r\n return (\r\n\r\n
\r\n \r\n {this.state.statusMessage}\r\n \r\n \r\n {this.state.isProcessing ? : null}\r\n \r\n {this.state.selectedAction} \r\n \r\n \r\n {SubmissionActions.map(item => (\r\n this.handleButtonMenuClose(item.Action, event)}>\r\n {item.Action}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n {this.state.dialogConfirmationText}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n Yes\r\n \r\n \r\n No\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst SubmissionAdministrationPageWithState = connect(\r\n genericMapStateToProps\r\n)(SubmissionAdministrationView);\r\n\r\n// STYLES CONTAINER\r\nconst SubmissionAdministrationPage = withStyles(styles)(\r\n SubmissionAdministrationPageWithState\r\n);\r\n\r\nexport default SubmissionAdministrationPage;\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { Typography, Fade, Paper, Button } from \"@material-ui/core\"; \r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport * as validator from \"validator\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport { AddCircle } from \"@material-ui/icons\";\r\nimport AlertDialog from \"../Shared/AlertDialog\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport ErrorDialog from '../Shared/ErrorDialog';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nexport interface IDialogProperties {\r\n description: string;\r\n title: string;\r\n user: string;\r\n}\r\n\r\nexport interface IAuditorsListViewStateStore {\r\n auditors: any[];\r\n isLoading: boolean;\r\n filterText: string;\r\n errorMsg: string;\r\n isProcessing: boolean;\r\n deleteAuditorConfirmDialogOpen: boolean;\r\n deleteAuditorDialog: IDialogProperties,\r\n redirect: boolean,\r\n auditorEmail: string\r\n}\r\n\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\n// VIEW\r\nclass AuditorsView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAuditorsListViewStateStore\r\n > {\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n this.state = {\r\n auditors: [],\r\n isLoading: true,\r\n filterText: \"\", \r\n deleteAuditorConfirmDialogOpen: false,\r\n deleteAuditorDialog: {\r\n description: \"\",\r\n title: \"\",\r\n user: \"\"\r\n },\r\n errorMsg: \"\",\r\n redirect: false,\r\n isProcessing: false,\r\n auditorEmail: \"\"\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n const auditorListOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n const auditorListColumns = [\r\n {\r\n name: \"Auditor\",\r\n width: 600,\r\n options: {\r\n filter: true\r\n }\r\n }, \r\n {\r\n name: \"Action\",\r\n width: 50,\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n
\r\n this.ShowAuditorDeleteDialog(tableMeta.rowData[0])}>\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 this.setState({ errorMsg: \"\" })}\r\n />\r\n\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {this.state.isLoading ? :\r\n
\r\n Auditors}\r\n data={this.state.auditors}\r\n columns={auditorListColumns}\r\n options={auditorListOptions}\r\n />
}\r\n this.CloseDeleteAuditorConfirmDialog()}\r\n isButton1Clicked={this.state.isProcessing}\r\n />\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retVal = await AdministrationService.GetAllAuditors$(\r\n this.props.user\r\n ).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const auditors = retVal.map(item => {\r\n return [item];\r\n }); \r\n this.setState({\r\n auditors: auditors\r\n });\r\n\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n private validate = (userEmail: string): boolean => {\r\n var error = \"\";\r\n if (validator.isEmpty(userEmail)) {\r\n error = \"Required\";\r\n } else if (!validator.isLength(userEmail, { min: 1, max: 100 })) {\r\n error = \"Email can be no longer than 100 characters\";\r\n } else if (!validator.isEmail(userEmail)) {\r\n error = \"Email is not in a valid format\";\r\n }\r\n\r\n this.setState({ errorMsg: error });\r\n if (error === \"\") {\r\n return true;\r\n }\r\n return false;\r\n };\r\n\r\n private handleTextChange = (event: any) => {\r\n this.setState({ auditorEmail: event.target.value.trim() });\r\n }\r\n\r\n private addAuditor = async (userEmail: string) => {\r\n if (!this.validate(userEmail)) {\r\n return false;\r\n }\r\n try {\r\n this.setProcessingState(true);\r\n const addResp = await AdministrationService.AddAuditor(\r\n this.props.user,\r\n this.state.auditorEmail\r\n ).toPromise();\r\n\r\n if (addResp instanceof AjaxError || !addResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.RefreshModel();\r\n this.setState({ auditorEmail: \"\" });\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private DeleteAuditor = async () => {\r\n try {\r\n this.setProcessingState(true);\r\n const deleteResp = await AdministrationService.DeleteAuditor(\r\n this.props.user,\r\n this.state.deleteAuditorDialog.user\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.RefreshModel();\r\n this.CloseDeleteAuditorConfirmDialog();\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n } \r\n\r\n private setProcessingState = (value: boolean) => {\r\n this.setState({ isProcessing: value });\r\n }\r\n\r\n private ShowAuditorDeleteDialog = (userEmail) => {\r\n this.setState({\r\n deleteAuditorConfirmDialogOpen: true,\r\n deleteAuditorDialog: {\r\n title: \"Delete Auditor \" + userEmail + \"?\",\r\n description: \"Are you sure you'd like to delete auditor \" + userEmail + \"?\",\r\n user: userEmail\r\n }\r\n });\r\n }\r\n\r\n private CloseDeleteAuditorConfirmDialog = () => {\r\n this.setState({\r\n deleteAuditorConfirmDialogOpen: false\r\n });\r\n } \r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AuditorListPageWithState = connect(\r\n genericMapStateToProps\r\n)(AuditorsView);\r\n\r\n// STYLES CONTAINER\r\nconst AuditorListPage = withStyles(styles)(AuditorListPageWithState);\r\n\r\nexport default AuditorListPage;\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { Typography, Fade, Paper, Button, CircularProgress } from \"@material-ui/core\"; \r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n progress: {\r\n verticalAlign: 'middle',\r\n paddingLeft: '5px'\r\n },\r\n spacer: {\r\n paddingLeft: '5px'\r\n },\r\n paperStyle: {\r\n flexGrow: 1,\r\n padding: theme.spacing(2, 2),\r\n },\r\n extractTable: {\r\n paddingBottom: '10px',\r\n border: '1px solid #eeeeee',\r\n borderTop: 'none',\r\n boxShadow: '0px 1px 1px 1px #eeeeee',\r\n borderCollapse: 'collapse',\r\n borderSpacing: '0',\r\n '& tbody tr': {\r\n borderBottom: '1px solid #eeeeee',\r\n },\r\n '& tbody td': {\r\n verticalAlign: 'middle',\r\n paddingLeft: theme.spacing(1),\r\n },\r\n '& thead tr': {\r\n borderBottom: '1px solid #eeeeee',\r\n },\r\n '& thead th': {\r\n color: '#4f758b',\r\n textAlign: 'left',\r\n padding: theme.spacing(1),\r\n fontSize: '1.1em'\r\n },\r\n '& thead th:nth-child(2)': {\r\n textAlign: 'center'\r\n },\r\n '& thead th:nth-child(3)': {\r\n textAlign: 'center'\r\n },\r\n '& tbody td:nth-child(2)': {\r\n textAlign: 'center',\r\n fontWeight: 'bold' \r\n },\r\n }\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nexport interface FileExtractOption {\r\n value: string, \r\n label: string,\r\n hidden: boolean\r\n}\r\n\r\nexport interface IDataExtractState {\r\n isLoading: boolean,\r\n redirect: boolean,\r\n isProcessing: boolean,\r\n isExtractionSuccessful: boolean,\r\n data: Map,\r\n errorMessage: string,\r\n selectedDataExtractionType: string,\r\n extractOptions: FileExtractOption[],\r\n processingState: string\r\n}\r\n\r\n// VIEW\r\nclass SubmissionDataExtractView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IDataExtractState\r\n > {\r\n\r\n private extractOptions: FileExtractOption[] = [\r\n { value: 'All', label: 'Extract imported submissions', hidden: true },\r\n { value: 'NoErrors', label: 'Extract submissions with any of the following Validation Status: NoIssues, Warnings', hidden: true },\r\n {\r\n value: 'NoSchemaErrors', label: 'Extract submissions with any of the following Validation Statuses: NoIssues, Warnings, Errors, ErrorsAndWarnings',\r\n hidden: true\r\n },\r\n { value: 'PlanLocked', label: 'Extract plan locked submissions', hidden: true },\r\n { value: 'AuditLocked', label: 'Extract audit locked submissions', hidden: true },\r\n { value: 'Attested', label: 'Extract attested submissions', hidden: true },\r\n ];\r\n\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n redirect: false,\r\n isProcessing: false,\r\n isExtractionSuccessful: false,\r\n data: null,\r\n errorMessage: \"\",\r\n selectedDataExtractionType: \"\",\r\n extractOptions: this.extractOptions,\r\n processingState: \"extraction\"\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n \r\n return (\r\n <>\r\n {this.state.isLoading ? :\r\n \r\n \r\n \r\n Submission Data Extract\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.extractOptions.map((e, index) =>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n } \r\n \r\n
DescriptionCountActionVerify
{e.label}{this.state.data[e.value]}\r\n \r\n \r\n {!e.hidden ?\r\n :\r\n null\r\n }\r\n
\r\n  \r\n {this.state.isProcessing ?\r\n <>\r\n \r\n \r\n \r\n Data {this.state.processingState} in progress... Please wait...\r\n \r\n \r\n \r\n :\r\n null\r\n } \r\n {this.state.errorMessage !== \"\" ? \r\n \r\n {this.state.errorMessage}\r\n \r\n : null\r\n }\r\n {this.state.errorMessage === \"\" && this.state.isExtractionSuccessful ?\r\n \r\n \r\n Data extraction successful! After few minutes please click the \"Verify\" button to verify the destination files count.\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 private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retVal = await SubmissionsService.GetSubmissionDataExtractStatistics$(this.props.user).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else { \r\n this.setState({\r\n data: retVal,\r\n isLoading: false\r\n });\r\n }\r\n }\r\n\r\n private async extractSubmissions(dataExtractionType: string) {\r\n this.setState({ isExtractionSuccessful: false, errorMessage: \"\", processingState: \"extraction\" });\r\n this.setProcessingState(true);\r\n const retVal = await SubmissionsService.ExtractSubmissions$(this.props.user, dataExtractionType).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n //update the extract options to show the appropriate Verify button\r\n let allOptions: FileExtractOption[] = JSON.parse(JSON.stringify(this.state.extractOptions));\r\n for(let option of allOptions){\r\n option.hidden = true;\r\n }\r\n let updatedExtractOptions = allOptions.map(option => {\r\n if (option.value === dataExtractionType) {\r\n return Object.assign({}, option, {\r\n hidden: false\r\n });\r\n }\r\n return option;\r\n });\r\n this.setState({ extractOptions: updatedExtractOptions, isExtractionSuccessful: true });\r\n this.setProcessingState(false);\r\n } \r\n }\r\n\r\n private async verifyDestinationCount(dataExtractionType: string) {\r\n var errorMessage = \"No issues found!\";\r\n this.setState({ isExtractionSuccessful: false, errorMessage: \"\", processingState: \"verification\" });\r\n this.setProcessingState(true);\r\n const retVal = await SubmissionsService.VerifyDataExtraction$(this.props.user, dataExtractionType).toPromise();\r\n if (retVal instanceof AjaxError) {\r\n this.setRedirectState();\r\n }\r\n else { \r\n this.setProcessingState(false); \r\n if (retVal !== \"\") {\r\n errorMessage = retVal;\r\n }\r\n this.setState({ errorMessage: errorMessage });\r\n }\r\n }\r\n\r\n private setProcessingState = (value: boolean) => {\r\n this.setState({ isProcessing: value });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst SubmissionDataExtractPageWithState = connect(\r\n genericMapStateToProps\r\n)(SubmissionDataExtractView);\r\n\r\n// STYLES CONTAINER\r\nconst SubmissionDataExtractPage = withStyles(styles)(SubmissionDataExtractPageWithState);\r\n\r\nexport default SubmissionDataExtractPage;\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { Typography, Paper, Grid, Fab, CircularProgress } from \"@material-ui/core\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport classNames from 'classnames';\r\nimport Dropzone from 'react-dropzone';\r\nimport request from 'superagent';\r\nimport saveAs from 'file-saver';\r\nimport SharedUtility from '../../Utilities/SharedUtility';\r\nimport ProcessingDisplay from \"../Shared/ProcessingDisplay\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n paperStyle: {\r\n flexGrow: 1,\r\n padding: theme.spacing(2, 2),\r\n },\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nexport interface IConverterState {\r\n redirect: boolean,\r\n isProcessing: boolean,\r\n dropzoneStatusStyle: string,\r\n uploadCompletionPercent: number,\r\n selectedFileName: string\r\n}\r\n\r\n// VIEW\r\nclass LegacyFileConverterView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IConverterState\r\n> {\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n this.state = {\r\n redirect: false,\r\n isProcessing: false,\r\n dropzoneStatusStyle: \"\",\r\n uploadCompletionPercent: 0,\r\n selectedFileName: \"\"\r\n };\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n //private setRedirectState() {\r\n // this.setState({ redirect: true });\r\n //}\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n Legacy File Conversion\r\n \r\n this.setState({ dropzoneStatusStyle: classes.stripes })}\r\n onDropRejected={() => this.setState({ dropzoneStatusStyle: classes.rejectStripes })}\r\n >\r\n {({ getRootProps, getInputProps }) => (\r\n \r\n \r\n \r\n \r\n \r\n Drag and drop file here\r\n \r\n \r\n \r\n \r\n or\r\n \r\n \r\n \r\n \r\n Select Legacy Xml File\r\n \r\n \r\n \r\n \r\n )}\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.uploadCompletionPercent > 0 ? Status: : null}\r\n \r\n {this.state.uploadCompletionPercent > 0 && this.state.uploadCompletionPercent !== 100 ? : \"\"}\r\n {this.state.uploadCompletionPercent === 100 && !this.state.isProcessing ? \"Processing\" : null}\r\n {this.state.uploadCompletionPercent === 100 && this.state.isProcessing ? \"Complete\" : null}\r\n \r\n {this.state.uploadCompletionPercent === 100 ? : null}\r\n
\r\n
\r\n
\r\n \r\n );\r\n }\r\n\r\n private onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.setProcessingState(true);\r\n\r\n const data = new FormData();\r\n if (acceptedFiles.length === 0) {\r\n alert('Please select a valid file');\r\n return;\r\n }\r\n\r\n acceptedFiles.forEach(file => {\r\n this.setState({ selectedFileName: file.name });\r\n data.append(\"files\", file, file.name);\r\n });\r\n\r\n const req = request.post(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + \"/api/submissions/TransformLegacyXmlToNewXml\");\r\n req.set({ 'Authorization': 'Bearer ' + this.props.user.access_token });\r\n\r\n // show upload progress \r\n req.on('progress', event => {\r\n const percent = Math.floor(event.percent);\r\n if (!isNaN(percent)) {\r\n if (percent >= 100) {\r\n this.setState({ uploadCompletionPercent: 100 });\r\n } else {\r\n this.setState({ uploadCompletionPercent: percent });\r\n }\r\n }\r\n });\r\n\r\n // send file(s) to server\r\n req.send(data)\r\n .end((err, res) => this.postUploadFiles(err, res));\r\n };\r\n\r\n private postUploadFiles = (err, res) => {\r\n this.setProcessingState(false);\r\n\r\n if (err) {\r\n alert(\"Legacy file conversion not Successful\");\r\n }\r\n else {\r\n if (res.body !== \"\") {\r\n const data = SharedUtility.Str2ab$(res.body);\r\n saveAs(new Blob([data], { type: \"application/octet-stream\" }), `${this.state.selectedFileName}_V2.xml`);\r\n }\r\n }\r\n this.setState({\r\n uploadCompletionPercent: 0,\r\n });\r\n }\r\n\r\n private setProcessingState = (value: boolean) => {\r\n this.setState({ isProcessing: value });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst LegacyFileConverterPageWithState = connect(\r\n genericMapStateToProps\r\n)(LegacyFileConverterView);\r\n\r\n// STYLES CONTAINER\r\nconst LegacyFileConverterPage = withStyles(styles)(LegacyFileConverterPageWithState);\r\n\r\nexport default LegacyFileConverterPage;\r\n","import * as React from \"react\";\r\nimport \"@material-ui/core\";\r\nimport {\r\n Theme,\r\n WithStyles,\r\n createStyles,\r\n withStyles,\r\n } from \"@material-ui/core/styles\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps,\r\n } from \"../../DataClasses/GenericUser\";\r\nimport {IVendor, IVendorMeasure, IVendorSubOrgMapping } from \"../../DataClasses/VendorMeasure\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Button, Checkbox, Dialog, DialogActions, DialogContent, DialogTitle, Divider, Fade, Grid, Link, Paper, Typography } from \"@material-ui/core\";\r\nimport request from \"superagent\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport MUIDataTable, { MUIDataTableColumn, MUIDataTableOptions } from \"mui-datatables\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport { lastValueFrom } from 'rxjs';\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme),\r\n paperStyle: {\r\n flexGrow: 1,\r\n padding: theme.spacing(2, 2),\r\n }\r\n});\r\n\r\ninterface LocalProps {\r\n productYear: number\r\n}\r\n\r\ninterface IVendorMeasureGuidListStateStore {\r\n payload: IVendorMeasure[];\r\n isLoading: boolean;\r\n redirect: boolean;\r\n inputFileKey: string;\r\n fileTypeValid: boolean;\r\n isUploading: boolean;\r\n selectedFile?: File;\r\n validationTxt: string;\r\n transactionId: string;\r\n isClearingCache: boolean;\r\n vendorSubOrgList: IVendorSubOrgMapping[];\r\n showVendorMapping: boolean;\r\n }\r\n\r\ntype Props = LocalProps & WithStyles;\r\n \r\nconst SubIdColumnRender = ({ value, tableMeta }) => {\r\n return (\r\n {value}\r\n );\r\n }\r\n\r\nclass VendorMeasureGuidListView extends React.Component<\r\n IGenericUserProps & Props,\r\n IVendorMeasureGuidListStateStore\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n payload: [],\r\n isLoading: true,\r\n redirect: false,\r\n inputFileKey: \"inputKey\",\r\n fileTypeValid: false,\r\n isUploading: false,\r\n validationTxt: \"\",\r\n transactionId: \"\",\r\n isClearingCache: false,\r\n vendorSubOrgList: [],\r\n showVendorMapping: false\r\n }\r\n }\r\n \r\n public async componentDidMount() {\r\n await this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n private getVendorsTableData() {\r\n if(this.state.showVendorMapping === true){\r\n return this.state.vendorSubOrgList\r\n }\r\n let retval: IVendor[] = [];\r\n for(const m of this.state.vendorSubOrgList){\r\n if(!retval.some(x => x.vendorOrgId === m.vendorOrgId)){\r\n retval.push({vendorOrgId: m.vendorOrgId, vendorName: m.vendorName} as IVendor)\r\n }\r\n }\r\n return retval;\r\n }\r\n \r\n private getVendorsTableColumns(){\r\n let retval: MUIDataTableColumn[] = [\r\n {\r\n name: \"vendorOrgId\",\r\n label: \"VENDOR_Id\"\r\n },\r\n {\r\n name: \"vendorName\",\r\n label: \"VENDOR_NAME\"\r\n },\r\n ];\r\n if(!this.state.showVendorMapping){\r\n return retval;\r\n }\r\n const renderSubIdColumn = (value, tableMeta, updateValue) => {\r\n return ;\r\n };\r\n return retval.concat([\r\n {\r\n name: \"submissionId\",\r\n label: \"SubmissionId\",\r\n options: {\r\n customBodyRender: renderSubIdColumn\r\n }\r\n },\r\n {\r\n name: \"productLine\",\r\n label: \"ProductLine\"\r\n },\r\n {\r\n name: \"reportingProduct\",\r\n label: \"ReportingProduct\"\r\n },\r\n {\r\n name: \"orgId\",\r\n label: \"OrgId\"\r\n },\r\n {\r\n name: \"orgName\",\r\n label: \"OrgName\"\r\n }\r\n ]);\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n \r\n const vmColumns = [\r\n {\r\n name: \"vendorName\",\r\n label: \"VENDOR_NAME\"\r\n },\r\n {\r\n name: \"measureCode\",\r\n label: \"MEASURE_ID\"\r\n },\r\n {\r\n name: \"productLine\",\r\n label: \"PRODUCT_LINE\"\r\n },\r\n {\r\n name: \"measureGuid\",\r\n label: \"GUID\"\r\n },\r\n {\r\n name: \"importedBy\",\r\n label: \"ImportedBy\",\r\n options:{\r\n download: false\r\n }\r\n },\r\n {\r\n name: \"importedOn\",\r\n label: \"ImportedOn\",\r\n options:{\r\n download: false\r\n }\r\n },\r\n ];\r\n let now = new Date();\r\n let nowAsLocaleString = now.toLocaleString();\r\n \r\n const vmOptions: MUIDataTableOptions ={\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n download: true,\r\n selectableRows: \"none\",\r\n downloadOptions:{\r\n filename: \"VendorMeasure_\" + nowAsLocaleString +\".csv\"\r\n }\r\n };\r\n let downloadVendorFileName = this.state.showVendorMapping && this.state.vendorSubOrgList.length>0 ?\"VendorsSubOrgList.csv\": \"VendorsList.csv\";\r\n const vlOptions: MUIDataTableOptions ={\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n download: true,\r\n selectableRows: \"none\",\r\n downloadOptions:{\r\n filename: downloadVendorFileName\r\n },\r\n setRowProps: (row, dataIndex, rowIndex) => {\r\n let vName = row[1];\r\n if(vName === undefined || vName.length === 0 || vName.includes(\"Not Found\")){\r\n return {\r\n style: { background: \"yellow\" },\r\n }; \r\n }\r\n }\r\n };\r\n return (\r\n \r\n \r\n Vendor Measures (Current Product Year: {this.props.productYear})\r\n \r\n \r\n \r\n \r\n this.handleUploadFileChange(e)}\r\n />\r\n \r\n     \r\n \r\n \r\n await this.uploadVendorMeasureFile(this.state.selectedFile)\r\n }\r\n >\r\n {this.state.isUploading ? \"Uploading...\" : \"Upload\"}\r\n \r\n                  \r\n \r\n View/Download Vendor List\r\n \r\n                 \r\n \r\n {this.state.isClearingCache ? \"Clearing Cache...\" : \"Clear Vendor Measures Cache\"}\r\n \r\n 0} onClose={this.clearVendorSubOrgList} classes={{paper: classes.dialogL}} >\r\n \r\n \r\n \r\n \r\n Vendor List\r\n \r\n \r\n \r\n \r\n Show Vendor Org/Submission Mapping\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ClOSE\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {this.state.isLoading ? (\r\n \r\n ) : (\r\n \r\n
\r\n \r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n }\r\n clearVendorSubOrgList = () => {\r\n this.setState({ vendorSubOrgList: [] });\r\n };\r\n toggleVendorMapping = () => {\r\n this.setState( \r\n {\r\n showVendorMapping: !this.state.showVendorMapping \r\n });\r\n };\r\n handleClearVendorMeasureCache = async () => {\r\n await this.clearVendorMeasureCache();\r\n };\r\n handelLoadVendorList = () => {\r\n this.LoadVendorList();\r\n }\r\n private async LoadVendorList() {\r\n const vl$ = AdministrationService.GetSoftwareVendorList$(this.props.user, this.props.productYear);\r\n const vl = await lastValueFrom(vl$);\r\n this.setState({vendorSubOrgList: vl});\r\n }\r\n private async clearVendorMeasureCache() {\r\n this.setState({isClearingCache: true});\r\n await AdministrationService.ClearVendorMeasureCache$(this.props.user).toPromise();\r\n alert(\"Vendor measure cache cleared!\");\r\n this.setState({isClearingCache: false});\r\n }\r\n private async uploadVendorMeasureFile(file: File) {\r\n this.setState({ isUploading: true });\r\n const localTransactionId = uuidv4();\r\n this.setState({ transactionId: localTransactionId });\r\n var apiBaseUrl =\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL +\r\n \"/api/administration/uploadvendormeasures\";\r\n const data = new FormData();\r\n data.append(\"File\", file, file.name);\r\n const req = request.post(apiBaseUrl);\r\n req.set({ Authorization: \"Bearer \" + this.props.user.access_token });\r\n req.send(data).end(async (err: any, res: any) => {\r\n\r\n alert(res.body.toString());\r\n\r\n await this.RefreshModel();\r\n\r\n this.setState({\r\n inputFileKey: new Date().toString(),\r\n fileTypeValid: false,\r\n isUploading: false,\r\n });\r\n });\r\n }\r\n\r\n private handleUploadFileChange(e) {\r\n if (!e.target.files) {\r\n return;\r\n }\r\n this.setState({ selectedFile: e.target.files[0] });\r\n if (e.target.files[0].name.endsWith(\".csv\")) {\r\n this.setState({ fileTypeValid: true });\r\n } else {\r\n this.setState({ fileTypeValid: false });\r\n }\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n let data = await AdministrationService.GetVendorMeasures$(this.props.user, this.props.productYear).toPromise();\r\n this.setState({payload: data, isLoading: false});\r\n }\r\n}\r\n\r\nconst VendorMeasureGuidListPageWithState = connect(\r\n genericMapStateToProps\r\n )(VendorMeasureGuidListView);\r\n \r\n // STYLES CONTAINER\r\n const VendorMeasureGuidListPage = withStyles(styles)(\r\n VendorMeasureGuidListPageWithState\r\n );\r\n \r\n export default VendorMeasureGuidListPage;\r\n\r\n","import React from \"react\";\r\nimport { genericMapStateToProps, IGenericUserProps } from \"../../DataClasses/GenericUser\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Theme,\r\n WithStyles,\r\n createStyles,\r\n withStyles,\r\n } from \"@material-ui/core/styles\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport MUIDataTable, { MUIDataTableColumnDef, MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Fab, Grid, IconButton, Tooltip} from \"@material-ui/core\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { RemoveCircle, Delete } from \"@material-ui/icons\";\r\nimport GetAppIcon from '@material-ui/icons/GetApp';\r\nimport saveAs from 'file-saver';\r\nimport { ICachingKey } from \"../../DataClasses/AdministrationData\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface ICacheManagementStateStore {\r\n isLoading: boolean;\r\n redirect: boolean;\r\n data: ICachingKey[];\r\n isActing: boolean;\r\n isClearingAllCache: boolean;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass CacheManagementView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ICacheManagementStateStore\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n redirect: false,\r\n data: [],\r\n isActing: false,\r\n isClearingAllCache: false\r\n }\r\n }\r\n\r\n public componentDidMount() {\r\n this.setState({ isLoading: true });\r\n this.RefreshModel();\r\n this.setState({ isLoading: false });\r\n }\r\n \r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const tblColumns: MUIDataTableColumnDef[] = [\r\n {\r\n name: \"\",\r\n label: \"Key\"\r\n },\r\n {\r\n name: \"\",\r\n label: \"Expire On\"\r\n },\r\n {\r\n name: \"\",\r\n label: \"Download\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.customBodyRender_DownloadColumn(value);\r\n }\r\n }\r\n },\r\n {\r\n name: \"\",\r\n label: \"Clear Cache\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.customBodyRender_ClearCacheColumn(value)\r\n }\r\n }\r\n }\r\n ];\r\n const tblOption: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 8,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000],\r\n customToolbar: () => {\r\n return this.customToolbar_ClearAll(classes);\r\n }\r\n };\r\n const { classes } = this.props;\r\n return (\r\n this.state.isLoading?\r\n \r\n :\r\n
\r\n \r\n [x.key, this.getLocalExpireTime(x.expireAfterMilliseconds), x.key, x.key])}\r\n columns={tblColumns}\r\n options={tblOption}\r\n />\r\n \r\n
\r\n );\r\n }\r\n\r\n private customToolbar_ClearAll(classes: any) {\r\n return (\r\n \r\n await this.clearAllCache()} disabled={this.state.isClearingAllCache || this.state.isActing}>\r\n \r\n {this.state.isClearingAllCache ? \"Clearing Cache...\" : \"Clear All Cache\"}\r\n \r\n );\r\n }\r\n\r\n private customBodyRender_DownloadColumn(value: any) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n this.downloadCache(value)} disabled={this.state.isClearingAllCache || this.state.isActing}>\r\n \r\n \r\n \r\n\r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n private customBodyRender_ClearCacheColumn(value: any) {\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n await this.clearCache(value)} disabled={this.state.isClearingAllCache || this.state.isActing}>\r\n \r\n \r\n \r\n
\r\n\r\n
\r\n );\r\n }\r\n\r\n private async clearAllCache() {\r\n this.setState({isClearingAllCache: true});\r\n const keysCsv = this.state.data.map(x => x.key).join(',');\r\n await this.clearCache(keysCsv);\r\n alert(\"All the Metadata cache cleared!\");\r\n this.RefreshModel();\r\n this.setState({isClearingAllCache: false});\r\n }\r\n private async clearCache(cacheKeysCsv: string){\r\n this.setState({isActing: true});\r\n await AdministrationService.ClearCaches$(cacheKeysCsv, this.props.user).toPromise();\r\n this.RefreshModel();\r\n this.setState({isActing: false});\r\n }\r\n private getLocalExpireTime(expireAfterMilliseconds: number){\r\n if(expireAfterMilliseconds < 1)\r\n {\r\n return 'N/A';\r\n }\r\n const now = Date.now();\r\n const later = now + expireAfterMilliseconds;\r\n const date = new Date(later);\r\n\r\n const year = date.getFullYear();\r\n const month = String(date.getMonth() + 1).padStart(2, '0'); // Months are 0-based, so +1 is needed\r\n const day = String(date.getDate()).padStart(2, '0');\r\n const hours = String(date.getHours()).padStart(2, '0');\r\n const minutes = String(date.getMinutes()).padStart(2, '0');\r\n\r\n return `${year}-${month}-${day} ${hours}:${minutes}`;\r\n }\r\n \r\n private async RefreshModel() {\r\n const retval = await AdministrationService.GetMetadataCacheList$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ data: retval });\r\n }\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n private downloadCache = async (key: string) => {\r\n this.setState({ isActing: true });\r\n const apiCall = AdministrationService.DownloadCache$(key, this.props.user);\r\n\r\n try {\r\n const userResponse = await apiCall.toPromise();\r\n const fileName = key+ new Date().toLocaleString() +\".json\";\r\n if (typeof userResponse === 'string') {\r\n saveAs(new Blob([userResponse], {\r\n type: \"text/plain\"\r\n }), fileName);\r\n }\r\n }\r\n catch (ex) {\r\n // handle error\r\n }\r\n finally {\r\n this.setState({ isActing: false });\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst CacheManagementPageWithState = connect(\r\n genericMapStateToProps\r\n )(CacheManagementView);\r\n \r\n // STYLES CONTAINER\r\n const CacheManagementPage = withStyles(styles)(\r\n CacheManagementPageWithState\r\n );\r\n \r\n export default CacheManagementPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport {\r\n Tabs,\r\n Tab,\r\n Typography,\r\n AppBar,\r\n Grid,\r\n Card,\r\n Button,\r\n FormControl,\r\n FormLabel,\r\n FormGroup,\r\n FormControlLabel,\r\n Checkbox,\r\n CardContent,\r\n Fade,\r\n CircularProgress,\r\n ButtonGroup,\r\n Box\r\n} from \"@material-ui/core\";\r\nimport {\r\n createStyles,\r\n withStyles,\r\n Theme,\r\n WithStyles,\r\n} from \"@material-ui/core/styles\";\r\nimport LoadingDisplay from \"../Shared/Loading\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IAdministrationPayload } from \"../../DataClasses/AdministrationData\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps,\r\n} from \"../../DataClasses/GenericUser\";\r\nimport * as signalR from \"@aspnet/signalr\";\r\nimport request from \"superagent\";\r\nimport AlertDialog from \"../Shared/AlertDialog\";\r\nimport froalaBaseConfig from \"../../Utilities/BaseFroalaConfig\";\r\nimport FroalaEditor from \"react-froala-wysiwyg\";\r\nimport { Save as SaveIcon } from \"@material-ui/icons\";\r\nimport SubmissionAdministrationPage from \"./SubmissionAdministration\";\r\nimport AnnouncementsListPage from \"./AnnouncementsList\";\r\nimport AuditorsListPage from \"./Auditors\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport SubmissionDataExtractPage from \"./SubmissionDataExtract\";\r\nimport LegacyFileConverterPage from \"./LegacyFileConverter\"\r\nimport SharedUtility from \"../../Utilities/SharedUtility\";\r\nimport saveAs from 'file-saver';\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport preval from 'preval.macro';\r\nimport VendorMeasureGuidListPage from \"./VendorMeasureGuidList\";\r\nimport AppInfoPage from \"./AppInfo\";\r\nimport CacheManagementPage from \"./CacheManagement\";\r\n\r\ninterface IAdministrationState {\r\n isLoading: boolean;\r\n payload: IAdministrationPayload;\r\n cahpsFileName: string;\r\n currentTabVal: number;\r\n cahpsProcessingState: number;\r\n selectedMatrixFile?: File;\r\n matrixFileTypeValid: boolean;\r\n isUploading: boolean;\r\n inputFileKey: string;\r\n showConfirmDialog: boolean;\r\n confirmDialogTitle: string;\r\n confirmDialogDescription: string;\r\n confirmDialogButtonText: string;\r\n confirmDialogConfirmHandler: any;\r\n frConfig: any;\r\n isLicenseAgreementSaving: boolean;\r\n selectedConfigurationOption: string;\r\n configurationValue: boolean;\r\n redirect: boolean;\r\n showHedis: boolean;\r\n isDownloadInProgress: boolean;\r\n}\r\n\r\nfunction TabContainer(props) {\r\n return (\r\n \r\n {props.children}\r\n \r\n );\r\n}\r\n\r\nexport const AdministrationInitialState: IAdministrationState = {\r\n payload: {\r\n allowsHosSubmission: false,\r\n allowsCahpsSubmission: true,\r\n allowsHedisSubmission: true,\r\n enableMeasureGuidValidation: true,\r\n enableExperimentalValidation: true,\r\n isMaintenanceMode: false,\r\n isOffseasonMode: false,\r\n licenseAgreementText: \"\",\r\n enableGenericUpload: false,\r\n measurementYear: 0,\r\n enableHosInterimDataSubmission: false,\r\n measureModelDate: \"\"\r\n },\r\n isLoading: true,\r\n cahpsFileName: \"\",\r\n currentTabVal: 0,\r\n cahpsProcessingState: 0,\r\n matrixFileTypeValid: false,\r\n isUploading: false,\r\n inputFileKey: \"inputKey\",\r\n showConfirmDialog: false,\r\n confirmDialogTitle: \"\",\r\n confirmDialogDescription: \"\",\r\n confirmDialogButtonText: \"\",\r\n confirmDialogConfirmHandler: () => { },\r\n frConfig: {\r\n toolbarButtons: [\r\n \"bold\",\r\n \"italic\",\r\n \"underline\",\r\n \"insertLink\",\r\n \"undo\",\r\n \"redo\",\r\n ],\r\n attribution: false,\r\n },\r\n isLicenseAgreementSaving: false,\r\n selectedConfigurationOption: '',\r\n configurationValue: false,\r\n redirect: false,\r\n showHedis: false,\r\n isDownloadInProgress: false\r\n};\r\n\r\nconst styles = (theme: Theme) =>\r\n createStyles({\r\n ...idssStyle(theme),\r\n headerRow: {\r\n backgroundColor: theme.palette.common.black,\r\n color: theme.palette.common.white,\r\n fontSize: 14,\r\n },\r\n root: {\r\n flexGrow: 1,\r\n width: \"calc(100% + 100px)\",\r\n },\r\n tabRoot: {\r\n flexGrow: 1,\r\n marginTop: \"25px\",\r\n },\r\n tableRoot: {\r\n width: \"100%\",\r\n marginTop: theme.spacing(3),\r\n overflowX: \"auto\",\r\n },\r\n table: {\r\n minWidth: 700,\r\n },\r\n tableCellYellow: {\r\n backgroundColor: \"yellow\",\r\n },\r\n row: {\r\n \"&:nth-of-type(odd)\": {\r\n backgroundColor: theme.palette.background.default,\r\n },\r\n },\r\n right: {\r\n display: \"flex\",\r\n textAlign: \"right\",\r\n },\r\n progress: {\r\n verticalAlign: 'middle',\r\n paddingLeft: '5px'\r\n }\r\n });\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass Administration extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAdministrationState\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n\r\n this.state = AdministrationInitialState;\r\n const connection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"backgroundHub\")\r\n .build();\r\n\r\n connection.start().catch((err) => document.write(err));\r\n\r\n connection.on(\"callComplete\", () => {\r\n this.setState({ cahpsProcessingState: 2 });\r\n });\r\n }\r\n\r\n public componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const tabValue = this.state.currentTabVal;\r\n if (this.state.isLoading) {\r\n return ;\r\n } else {\r\n const { classes } = this.props;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {tabValue === 0 && this.renderAdminHomeTab()}\r\n {tabValue === 1 && this.renderSubmissionReprocessingTab()}\r\n {tabValue === 2 && this.renderSecurityMatrixTab()}\r\n {tabValue === 3 && this.renderAnnouncementsTab()}\r\n {tabValue === 4 && this.renderLicenseAgreementTab()}\r\n {tabValue === 5 && this.renderAuditorsTab()}\r\n {tabValue === 6 && this.renderSubmissionDataExtractTab()}\r\n {tabValue === 7 && this.renderLegacyFileConversionTab()}\r\n {tabValue === 8 && this.renderVendorMeasuresTab()}\r\n {tabValue === 9 && this.renderCacheManagementTab()}\r\n {tabValue === 10 && this.renderAppInfoTab()}\r\n
\r\n );\r\n }\r\n }\r\n\r\n private uploadMatrixFile(file: File) {\r\n this.setState({ isUploading: true });\r\n var apiBaseUrl =\r\n process.env.REACT_APP_MYWEBSITE_BASESERVICEURL +\r\n \"/api/administration/uploadsecuritymatrix\";\r\n const data = new FormData();\r\n data.append(\"File\", file, file.name);\r\n const req = request.post(apiBaseUrl);\r\n req.set({ Authorization: \"Bearer \" + this.props.user.access_token });\r\n req.send(data).end((err: any, res: any) => {\r\n // send the request\r\n this.setState({\r\n inputFileKey: new Date().toString(),\r\n matrixFileTypeValid: false,\r\n isUploading: false,\r\n });\r\n });\r\n }\r\n\r\n private handleMatrixFileChange(e) {\r\n if (!e.target.files) {\r\n return;\r\n }\r\n this.setState({ selectedMatrixFile: e.target.files[0] });\r\n if (e.target.files[0].name.endsWith(\".csv\")) {\r\n this.setState({ matrixFileTypeValid: true });\r\n } else {\r\n this.setState({ matrixFileTypeValid: false });\r\n }\r\n }\r\n\r\n private async SetAllowedStatus(option: string, value: boolean) {\r\n this.setState({\r\n selectedConfigurationOption: option,\r\n configurationValue: value,\r\n showConfirmDialog: true,\r\n confirmDialogTitle: \"Configuration Option\",\r\n confirmDialogDescription:\r\n `Are you sure you want to ${value ? 'Enable' : 'Disable'} the ${option} option?. Note: You must logout & login to see the changes.`,\r\n confirmDialogButtonText: \"Yes\",\r\n confirmDialogConfirmHandler: async () => {\r\n this.SetStatus();\r\n },\r\n });\r\n }\r\n\r\n private async SetStatus() {\r\n var convertedStatus: string = String(this.state.configurationValue);\r\n const retval = await AdministrationService.SetAllowedStatus$(\r\n this.props.user,\r\n this.state.selectedConfigurationOption,\r\n convertedStatus\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshModel();\r\n }\r\n this.CloseConfirmDialog();\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval = await AdministrationService.GetAdminModel(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ payload: retval });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n handleChange = () => (event) => {\r\n this.setState({ cahpsFileName: event.target.value });\r\n };\r\n\r\n public handleTabChange = (event, index: number) => {\r\n this.setState({ currentTabVal: index });\r\n };\r\n\r\n private async UpdateAllSubmissionStatuses() {\r\n const retval = await AdministrationService.UpdateAllSubmissionStatuses(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n }\r\n\r\n private async ClearAllLicenseAgreements() {\r\n const retval = await AdministrationService.ClearAllLicenseAgreements$(\r\n this.props.user\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n this.CloseConfirmDialog();\r\n }\r\n\r\n private ShowMaintenanceModeConfirmDialog(enable: boolean) {\r\n this.setState({\r\n showConfirmDialog: true,\r\n confirmDialogTitle: \"Emergency Maintenance Mode Confirmation\",\r\n confirmDialogDescription:\r\n \"Are you sure you want to \" +\r\n (enable ? \"enable\" : \"disable\") +\r\n \" Emergency Maintenance Mode?\",\r\n confirmDialogButtonText: enable ? \"Enable\" : \"Disable\",\r\n confirmDialogConfirmHandler: async () => {\r\n this.SetMaintenanceMode(enable);\r\n },\r\n });\r\n }\r\n\r\n private ClearLicenseAgreementsDialog() {\r\n this.setState({\r\n showConfirmDialog: true,\r\n confirmDialogTitle: \"Clear License Agreements\",\r\n confirmDialogDescription:\r\n \"Are you sure you want to clear all the license agreements for current year?\",\r\n confirmDialogButtonText: \"Yes\",\r\n confirmDialogConfirmHandler: async () => {\r\n this.ClearAllLicenseAgreements();\r\n },\r\n });\r\n }\r\n\r\n private async SetMaintenanceMode(enable: boolean) {\r\n const retval = await AdministrationService.SetMaintenanceMode(\r\n this.props.user,\r\n enable\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n this.setState({\r\n payload: { ...this.state.payload, isMaintenanceMode: enable },\r\n });\r\n this.CloseConfirmDialog();\r\n }\r\n\r\n private ShowOffseasonModeConfirmDialog(enable: boolean) {\r\n this.setState({\r\n showConfirmDialog: true,\r\n confirmDialogTitle: \"Offseason Mode Confirmation\",\r\n confirmDialogDescription:\r\n \"Are you sure you want to \" +\r\n (enable ? \"enable\" : \"disable\") +\r\n \" Offseason Mode?\",\r\n confirmDialogButtonText: enable ? \"Enable\" : \"Disable\",\r\n confirmDialogConfirmHandler: async () => {\r\n this.SetOffseasonMode(enable);\r\n },\r\n });\r\n }\r\n\r\n private async SetOffseasonMode(enable: boolean) {\r\n const retval = await AdministrationService.SetOffseasonMode(\r\n this.props.user,\r\n enable\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n this.setState({\r\n payload: { ...this.state.payload, isOffseasonMode: enable },\r\n });\r\n this.CloseConfirmDialog();\r\n }\r\n\r\n private async downloadAllProductLineTemplates() {\r\n this.setState({ isDownloadInProgress: true });\r\n\r\n const retVal = await SubmissionsService.DownloadAllProductLineTemplates$(this.props.user).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const data = SharedUtility.Str2ab$(atob(retVal.fileContents));\r\n saveAs(\r\n new Blob([data], { type: \"application/octet-stream\" }),\r\n retVal.fileName\r\n );\r\n }\r\n\r\n this.setState({ isDownloadInProgress: false });\r\n }\r\n\r\n private async SetLicenseAgreementText(text: string) {\r\n this.setState({ isLicenseAgreementSaving: true });\r\n const retval = await AdministrationService.SetLicenseAgreementText(\r\n this.props.user,\r\n text\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n this.setState({\r\n payload: { ...this.state.payload, licenseAgreementText: text },\r\n isLicenseAgreementSaving: false,\r\n });\r\n }\r\n\r\n private CloseConfirmDialog() {\r\n this.setState({\r\n selectedConfigurationOption: '',\r\n configurationValue: false,\r\n showConfirmDialog: false,\r\n confirmDialogTitle: \"\",\r\n confirmDialogDescription: \"\",\r\n confirmDialogButtonText: \"\",\r\n confirmDialogConfirmHandler: () => { },\r\n });\r\n }\r\n\r\n private renderAdminHomeTab = () => {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Configuration Options\r\n \r\n \r\n Enable / Disable Options\r\n \r\n \r\n await this.SetAllowedStatus(\r\n \"HOS\",\r\n !this.state.payload.allowsHosSubmission\r\n )\r\n }\r\n />\r\n }\r\n label=\"HOS Submissions Enabled\"\r\n />\r\n \r\n await this.SetAllowedStatus(\r\n \"CAHPS\",\r\n !this.state.payload.allowsCahpsSubmission\r\n )\r\n }\r\n />\r\n }\r\n label=\"CAHPS Submissions Enabled\"\r\n />\r\n {!this.state.showHedis ? null :\r\n \r\n await this.SetAllowedStatus(\r\n \"HEDIS\",\r\n !this.state.payload.allowsHedisSubmission\r\n )\r\n }\r\n />\r\n }\r\n label=\"HEDIS Submissions Enabled\"\r\n />\r\n }\r\n \r\n await this.SetAllowedStatus(\r\n \"MEASUREGUIDVALIDATION\",\r\n !this.state.payload.enableMeasureGuidValidation\r\n )\r\n }\r\n />\r\n }\r\n label=\"Enable Measure Guid Validation\"\r\n />\r\n \r\n await this.SetAllowedStatus(\r\n \"EXPERIMENTALVALIDATION\",\r\n !this.state.payload.enableExperimentalValidation\r\n )\r\n }\r\n />\r\n }\r\n label=\"Enable Experimental Validation\"\r\n />\r\n \r\n await this.SetAllowedStatus(\r\n \"GENERICUPLOAD\",\r\n !this.state.payload.enableGenericUpload\r\n )\r\n }\r\n />\r\n }\r\n label=\"Enable Generic Uploads\"\r\n />\r\n \r\n await this.SetAllowedStatus(\r\n \"HOS_INTERIM_SUBMISSION\",\r\n !this.state.payload.enableHosInterimDataSubmission\r\n )\r\n }\r\n />\r\n }\r\n label=\"Enable HOS Interim Data Submission\"\r\n />\r\n \r\n \r\n \r\n \r\n this.CloseConfirmDialog()}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Actions\r\n \r\n \r\n \r\n await this.UpdateAllSubmissionStatuses()\r\n }\r\n >\r\n Reload Cache\r\n \r\n
 
\r\n this.ClearLicenseAgreementsDialog()}\r\n >\r\n Clear License Agreements\r\n \r\n
 
\r\n {!this.state.payload.isMaintenanceMode && (\r\n <>\r\n \r\n this.ShowMaintenanceModeConfirmDialog(true)\r\n }\r\n >\r\n Enable Maintenance Mode\r\n \r\n
 
\r\n \r\n )}\r\n {this.state.payload.isMaintenanceMode && (\r\n <>\r\n \r\n this.ShowMaintenanceModeConfirmDialog(false)\r\n }\r\n >\r\n Disable Maintenance Mode\r\n \r\n
 
\r\n \r\n )}\r\n {!this.state.payload.isOffseasonMode && (\r\n this.ShowOffseasonModeConfirmDialog(true)}\r\n >\r\n Enable Offseason Mode\r\n \r\n )}\r\n {this.state.payload.isOffseasonMode && (\r\n this.ShowOffseasonModeConfirmDialog(false)}\r\n >\r\n Disable Offseason Mode\r\n \r\n )}\r\n
 
\r\n this.downloadAllProductLineTemplates()}\r\n disabled={this.state.isDownloadInProgress}\r\n >\r\n Download All Submission Templates\r\n {this.state.isDownloadInProgress ? : null}\r\n \r\n\r\n
\r\n\r\n this.CloseConfirmDialog()}\r\n />\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n App Version\r\n \r\n \r\n R4.0 Build: {preval`module.exports = new Date().toLocaleDateString().replace(\"\\/\", \".\").replace(\"\\/\", \".\");`}\r\n \r\n \r\n App MeasurementYear\r\n \r\n \r\n {this.state.payload.measurementYear}\r\n \r\n \r\n MeasureModel Date\r\n \r\n \r\n {this.state.payload.measureModelDate}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderSubmissionReprocessingTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderSecurityMatrixTab = () => {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n Security Matrix\r\n \r\n \r\n this.handleMatrixFileChange(e)}\r\n />\r\n \r\n
\r\n \r\n
\r\n {\" \"}\r\n \r\n this.uploadMatrixFile(this.state.selectedMatrixFile)\r\n }\r\n >\r\n {this.state.isUploading ? \"Uploading...\" : \"Upload\"}\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderLicenseAgreementTab = () => {\r\n const { classes } = this.props;\r\n return (\r\n \r\n
\r\n \r\n this.setState({\r\n payload: { ...this.state.payload, licenseAgreementText: e },\r\n })\r\n }\r\n />\r\n \r\n \r\n this.SetLicenseAgreementText(\r\n this.state.payload.licenseAgreementText\r\n )\r\n }\r\n startIcon={\r\n this.state.isLicenseAgreementSaving ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n }\r\n >\r\n Save\r\n \r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderAnnouncementsTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderAuditorsTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderSubmissionDataExtractTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderLegacyFileConversionTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n };\r\n\r\n private renderVendorMeasuresTab = () => {\r\n return(\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderAppInfoTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderCacheManagementTab = () => {\r\n return (\r\n \r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AdministrationViewWithState = connect(\r\n genericMapStateToProps\r\n)(Administration);\r\n\r\n// STYLES CONTAINER\r\nconst AdministrationPage = withStyles(styles)(AdministrationViewWithState);\r\n\r\n// REDUX CONTAINER\r\n\r\nexport default AdministrationPage;\r\n","import { User } from \"oidc-client\";\r\nimport { Action } from \"redux\";\r\nimport { action as createAction } from \"typesafe-actions\";\r\nimport RootAction from \"../Root/RootAction\";\r\n\r\n// STORE\r\ninterface IStore {\r\n isLoadingUser: boolean,\r\n user: User | null;\r\n}\r\n\r\n// INITIAL STATE\r\nexport const StoreInitialState: IStore = {\r\n isLoadingUser: false,\r\n user: null\r\n};\r\n\r\n// PAYLOADS\r\nexport interface IError {\r\n message: string;\r\n}\r\n\r\n// CONSTANTS\r\nenum Constants {\r\n USER_EXPIRED = 'USER_EXPIRED',\r\n REDIRECT_SUCCESS = 'REDIRECT_SUCCESS',\r\n USER_LOADED = 'USER_LOADED',\r\n SILENT_RENEW_ERROR = 'SILENT_RENEW_ERROR',\r\n SESSION_TERMINATED = 'SESSION_TERMINATED',\r\n USER_EXPIRING = 'USER_EXPIRING',\r\n USER_FOUND = 'USER_FOUND',\r\n LOADING_USER = 'LOADING_USER',\r\n USER_SIGNED_OUT = 'USER_SIGNED_OUT',\r\n LOAD_USER_ERROR = 'LOAD_USER_ERROR'\r\n}\r\n\r\n// ACTIONS\r\nexport interface ILoadingUser extends Action { }\r\nexport interface ILoadUserError extends Action { }\r\nexport interface IRedirectSuccess extends Action {\r\n payload: User\r\n}\r\nexport interface ISessionTerminated extends Action { }\r\nexport interface ISilentRenewError extends Action {\r\n payload: IError\r\n}\r\nexport interface IUserExpired extends Action { }\r\nexport interface IUserExpiring extends Action { }\r\nexport interface IUserFound extends Action {\r\n payload: User\r\n}\r\nexport interface IUserSignedOut extends Action {\r\n type: Constants.USER_SIGNED_OUT\r\n}\r\n\r\nexport type Actions = ILoadingUser\r\n | ILoadUserError\r\n | IRedirectSuccess\r\n | ISessionTerminated\r\n | ISilentRenewError\r\n | IUserExpired\r\n | IUserExpiring\r\n | IUserFound\r\n | IUserSignedOut\r\n\r\n\r\n// ACTION CREATORS\r\nexport const userExpired = (): IUserExpired => createAction(Constants.USER_EXPIRED);\r\nexport const redirectSuccess = (user: User): IRedirectSuccess => createAction(Constants.REDIRECT_SUCCESS, user);\r\nexport const userFound = (user: User): IUserFound => createAction(Constants.USER_FOUND, user);\r\nexport const silentRenewError = (error: IError): ISilentRenewError => createAction(Constants.SILENT_RENEW_ERROR, error);\r\nexport const sessionTerminated = (): ISessionTerminated => createAction(Constants.SESSION_TERMINATED);\r\nexport const userExpiring = (): IUserExpiring => createAction(Constants.USER_EXPIRING);\r\nexport const loadingUser = (): ILoadingUser => createAction(Constants.LOADING_USER);\r\nexport const userSignedOut = (): IUserSignedOut => createAction(Constants.USER_SIGNED_OUT);\r\nexport const loadUserError = (): ILoadUserError => createAction(Constants.LOAD_USER_ERROR);\r\n\r\n// REDUCERS\r\nexport const Reducer = (state = StoreInitialState, action: RootAction) => {\r\n switch (action.type) {\r\n case Constants.USER_EXPIRED:\r\n case Constants.SILENT_RENEW_ERROR:\r\n case Constants.SESSION_TERMINATED:\r\n case Constants.USER_SIGNED_OUT:\r\n return Object.assign({}, {...state}, {user: null, isLoadingUser: false});\r\n case Constants.REDIRECT_SUCCESS:\r\n case Constants.USER_FOUND:\r\n return Object.assign({}, { ...state }, { user: action.payload, isLoadingUser: false });\r\n case Constants.LOADING_USER:\r\n return Object.assign({}, {...state}, { isLoadingUser: true });\r\n default:\r\n return state;\r\n }\r\n}\r\n\r\n// EPICS","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Fab,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n TextField,\r\n DialogActions,\r\n Fade,\r\n CircularProgress,\r\n Button,\r\n InputLabel,\r\n Box,\r\n Divider\r\n} from \"@material-ui/core\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport * as validator from \"validator\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../DataClasses/GenericUser\";\r\nimport ListIcon from '@material-ui/icons/List';\r\nimport AddCircle from '@material-ui/icons/AddCircle';\r\nimport SaveOutlinedIcon from '@material-ui/icons/SaveOutlined';\r\nimport DoneIcon from '@material-ui/icons/Done';\r\nimport SkipPreviousIcon from '@material-ui/icons/SkipPrevious';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport OrganizationService from \"../Services/OrganizationService\";\r\nimport { FormikHelpers, FormikErrors, FormikProps, Formik } from \"formik\";\r\nimport AlertDialog\r\n from \"../Shared/AlertDialog\";\r\nimport * as _ from 'lodash';\r\nimport * as AuthorizationPolicies from \"../../Configuration/AuthorizationPolicies\";\r\nimport {\r\n IOrgUserPayload,\r\n IUsersListViewStateStore,\r\n IAddUserForm,\r\n IEditUserForm,\r\n IEditOrganizationForm\r\n} from \"../../DataClasses/UsersData\";\r\nimport Select from \"react-select\";\r\nimport { ISubmissionKey } from \"../../DataClasses/SubmissionData\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport LoadingDataTable from \"../Shared/LoadingDataTable\";\r\nimport { SeedTime } from \"../../Configuration/Setting\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport AdministrationService from \"../Services/AdministrationService\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\nconst primaryOrgListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n};\r\n\r\nconst userRoleListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n};\r\n\r\nconst selectStyles = { menu: styles => ({ ...styles, zIndex: 999}) };\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass UsersListView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IUsersListViewStateStore\r\n > {\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n this.state = {\r\n userData: [],\r\n organizationData: [],\r\n isLoading: true,\r\n filterText: \"\",\r\n errorMsg: \"\",\r\n events: {\r\n addUserDialogOpen: false,\r\n deleteUserConfirmDialogOpen: false,\r\n editUserDialogOpen: false,\r\n deleteRoleConfirmDialogOpen: false,\r\n editOrganizationDialogOpen: false,\r\n deleteOrgUserConfirmDialogOpen: false,\r\n deleteAllUserConfirmDialogOpen: false,\r\n currentlyDeletingAllUsersForOrg: false\r\n },\r\n addUser: {\r\n email: \"\",\r\n selectedSystemGroup:\"\",\r\n selectedRole: \"\",\r\n selectedOrgs: []\r\n },\r\n editUser: {\r\n email: \"\",\r\n selectedSystemGroup:\"\",\r\n selectedOrgs: [],\r\n selectedRole: \"\",\r\n existingRoles: []\r\n },\r\n deleteUserDialog: {\r\n description: \"\",\r\n title: \"\",\r\n user: \"\"\r\n },\r\n deleteRoleDialog: {\r\n description: \"\",\r\n title: \"\",\r\n user: \"\",\r\n roleInfo: \"\"\r\n },\r\n editOrganization: {\r\n organizationId: 0,\r\n organizationName: \"\",\r\n orgType:\"\",\r\n selectedUser: \"\",\r\n selectedRole: \"\",\r\n existingUsers: [],\r\n currentlySubmittingRowIndex: null,\r\n userSearchText: \"\"\r\n },\r\n editSubmissions:{\r\n isEditingSubmissions:false,\r\n userName:\"\",\r\n submissionData:[],\r\n origSelectedSubIndexes:[],\r\n selectedSubIndexes:[],\r\n isChangeSaved:false\r\n },\r\n deleteOrgUserDialog: {\r\n description: \"\",\r\n title: \"\",\r\n user: \"\",\r\n roleInfo: \"\"\r\n },\r\n deleteAllUserDialog: {\r\n description: \"\",\r\n title: \"\"\r\n },\r\n selectableRoles: [],\r\n isProcessing: false,\r\n isOrgLoading: false,\r\n redirect: false,\r\n auditors: []\r\n };\r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n await this.RefreshModel();\r\n await this.GetAllAuditors();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes,user } = this.props;\r\n const primaryUserListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n const primaryUserListColumns = [\r\n {\r\n name: \"Email\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Actions\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n
\r\n this.ShowUserEditDialog(tableMeta.rowData[0])}>\r\n
\r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if(user.profile.username===tableMeta.rowData[0])\r\n return null;\r\n return (\r\n
\r\n this.ShowUserDeleteDialog(tableMeta.rowData[0])}>\r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n const primaryOrganizationListColumns = [\r\n {\r\n label: \"Org ID\",\r\n name: \"OrgId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"Name\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"OrgType\",\r\n options: {\r\n display: \"false\" as any\r\n }\r\n },\r\n {\r\n name: \"Actions\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n
\r\n this.ShowOrganizationEditDialog(tableMeta.rowData[0], tableMeta.rowData[1],tableMeta.rowData[2])}>\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 User Management\r\n \r\n \r\n \r\n\r\n \r\n \r\n this.openAddUserDialog()}>\r\n \r\n Add User\r\n \r\n \r\n initialValues={this.state.addUser}\r\n enableReinitialize={true}\r\n onSubmit={this.onAddUserFormSubmit}\r\n validate={this.validateAddUserForm}\r\n >\r\n {props => this.getAddUserForm(props, classes)}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.isLoading?:\r\n
\r\n Users}\r\n data={this.state.userData}\r\n columns={primaryUserListColumns}\r\n options={primaryUserListingOptions}\r\n />
}\r\n this.CloseDeleteUserConfirmDialog()}\r\n isButton1Clicked={this.state.isProcessing}\r\n />\r\n \r\n initialValues={this.state.editUser}\r\n enableReinitialize={true}\r\n onSubmit={this.onEditUserFormSubmit}\r\n validate={this.validateEditUserForm}\r\n >\r\n {props => this.getEditUserForm(props, classes)}\r\n \r\n this.CloseDeleteRoleConfirmDialog()}\r\n isButton1Clicked={this.state.isProcessing}\r\n />\r\n
\r\n
\r\n \r\n
\r\n {this.state.isLoading?:\r\n
\r\n Organizations}\r\n data={this.state.organizationData}\r\n columns={primaryOrganizationListColumns}\r\n options={primaryOrgListingOptions}\r\n />
}\r\n \r\n initialValues={this.state.editOrganization}\r\n enableReinitialize={true}\r\n onSubmit={this.onEditOrganizationFormSubmit}\r\n validate={this.validateEditOrganizationForm}\r\n >\r\n {props => this.getEditOrganizationForm(props, classes)}\r\n \r\n this.CloseDeleteOrgUserConfirmDialog()}\r\n isButton1Clicked={this.state.isProcessing}\r\n />\r\n this.CloseDeleteAllUserConfirmDialog()}\r\n isButton1Clicked={this.state.isProcessing}\r\n />\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const userRetVal = await UserManagerService.GetManagableUsers$(\r\n this.props.user\r\n ).toPromise();\r\n const orgRetVal = await OrganizationService.GetManagableOrganizationsAndVendors$(\r\n this.props.user\r\n ).toPromise();\r\n\r\n if (userRetVal instanceof AjaxError || orgRetVal instanceof AjaxError || !userRetVal || !orgRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const userData = userRetVal.map(item => {\r\n return [item];\r\n });\r\n const orgData = orgRetVal.map(item => {\r\n return {\r\n OrgId: item.orgId,\r\n Name: item.orgName,\r\n OrgType: item.orgType\r\n };\r\n });\r\n this.setState({\r\n userData: userData,\r\n organizationData: orgData\r\n });\r\n\r\n this.setState({ isLoading: false });\r\n }\r\n }\r\n\r\n private openAddUserDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n addUserDialogOpen: true\r\n }\r\n });\r\n }\r\n\r\n private closeAddUserDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n addUserDialogOpen: false\r\n },\r\n addUser: {\r\n email: \"\",\r\n selectedSystemGroup:\"\",\r\n selectedRole: \"\",\r\n selectedOrgs: []\r\n }\r\n });\r\n }\r\n\r\n private getAddUserForm = (formikProps: FormikProps, classes: any): JSX.Element => {\r\n const {\r\n handleSubmit,\r\n handleReset,\r\n handleBlur,\r\n touched,\r\n errors,\r\n values,\r\n isSubmitting,\r\n submitForm\r\n } = formikProps;\r\n\r\n const orgOption = (values.selectedSystemGroup&&values.selectedSystemGroup.value!==\"\")?\r\n this.state.organizationData.filter(x=>x.OrgType===values.selectedSystemGroup.value).map(m => ({\r\n label: m.OrgId + \"-\" + m.Name,\r\n value: m.OrgId\r\n })):[];\r\n\r\n const roleOption=this.state.selectableRoles.map(m=>({value:m, label:m}));\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n Add New User\r\n \r\n \r\n \r\n \r\n \r\n Email\r\n \r\n \r\n \r\n Select System Group\r\n \r\n \r\n {this.state.addUser.selectedSystemGroup===\"\"?
:\r\n
\r\n \r\n Select Role\r\n r.value.toLowerCase() !== \"auditor\") : roleOption}\r\n placeholder=\"Select a Role\"\r\n value={values.selectedRole}\r\n onChange={this.onChangeAddNewUserSelectedRole.bind(this)}\r\n fullWidth={true}\r\n searchable={true}\r\n isClearable ={true}\r\n />\r\n {errors.selectedRole ?
{errors.selectedRole}
: null}\r\n
\r\n \r\n Select {this.state.addUser.selectedSystemGroup===null?\"Organization\":this.state.addUser.selectedSystemGroup.value}(s)\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n \r\n {this.showProgress()}\r\n 0) || this.state.isProcessing}>\r\n \r\n Add User\r\n \r\n this.closeAddUserDialog()}\r\n disabled={isSubmitting}\r\n >\r\n Cancel\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n private selectedOrgsChange4AddNewUser(newValue){\r\n this.setState({\r\n addUser:{\r\n ...this.state.addUser,\r\n selectedOrgs: newValue\r\n }\r\n })\r\n }\r\n private onChangeAddNewUserSelectedRole(newValue){\r\n this.setState({\r\n addUser:{\r\n ...this.state.addUser,\r\n selectedRole:newValue===null?\"\":newValue\r\n }\r\n })\r\n }\r\n\r\n async onChangeAddNewUserEmail(e){ \r\n if(this.state.addUser.selectedRole&&this.state.addUser.selectedRole.value.toLowerCase()===\"auditor\" && !this.isSelectedUserAuditor(e.target.value)){\r\n this.setState({\r\n addUser:{\r\n ...this.state.addUser, \r\n selectedRole:\"\",\r\n email:e.target.value\r\n }\r\n })\r\n }\r\n else{\r\n this.setState({\r\n addUser:{\r\n ...this.state.addUser, \r\n email:e.target.value\r\n }\r\n });\r\n }\r\n }\r\n async onChangeAddNewUserSysGroup(newValue){\r\n this.setState({\r\n addUser:{\r\n ...this.state.addUser,\r\n selectedSystemGroup:newValue===null?\"\":newValue,\r\n selectedRole:\"\",\r\n selectedOrgs:[]\r\n }\r\n });\r\n if(newValue!==null&&newValue!==\"\"){\r\n this.refreshSelectableRoles(newValue.value);\r\n }\r\n }\r\n\r\n private GetSysGroupOptions(){\r\n const sysGroupDup=this.state.organizationData.map(m =>m.OrgType);\r\n const sysGroupOption=sysGroupDup.filter((n, i) => sysGroupDup.indexOf(n) === i).map(m=>({value:m, label:m}));\r\n return sysGroupOption;\r\n }\r\n\r\n private validateAddUserForm = (values: IAddUserForm): FormikErrors => {\r\n const errors: FormikErrors = {};\r\n\r\n // EMAIL\r\n //1. Require\r\n // 2. Max length = 255\r\n // 3. Valid\r\n if (validator.isEmpty(values.email)) {\r\n errors.email = \"Required\";\r\n } else if (!validator.isLength(values.email, { min: 1, max: 75 })) {\r\n errors.email = \"Email can be no longer than 75 characters\";\r\n } else if (!validator.isEmail(values.email)) {\r\n errors.email = \"Email is not in a valid format\";\r\n }\r\n\r\n if (!values.selectedOrgs || values.selectedOrgs.length === 0) {\r\n errors.selectedOrgs = [\"Please select an organization.\"];\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n private onAddUserFormSubmit = async (\r\n values: IAddUserForm,\r\n formikHelpers: FormikHelpers\r\n ): Promise => {\r\n const { setSubmitting } = formikHelpers;\r\n try {\r\n this.setProcessingState(true);\r\n const retval = await UserManagerService.AddUserToRoles$(\r\n this.props.user,\r\n values.email,\r\n values.selectedSystemGroup.value.toLowerCase(),\r\n values.selectedRole.value,\r\n values.selectedOrgs && values.selectedOrgs.length > 0\r\n ? values.selectedOrgs.map(x => x.value).join(\",\")\r\n : \"\",\r\n \"\",\r\n true\r\n ).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.closeAddUserDialog();\r\n }\r\n } catch (ex) {\r\n } finally {\r\n setSubmitting(false);\r\n this.RefreshModel();\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private setProcessingState = (value: boolean) => {\r\n this.setState({ isProcessing: value });\r\n }\r\n\r\n private showProgress = () => {\r\n return <> { this.state.isProcessing ? : null } \r\n }\r\n private RefreshRolesForUser = async (userEmail) => {\r\n const userRetVal = await UserManagerService.GetManagableRolesForUser$(\r\n this.props.user,\r\n userEmail\r\n ).toPromise();\r\n\r\n if (userRetVal instanceof AjaxError || !userRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n let userRoles = userRetVal.map(item => {\r\n return [item];\r\n });\r\n\r\n userRoles = _.flatten(userRoles);\r\n\r\n this.setState({\r\n editUser: {\r\n ...this.state.editUser,\r\n existingRoles: userRoles\r\n }\r\n });\r\n }\r\n }\r\n\r\n private GetAllAuditors = async () => {\r\n const retVal = await AdministrationService.GetAllAuditors$(\r\n this.props.user\r\n ).toPromise();\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({\r\n auditors: retVal\r\n });\r\n }\r\n }\r\n\r\n private isSelectedUserAuditor = (userEmail: string) => {\r\n var auditors = this.state.auditors;\r\n return auditors.some(a => a.toLowerCase() === userEmail.toLowerCase());\r\n }\r\n\r\n private ShowUserEditDialog = async (userEmail) => {\r\n await this.RefreshRolesForUser(userEmail);\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n editUserDialogOpen: true\r\n },\r\n editUser: {\r\n ...this.state.editUser,\r\n email: userEmail,\r\n selectedOrgs: [],\r\n selectedRole: \"\"\r\n }\r\n });\r\n }\r\n\r\n private closeEditUserDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n editUserDialogOpen: false\r\n },\r\n editUser: {\r\n email: \"\",\r\n selectedSystemGroup:\"\",\r\n selectedOrgs: [],\r\n selectedRole: \"\",\r\n existingRoles: []\r\n },\r\n selectableRoles:[]\r\n });\r\n }\r\n\r\n private getEditUserForm = (formikProps: FormikProps, classes: any): JSX.Element => {\r\n const {\r\n handleSubmit,\r\n handleReset,\r\n errors,\r\n values,\r\n isSubmitting,\r\n } = formikProps;\r\n\r\n\r\n const orgOption = (values.selectedSystemGroup&&values.selectedSystemGroup.value!==\"\")?\r\n this.state.organizationData.filter(x=>x.OrgType===values.selectedSystemGroup.value).map(m => ({\r\n label: m.OrgId + \"-\" + m.Name,\r\n value: m.OrgId\r\n })):[];\r\n\r\n const userRoleColumns = [\r\n {\r\n label: \"ID\",\r\n name: \"entityId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org/Vendor Name\",\r\n name: \"entityName\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Role Type\",\r\n name: \"roleType\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Role Name\",\r\n name: \"roleName\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Actions\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if(this.props.user.profile.username===values.email && tableMeta.rowData[3].toLowerCase().indexOf(\"admin\")!==-1)\r\n return null;\r\n return (\r\n
\r\n this.ShowRoleDeleteDialog(tableMeta.rowData[3], tableMeta.rowData[2], tableMeta.rowData[0])}>\r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const roleOption=this.state.selectableRoles.map(m=>({value:m, label:m}));\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n Edit: {values.email}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n Add Role\r\n \r\n \r\n Select System Group\r\n \r\n \r\n {this.state.editUser.selectedSystemGroup===\"\"?
:\r\n
\r\n \r\n Select Role\r\n r.value.toLowerCase() !== \"auditor\") : roleOption}\r\n placeholder=\"Select a Role\"\r\n value={values.selectedRole}\r\n onChange={this.onChangeAddRoleSelectedRole.bind(this)}\r\n fullWidth={true}\r\n searchable={true}\r\n isClearable ={true}\r\n />\r\n {errors.selectedRole ?
{errors.selectedRole}
: null}\r\n
\r\n \r\n Select {this.state.editUser.selectedSystemGroup===null?\"Organization\":this.state.editUser.selectedSystemGroup.value}(s)\r\n \r\n \r\n \r\n 0) || this.state.isProcessing}>\r\n \r\n Add Role\r\n \r\n {this.showProgress()}\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n
\r\n User Roles}\r\n data={values.existingRoles}\r\n columns={userRoleColumns}\r\n options={userRoleListingOptions}\r\n />\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n this.closeEditUserDialog()}\r\n disabled={isSubmitting} \r\n >\r\n ClOSE\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n };\r\n\r\n async onChangeAddRoleSysGroup(newValue) {\r\n this.setState({\r\n editUser:{\r\n ...this.state.editUser,\r\n selectedSystemGroup:newValue===null?\"\":newValue,\r\n selectedRole:\"\",\r\n selectedOrgs:[]\r\n }\r\n });\r\n if(newValue!==null&&newValue!==\"\"){\r\n this.refreshSelectableRoles(newValue.value);\r\n }\r\n }\r\n async refreshSelectableRoles(sysGroup:string){\r\n const rolesRetval = await UserManagerService.GetAllRolesPerSysGroupEditUser$(\r\n this.props.user,\r\n sysGroup,\r\n this.state.editUser.email\r\n ).toPromise();\r\n if (rolesRetval instanceof AjaxError || !rolesRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ selectableRoles: rolesRetval });\r\n }\r\n }\r\n\r\n onChangeAddRoleSelectedRole(newValue){\r\n this.setState({\r\n editUser:{\r\n ...this.state.editUser,\r\n selectedRole:newValue===null?\"\":newValue\r\n }\r\n });\r\n }\r\n selectedOrgsChange4AddRole(newValue){\r\n this.setState({\r\n editUser:{\r\n ...this.state.editUser,\r\n selectedOrgs:newValue\r\n }\r\n });\r\n }\r\n private validateEditUserForm = (values: IEditUserForm): FormikErrors => {\r\n const errors: FormikErrors = {};\r\n\r\n if (validator.isEmpty(values.email)) {\r\n errors.email = \"Required\";\r\n }\r\n\r\n if (!values.selectedOrgs || values.selectedOrgs.length === 0) {\r\n errors.selectedOrgs = [\"Please select an organization.\"];\r\n }\r\n\r\n if (validator.isEmpty(values.selectedRole.value)) {\r\n errors.selectedRole = \"Required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n onEditUserFormSubmit = async () => { \r\n try {\r\n this.setProcessingState(true);\r\n var response = await UserManagerService.AddUserToRoles$(\r\n this.props.user,\r\n this.state.editUser.email,\r\n this.state.editUser.selectedSystemGroup.value.toLowerCase(),\r\n this.state.editUser.selectedRole.value,\r\n this.state.editUser.selectedOrgs && this.state.editUser.selectedOrgs.length > 0\r\n ? this.state.editUser.selectedOrgs.map(x => x.value).join(\",\")\r\n : \"\",\r\n \"\",\r\n false\r\n ).toPromise();\r\n if (response instanceof AjaxError || !response) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshRolesForUser(this.state.editUser.email);\r\n this.setState({\r\n editUser: {\r\n ...this.state.editUser,\r\n selectedSystemGroup: \"\",\r\n selectedOrgs: [],\r\n selectedRole: \"\"\r\n }\r\n });\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n };\r\n\r\n private ShowUserDeleteDialog = (userEmail) => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteUserConfirmDialogOpen: true\r\n },\r\n deleteUserDialog: {\r\n title: \"Delete User \" + userEmail + \"?\",\r\n description: \"Are you sure you'd like to delete User \" + userEmail + \"?\",\r\n user: userEmail\r\n }\r\n });\r\n }\r\n\r\n private CloseDeleteUserConfirmDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteUserConfirmDialogOpen: false\r\n }\r\n });\r\n }\r\n\r\n private DeleteUser = async () => {\r\n try {\r\n this.setProcessingState(true);\r\n const deleteResp = await UserManagerService.DeleteManagableUserAccess$(\r\n this.props.user,\r\n this.state.deleteUserDialog.user\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const userRetVal = await UserManagerService.GetManagableUsers$(\r\n this.props.user\r\n ).toPromise();\r\n const userData = userRetVal.map(item => {\r\n return [item];\r\n });\r\n this.setState({\r\n userData: userData\r\n });\r\n this.CloseDeleteUserConfirmDialog();\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private ShowRoleDeleteDialog = (roleName, roleType, entityId) => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteRoleConfirmDialogOpen: true\r\n },\r\n deleteRoleDialog: {\r\n title: `Delete Role ${roleName}?`,\r\n description: `Are you sure you want to delete ${roleName} role for ${this.state.editUser.email}?`,\r\n user: this.state.editUser.email,\r\n roleInfo: entityId + \",\" + roleType + \",\" + roleName\r\n }\r\n });\r\n }\r\n\r\n private DeleteRole = async () => {\r\n try {\r\n this.setProcessingState(true);\r\n const deleteResp = await UserManagerService.DeleteUserRole$(\r\n this.props.user,\r\n this.state.deleteRoleDialog.user,\r\n this.state.deleteRoleDialog.roleInfo\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshRolesForUser(this.state.deleteRoleDialog.user);\r\n this.CloseDeleteRoleConfirmDialog();\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private CloseDeleteRoleConfirmDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteRoleConfirmDialogOpen: false\r\n }\r\n });\r\n }\r\n\r\n private ShowOrganizationEditDialog = async (organizationId, organizationName, orgType) => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n editOrganizationDialogOpen: true\r\n }\r\n });\r\n\r\n this.setState({ isOrgLoading: true });\r\n try {\r\n await this.RefreshUsersForOrganization(organizationId);\r\n\r\n this.setState({ \r\n editOrganization: {\r\n ...this.state.editOrganization,\r\n organizationId: organizationId,\r\n organizationName: organizationName,\r\n orgType: orgType,\r\n selectedUser: \"\"\r\n }\r\n });\r\n\r\n this.refreshSelectableRoles(orgType);\r\n } catch (ex) {\r\n } finally {\r\n this.setState({ isOrgLoading: false });\r\n }\r\n }\r\n\r\n private closeEditOrganizationDialog = () => {\r\n //reset params for submissions screen\r\n this.backToOrgUsersList();\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n editOrganizationDialogOpen: false\r\n } \r\n });\r\n }\r\n \r\n private getEditOrganizationForm = (formikProps: FormikProps, classes: any): JSX.Element => {\r\n const {\r\n handleSubmit,\r\n handleReset,\r\n values,\r\n isSubmitting\r\n } = formikProps;\r\n\r\n const userOption = this.state.userData.map(email => ({\r\n label: email[0],\r\n value: email[0]\r\n }));\r\n\r\n const roleOption=this.state.selectableRoles.map(m=>({value:m, label:m}));\r\n\r\n const orgUserColumns = [\r\n {\r\n label: \"Email\",\r\n name: \"email\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Role\",\r\n name: \"roleName\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n r.value.toLowerCase() !== \"auditor\") : roleOption}\r\n value={roleOption.filter(x=>x.value===value)[0]}\r\n onChange={this.handleOrgUserRoleChange.bind(this, tableMeta)}\r\n fullWidth={true}\r\n isDisabled={tableMeta.rowIndex === this.state.editOrganization.currentlySubmittingRowIndex||(this.props.user.profile.username===tableMeta.rowData[0] && value.toLowerCase().indexOf(\"admin\")!==-1)}\r\n searchable={true}\r\n menuPortalTarget={document.body}\r\n styles={{ menuPortal: base => ({ ...base, zIndex: 9999 }) }} \r\n /> \r\n );\r\n }\r\n },\r\n },\r\n {\r\n label: \"Submission Access\",\r\n name: \"roleName\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n value.toLowerCase()===\"auditor\"?\r\n }\r\n onClick={()=>this.btnClickManageSubmissions(tableMeta.rowData[0])}\r\n >\r\n  Manage Submissions\r\n :null\r\n );\r\n },\r\n display: (this.state.editOrganization.orgType.toLocaleLowerCase()===\"organization\"?\"true\":\"false\") as any\r\n } \r\n },\r\n {\r\n label: \"Actions\",\r\n name: \"roleName\",\r\n options: {\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if(this.props.user.profile.username===tableMeta.rowData[0] && tableMeta.rowData[1].toLowerCase().indexOf(\"admin\")!==-1)\r\n return null;\r\n return (\r\n
\r\n this.ShowOrgUserDeleteDialog(tableMeta.rowData[0], tableMeta.rowData[1])}>\r\n
\r\n );\r\n }\r\n }\r\n }\r\n ];\r\n\r\n const orgUserListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n searchText: this.state.editOrganization.userSearchText,\r\n onSearchChange: (searchText) => {\r\n this.setState({\r\n editOrganization: {\r\n ...this.state.editOrganization,\r\n userSearchText: searchText\r\n }\r\n });\r\n },\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n const submissionColumns = [\r\n {\r\n label: \"Sub ID\",\r\n name: \"submissionId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Product Line\",\r\n name: \"productLine\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Reporting Product\",\r\n name: \"reportingProduct\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label:\"Special Area\",\r\n name:\"specialArea\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label:\"Special Project\",\r\n name:\"specialProject\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label:\"CMS Contract#\",\r\n name:\"cmsContractNumber\",\r\n options: {\r\n filter: true\r\n }\r\n }\r\n ]\r\n\r\n const submissionOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"multiple\",\r\n selectableRowsOnClick: true,\r\n rowsSelected: this.state.editSubmissions.selectedSubIndexes,\r\n onRowSelectionChange: (affectedRows, selectedSub, rowsSelected) => {\r\n this.setState({\r\n editSubmissions:{...this.state.editSubmissions, selectedSubIndexes: selectedSub.map(item => item.dataIndex)},\r\n });\r\n }, \r\n customToolbarSelect: () => { return null },\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n return (\r\n
\r\n
\r\n \r\n {this.state.isOrgLoading ? null : Edit: {values.organizationName}}\r\n \r\n {this.state.editSubmissions.isEditingSubmissions?\r\n \r\n \r\n Manage Submissions Access for Auditor: {this.state.editSubmissions.userName}\r\n \r\n \r\n \r\n :\r\n \r\n {this.state.isOrgLoading ? : <>\r\n \r\n \r\n Add User\r\n \r\n \r\n Select User\r\n \r\n \r\n {this.state.editOrganization.selectedUser === \"\" ?
:\r\n
\r\n \r\n Select Role\r\n r.value.toLowerCase() !== \"auditor\") : roleOption}\r\n placeholder=\"Select a Role\"\r\n value={values.selectedRole}\r\n onChange={this.onChangeSelectRoleToEntityUser.bind(this)}\r\n fullWidth={true}\r\n searchable={true}\r\n isClearable={true}\r\n styles={selectStyles}\r\n />\r\n \r\n \r\n \r\n \r\n Add User\r\n \r\n {this.showProgress()}\r\n \r\n
\r\n }\r\n
\r\n
\r\n \r\n
\r\n Assigned Users}\r\n data={values.existingUsers}\r\n columns={orgUserColumns}\r\n options={orgUserListingOptions}\r\n />\r\n {AuthorizationPolicies.IsGlobalAdmin(this.props.user) && values.existingUsers.length > 0 &&\r\n \r\n \r\n \r\n Delete All Users\r\n \r\n \r\n \r\n \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.editSubmissions.isEditingSubmissions?\r\n
\r\n }\r\n onClick={() => this.backToOrgUsersList()}\r\n >\r\n BACK TO ORG USERS LIST {this.isSubmissionTouched()? ' WITHOUT SAVING':null}\r\n \r\n           \r\n {this.state.editSubmissions.selectedSubIndexes.length<1?\r\n \r\n \r\n Remove User's Auditor Role\r\n \r\n :\r\n (this.state.editSubmissions.isChangeSaved && !this.isSubmissionTouched()?\r\n \r\n \r\n Change Saved\r\n \r\n :\r\n \r\n \r\n Save Changes\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 };\r\n private async DeleteZeroSubAuditor(){\r\n if(this.state.editSubmissions.selectedSubIndexes===null || this.state.editSubmissions.selectedSubIndexes.length<1){\r\n const deleteResp = await UserManagerService.DeleteUserRole$(\r\n this.props.user,\r\n this.state.editSubmissions.userName,\r\n this.state.editOrganization.organizationId.toString() + \",\"+this.state.editOrganization.orgType.toLowerCase()+\",auditor\"\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.backToOrgUsersList();\r\n this.RefreshUsersForOrganization(this.state.editOrganization.organizationId);\r\n }\r\n }\r\n }\r\n\r\n private async SaveSubmissionChange(){\r\n if(this.state.editSubmissions.selectedSubIndexes===null || this.state.editSubmissions.selectedSubIndexes.length<1){\r\n //do nothing - this is handled by delete ZeroSubAuditor\r\n }\r\n else{ \r\n const selectedSubs:number[]=this.state.editSubmissions.selectedSubIndexes.map(x=>{\r\n return this.state.editSubmissions.submissionData[x]===null?-1:this.state.editSubmissions.submissionData[x].submissionId;\r\n });\r\n var response = await UserManagerService.UpdateSubUserEntities$(this.props.user, this.state.editSubmissions.userName,this.state.editOrganization.organizationId, selectedSubs).toPromise();\r\n\r\n //add info pop up\r\n if (response instanceof AjaxError || !response) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshSubmissionList(this.state.editSubmissions.userName);\r\n this.setState({\r\n editSubmissions: {\r\n ...this.state.editSubmissions,\r\n isChangeSaved: true\r\n }\r\n });\r\n }\r\n }\r\n }\r\n\r\n private isSubmissionTouched(){\r\n if(this.state.editSubmissions.origSelectedSubIndexes.length!==this.state.editSubmissions.selectedSubIndexes.length)\r\n return true;\r\n for(var i=0; i{\r\n this.setState({\r\n editSubmissions:{\r\n isEditingSubmissions:false,\r\n userName:\"\",\r\n submissionData:[],\r\n origSelectedSubIndexes:[],\r\n selectedSubIndexes:[],\r\n isChangeSaved:false\r\n }\r\n });\r\n }\r\n private btnClickManageSubmissions= async (userName)=>{\r\n this.setState({\r\n editSubmissions:{\r\n ...this.state.editSubmissions,\r\n userName:userName,\r\n isEditingSubmissions:true\r\n }\r\n });\r\n this.RefreshSubmissionList(userName);\r\n }\r\n private async RefreshSubmissionList(userName){\r\n const subsRetVal: ISubmissionKey[]=await SubmissionsService.GetSubmissionKeysForOrg$(this.props.user, this.state.editOrganization.organizationId).toPromise();\r\n const accessibleSubIds: number[]=await UserManagerService.GetAccessableSubIds$(this.props.user, userName).toPromise();\r\n if (subsRetVal instanceof AjaxError || accessibleSubIds instanceof AjaxError || !subsRetVal || !accessibleSubIds) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n let indexes: number[] = [];\r\n let indexesAll: number[] = [];\r\n let found: boolean = false;\r\n for (var i = 0; i < subsRetVal.length; i++) {\r\n indexesAll.push(i);\r\n for (var j = 0; j < accessibleSubIds.length; j++) {\r\n if (accessibleSubIds[j] === subsRetVal[i].submissionId) {\r\n found = true;\r\n indexes.push(i);\r\n }\r\n }\r\n }\r\n this.setState({\r\n editSubmissions: {\r\n ...this.state.editSubmissions,\r\n submissionData: subsRetVal,\r\n origSelectedSubIndexes: found ? indexes : indexesAll,\r\n selectedSubIndexes: found ? indexes : indexesAll\r\n }\r\n })\r\n }\r\n }\r\n onEditOrganizationFormSubmit = async () => {\r\n try {\r\n this.setProcessingState(true);\r\n var response = await UserManagerService.AddUserToRoles$(\r\n this.props.user,\r\n this.state.editOrganization.selectedUser.value,\r\n this.state.editOrganization.orgType.toLowerCase(),\r\n this.state.editOrganization.selectedRole.value,\r\n this.state.editOrganization.organizationId.toString(),\r\n \"\",\r\n false\r\n ).toPromise();\r\n if (response instanceof AjaxError || !response) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshUsersForOrganization(this.state.editOrganization.organizationId);\r\n this.setState({\r\n editOrganization: {\r\n ...this.state.editOrganization,\r\n selectedUser: \"\",\r\n selectedRole: \"\"\r\n }\r\n });\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n };\r\n\r\n onChangeSelectUserToEntity(newValue){\r\n if(this.state.editOrganization.selectedRole&&this.state.editOrganization.selectedRole.value.toLowerCase()===\"auditor\"&&!this.isSelectedUserAuditor(newValue===null?\"\": newValue.value)){\r\n this.setState({\r\n editOrganization:{\r\n ...this.state.editOrganization,\r\n selectedRole:\"\",\r\n selectedUser:newValue===null?\"\":newValue\r\n }\r\n });\r\n }\r\n else{\r\n this.setState({\r\n editOrganization:{\r\n ...this.state.editOrganization,\r\n selectedUser:newValue===null?\"\":newValue\r\n }\r\n });\r\n }\r\n }\r\n\r\n onChangeSelectRoleToEntityUser(newValue){\r\n this.setState({\r\n editOrganization:{\r\n ...this.state.editOrganization,\r\n selectedRole:newValue===null?\"\":newValue\r\n }\r\n })\r\n }\r\n async handleOrgUserRoleChange(tableMeta, newValue) {\r\n try {\r\n this.setProcessingState(true);\r\n\r\n this.setState({\r\n editOrganization: {\r\n ...this.state.editOrganization,\r\n currentlySubmittingRowIndex: tableMeta.rowIndex\r\n }\r\n });\r\n const deleteResp = await UserManagerService.DeleteUserRole$(\r\n this.props.user,\r\n tableMeta.rowData[0],\r\n this.state.editOrganization.organizationId + \",\" + this.state.editOrganization.orgType.toLowerCase() + \",\" + tableMeta.rowData[1]\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n const resp = await UserManagerService.AddUserToRoles$(\r\n this.props.user,\r\n tableMeta.rowData[0],\r\n this.state.editOrganization.orgType.toLowerCase(),\r\n newValue.value,\r\n this.state.editOrganization.organizationId.toString(),\r\n \"\",\r\n false\r\n ).toPromise();\r\n\r\n if (resp instanceof AjaxError || !resp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({\r\n editOrganization: {\r\n ...this.state.editOrganization,\r\n currentlySubmittingRowIndex: null\r\n }\r\n });\r\n await this.RefreshUsersForOrganization(this.state.editOrganization.organizationId);\r\n }\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private validateEditOrganizationForm = (values: IEditOrganizationForm): FormikErrors => {\r\n const errors: FormikErrors = {};\r\n\r\n if (validator.isEmpty(values.selectedUser)) {\r\n errors.selectedUser = \"Required\";\r\n }\r\n\r\n if (validator.isEmpty(values.selectedRole)) {\r\n errors.selectedRole = \"Required\";\r\n }\r\n\r\n return errors;\r\n };\r\n\r\n private RefreshUsersForOrganization = async (organizationId) => {\r\n const userRetVal: IOrgUserPayload[] = await UserManagerService.GetUsersForOrganization$(\r\n this.props.user,\r\n organizationId\r\n ).toPromise();\r\n\r\n if (userRetVal instanceof AjaxError || !userRetVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n let orgUsers = userRetVal.map(item => {\r\n return item;\r\n });\r\n\r\n this.setState({\r\n editOrganization: {\r\n ...this.state.editOrganization,\r\n existingUsers: orgUsers\r\n }\r\n });\r\n }\r\n }\r\n\r\n private ShowOrgUserDeleteDialog = (userName, roleName) => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteOrgUserConfirmDialogOpen: true\r\n },\r\n deleteOrgUserDialog: {\r\n title: \"Delete User (\" + userName + \")?\",\r\n description: \"Are you sure you'd like to delete \" + roleName + \" role for \" + userName + \"?\",\r\n user: userName,\r\n roleInfo: this.state.editOrganization.organizationId + \",\"+this.state.editOrganization.orgType.toLocaleLowerCase()+\",\" + roleName\r\n }\r\n });\r\n }\r\n\r\n private DeleteOrgUser = async () => {\r\n try {\r\n this.setProcessingState(true);\r\n const deleteResp = await UserManagerService.DeleteUserRole$(\r\n this.props.user,\r\n this.state.deleteOrgUserDialog.user,\r\n this.state.deleteOrgUserDialog.roleInfo\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshUsersForOrganization(this.state.editOrganization.organizationId);\r\n this.CloseDeleteOrgUserConfirmDialog();\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private CloseDeleteOrgUserConfirmDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteOrgUserConfirmDialogOpen: false\r\n }\r\n });\r\n }\r\n\r\n private ShowAllUserDeleteDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteAllUserConfirmDialogOpen: true\r\n },\r\n deleteAllUserDialog: {\r\n title: \"Delete All Users?\",\r\n description: \"Are you sure you'd like to delete all users for Organization (\" + this.state.editOrganization.organizationName + \")?\"\r\n }\r\n });\r\n }\r\n\r\n private DeleteAllOrgUsers = async () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n currentlyDeletingAllUsersForOrg: true,\r\n deleteAllUserConfirmDialogOpen: false\r\n }\r\n });\r\n try {\r\n this.setProcessingState(true);\r\n const deleteResp = await UserManagerService.DeleteAllOrgUsers$(\r\n this.props.user,\r\n this.state.editOrganization.organizationId.toString()\r\n ).toPromise();\r\n\r\n if (deleteResp instanceof AjaxError || !deleteResp) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n await this.RefreshUsersForOrganization(this.state.editOrganization.organizationId);\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n currentlyDeletingAllUsersForOrg: false\r\n }\r\n });\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setProcessingState(false);\r\n }\r\n }\r\n\r\n private CloseDeleteAllUserConfirmDialog = () => {\r\n this.setState({\r\n events: {\r\n ...this.state.events,\r\n deleteAllUserConfirmDialogOpen: false\r\n }\r\n });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst UserListsPageWithState = connect(\r\n genericMapStateToProps\r\n)(UsersListView);\r\n\r\n// STYLES CONTAINER\r\nconst UsersListPage = withStyles(styles)(UserListsPageWithState);\r\n\r\nexport default UsersListPage;\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Grid, Select, FormControl, InputLabel, MenuItem, Button, Fade } from \"@material-ui/core\";\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport { ISurveyVenderSubmissionStatusReportPayload } from \"../../../DataClasses/ReportData\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Link, LinkProps } from \"react-router-dom\";\r\nimport SharedUtility from \"../../../Utilities/SharedUtility\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface IHosVendorSubmissionStatusReportState {\r\n data: any[];\r\n isLoading: boolean;\r\n availableMeasurementYears: any[];\r\n selectedMeasurementYear: number;\r\n redirect: boolean;\r\n}\r\nconst AdapterLink = React.forwardRef(\r\n (props, ref) => \r\n);\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass HosVendorSubmissionStatusReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IHosVendorSubmissionStatusReportState\r\n> {\r\n private reportOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n viewColumns: false,\r\n print: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'HosVendorSubmissionStatusReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n availableMeasurementYears: [],\r\n selectedMeasurementYear: -1,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n const reportColumns =\r\n [\r\n {\r\n name: \"Sub ID\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"Org ID\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"CMSContract\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Component\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Vendor\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Stage\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Result\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"LastUploadedOn\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Attested\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"MarkedFinal\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n ];\r\n\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n MeasurementYear\r\n \r\n {this.state.availableMeasurementYears.map(m => (\r\n \r\n {m}\r\n \r\n ))}\r\n \r\n \r\n {this.state.isLoading ? :\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private handleSelectedMeasurementYearChange = async (ev: React.ChangeEvent) => {\r\n const measurementYear = parseInt(ev.target.value);\r\n this.setState({\r\n selectedMeasurementYear: measurementYear,\r\n isLoading: true\r\n });\r\n await this.LoadReportFor(measurementYear);\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const yearsRetVal: number[] | AjaxError = await ReportsService.GetAvailableMeasurementYearsCaller$(this.props.user).toPromise();\r\n if (yearsRetVal instanceof AjaxError || !yearsRetVal) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ availableMeasurementYears: yearsRetVal });\r\n }\r\n await this.LoadReportFor(this.state.selectedMeasurementYear);\r\n this.setState({ isLoading: false });\r\n }\r\n private async LoadReportFor(measurementYear: number) {\r\n const retval: ISurveyVenderSubmissionStatusReportPayload[] | AjaxError = await ReportsService.GetHosSubmissionStatusReportCaller$(\r\n this.props.user, measurementYear).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(item => {\r\n return [\r\n item.submissionId,\r\n item.organizationId,\r\n item.cmsContractNumber,\r\n item.component,\r\n item.vendorName,\r\n SharedUtility.GetStageCleanName(item.status),\r\n item.result,\r\n item.lastUploadedOn,\r\n item.isAttested,\r\n item.markedFinal\r\n ]\r\n }\r\n )\r\n });\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst HosVendorSubmissionStatusReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(HosVendorSubmissionStatusReportView);\r\n\r\n// STYLES CONTAINER\r\nconst HosVendorSubmissionStatusReportPage = withStyles(styles)(\r\n HosVendorSubmissionStatusReportPageWithState\r\n);\r\n\r\nexport default HosVendorSubmissionStatusReportPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Grid, Select, FormControl, InputLabel, MenuItem, Button, Fade } from \"@material-ui/core\";\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport { ISurveyVenderSubmissionStatusReportPayload } from \"../../../DataClasses/ReportData\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport { Link, LinkProps } from \"react-router-dom\";\r\nimport SharedUtility from \"../../../Utilities/SharedUtility\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface ICahpsVendorSubmissionStatusReportState {\r\n data: any[];\r\n isLoading: boolean;\r\n availableMeasurementYears: any[];\r\n selectedMeasurementYear: number;\r\n redirect: boolean;\r\n}\r\n\r\nconst AdapterLink = React.forwardRef(\r\n (props, ref) => \r\n);\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass CahpsVendorSubmissionStatusReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ICahpsVendorSubmissionStatusReportState\r\n> {\r\n private reportOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'CahpsVendorSubmissionStatusReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n availableMeasurementYears: [],\r\n selectedMeasurementYear: -1,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n const reportColumns =\r\n [\r\n {\r\n name: \"Sub ID\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"Org ID\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"Component\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"ProductLine\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Vendor\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Stage\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Result\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"LastUploadedOn\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n {\r\n name: \"MarkedFinal\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n ];\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n MeasurementYear\r\n \r\n {this.state.availableMeasurementYears.map(m => (\r\n \r\n {m}\r\n \r\n ))}\r\n \r\n \r\n {this.state.isLoading ? :\r\n
\r\n
\r\n
\r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private handleSelectedMeasurementYearChange = async (ev: React.ChangeEvent) => {\r\n const measurementYear = parseInt(ev.target.value);\r\n this.setState({\r\n selectedMeasurementYear: measurementYear,\r\n isLoading: true\r\n });\r\n await this.LoadReportFor(measurementYear);\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const yearsRetVal: number[] | AjaxError = await ReportsService.GetAvailableMeasurementYearsCaller$(this.props.user).toPromise();\r\n if (yearsRetVal instanceof AjaxError || !yearsRetVal) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ availableMeasurementYears: yearsRetVal });\r\n }\r\n await this.LoadReportFor(this.state.selectedMeasurementYear);\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private async LoadReportFor(measurementYear: number) {\r\n const retval: ISurveyVenderSubmissionStatusReportPayload[] | AjaxError = await ReportsService.GetCahpsSubmissionStatusReportCaller$(\r\n this.props.user, measurementYear).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(item => {\r\n return [\r\n item.submissionId,\r\n item.organizationId,\r\n item.component,\r\n item.productLine,\r\n item.vendorName,\r\n SharedUtility.GetStageCleanName(item.status),\r\n item.result,\r\n item.lastUploadedOn,\r\n item.markedFinal\r\n ]\r\n }\r\n )\r\n });\r\n }\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst CahpsVendorSubmissionStatusReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(CahpsVendorSubmissionStatusReportView);\r\n\r\n// STYLES CONTAINER\r\nconst CahpsVendorSubmissionStatusReportPage = withStyles(styles)(\r\n CahpsVendorSubmissionStatusReportPageWithState\r\n);\r\n\r\nexport default CahpsVendorSubmissionStatusReportPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport { IEvent } from \"../../../DataClasses/DbData\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport Moment from 'react-moment';\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface IActivityReportState {\r\n data: any[];\r\n isLoading: boolean;\r\n redirect: boolean;\r\n}\r\n\r\nconst reportColumns =\r\n [\r\n {\r\n name: \"Date\",\r\n options: {\r\n filter: false,\r\n customBodyRender: value => {\r\n return (\r\n \r\n {value}\r\n \r\n );\r\n }\r\n }\r\n },\r\n {\r\n name: \"User\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Org ID\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Sub ID\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Component\",\r\n options: {\r\n filter: true,\r\n }\r\n },\r\n {\r\n name: \"Message\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n ]\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass ActivityReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IActivityReportState\r\n> {\r\n private reportOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'ActivityReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.isLoading ? :\r\n \r\n }\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval: IEvent[] | AjaxError = await ReportsService.GetEventListCaller$(this.props.user).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(item => {\r\n return [\r\n item.timestamp,\r\n item.user,\r\n item.orgId,\r\n item.subId,\r\n item.displayComponent,\r\n item.message\r\n ];\r\n })\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst ActivityReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(ActivityReportView);\r\n\r\n// STYLES CONTAINER\r\nconst ActivityReportPage = withStyles(styles)(\r\n ActivityReportPageWithState\r\n);\r\n\r\nexport default ActivityReportPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport { Grid, Card, CardContent, Typography } from \"@material-ui/core\";\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport LoadingDisplay from \"../../Shared/Loading\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface ISubmissionsDataSummaryReportState {\r\n hedisData: any;\r\n cahpsData: any;\r\n hosData: any;\r\n isLoading: boolean;\r\n redirect: boolean\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass SubmissionsDataSummaryReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ISubmissionsDataSummaryReportState\r\n> {\r\n private reportOptions: MUIDataTableOptions = {\r\n filter: false,\r\n filterType: \"dropdown\",\r\n print: false,\r\n pagination: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'SubmissionsDataSummaryReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n }\r\n }\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n hedisData: [],\r\n cahpsData: [],\r\n hosData: [],\r\n isLoading: true,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n\r\n const reportColumns =\r\n [\r\n {\r\n name: \"Description\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n if (this.findTerm(value, 'plan')\r\n || this.findTerm(value, 'audit')\r\n || this.findTerm(value, 'final')) {\r\n return {value};\r\n }\r\n else {\r\n return value;\r\n }\r\n }\r\n }\r\n },\r\n {\r\n name: \"Count\",\r\n options: {\r\n filter: false,\r\n }\r\n },\r\n ];\r\n\r\n return (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.isLoading ? :\r\n Hedis}\r\n data={this.state.hedisData}\r\n columns={reportColumns}\r\n options={this.reportOptions}\r\n />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.isLoading ? :\r\n CAHPS}\r\n data={this.state.cahpsData}\r\n columns={reportColumns}\r\n options={this.reportOptions}\r\n />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.isLoading ? :\r\n HOS}\r\n data={this.state.hosData}\r\n columns={reportColumns}\r\n options={this.reportOptions}\r\n />\r\n }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval: any | AjaxError = await ReportsService.GetSubmissionsDataSummary$(this.props.user).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n var hedisData = retval.filter(v => !v.description.toLocaleLowerCase().includes(\"cahps\") && !v.description.toLocaleLowerCase().includes(\"hos\"));\r\n var cahpsData = retval.filter(v => v.description.toLocaleLowerCase().includes(\"cahps\"));\r\n var hosData = retval.filter(v => v.description.toLocaleLowerCase().includes(\"hos\"));\r\n this.setState({\r\n hedisData: this.getData(hedisData),\r\n cahpsData: this.getData(cahpsData),\r\n hosData: this.getData(hosData)\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private getData(data: any): any {\r\n var mappedData = data.map(item => {\r\n return [\r\n item.description,\r\n item.count\r\n ];\r\n });\r\n return mappedData;\r\n }\r\n\r\n private findTerm(value, term): boolean {\r\n if (value.toLocaleLowerCase().includes(term)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst SubmissionsDataSummaryReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(SubmissionsDataSummaryReportView);\r\n\r\n// STYLES CONTAINER\r\nconst SubmissionsDataSummaryReportPage = withStyles(styles)(\r\n SubmissionsDataSummaryReportPageWithState\r\n);\r\n\r\nexport default SubmissionsDataSummaryReportPage;","import * as React from \"react\";\r\nimport { Grid, Typography, TextareaAutosize } from '@material-ui/core';\r\nimport request from 'superagent';\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport Dropzone from \"react-dropzone\";\r\nimport classNames from 'classnames';\r\nimport saveAs from 'file-saver';\r\nimport UserMessage from '../Shared/Message';\r\nimport { MessageType } from '../../DataClasses/SharedData';\r\nimport { connect } from 'react-redux';\r\nimport { genericMapStateToProps, IGenericUserProps } from \"../../DataClasses/GenericUser\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\nimport DbService from \"../Services/DbService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport LoadingDisplay from \"../Shared/Loading\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\ninterface ILocalState {\r\n completed: number,\r\n processingFiles: boolean,\r\n transactionId: string,\r\n processingText: string\r\n}\r\n\r\nclass GenericUploaderView extends React.Component {\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n\r\n this.state = {\r\n processingFiles: false,\r\n completed: 0,\r\n transactionId: \"\",\r\n processingText: \"\"\r\n }\r\n }\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n\r\n return \r\n \r\n \r\n Generic Uploads\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.state.processingFiles ?\r\n \r\n :\r\n \r\n {({ getRootProps, getInputProps, isDragActive }) => {\r\n return (\r\n \r\n \r\n {\r\n isDragActive ?\r\n

Drop files here...

:\r\n

Try dropping some files here, or click to select files to upload.

\r\n }\r\n \r\n )\r\n }}\r\n \r\n }\r\n {this.state.processingText.length > 0 &&\r\n
\r\n \r\n Processing Status\r\n \r\n \r\n
\r\n }\r\n
\r\n
\r\n }\r\n\r\n private onDrop = (acceptedFiles, rejectedFiles) => {\r\n this.setState({\r\n processingFiles: true\r\n });\r\n\r\n const data = new FormData();\r\n if (acceptedFiles.length === 0) {\r\n alert('Please select a valid file');\r\n return;\r\n }\r\n\r\n acceptedFiles.forEach(file => {\r\n data.append(\"files\", file, file.name);\r\n });\r\n\r\n const localTransactionId = uuidv4();\r\n this.setState({ transactionId: localTransactionId });\r\n\r\n const req = request.post(process.env.REACT_APP_MYWEBSITE_BASESERVICEURL + \"/api/bulkupload/uploadgenericfile\");\r\n req.query({ transactionId: localTransactionId });\r\n req.set({ 'Authorization': 'Bearer ' + this.props.user.access_token });\r\n\r\n // show upload progress \r\n req.on('progress', event => {\r\n const percent = Math.floor(event.percent);\r\n if (!isNaN(percent)) {\r\n if (percent >= 100) {\r\n this.setState({ completed: 100});\r\n } else {\r\n this.setState({ completed: percent });\r\n }\r\n }\r\n });\r\n\r\n setTimeout(\r\n () => this.spinWait(),\r\n 1000\r\n );\r\n\r\n // send file(s) to server\r\n req.send(data)\r\n .end((err, res) => this.postUploadFiles(err, res));\r\n };\r\n\r\n private spinWait = async () => {\r\n\r\n const bulkCall = DbService.GetBulkTransactions$(this.props.user, this.state.transactionId);\r\n\r\n const transactionText = await bulkCall.toPromise();\r\n if (transactionText instanceof AjaxError || transactionText === null) {\r\n if (this.state.processingFiles) {\r\n setTimeout(\r\n () => this.spinWait(),\r\n 2000\r\n );\r\n }\r\n return;\r\n }\r\n else {\r\n var newText = transactionText.join(\"\\n\");\r\n this.setState({ processingText: newText });\r\n }\r\n\r\n if (this.state.processingFiles) {\r\n setTimeout(\r\n () => this.spinWait(),\r\n 2000\r\n );\r\n }\r\n }\r\n\r\n private postUploadFiles = (err, res) => {\r\n this.setState({ processingFiles: false });\r\n\r\n if (err) {\r\n alert(\"Upload not Successful\");\r\n }\r\n else {\r\n if (!res.body.didError) {\r\n const data = this.str2ab(atob(res.body.fileContents));\r\n saveAs(new Blob([data], { type: \"application/octet-stream\" }), res.body.fileName);\r\n }\r\n }\r\n this.setState({\r\n completed: 0,\r\n });\r\n }\r\n\r\n private str2ab(str) {\r\n const buf = new ArrayBuffer(str.length);\r\n const bufView = new Uint8Array(buf);\r\n for (let i = 0, strLen = str.length; i < strLen; i++) {\r\n bufView[i] = str.charCodeAt(i);\r\n }\r\n return buf;\r\n }\r\n\r\n private getMessageContent() {\r\n return (\r\n \r\n You may upload one or more submissions here at the same time.
\r\n Submissions must be xml.\r\n
\r\n );\r\n }\r\n}\r\n// REDUX CONTAINER\r\nconst GenericUploaderPageState = connect(genericMapStateToProps)(GenericUploaderView);\r\n\r\n// STYLES CONTAINER\r\nconst GenericUploaderPage = withStyles(styles)(GenericUploaderPageState);\r\n\r\nexport default GenericUploaderPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport { Grid, Typography, TextareaAutosize, Button, Radio, RadioGroup, FormControlLabel, FormControl, TextField, Checkbox } from \"@material-ui/core\";\r\nimport Select from \"react-select\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport * as validator from \"validator\";\r\nimport AlertDialog from \"../Shared/AlertDialog\";\r\nimport { ICustomTextDialog } from \"../../DataClasses/UsersData\";\r\n\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\ninterface ILocalState {\r\n selectedSystemGroupType: any;\r\n selectedRole: any;\r\n users: string;\r\n entityIds: string;\r\n allSystemGroupTypes: string[];\r\n allRoles: string[];\r\n redirect: boolean;\r\n isProcessing: boolean;\r\n errorMessages: string;\r\n bulkOptionSelected: string;\r\n copyFromUserEmail: string;\r\n removeExistingRoles: boolean;\r\n bulkUserOperationDialog: ICustomTextDialog;\r\n bulkUserOperationConfirmDialogOpen: boolean;\r\n}\r\n\r\n// VIEW\r\nclass BulkUserView extends React.Component {\r\n constructor(props: IGenericUserProps & IStylesProps) {\r\n super(props);\r\n this.state = this.initialState;\r\n \r\n }\r\n\r\n public async componentDidMount() {\r\n // This method runs when the component is first added to the page\r\n this.RefreshModel();\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n Bulk User Management \r\n \r\n \r\n \r\n \r\n {this.state.errorMessages}\r\n \r\n \r\n \r\n \r\n \r\n Select Bulk Update Option\r\n \r\n \r\n } label=\"Add\" />\r\n } label=\"Remove\" />\r\n } label=\"Copy\" />\r\n \r\n \r\n \r\n {this.state.bulkOptionSelected === \"add\" ? <>\r\n \r\n \r\n Select System Group Type\r\n \r\n \r\n \r\n \r\n \r\n Select Role\r\n \r\n \r\n \r\n : null}\r\n {this.state.bulkOptionSelected === \"copy\" ? <>\r\n \r\n \r\n Enter copy from user email\r\n \r\n\r\n \r\n \r\n : null}\r\n \r\n \r\n Enter user email(s)\r\n \r\n \r\n {this.state.bulkOptionSelected === \"copy\" ? <>\r\n \r\n this.setState({ removeExistingRoles: !this.state.removeExistingRoles })}\r\n />\r\n }\r\n label=\"Remove existing roles before copying the new user roles\"\r\n />\r\n \r\n : null}\r\n \r\n {this.state.bulkOptionSelected === \"add\" ? <>\r\n \r\n \r\n Enter organization/vendor id(s)\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 this.closeBulkUserOperationConfirmDialog()}\r\n isButton1Clicked={this.state.isProcessing}\r\n />\r\n
\r\n );\r\n }\r\n\r\n private closeBulkUserOperationConfirmDialog = () => {\r\n this.setState({ bulkUserOperationConfirmDialogOpen: false });\r\n }\r\n\r\n private async RefreshModel() {\r\n const sysGroupTypes = await UserManagerService.GetAllSysGroups$(\r\n this.props.user\r\n ).toPromise();\r\n if (sysGroupTypes instanceof AjaxError || !sysGroupTypes) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allSystemGroupTypes: sysGroupTypes });\r\n }\r\n }\r\n\r\n private getSysGroupOptions() {\r\n if (this.state.allSystemGroupTypes !== null && this.state.allSystemGroupTypes.length > 0) {\r\n const sysGroupTypes = this.state.allSystemGroupTypes;\r\n const sysGroupTypeOptions = sysGroupTypes.map(m => ({ value: m, label: m }));\r\n return sysGroupTypeOptions;\r\n }\r\n }\r\n\r\n private getRoleOptions() {\r\n if (this.state.allRoles !== null && this.state.allRoles.length > 0) {\r\n const roles = this.state.allRoles;\r\n const roleOptions = roles.map(m => ({ value: m, label: m }));\r\n return roleOptions;\r\n }\r\n }\r\n\r\n private async onSystemGroupTypeChange(sysGroupType) {\r\n this.setState({\r\n selectedSystemGroupType: sysGroupType,\r\n selectedRole: null\r\n });\r\n if (sysGroupType.value !== null && sysGroupType.value !== \"\") {\r\n this.getRolesForSystemGroupType(sysGroupType.value);\r\n }\r\n }\r\n\r\n private async onRoleChange(role) {\r\n this.setState({ selectedRole: role });\r\n }\r\n\r\n private async handleRadioChange(event) {\r\n this.setErrorMessage(\"\");\r\n this.setState({ bulkOptionSelected: event.target.value });\r\n }\r\n\r\n private async onUsersChange(event) {\r\n this.setState({ users: event.target.value });\r\n }\r\n\r\n private async onCopyFromUserEmailChange(event) {\r\n this.setState({ copyFromUserEmail: event.target.value });\r\n }\r\n \r\n private async onEntityIdsChange(event) {\r\n this.setState({ entityIds: event.target.value });\r\n }\r\n\r\n private async getRolesForSystemGroupType(sysGroup: string) {\r\n const roles = await UserManagerService.GetAllRolesPerSysGroup$(\r\n this.props.user,\r\n sysGroup\r\n ).toPromise();\r\n if (roles instanceof AjaxError || !roles) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ allRoles: roles });\r\n }\r\n }\r\n\r\n private handleBulkUserOperation = async () => {\r\n try {\r\n this.setState({ isProcessing: true });\r\n const retVal = await UserManagerService.BulkUserOperation$(\r\n this.props.user,\r\n this.state.bulkOptionSelected,\r\n this.state.selectedSystemGroupType === null ? \"\" : this.state.selectedSystemGroupType.value,\r\n this.state.selectedRole === null ? \"\" : this.state.selectedRole.value,\r\n this.state.users,\r\n this.state.entityIds,\r\n this.state.copyFromUserEmail,\r\n this.state.removeExistingRoles\r\n ).toPromise(); \r\n\r\n if (retVal instanceof AjaxError || !retVal) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.resetState();\r\n this.setErrorMessage('Bulk user operation successful');\r\n this.closeBulkUserOperationConfirmDialog();\r\n }\r\n } catch (ex) {\r\n } finally {\r\n this.setState({ isProcessing: false });\r\n }\r\n }\r\n\r\n private validate() {\r\n var errorMessage = \"\";\r\n this.setErrorMessage(errorMessage);\r\n\r\n var bulkOptionSelected = this.state.bulkOptionSelected;\r\n if (!this.state.users || this.state.users.trim() === \"\") {\r\n errorMessage = \"User email(s) should not be blank\";\r\n }\r\n if (bulkOptionSelected === \"add\" && (!this.state.entityIds || this.state.entityIds.trim() === \"\")) {\r\n errorMessage = \"Entity id(s) should not be blank\";\r\n }\r\n if (bulkOptionSelected === \"copy\") {\r\n var copyFromUserEmail = this.state.copyFromUserEmail;\r\n if (!copyFromUserEmail || copyFromUserEmail.trim() === \"\") {\r\n errorMessage = \"Copy from user email should not be blank\";\r\n }\r\n else if (copyFromUserEmail.trim() !== \"\") {\r\n errorMessage = this.validateEmail(copyFromUserEmail.trim());\r\n } \r\n }\r\n if (errorMessage !== \"\")\r\n {\r\n this.setErrorMessage(errorMessage);\r\n return false;\r\n }\r\n\r\n //validate user emails\r\n var emailErrors = this.validateUserEmails(); \r\n //validate entity Ids\r\n var entityIdErrors = this.validateEntityIds();\r\n //concat both errors array\r\n var errors = emailErrors.concat(entityIdErrors);\r\n if (errors.length > 0) {\r\n const flattenString = errors.join('\\n');\r\n this.setErrorMessage(flattenString);\r\n return false;\r\n }\r\n\r\n this.setState({\r\n bulkUserOperationConfirmDialogOpen: true,\r\n bulkUserOperationDialog: {\r\n title: `Bulk user ${bulkOptionSelected} operation`,\r\n description: `Are you sure you want to perform the '${bulkOptionSelected}' bulk operation?`, \r\n }\r\n });\r\n return true;\r\n }\r\n\r\n private setErrorMessage(message: string) {\r\n this.setState({ errorMessages: message });\r\n }\r\n\r\n private validateUserEmails(): string[] {\r\n var errors = [];\r\n if (this.state.users && this.state.users.trim() !== \"\") {\r\n var userEmails = this.state.users.split(',');\r\n if (userEmails.length > 0) {\r\n userEmails.forEach(e => {\r\n var email = e.trim();\r\n if (email !== \"\") {\r\n var errorMessage = this.validateEmail(email);\r\n if (errorMessage !== \"\")\r\n errors.push(errorMessage);\r\n }\r\n });\r\n }\r\n }\r\n return errors;\r\n }\r\n\r\n private validateEmail(email): string {\r\n var errorMessage = \"\";\r\n if (!validator.isLength(email, { min: 1, max: 75 })) {\r\n errorMessage = `Email - '${email}' can be no longer than 75 characters.`;\r\n } else if (!validator.isEmail(email)) {\r\n errorMessage = `Email - '${email}' is not in a valid format.`;\r\n }\r\n return errorMessage;\r\n }\r\n\r\n private validateEntityIds(): string[] {\r\n var errors = [];\r\n if (this.state.entityIds && this.state.entityIds.trim() !== \"\") {\r\n var entityIds = this.state.entityIds.split(',');\r\n if (entityIds.length > 0) {\r\n entityIds.forEach(e => {\r\n var entityId = e.trim();\r\n if (entityId !== \"\") {\r\n if (!Number.isInteger(+entityId)) {\r\n errors.push(`Entity Id - '${entityId}' is not valid.`);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n return errors;\r\n }\r\n\r\n get initialState() {\r\n return {\r\n selectedSystemGroupType: null,\r\n selectedRole: null,\r\n users: \"\",\r\n entityIds: \"\",\r\n redirect: false,\r\n isProcessing: false,\r\n allSystemGroupTypes: [],\r\n allRoles: [],\r\n errorMessages: \"\",\r\n bulkOptionSelected: \"add\",\r\n copyFromUserEmail: \"\",\r\n bulkUserOperationDialog: {\r\n description: \"\",\r\n title: \"\",\r\n },\r\n bulkUserOperationConfirmDialogOpen: false,\r\n removeExistingRoles: false\r\n };\r\n }\r\n\r\n private resetState() {\r\n var allSystemGroupTypes = this.state.allSystemGroupTypes;\r\n\r\n this.setState(this.initialState);\r\n //retain all system group types\r\n this.setState({ allSystemGroupTypes: allSystemGroupTypes });\r\n }\r\n} \r\n\r\n// REDUX CONTAINER\r\nconst BulkUserPageWithState = connect(genericMapStateToProps)(BulkUserView);\r\n\r\n// STYLES CONTAINER\r\nconst BulkUserPage = withStyles(styles)(BulkUserPageWithState);\r\n\r\nexport default BulkUserPage;\r\n","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport { IValidationReportData } from \"../../../DataClasses/SubmissionData\";\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport MUIDataTable, { MUIDataTableOptions, MUIDataTableMeta } from \"mui-datatables\";\r\nimport { Tooltip, IconButton, Grow, Dialog, Typography, Divider, Box, InputLabel, DialogContent, DialogTitle, DialogActions, Button, Grid } from '@material-ui/core';\r\nimport PageviewOutlinedIcon from '@material-ui/icons/PageviewOutlined';\r\nimport { ValidationRptError } from \"../../../DataClasses/SharedData\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\nconst LightTooltip = withStyles((theme: Theme) => ({\r\n tooltip: {\r\n backgroundColor: '#f2f2f2', // theme.palette.common.white,\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n boxShadow: theme.shadows[16],\r\n fontSize: 11,\r\n fontStyle: 'oblique'\r\n },\r\n}))(Tooltip);\r\n\r\ninterface IValidationReportState {\r\n isLoading: boolean;\r\n data: any[],\r\n redirect: boolean,\r\n validationDialogOpen: boolean,\r\n currentValidationItem: ValidationRptError\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass ValidationReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IValidationReportState\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n data: [],\r\n redirect: false,\r\n validationDialogOpen: false,\r\n currentValidationItem: null\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n public render() {\r\n const reportColumns =\r\n [\r\n {\r\n name: \"Org Id\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Sub Id\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Org Name\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Measure\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Indicator Key\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Indicator\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Severity\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Rule Name\",\r\n options: {\r\n filter: true,\r\n customBodyRender: (value, tableMeta, updateValue) => {\r\n return this.validationColumnWithTooltip(value, tableMeta);\r\n }\r\n }\r\n },\r\n {\r\n name: \"Message\",\r\n options: {\r\n display: 'excluded' as ('true' | 'false' | 'excluded'),\r\n filter: false\r\n }\r\n },\r\n {\r\n name: \"Details\",\r\n options: {\r\n filter: false,\r\n customBodyRender: (value, tableMeta, updateValue) => {\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 this.ShowValidationDialog(tableMeta)}>\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n },\r\n download: false\r\n }\r\n }\r\n ];\r\n const reportOptions: MUIDataTableOptions = {\r\n filterType: \"multiselect\" as any,\r\n sort: true,\r\n filter: true,\r\n print: false,\r\n downloadOptions: {\r\n filename: 'ValidationsReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: false,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n caseSensitive: false,\r\n rowsPerPage: 15,\r\n rowsPerPageOptions: [15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\r\n return (\r\n
\r\n this.CloseValidationDialog()} className={classes.dialogM} TransitionComponent={Grow}>\r\n \r\n \r\n Validation Details\r\n \r\n \r\n \r\n \r\n {this.state.currentValidationItem ? <>{this.renderValaidationDetailGrid()} : 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\n {this.state.isLoading ? :\r\n \r\n }\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n private renderValaidationDetailGrid = () => {\r\n const { classes } = this.props;\r\n return
\r\n \r\n {this.state.currentValidationItem.orgId !== null ?\r\n \r\n Org Id\r\n \r\n {this.state.currentValidationItem.orgId}\r\n \r\n : null\r\n }\r\n {this.state.currentValidationItem.subId !== null ?\r\n \r\n Sub Id\r\n \r\n {this.state.currentValidationItem.subId}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.orgName) ?\r\n \r\n Org Name\r\n \r\n {this.state.currentValidationItem.orgName}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.measureCode) ?\r\n \r\n Measure Code\r\n \r\n {this.state.currentValidationItem.measureCode}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.shortIndicatorName) ?\r\n \r\n Short Indicator Name\r\n \r\n {this.state.currentValidationItem.shortIndicatorName}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.indicatorKey) ?\r\n \r\n Indicator Key\r\n \r\n {this.state.currentValidationItem.indicatorKey}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.severity) ?\r\n \r\n Severity\r\n \r\n {this.state.currentValidationItem.severity}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.ruleName) ?\r\n \r\n Rule Name\r\n \r\n {this.state.currentValidationItem.ruleName}\r\n \r\n : null\r\n }\r\n {this.IsNonEmptyStr(this.state.currentValidationItem.message) ?\r\n \r\n Message\r\n \r\n {this.state.currentValidationItem.message}\r\n \r\n : null\r\n }\r\n
\r\n }\r\n private IsNonEmptyStr = (s: string) => {\r\n return (s && s.length > 0)\r\n }\r\n\r\n private ShowValidationDialog = (tableMeta: MUIDataTableMeta) => {\r\n this.setState({\r\n currentValidationItem: {\r\n orgId: tableMeta.rowData[0],\r\n subId: tableMeta.rowData[1],\r\n orgName: tableMeta.rowData[2],\r\n measureCode: tableMeta.rowData[3],\r\n indicatorKey: tableMeta.rowData[4],\r\n shortIndicatorName: tableMeta.rowData[5],\r\n severity: tableMeta.rowData[6],\r\n ruleName: tableMeta.rowData[7],\r\n message: tableMeta.rowData[8],\r\n },\r\n validationDialogOpen: true\r\n });\r\n }\r\n\r\n private CloseValidationDialog() {\r\n this.setState({\r\n validationDialogOpen: false,\r\n });\r\n }\r\n\r\n private validationColumnWithTooltip(value: string, tableMeta: MUIDataTableMeta) {\r\n return (\r\n \r\n
{value}
\r\n
\r\n );\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval: IValidationReportData[] | AjaxError = await ReportsService.GetValidationReportData$(this.props.user).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(x => {\r\n return [\r\n x.orgId,\r\n x.subId,\r\n x.orgName,\r\n x.measureCode,\r\n x.indicatorKey,\r\n x.shortIndicatorName,\r\n x.severity,\r\n x.ruleName,\r\n x.message\r\n ]\r\n })\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst ValidationReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(ValidationReportView);\r\n\r\n// STYLES CONTAINER\r\nconst ValidationReport = withStyles(styles)(\r\n ValidationReportPageWithState\r\n);\r\n\r\nexport default ValidationReport;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport { ISubmissionCountOnMeasureReportData } from \"../../../DataClasses/SubmissionData\";\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport BackNavigation from '../../Shared/BackNavigation';\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface ISubmissionCountOnMeasureReportState {\r\n isLoading: boolean;\r\n data: any[],\r\n redirect: boolean\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass SubmissionCountOnMeasureReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n ISubmissionCountOnMeasureReportState\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n data: [],\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n public render() {\r\n const reportColumns =\r\n [\r\n {\r\n name: \"Measure\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Product Line\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Submission Count\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n ];\r\n const reportOptions: MUIDataTableOptions = {\r\n filterType: \"multiselect\" as any,\r\n sort: true,\r\n filter: true,\r\n print: false,\r\n downloadOptions: {\r\n filename: 'SubmissionCountOnMeasureReport.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: false,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n caseSensitive: false,\r\n rowsPerPage: 15,\r\n rowsPerPageOptions: [15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n const { classes } = this.props;\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 * Note: Submissions with Plan Locked or later and Measures (or indicator level) with any Aduit Designation R (Reported) or NA (Small Denominator) are counted.\r\n
\r\n {this.state.isLoading ? :\r\n \r\n }\r\n
\r\n
\r\n
\r\n
)\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval: ISubmissionCountOnMeasureReportData[] | AjaxError = await ReportsService.GetSubmissionCountOnMeasureReportData$(this.props.user).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(x => {\r\n return [\r\n x.measureCode,\r\n x.productLine,\r\n x.submissionCount\r\n ]\r\n })\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst SubmissionCountOnMeasureReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(SubmissionCountOnMeasureReportView);\r\n\r\n// STYLES CONTAINER\r\nconst SubmissionCountOnMeasureReport = withStyles(styles)(\r\n SubmissionCountOnMeasureReportPageWithState\r\n);\r\n\r\nexport default SubmissionCountOnMeasureReport;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport UserManagerService from \"../../Services/UserManagerService\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport { IUserRolePayload } from \"../../../DataClasses/UsersData\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\ninterface IAccountPageState {\r\n data: IUserRolePayload[];\r\n isLoading: boolean;\r\n redirect: boolean;\r\n}\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass AccountPageView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAccountPageState\r\n> {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n const userRoleColumns = [\r\n {\r\n label: \"Org ID\",\r\n name: \"entityId\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Org Name\",\r\n name: \"entityName\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Role Type\",\r\n name: \"roleType\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n label: \"Role Name\",\r\n name: \"roleName\",\r\n options: {\r\n filter: true\r\n }\r\n }\r\n ];\r\n const userRoleListingOptions: MUIDataTableOptions = {\r\n filterType: \"checkbox\",\r\n sort: true,\r\n filter: false,\r\n print: false,\r\n download: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n rowsPerPage: 10,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n };\r\n return(\r\n \r\n \r\n \r\n Account Page\r\n \r\n \r\n \r\n {this.state.isLoading?\r\n \r\n :\r\n
\r\n Your Account Roles}\r\n data={this.state.data}\r\n columns={userRoleColumns}\r\n options={userRoleListingOptions}\r\n />\r\n
\r\n }\r\n
\r\n
\r\n );\r\n }\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const userRetVal = await UserManagerService.GetAccountRolesForCurrentUser$(this.props.user).toPromise();\r\n if (userRetVal instanceof AjaxError || !userRetVal) {\r\n this.setRedirectState();\r\n } \r\n else {\r\n this.setState({\r\n data: userRetVal\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AccountPageWithState = connect(\r\n genericMapStateToProps\r\n)(AccountPageView);\r\n\r\n// STYLES CONTAINER\r\nconst AccountPage = withStyles(styles)(\r\n AccountPageWithState\r\n);\r\n\r\nexport default AccountPage;","import * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { Theme, withStyles, WithStyles, createStyles } from '@material-ui/core/styles';\r\nimport idssStyle from \"../../../Configuration/SharedStyling\";\r\nimport {\r\n IGenericUserProps,\r\n genericMapStateToProps\r\n} from \"../../../DataClasses/GenericUser\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport BackNavigation from \"../../Shared/BackNavigation\";\r\nimport { ISubmissionAccredStatus } from \"../../../DataClasses/ReportData\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport ReportsService from \"../../Services/ReportsService\";\r\nimport LoadingDataTable from \"../../Shared/LoadingDataTable\";\r\nimport MUIDataTable, { MUIDataTableOptions } from \"mui-datatables\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\ninterface IAccreditationStatusReportState {\r\n data: any[];\r\n isLoading: boolean;\r\n redirect: boolean;\r\n}\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass AccreditationStatusReportView extends React.Component<\r\n IGenericUserProps & IStylesProps,\r\n IAccreditationStatusReportState\r\n> {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n data: [],\r\n isLoading: true,\r\n redirect: false\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n this.RefreshModel();\r\n }\r\n\r\n public render() {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n\r\n const { classes } = this.props;\r\n const reportColumns =\r\n [\r\n {\r\n name: \"Org ID\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Sub ID\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Org Name\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Product Line\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Reporting Product\",\r\n options: {\r\n filter: true\r\n }\r\n },\r\n {\r\n name: \"Accred Status\",\r\n options: {\r\n filter: true\r\n }\r\n }\r\n ];\r\n const reportOptions: MUIDataTableOptions = {\r\n filter: true,\r\n filterType: \"dropdown\",\r\n print: false,\r\n viewColumns: false,\r\n selectableRows: \"none\",\r\n downloadOptions: {\r\n filename: 'AccreditationStatus.csv',\r\n separator: ',',\r\n filterOptions: {\r\n useDisplayedColumnsOnly: true,\r\n useDisplayedRowsOnly: true\r\n }\r\n },\r\n rowsPerPage: 20,\r\n rowsPerPageOptions: [10, 15, 20, 25, 50, 75, 100, 500, 1000]\r\n }\r\n return(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {this.state.isLoading ? :\r\n \r\n }\r\n
\r\n
\r\n
\r\n )\r\n }\r\n\r\n private async RefreshModel() {\r\n this.setState({ isLoading: true });\r\n const retval: ISubmissionAccredStatus[] | AjaxError = await ReportsService.GetSubmissionsAccredStatus$(this.props.user).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({\r\n data: retval.map(item =>{\r\n return [\r\n item.organizationId,\r\n item.submissionId,\r\n item.orgName,\r\n item.productLine,\r\n item.reportingProduct,\r\n item.isAccredited === true ? \"Accredited\" : \"Not Accredited\"\r\n ]\r\n })\r\n });\r\n }\r\n this.setState({ isLoading: false });\r\n }\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst AccreditationStatusReportPageWithState = connect(\r\n genericMapStateToProps\r\n)(AccreditationStatusReportView);\r\n\r\n// STYLES CONTAINER\r\nconst AccreditationStatusReportPage = withStyles(styles)(\r\n AccreditationStatusReportPageWithState\r\n);\r\n\r\nexport default AccreditationStatusReportPage;","import * as React from \"react\";\r\nimport { Route, Switch } from \"react-router-dom\";\r\nimport { connect } from \"react-redux\";\r\nimport AuthorizedRoute from \"../../Components/Authorization/AuthorizedRoute\";\r\nimport AllUsersPage from \"../Pages/AllUsers\";\r\nimport Dashboard from \"../Pages/Dashboard\";\r\nimport HelpPage from \"../Pages/Help\";\r\nimport Home from \"../Pages/Home\";\r\nimport ManageUserPage from \"../Pages/ManageUser\";\r\nimport BulkUploadPage from \"../Pages/BulkUpload\";\r\nimport BulkDownloadPage from \"../Pages/BulkDownload\";\r\nimport BulkMarkFinalPage from \"../Pages/BulkMarkFinal\";\r\nimport BulkAttestationPage from \"../Pages/BulkAttestation\";\r\nimport ReportsPage from \"../Pages/Reports\";\r\nimport UserRolesPage from \"../Pages/ManageUserRoles\";\r\nimport AvailableSubmissionsPage from \"../Pages/SubmissionListing\";\r\nimport FilesUploadReportPage from \"../Pages/Reports/FilesUploadReport\";\r\nimport AnnouncementsListPage from \"../Pages/AnnouncementsList\";\r\nimport AppInfoPage from \"../Pages/AppInfo\";\r\nimport ImportSubmissionDataPage from \"../Pages/ImportSubmissionData\";\r\nimport MeasureViewerPage from \"../Pages/MeasureViewer\";\r\nimport SubmissionHome from \"../Pages/SubmissionHome\";\r\nimport LogsViewPage from \"../Pages/Logs\";\r\nimport Administration from \"../Pages/Administration\";\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport { IsUserPolicy, IsLoggedInPolicy, IsGlobalAdminPolicy, IsOrgOrGlobalAdmin } from \"../../Configuration/AuthorizationPolicies\";\r\nimport UsersListPage from \"../Pages/UsersList\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport HosVendorSubmissionStatusReportPage from \"../Pages/Reports/HosVendorSubmissionStatusReport\";\r\nimport CahpsVendorSubmissionStatusReportPage from \"../Pages/Reports/CahpsVendorSubmissionStatusReport\";\r\nimport ActivityReportPage from \"../Pages/Reports/ActivityReport\";\r\nimport SubmissionsDataSummaryReportPage from \"../Pages/Reports/SubmissionsDataSummaryReport\";\r\nimport GenericUploaderPage from \"../Pages/GenericRedesignUploader\";\r\nimport BulkUserPage from \"../Pages/BulkUserManagement\";\r\nimport ValidationReport from \"../Pages/Reports/ValidationReport\";\r\nimport SubmissionCountOnMeasureReport from \"../Pages/Reports/SubmissionCountOnMeasureReport\";\r\nimport VendorMeasureGuidListPage from \"../Pages/VendorMeasureGuidList\";\r\nimport AccountPage from \"../Pages/Reports/AccountPage\";\r\nimport AccreditationStatusReportPage from \"../Pages/Reports/AccreditationStatusReport\";\r\n\r\ninterface IMainProps {\r\n defaultProps: string\r\n}\r\n\r\nconst mapStateToProps = (): IMainProps => {\r\n return ({\r\n defaultProps: \"\",\r\n });\r\n};\r\n\r\n// STYLES\r\nconst styles = (theme: Theme) => createStyles({\r\n ...idssStyle(theme)\r\n});\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\n// VIEW\r\nclass MainView extends React.Component {\r\n public render() {\r\n\r\n const { classes } = this.props;\r\n const ErrorPage = () => {\r\n return (\r\n
\r\n

An error occurred please try again later

\r\n
\r\n );\r\n };\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst MainPropsState = withRouter(connect>(mapStateToProps)(MainView));\r\n\r\n// STYLES CONTAINER\r\nconst Main = withStyles(styles)(MainPropsState);\r\n\r\n\r\nexport default Main;\r\n\r\n\r\n\r\n","import * as React from \"react\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\n// VIEW\r\nclass LoginButton extends React.Component {\r\n public render() {\r\n return (\r\n Login\r\n );\r\n }\r\n}\r\n\r\nexport default LoginButton;","import * as React from 'react';\r\nimport { IconButton, Typography, Link as MULink } from '@material-ui/core';\r\nimport { AccountCircle } from '@material-ui/icons';\r\nimport Menu from 'material-ui-popup-state/HoverMenu'\r\nimport { Link, LinkProps } from 'react-router-dom';\r\nimport ListItem from '@material-ui/core/ListItem'\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport {\r\n usePopupState,\r\n bindHover,\r\n bindMenu,\r\n} from 'material-ui-popup-state/hooks'\r\n\r\n\r\ninterface IAccountMenuProps {\r\n user: string;\r\n}\r\n\r\nconst AdapterLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n\r\nconst AccountMenu: React.FunctionComponent = ({\r\n user }) => {\r\n const popupState = usePopupState({ variant: 'popover', popupId: 'demoMenu' });\r\n return
\r\n \r\n \r\n \r\n {user}\r\n \r\n \r\n Account Page\r\n Account Settings\r\n Logout\r\n \r\n \r\n
\r\n};\r\n\r\nexport default AccountMenu;\r\n\r\n","import { AppBar, Button } from '@material-ui/core';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport '@material-ui/core/styles';\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport { IGenericUserProps, genericMapStateToProps } from \"../../DataClasses/GenericUser\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport AccountMenu from \"../Shared/AccountMenu\";\r\n\r\ninterface INavMenuTextState {\r\n open: boolean;\r\n}\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme), ...headerStyles(theme) });\r\nconst headerStyles = (theme: Theme) => createStyles({\r\n logo: {\r\n height: '80px',\r\n marginBottom: '10px',\r\n },\r\n marginLeft: {\r\n marginLeft: '10px',\r\n },\r\n})\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\nclass NavMenuTextView extends React.Component {\r\n\r\n constructor(props: any) {\r\n super(props);\r\n this.state = { open: false };\r\n }\r\n\r\n public componentDidMount() {\r\n }\r\n\r\n public render() {\r\n const { classes, user } = this.props;\r\n return (\r\n
\r\n \r\n \r\n \r\n Interactive Data Submission System (IDSS)\r\n \r\n
\r\n\r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n }\r\n}\r\n\r\n// REDUX CONTAINER\r\nconst NavMenuTextViewWithState = connect(genericMapStateToProps)(NavMenuTextView);\r\n\r\n// STYLES CONTAINER\r\nconst NavViewTextPage = withStyles(styles)(NavMenuTextViewWithState);\r\n\r\n\r\nexport default NavViewTextPage;\r\n\r\n\r\n\r\n","export default __webpack_public_path__ + \"static/media/logo@2x.2b11bd8e.png\";","import { User } from \"oidc-client\";\r\nimport * as React from \"react\";\r\nimport { connect } from \"react-redux\";\r\nimport RootState from \"../../State/Root/RootState\";\r\nimport LoginButton from \"../Authentication/LoginButton\";\r\nimport NavMenuText from './NavMenuText';\r\nimport { Grid, Button, Typography } from '@material-ui/core';\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport logo from '../../Images/logo@2x.png';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme), ...headerStyles() });\r\n\r\n\r\n\r\n// REDUX PROPS\r\ninterface IHeaderStateProps {\r\n user: User | null\r\n}\r\nconst headerStyles = () => createStyles({\r\n\r\n})\r\nconst mapStateToProps = (state: RootState): IHeaderStateProps => ({\r\n user: state.AuthenticationReducer.user\r\n});\r\n\r\n\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n// VIEW\r\nclass HeaderView extends React.Component {\r\n public render() {\r\n const { classes } = this.props;\r\n let authLinks: JSX.Element;\r\n if (this.props.user) {\r\n authLinks = (\r\n \r\n\r\n );\r\n }\r\n else {\r\n authLinks = (\r\n \r\n \r\n \"IDSS\r\n \r\n \r\n \r\n Welcome to IDSS\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n
\r\n {authLinks}\r\n
\r\n );\r\n }\r\n}\r\n\r\n\r\n// REDUX CONTAINER\r\nconst HeaderPropState = withRouter(connect>(mapStateToProps)(HeaderView));\r\n\r\n// STYLES CONTAINER\r\nconst HeaderState = withStyles(styles)(HeaderPropState);\r\n\r\n// REDUX CONTAINER\r\nexport default HeaderState;\r\n","import * as React from \"react\";\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Grid, List, ListItem, Divider, ListItemIcon, ListItemText, IconButton, Drawer } from '@material-ui/core';\r\nimport { ArrowBackIos as ArrowBackIosIcon, ArrowForwardIos as ArrowForwardIosIcon, SupervisorAccount as SupervisorAccountIcon, Computer, Receipt, Settings, GroupAdd as GroupAddIcon, Help as HelpIcon, MoveToInbox as MoveToInboxIcon, Poll as PollIcon, ListAlt as ListAltIcon, Home as HomeIcon, Work as WorkIcon, AssignmentTurnedIn as AssignmentTurnedInIcon } from '@material-ui/icons';\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport logo from '../../Images/logo@2x.png';\r\nimport { NavLink, NavLinkProps } from 'react-router-dom';\r\nimport { SubmissionType } from \"../../DataClasses/SharedData\";\r\nimport { ISubmissionAllowance } from \"../../DataClasses/SubmissionData\";\r\nimport { IMenuActionAllowance } from \"../../DataClasses/ActionAllowanceData\";\r\nimport classNames from 'classnames'\r\nimport { IAdministrationPayload } from \"../../DataClasses/AdministrationData\";\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme), ...sidebarStyles() });\r\n\r\n// REDUX PROPS\r\ninterface ILocalProps {\r\n uploadavailabilities: ISubmissionAllowance\r\n menuItemAvailabilities: IMenuActionAllowance,\r\n isNcqaAdmin: boolean,\r\n isUserAdmin: boolean,\r\n toggleSidebarAction: React.MouseEventHandler,\r\n adminConfigOptions: IAdministrationPayload\r\n}\r\n\r\ninterface ILocalState {\r\n isSidebarOpened: boolean;\r\n bulkDownloadsOpen: boolean;\r\n bulkAttestationOpen: boolean;\r\n bulkMarkFinalOpen: boolean;\r\n}\r\n\r\nconst sidebarStyles = () => createStyles({\r\n collapsedLogoButtonContainer: {\r\n flexDirection: 'column-reverse' \r\n } \r\n})\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\nconst AdapterLink = React.forwardRef((props, ref) => (\r\n \r\n));\r\n\r\n\r\n// VIEW\r\nclass SidebarView extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n isSidebarOpened: true,\r\n bulkDownloadsOpen: false,\r\n bulkAttestationOpen: false,\r\n bulkMarkFinalOpen: false\r\n }\r\n }\r\n\r\n public render() {\r\n const { classes } = this.props;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {!this.state.isSidebarOpened ?\r\n null : \r\n \"IDSS}\r\n \r\n \r\n this.toggleSidebarOpen(ev)}>\r\n {this.state.isSidebarOpened ? : }\r\n \r\n \r\n \r\n \r\n \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.props.menuItemAvailabilities.allowsBulkDownloadHedis || this.props.menuItemAvailabilities.allowsBulkDownloadCahps || this.props.menuItemAvailabilities.allowsBulkDownloadHos ?\r\n this.setState({bulkDownloadsOpen:!this.state.bulkDownloadsOpen})}>\r\n {}\r\n \r\n : null\r\n }\r\n {this.props.menuItemAvailabilities.allowsBulkDownloadHedis && this.state.isSidebarOpened && this.state.bulkDownloadsOpen ?\r\n \r\n \r\n : null\r\n }\r\n {this.props.menuItemAvailabilities.allowsBulkDownloadCahps && this.state.isSidebarOpened && this.state.bulkDownloadsOpen?\r\n \r\n \r\n : null\r\n }\r\n {this.props.menuItemAvailabilities.allowsBulkDownloadHos && this.state.isSidebarOpened\r\n && this.state.bulkDownloadsOpen && this.props.adminConfigOptions.allowsHosSubmission ?\r\n \r\n \r\n : null\r\n }\r\n\r\n {this.props.uploadavailabilities.allowsHosSubmission && this.props.adminConfigOptions.allowsHosSubmission\r\n && !this.props.adminConfigOptions.enableHosInterimDataSubmission ?\r\n <>\r\n {this.props.menuItemAvailabilities.allowsBulkAttestationHos ?\r\n this.setState({ bulkAttestationOpen: !this.state.bulkAttestationOpen })}>\r\n {}\r\n \r\n : null\r\n }\r\n {this.props.menuItemAvailabilities.allowsBulkAttestationHos && this.state.isSidebarOpened && this.state.bulkAttestationOpen ?\r\n \r\n \r\n : null\r\n }\r\n : null\r\n }\r\n\r\n {(this.props.uploadavailabilities.allowsHosSubmission || this.props.uploadavailabilities.allowsCahpsSubmission)\r\n && (this.props.adminConfigOptions.allowsCahpsSubmission || this.props.adminConfigOptions.allowsHosSubmission) ?\r\n <>\r\n {this.props.menuItemAvailabilities.allowsBulkMarkFinalCahps || this.props.menuItemAvailabilities.allowsBulkMarkFinalHos ?\r\n this.setState({ bulkMarkFinalOpen: !this.state.bulkMarkFinalOpen })}>\r\n {}\r\n \r\n : null\r\n }\r\n {this.props.uploadavailabilities.allowsCahpsSubmission && this.props.menuItemAvailabilities.allowsBulkMarkFinalCahps\r\n && this.state.isSidebarOpened && this.state.bulkMarkFinalOpen && this.props.adminConfigOptions.allowsCahpsSubmission ?\r\n \r\n \r\n : null\r\n }\r\n {this.props.uploadavailabilities.allowsHosSubmission && this.props.menuItemAvailabilities.allowsBulkMarkFinalHos\r\n && this.state.isSidebarOpened && this.state.bulkMarkFinalOpen && this.props.adminConfigOptions.allowsHosSubmission ?\r\n \r\n \r\n : null\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 {this.props.isNcqaAdmin || this.props.menuItemAvailabilities.allowsUserManagement?\r\n
\r\n \r\n {}\r\n \r\n \r\n
: null\r\n }\r\n {this.props.isNcqaAdmin ?\r\n
\r\n \r\n {}\r\n \r\n \r\n \r\n {}\r\n \r\n \r\n \r\n {}\r\n \r\n \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 );\r\n }\r\n\r\n toggleSidebarOpen = (ev) => {\r\n this.setState({\r\n isSidebarOpened: !this.state.isSidebarOpened\r\n });\r\n\r\n this.props.toggleSidebarAction(ev);\r\n }\r\n}\r\n\r\n// STYLES CONTAINER\r\nconst Sidebar = withStyles(styles)(SidebarView);\r\n\r\n// REDUX CONTAINER\r\nexport default Sidebar;\r\n","import * as React from \"react\";\r\nimport { Grid, Typography } from \"@material-ui/core\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport withWidth, { WithWidth } from \"@material-ui/core/withWidth\";\r\n\r\n// STYLES\r\nconst styles = (theme: Theme) => createStyles({\r\n copyrightText: {\r\n color: 'white',\r\n fontSize: '14px',\r\n fontStyle: 'normal',\r\n lineHeight: 1.57,\r\n opacity: 0.5,\r\n fontWeight: 'lighter',\r\n \"& a\": {\r\n color: 'white'\r\n }\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n marginTop: theme.spacing(6),\r\n marginLeft: theme.spacing(2)\r\n },\r\n})\r\n\r\ntype IStylesProps = WithStyles & WithWidth;\r\n\r\nclass CopyrightBlockView extends React.Component {\r\n public render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \r\n Copyright © National Committee for Quality Assurance.  \r\n Terms of Use\r\n \r\n \r\n \r\n )\r\n }\r\n}\r\n\r\n// STYLES CONTAINER\r\nconst CopyrightContainer = withStyles(styles)(CopyrightBlockView);\r\nconst CopyrightBlock = withWidth()(CopyrightContainer);\r\nexport default CopyrightBlock;","//import * as React from \"react\";\r\n\r\nconst PrivacyPolicyHtml = (\r\n
\r\n

How does NCQA collect and use your information for the IDSS Platform?

\r\n

\r\n User Information:\r\n

\r\n

\r\n IDSS stands for the Interactive Data Submission System. This is NCQA’s web platform that organizations use to submit information to NCQA.\r\n The organization registers its name and contact information with NCQA and establishes an administrative user who manages all the users for that organization. Users must have a user ID, password, user name, and a unique e-mail address. Users must sign a license agreement to have access to IDSS.\r\n

\r\n
\r\n

\r\n Organization Data:\r\n

\r\n

\r\n IDSS collects the nonsurvey HEDIS data which are used to calculate national performance statistics and benchmarks, and to set standards for measures included in NCQA’s Accreditation program.\r\n

\r\n
\r\n

\r\n Does IDSS Platform use cookies?\r\n

\r\n

\r\n The IDSS Platform uses a single cookie to manage the user’s session ID. The session ID lasts only as long as the user is logged into the IDSS Platform. The data collected in a session is used by NCQA on an aggregate basis for the purpose of future resource planning for the IDSS Platform.\r\n

\r\n
\r\n

\r\n How does NCQA use your information?\r\n

\r\n

\r\n NCQA will use the information you provide through the IDSS Platform as described in this Privacy Policy and in the written agreements between the organization and NCQA, including the Software License Agreement that users accept when accessing the IDSS Platform, the legal agreement for NCQA recognition or distinction, as applicable (also sometimes referred to as the Agreement for NCQA’s Recognition Program), and the policies and procedures governing the NCQA Recognition Program.\r\n

\r\n
\r\n

\r\n How does NCQA secure my information?\r\n

\r\n

\r\n The IDSS Platform resides on a secure site. Data transmission is secured through SSL. An organization may only access its own data through a password, which the organization maintains. NCQA stores the evaluation data and documents in an encrypted environment with access controlled by password and user rights assigned by the organization. NCQA staff and surveyors involved in the organization’s evaluation will have access to the information, as well as individuals performing system maintenance. Others may have access to the information as prescribed in the Agreement for NCQA Recognition Program and the policies and procedures governing NCQA’s Recognition Program.\r\n

\r\n
\r\n

\r\n Whom can you contact if you have questions or concerns?\r\n

\r\n

\r\n Contact customersupport@ncqa.org, to report any known or suspected privacy or security breaches or to submit privacy-related questions or complaints. You may contact us in the following ways:\r\n

\r\n
\r\n
\r\n NCQA\r\n
\r\n
\r\n 1100 13th St., NW\r\n
\r\n
\r\n Suite 1000\r\n
\r\n
\r\n Washington, DC 20005\r\n
\r\n
888/275-7585
\r\n
\r\n);\r\n\r\nexport default PrivacyPolicyHtml","import * as React from \"react\";\r\nimport {\r\n Button, Divider, Grid, Dialog, DialogTitle, DialogActions, DialogContent\r\n} from \"@material-ui/core\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport withWidth, { WithWidth } from \"@material-ui/core/withWidth\";\r\nimport CopyrightBlock from './CopyrightBlock';\r\nimport PrivacyPolicyHtml from './PrivacyPolicy';\r\n\r\n// STYLES\r\nconst styles = (theme: Theme) => createStyles({\r\n centerLinks: {\r\n color: 'white',\r\n fontSize: '16px',\r\n whiteSpace: 'nowrap',\r\n textTransform: 'none',\r\n fontWeight: 'normal',\r\n margin: theme.spacing(0, 1),\r\n backgroundColor: 'transparent',\r\n '&:hover': {\r\n backgroundColor: 'steelblue',\r\n color: 'white'\r\n }\r\n },\r\n divider: {\r\n backgroundColor: 'white',\r\n opacity: 0.3,\r\n margin: theme.spacing(1, 1, 0, 1)\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'flex-start',\r\n paddingTop: '20px',\r\n marginLeft: theme.spacing(10)\r\n },\r\n linksContainer: {\r\n paddingRight: theme.spacing(6)\r\n }\r\n});\r\n\r\ntype IStylesProps = WithStyles & WithWidth;\r\ninterface ILocalState {\r\n showPrivacyPolicyDialog: boolean;\r\n}\r\nclass CenterLinksView extends React.Component {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n showPrivacyPolicyDialog: false\r\n };\r\n }\r\n\r\n public render() {\r\n const { classes, width } = this.props;\r\n\r\n switch (width) {\r\n case 'xl':\r\n case 'lg':\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderPrivacyPolicyDialog(width)}\r\n \r\n \r\n \r\n
\r\n );\r\n case 'md':\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n {this.renderPrivacyPolicyDialog(width)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n case 'sm':\r\n case 'xs':\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n {this.renderPrivacyPolicyDialog(width)}\r\n \r\n \r\n \r\n
\r\n );\r\n }\r\n }\r\n\r\n private setDialogState(value) {\r\n this.setState({ showPrivacyPolicyDialog: value });\r\n }\r\n\r\n private renderPrivacyPolicyDialog(width) {\r\n return (<>\r\n \r\n \r\n Privacy Policy\r\n \r\n \r\n {PrivacyPolicyHtml}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\n// STYLES CONTAINER\r\nconst CenterLinksContainer = withStyles(styles)(CenterLinksView);\r\nconst CenterLinks = withWidth()(CenterLinksContainer);\r\nexport default CenterLinks;","export default __webpack_public_path__ + \"static/media/logo-white@2x.148c080b.png\";","import { Grid } from \"@material-ui/core\";\r\nimport { createStyles, withStyles, Theme, WithStyles } from \"@material-ui/core/styles\";\r\nimport withWidth, { WithWidth } from \"@material-ui/core/withWidth\";\r\nimport * as React from \"react\";\r\nimport logoWhite from '../../Images/logo-white@2x.png';\r\n\r\n// STYLES\r\nconst styles = (theme: Theme) => createStyles({\r\n address: {\r\n color: 'white',\r\n fontSize: '14px',\r\n fontStyle: 'normal',\r\n lineHeight: 1.57,\r\n opacity: 0.5,\r\n fontWeight: 'lighter',\r\n paddingLeft: '0',\r\n marginLeft: theme.spacing(4),\r\n marginTop: theme.spacing(1),\r\n \"& a\": {\r\n color: 'white',\r\n textDecoration: 'none'\r\n }\r\n },\r\n logo: {\r\n height: '100px',\r\n marginBottom: theme.spacing(1),\r\n },\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n [theme.breakpoints.up('md')]: {\r\n alignItems: 'left'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n alignItems: 'center'\r\n },\r\n }\r\n})\r\n\r\ntype IStylesProps = WithStyles & WithWidth;\r\n\r\nclass LogoAddressView extends React.Component {\r\n public render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n \r\n \"NCQA\r\n \r\n \r\n
\r\n 1100 13th St., NW, Third Floor
\r\n Washington, D.C. 20005
\r\n 202.955.3500\r\n
\r\n
\r\n
\r\n )\r\n }\r\n}\r\n\r\n// STYLES CONTAINER\r\nconst LogoAddressContainer = withStyles(styles)(LogoAddressView);\r\nconst LogoAddress = withWidth()(LogoAddressContainer);\r\nexport default LogoAddress;","import { AppBar, Grid, withWidth } from \"@material-ui/core\";\r\nimport { Theme, createStyles, withStyles, WithStyles } from \"@material-ui/core/styles\";\r\nimport { WithWidth } from \"@material-ui/core/withWidth\";\r\n//import * as classNames from \"classnames\";\r\nimport * as React from \"react\";\r\nimport CenterLinks from './CenterLinks';\r\nimport LogoAddress from './LogoAddress';\r\n\r\n// STYLES\r\nconst styles = (theme: Theme) => createStyles({\r\n centerLinkBlock: {\r\n display: 'flex',\r\n flexGrow: 1\r\n },\r\n containerGrid: {\r\n flexWrap: 'nowrap',\r\n [theme.breakpoints.up('md')]: {\r\n flexDirection: 'row'\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexDirection: 'column'\r\n }\r\n },\r\n footer: {\r\n backgroundColor: '#4f758b',\r\n borderTop: '10px solid #496b80',\r\n zIndex: 0,\r\n padding: \"50px 30px\"\r\n },\r\n logoAddressBlock: {\r\n minWidth: '220px',\r\n [theme.breakpoints.up('md')]: {\r\n flexGrow: 0\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexGrow: 1,\r\n }\r\n },\r\n root: {\r\n flexGrow: 0\r\n },\r\n socialMediaBlock: {\r\n alignItems: 'center',\r\n display: 'flex',\r\n flexDirection: 'row',\r\n minWidth: '220px',\r\n [theme.breakpoints.up('md')]: {\r\n flexGrow: 0\r\n },\r\n [theme.breakpoints.down('sm')]: {\r\n flexGrow: 1,\r\n justifyContent: 'center'\r\n }\r\n },\r\n})\r\n\r\ntype IStylesProps = WithStyles & WithWidth;\r\n\r\nclass FooterView extends React.Component {\r\n public render() {\r\n const { classes } = this.props;\r\n\r\n return (\r\n \r\n {/* */}\r\n \r\n\r\n {/* Logo and Address */}\r\n \r\n \r\n \r\n\r\n {/* Center Links */}\r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n )\r\n }\r\n}\r\n\r\n// STYLES CONTAINER\r\nconst FooterWithWidth = withStyles(styles)(FooterView);\r\nconst Footer = withWidth()(FooterWithWidth);\r\n\r\nexport default Footer;","import { connect } from \"react-redux\";\r\nimport * as React from \"react\";\r\nimport Main from \"../Root/Main\";\r\nimport Header from \"./Header\";\r\nimport Sidebar from './Sidebar';\r\nimport { Theme, WithStyles, withStyles, createStyles } from '@material-ui/core/styles';\r\nimport { Grid, Button, CssBaseline, Typography } from '@material-ui/core';\r\nimport Footer from '../Footer/Footer';\r\nimport { RouteComponentProps, withRouter } from \"react-router\";\r\nimport idssStyle from \"../../Configuration/SharedStyling\";\r\nimport RootState from \"../../State/Root/RootState\";\r\nimport logo from '../../Images/logo@2x.png';\r\nimport * as AuthorizationPolicies from \"../../Configuration/AuthorizationPolicies\";\r\nimport { User } from \"oidc-client\";\r\nimport { ISubmissionAllowance } from \"../../DataClasses/SubmissionData\";\r\nimport { IMenuActionAllowance } from \"../../DataClasses/ActionAllowanceData\";\r\nimport { AjaxError } from \"rxjs/ajax\";\r\nimport SubmissionsService from \"../Services/SubmissionsService\";\r\nimport UserManagerService from \"../Services/UserManagerService\";\r\nimport { Link, LinkProps } from \"react-router-dom\";\r\nimport { Redirect } from \"react-router-dom\";\r\nimport { IAdministrationPayload } from \"../../DataClasses/AdministrationData\";\r\nimport AdministrationService from '../Services/AdministrationService';\r\n\r\n//import LoginButton from \"../Authentication/LoginButton\";\r\nimport classNames from 'classnames'\r\n\r\n\r\nconst styles = (theme: Theme) => createStyles({ ...idssStyle(theme) });\r\n\r\n// REDUX PROPS\r\n\r\ninterface IAppWithAuthProps {\r\n user: User | null,\r\n isNcqaAdmin: boolean;\r\n isUserAdmin: boolean;\r\n}\r\n\r\n\r\ninterface IAppWithAuthState {\r\n isSidebarOpened: boolean\r\n uploadavailabilities: ISubmissionAllowance,\r\n menuItemAvailabilities: IMenuActionAllowance,\r\n redirect: boolean,\r\n isIE: boolean;\r\n adminConfigOptions: IAdministrationPayload;\r\n}\r\n\r\nconst mapStateToProps = (state: RootState): IAppWithAuthProps => {\r\n return ({\r\n user: state.AuthenticationReducer.user,\r\n isNcqaAdmin: AuthorizationPolicies.IsGlobalAdmin(state.AuthenticationReducer.user),\r\n isUserAdmin: AuthorizationPolicies.IsOrgAdmin(state.AuthenticationReducer.user),\r\n });\r\n};\r\n\r\nconst AdapterLink = React.forwardRef(\r\n (props, ref) => \r\n);\r\n\r\ntype IStylesProps = WithStyles;\r\n\r\n\r\n// VIEW\r\nclass AppWithAuthentication extends React.Component {\r\n constructor(props: any) {\r\n super(props);\r\n this.state = {\r\n isSidebarOpened: true,\r\n uploadavailabilities:\r\n {\r\n allowsHedisSubmission: false,\r\n allowsCahpsSubmission: false,\r\n allowsHosSubmission: false\r\n },\r\n menuItemAvailabilities:\r\n {\r\n allowsBulkMarkFinalCahps: false,\r\n allowsBulkMarkFinalHos: false,\r\n allowsBulkAttestationHos: false,\r\n allowsUserManagement: false,\r\n allowsBulkDownloadHedis: false,\r\n allowsBulkDownloadHos: false,\r\n allowsBulkDownloadCahps: false\r\n },\r\n redirect: false,\r\n isIE: false,\r\n adminConfigOptions: {\r\n allowsHosSubmission: false,\r\n allowsCahpsSubmission: false,\r\n allowsHedisSubmission: false,\r\n enableMeasureGuidValidation: false,\r\n enableExperimentalValidation: false,\r\n isOffseasonMode: false,\r\n isMaintenanceMode: false,\r\n licenseAgreementText: '',\r\n enableGenericUpload: false,\r\n measurementYear: -1,\r\n enableHosInterimDataSubmission: false,\r\n measureModelDate: ''\r\n }\r\n };\r\n }\r\n\r\n public componentDidMount() {\r\n const isEdge = window.navigator.userAgent.indexOf('Edge') !== -1;\r\n const isIE = window.navigator.userAgent.indexOf('Trident') !== -1 && !isEdge;\r\n if (isIE) {\r\n this.setState({ isIE: true });\r\n }\r\n else {\r\n this.RefreshModel();\r\n }\r\n }\r\n\r\n private redirectToErrorPage() {\r\n return ;\r\n }\r\n\r\n private setRedirectState() {\r\n this.setState({ redirect: true });\r\n }\r\n\r\n public render() { \r\n const { classes } = this.props;\r\n\r\n if (this.state.isIE) {\r\n return (\r\n \r\n \"IDSS\r\n \r\n \r\n

Internet Explorer is not supported. Please use some other browser to access IDSS website.

\r\n
\r\n
\r\n );\r\n }\r\n else {\r\n if (this.state.redirect) {\r\n return this.redirectToErrorPage();\r\n }\r\n if (this.props.user)\r\n return (\r\n
\r\n \r\n this.toggleSidebarOpen()} adminConfigOptions={this.state.adminConfigOptions} />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )\r\n else\r\n return (\r\n \r\n \"IDSS\r\n \r\n \r\n \r\n Welcome to IDSS\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n toggleSidebarOpen = () => {\r\n this.setState({\r\n isSidebarOpened: !this.state.isSidebarOpened\r\n });\r\n }\r\n\r\n private async RefreshModel() {\r\n if (this.props.user) {\r\n //bulk upload\r\n const retval = await SubmissionsService.GetUploadAvailabilities$(this.props.user).toPromise();\r\n if (retval instanceof AjaxError || !retval) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ uploadavailabilities: retval })\r\n }\r\n //\r\n const itemAv = await UserManagerService.GetMenuItemAvailabilities$(this.props.user).toPromise();\r\n if (itemAv instanceof AjaxError || !itemAv) {\r\n this.setRedirectState();\r\n }\r\n else {\r\n this.setState({ menuItemAvailabilities: itemAv })\r\n }\r\n\r\n //get admin config options\r\n const adminRetval = await AdministrationService.GetAdminModel(this.props.user).toPromise();\r\n if (adminRetval instanceof AjaxError || !adminRetval) {\r\n this.setRedirectState();\r\n } else {\r\n this.setState({ adminConfigOptions: adminRetval });\r\n }\r\n }\r\n }\r\n\r\n\r\n}\r\nconst AppWithAuthenticationPropState = withRouter(connect>(mapStateToProps)(AppWithAuthentication));\r\n\r\n// STYLES CONTAINER\r\nconst AppWithAuthenticationState = withStyles(styles)(AppWithAuthenticationPropState);\r\n\r\n// REDUX CONTAINER\r\nexport default AppWithAuthenticationState;\r\n\r\n","import { User, UserManager } from \"oidc-client\";\r\nimport * as React from \"react\";\r\nimport { Redirect } from \"react-router-dom\";\r\n\r\n// ATTRIBUTE PROPS\r\ninterface IProps {\r\n userManager: UserManager;\r\n}\r\n\r\ninterface IState {\r\n isError: boolean;\r\n redirect: boolean;\r\n redirectUrl: string | null;\r\n}\r\n\r\n// VIEW\r\nclass Callback extends React.Component {\r\n public state: IState = {\r\n isError: false,\r\n redirect: false,\r\n redirectUrl: null\r\n };\r\n\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n this.signInRedirectCallback()\r\n .then(user => this.onRedirectSuccess(user))\r\n .catch(error => this.onRedirectError(error));\r\n }\r\n\r\n public render() {\r\n const { redirect, redirectUrl, isError } = this.state;\r\n\r\n if (redirect) {\r\n if (redirectUrl) {\r\n return ;\r\n } else {\r\n return ;\r\n }\r\n }\r\n\r\n if (isError) {\r\n return ;\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private signInRedirectCallback = (\r\n url?: string | undefined\r\n ): Promise => {\r\n return this.props.userManager.signinRedirectCallback(url);\r\n };\r\n\r\n private onRedirectSuccess = (user: User) => {\r\n if (user && user.state) {\r\n this.setState({ redirect: true, redirectUrl: user.state });\r\n } else {\r\n this.setState({ redirect: true });\r\n }\r\n };\r\n\r\n private onRedirectError = (error: any) => {\r\n this.setState({ isError: true });\r\n };\r\n}\r\n\r\nexport default Callback;\r\n","import { UserManager } from \"oidc-client\";\r\nimport * as React from \"react\";\r\nimport { parse } from \"querystring\";\r\n\r\n// ATTRIBUTE PROPS\r\ninterface IProps {\r\n userManager: UserManager;\r\n}\r\n\r\nclass Login extends React.Component {\r\n constructor(props: IProps) {\r\n super(props);\r\n\r\n // Check to see if there is a redirect url to maintain via state\r\n const queryString = parse(window.location.search.replace(\"?\", \"\"));\r\n const redirectUrl = queryString.redirectUrl;\r\n\r\n if (redirectUrl) {\r\n // Perform the redirect\r\n this.props.userManager.signinRedirect({\r\n state: redirectUrl\r\n });\r\n } else {\r\n this.props.userManager.signinRedirect();\r\n }\r\n }\r\n\r\n public render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport default Login;","import { UserManager } from \"oidc-client\";\r\nimport * as React from \"react\";\r\n\r\n// ATTRIBUTE PROPS\r\ninterface ILogoutProps {\r\n userManager: UserManager\r\n}\r\n\r\nclass Logout extends React.Component {\r\n constructor(props: ILogoutProps) {\r\n super(props);\r\n\r\n // Perform the redirect\r\n this.props.userManager.signoutRedirect();\r\n }\r\n\r\n public render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport default Logout;","import { UserManager } from \"oidc-client\";\r\nimport * as React from \"react\";\r\n\r\n// VIEW\r\nclass SilentRenew extends React.Component {\r\n constructor(props: any) {\r\n super(props);\r\n\r\n // Perform the silent renew\r\n // We don't want to spin up an instance of the existing UserManager\r\n // Because that will get a copy of the openid connect discovery document, which isn't needed for this call\r\n new UserManager({}).signinSilentCallback();\r\n }\r\n\r\n public render() {\r\n return null;\r\n }\r\n}\r\n\r\nexport default SilentRenew;","import * as React from \"react\";\r\nimport { withAITracking } from '@microsoft/applicationinsights-react-js';\r\nimport { ai } from './TelemetryService';\r\nimport { withRouter } from 'react-router-dom';\r\n\r\nclass TelemetryProvider extends React.Component {\r\n state = {\r\n initialized: false\r\n };\r\n\r\n componentDidMount() {\r\n const { history } = this.props;\r\n const { initialized } = this.state;\r\n const AppInsightsInstrumentationKey = this.props.instrumentationKey; // PUT YOUR KEY HERE\r\n if (!Boolean(initialized) && Boolean(AppInsightsInstrumentationKey) && Boolean(history)) {\r\n ai.initialize(AppInsightsInstrumentationKey, history);\r\n this.setState({ initialized: true });\r\n }\r\n }\r\n\r\n render() {\r\n const { children } = this.props;\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default withRouter(withAITracking(ai.reactPlugin, TelemetryProvider));","import { User, UserManager } from \"oidc-client\";\r\nimport * as React from \"react\";\r\nimport { Route, Switch } from \"react-router\";\r\nimport { Store } from \"redux\";\r\nimport AppWithAuthentication from \"../../Components/Root/AppWithAuthentication\";\r\nimport * as AuthActions from \"../../State/Authentication\";\r\nimport Callback from \"../OpenId Connect/Callback\";\r\nimport Login from \"../OpenId Connect/Login\";\r\nimport Logout from \"../OpenId Connect/Logout\";\r\nimport SilentRenew from \"../OpenId Connect/SilentRenew\";\r\nimport TelemetryProvider from '../Logging/telemetry-provider';\r\n\r\n// ATTRIBUTE PROPS\r\n// It doesn't seem we can use the connect option with Redux since we need method events in WillMount and WillUnmount\r\ninterface IAuthenticationAppProps {\r\n store: Store\r\n userManager: UserManager\r\n}\r\n\r\n// VIEW\r\nclass App extends React.Component {\r\n public componentDidMount() {\r\n // register the event callbacks\r\n this.props.userManager.events.addUserLoaded(this.onUserLoaded);\r\n this.props.userManager.events.addSilentRenewError(this.onSilentRenewError);\r\n this.props.userManager.events.addAccessTokenExpired(this.onAccessTokenExpired);\r\n this.props.userManager.events.addAccessTokenExpiring(this.onAccessTokenExpiring);\r\n this.props.userManager.events.addUserUnloaded(this.onUserUnloaded);\r\n this.props.userManager.events.addUserSignedOut(this.onUserSignedOut);\r\n }\r\n\r\n public componentWillUnmount() {\r\n // unregister the event callbacks\r\n this.props.userManager.events.removeUserLoaded(this.onUserLoaded);\r\n this.props.userManager.events.removeSilentRenewError(this.onSilentRenewError);\r\n this.props.userManager.events.removeAccessTokenExpired(this.onAccessTokenExpired);\r\n this.props.userManager.events.removeAccessTokenExpiring(this.onAccessTokenExpiring);\r\n this.props.userManager.events.removeUserUnloaded(this.onUserUnloaded);\r\n this.props.userManager.events.removeUserSignedOut(this.onUserSignedOut);\r\n }\r\n\r\n public render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n // Create components with their arguments to meet best practices\r\n private CallbackConfigured = () => ;\r\n private LoginConfigured = () => ;\r\n private LogoutConfigured = () => ;\r\n private AppWithAuthenticationConfigured = () => ;\r\n\r\n // event callback when the user has been loaded (on silent renew or redirect)\r\n private onUserLoaded = (user: User) => {\r\n this.props.store.dispatch(AuthActions.userFound(user));\r\n };\r\n\r\n // event callback when silent renew errored\r\n private onSilentRenewError = (error: AuthActions.IError) => {\r\n this.props.store.dispatch(AuthActions.silentRenewError(error));\r\n };\r\n\r\n // event callback when the access token expired\r\n private onAccessTokenExpired = () => {\r\n this.props.store.dispatch(AuthActions.userExpired());\r\n };\r\n\r\n // event callback when the user is logged out\r\n private onUserUnloaded = () => {\r\n this.props.store.dispatch(AuthActions.sessionTerminated());\r\n };\r\n\r\n // event callback when the user is expiring\r\n private onAccessTokenExpiring = () => {\r\n this.props.store.dispatch(AuthActions.userExpiring());\r\n }\r\n\r\n // event callback when the user is signed out\r\n private onUserSignedOut = () => {\r\n // Dispatch event to store\r\n this.props.store.dispatch(AuthActions.userSignedOut());\r\n\r\n // Redirect the user to the identity server logout page\r\n this.props.userManager.signoutRedirect();\r\n }\r\n}\r\n\r\nexport default App;","import { UserManager, UserManagerSettings } from \"oidc-client\";\r\n\r\n// Pull the modifiable configuration from the .env files\r\nconst authority = process.env.REACT_APP_OPENID_BASEURL!.toLowerCase();\r\nconst redirectUri = process.env.REACT_APP_OPENID_REDIRECTURL;\r\nconst silentRenewUri = process.env.REACT_APP_OPENID_SILENTRENEWURL;\r\nconst postLogoutUri = process.env.REACT_APP_OPENID_POSTLOGOUTURL;\r\nconst clientId = process.env.REACT_APP_OPENID_CLIENTID;\r\nconst apiId = process.env.REACT_APP_OPENID_APIID;\r\n\r\n// User Manager Settings\r\nconst userManagerConfig: UserManagerSettings = {\r\n authority,\r\n automaticSilentRenew: true,\r\n client_id: clientId,\r\n loadUserInfo: true,\r\n post_logout_redirect_uri: postLogoutUri,\r\n redirect_uri: redirectUri,\r\n response_type: 'token id_token',\r\n scope: `openid profile ${apiId}`,\r\n silent_redirect_uri: silentRenewUri\r\n };\r\n\r\n// Initialize\r\nconst ConfiguredUserManager = new UserManager(userManagerConfig);\r\n\r\nexport default ConfiguredUserManager;","import * as actionTypes from '../SubmissionListing/Action';\r\n\r\nconst initialState = {\r\n selectedSubmissionColumns: [],\r\n showAllSubmissions: false,\r\n rowsPerPageSelected: 25,\r\n storedFilterList: null\r\n};\r\n\r\nconst SubmissionListingReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case actionTypes.ADD_COLUMN:\r\n return Object.assign({}, state, { selectedSubmissionColumns: state.selectedSubmissionColumns.concat(action.payload) });\r\n case actionTypes.REMOVE_COLUMN:\r\n return Object.assign({}, state, { selectedSubmissionColumns: state.selectedSubmissionColumns.filter(c => c !== action.payload) });\r\n case actionTypes.SET_INITIAL_COLUMNS:\r\n return Object.assign({}, state, { selectedSubmissionColumns: action.payload });\r\n case actionTypes.SET_ALL_SUBMISSIONS:\r\n return Object.assign({}, state, { showAllSubmissions: action.payload });\r\n case actionTypes.SET_SUBMISSION_PER_PAGE:\r\n return Object.assign({}, state, { rowsPerPageSelected: action.payload });\r\n case actionTypes.SET_TABLE_FILTER:\r\n return Object.assign({}, state, { storedFilterList: action.payload})\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default SubmissionListingReducer;","import { combineReducers } from \"redux\";\r\nimport { PersistConfig, persistReducer } from \"redux-persist\";\r\nimport autoMergeLevel2 from \"redux-persist/es/stateReconciler/autoMergeLevel2\";\r\nimport storage from 'redux-persist/lib/storage/session'\r\nimport { Reducer as AuthenticationReducer } from \"../Authentication\";\r\nimport SubmissionListingReducer from \"../SubmissionListing/Reducer\";\r\n\r\nconst BaseRootReducer = combineReducers({\r\n AuthenticationReducer,\r\n SubmissionListingReducer\r\n});\r\n\r\n// Redux Persist\r\n// For state that we want to persist through page refreshes\r\n// Persist Authentication\r\nconst persistConfig: PersistConfig = {\r\n key: 'root',\r\n stateReconciler: autoMergeLevel2,\r\n storage,\r\n whitelist: ['AuthenticationReducer']\r\n };\r\n\r\n// Add persistance to the base root reducer \r\nconst RootReducer = persistReducer(persistConfig, BaseRootReducer) \r\n\r\nexport default RootReducer;","import { ThemeOptions, createTheme } from \"@material-ui/core/styles\";\r\n\r\nconst themeOptions: ThemeOptions = {\r\n palette: {\r\n background: {\r\n default: 'inherit'\r\n },\r\n primary: {\r\n main: \"#0099CC\",\r\n },\r\n secondary: {\r\n main: \"#C8102E\",\r\n },\r\n },\r\n typography: {\r\n fontFamily: 'sans-serif',\r\n fontSize: 13,\r\n },\r\n overrides: {\r\n MuiToolbar: {\r\n regular: {\r\n '@media (min-width: 600px)': {\r\n minHeight: '56px'\r\n }\r\n }\r\n },\r\n MuiListItem: {\r\n root: {\r\n paddingTop: '8px',\r\n '&$selected, &:hover': {\r\n backgroundColor: 'transparent',\r\n color: '#0099CC',\r\n fontWeight: 'bold',\r\n '& div': {\r\n backgroundColor: 'transparent',\r\n color: '#0099CC',\r\n },\r\n '& p': {\r\n backgroundColor: 'transparent',\r\n color: '#0099CC',\r\n fontWeight: 'bold',\r\n }\r\n }\r\n } \r\n },\r\n MuiListItemText: {\r\n primary: {\r\n fontSize: '15px',\r\n fontWeight: 'bold'\r\n },\r\n secondary: {\r\n color: '#000000',\r\n fontSize: '13px'\r\n }\r\n },\r\n MuiCardActions: {\r\n root: {\r\n justifyContent: 'center'\r\n }\r\n },\r\n MuiStepIcon: {\r\n root: {\r\n color: '#808080', //default color\r\n '&$completed': {\r\n color: '#4F758B',\r\n },\r\n '&$active': {\r\n color: '#4F758B',\r\n }\r\n }\r\n },\r\n MuiStepLabel: {\r\n label: {\r\n color: '#808080', //default color\r\n '&$completed': {\r\n color: '#4F758B',\r\n fontWeight: 'bold'\r\n },\r\n '&$active': {\r\n color: '#000000',\r\n fontWeight: 'bold'\r\n }\r\n }\r\n },\r\n MuiCheckbox: {\r\n colorPrimary: {\r\n \"&$checked\": {\r\n \"color\": \"#0099CC\"\r\n }\r\n }\r\n },\r\n MuiRadio: {\r\n colorSecondary: {\r\n \"&$checked\": {\r\n \"color\": \"#0099CC\"\r\n }\r\n }\r\n },\r\n MuiTabs: {\r\n indicator: {\r\n backgroundColor: '#FFFFFF',\r\n borderBottom: '3px solid #E0E0E0'\r\n }\r\n },\r\n MUIDataTableHeadCell: {\r\n 'toolButton': {\r\n backgroundColor: 'white',\r\n fontWeight: 'bold',\r\n color: '#4F758B',\r\n '&:hover': {\r\n backgroundColor: 'white',\r\n color: '#4F758B',\r\n fontWeight: 'bold'\r\n },\r\n }\r\n },\r\n MuiButton: {\r\n root: {\r\n backgroundColor: '#0099CC',\r\n color: '#FFFFFF',\r\n fontWeight: 'normal',\r\n '&$disabled': {\r\n backgroundColor: '#D3D3D3',\r\n color: '#707070',\r\n },\r\n '&:hover': {\r\n backgroundColor: '#4F758B',\r\n fontWeight: 'bold'\r\n }, \r\n },\r\n textPrimary: {\r\n color: '#FFFFFF',\r\n '&:hover': {\r\n backgroundColor: '#4F758B',\r\n color: '#FFFFFF',\r\n fontWeight: 'bold'\r\n },\r\n },\r\n },\r\n\r\n MuiFab: {\r\n primary: {\r\n '&:hover': {\r\n backgroundColor: '#4F758B',\r\n color: '#FFFFFF',\r\n //fontWeight: 'bold'\r\n }\r\n },\r\n secondary: {\r\n '&:hover': {\r\n backgroundColor: '#8c0b20',\r\n color: '#FFFFFF',\r\n //fontWeight: 'bold'\r\n }\r\n },\r\n },\r\n\r\n MuiTableCell: {\r\n root: {\r\n margin: '0px',\r\n paddingLeft: '16px',\r\n paddingRight: '16px',\r\n paddingTop: '0px',\r\n paddingBottom: '0px',\r\n fontSize: '0.8125rem',\r\n fontFamily: 'sans-serif'\r\n },\r\n head: {\r\n color: \"#4F758B\",\r\n fontWeight: 'bold'\r\n },\r\n paddingNone: {\r\n padding: 1,\r\n '&:last-child': {\r\n padding: 2\r\n }\r\n }\r\n },\r\n MuiTableRow: {\r\n root: {\r\n height: '34px'\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst myNcqaTheme = createTheme(themeOptions);\r\n\r\nexport default myNcqaTheme;","import \"core-js/stable\";\r\nimport \"regenerator-runtime/runtime\";\r\nimport * as ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport { applyMiddleware, createStore } from 'redux';\r\nimport { composeWithDevTools } from 'redux-devtools-extension';\r\nimport { createEpicMiddleware } from 'redux-observable';\r\nimport { persistStore } from 'redux-persist';\r\nimport { PersistGate } from 'redux-persist/integration/react';\r\nimport App from './Components/Root/App';\r\nimport ConfiguredUserManager from './Configuration/AuthenticationConfiguration';\r\nimport './index.css';\r\nimport * as AuthActions from \"./State/Authentication\";\r\nimport RootReducer from './State/Root/RootReducer';\r\nimport RootStore from './State/Root/RootStore';\r\nimport { StylesProvider, createGenerateClassName } from '@material-ui/core/styles';\r\nimport { MuiThemeProvider } from '@material-ui/core/styles';\r\nimport idssTheme from './Configuration/ThemeConfiguration';\r\n// Require Editor JS files.\r\nimport \"froala-editor/js/froala_editor.pkgd.min.js\";\r\n// Require Editor CSS files.\r\nimport \"froala-editor/css/froala_style.min.css\";\r\nimport \"froala-editor/css/froala_editor.pkgd.min.css\";\r\nimport \"froala-editor/js/plugins/link.min.js\";\r\n\r\n// This is a hack to trick typescript\r\n// https://github.com/zalmoxisus/redux-devtools-extension/issues/492\r\ndeclare module 'redux' {\r\n export type GenericStoreEnhancer = any;\r\n}\r\n\r\nconst generateClassName = createGenerateClassName({\r\n productionPrefix: 'c',\r\n});\r\n\r\n// User Manager\r\nconst userManager = ConfiguredUserManager;\r\n\r\n// Epics\r\nconst epicMiddleware = createEpicMiddleware();\r\n\r\n// Redux\r\nconst store = createStore(RootReducer, composeWithDevTools(applyMiddleware(epicMiddleware))) as RootStore;\r\n\r\n// Redux persist\r\n// Sometimes, the OIDC User Manager signout can redirect a user to the sign out page before Redux Persist is able to persist the user removal to storage\r\n// So, the callback is called everytime a rehydrate occurs\r\n// On the rehydrate, check to see if OIDC has removed the user, and if it has and the user still exists in Redux, then dispatch an action to sign the user out\r\nconst persistor = persistStore(store, undefined, () => {\r\n userManager.getUser().then((user) => {\r\n if (!user && store.getState().AuthenticationReducer.user) {\r\n store.dispatch(AuthActions.userSignedOut());\r\n }\r\n });\r\n});\r\n\r\nconst theme = idssTheme;\r\n\r\n// Epic instantiation\r\n// Typing the root epic sucks, but seems to be a simple fix for typing errors\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root') as HTMLElement\r\n);"],"sourceRoot":""}