{"version":3,"sources":["docs/SNChart_Admin_UserGuide.pdf","components/Tests.js","hooks/useInterval.js","components/EvaluationTooltipCard.js","services/apiConfig.js","services/auth.js","components/ResponsiveDrawer.js","components/Layout.js","components/segmentsInstructionsCard.js","hooks/useLocalStorage.js","components/segments.js","components/Login.js","components/segment.js","components/PrivateRoute.js","components/pronunciation.js","components/substitutionsGlobal.js","components/dictatorRoutes.js","components/suggestionCard.js","components/substitution.js","components/useTable.js","components/dictatorRoute.js","components/sentences.js","components/Settings.js","components/common/DocumentViewer.js","services/Report/reportService.js","components/Document.js","components/Test.js","components/doctorProfiles.js","components/doctorProfile.js","components/activeDoctors.js","components/esignature.js","App.js","registerServiceWorker.js","index.js","components/controls/Button.js","components/controls/Controls.js","components/controls/Input.js","components/controls/RadioGroup.js","components/controls/Select.js","components/controls/Checkbox.js","components/controls/DatePicker.js","components/ThreeDotMenu.js","components/EntityTable.js"],"names":["module","exports","__webpack_require__","p","Alert","props","react__WEBPACK_IMPORTED_MODULE_3___default","a","createElement","_material_ui_lab_Alert__WEBPACK_IMPORTED_MODULE_14__","Object","assign","elevation","variant","useStyles","makeStyles","theme","root","padding","spacing","width","& > * + *","marginTop","searchInput","textField","marginLeft","marginRight","bullet","display","margin","transform","title","fontSize","pos","marginBottom","container","flexGrow","paper","unit","textAlign","color","palette","text","secondary","statusSuccess","fontWeight","status","disableLink","pointerEvents","columns","id","label","disableSorting","type","Tests","classes","_useState","useState","_useState2","D_a_1_s_SurgicalNotes_Training_ClientApp_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_slicedToArray__WEBPACK_IMPORTED_MODULE_2__","blobs","setBlobs","_React$useState","React","_React$useState2","value","setValue","_React$useState3","_React$useState4","inputValue","setInputValue","_React$useState5","_React$useState6","isEvaluationCreating","setEvaluationCreating","_React$useState7","_React$useState8","isEvaluationRerun","setEvaluationRerun","_React$useState9","_React$useState10","isTableRefreshing","setTableRefresh","_React$useState11","name","url","queueTime","_React$useState12","trainerInformation","setTrainerInformation","_React$useState13","_React$useState14","publishCourtneyInformation","setPublishCourtneyInformation","_React$useState15","evaluationName","dataName","created","model1","model2","wer1","wer2","_React$useState16","lastEvaluation","setLastEvaluation","encodedString","Buffer","toString","speechKey","_useState3","_useState4","open","setOpen","_useState5","_useState6","openSnack","setOpenSnack","_useState7","_useState8","message","setMessage","_useState9","_useState10","severity","setSeverity","_useState11","_useState12","rows","setRows","_useState13","_useState14","dataFetching","setDataFetching","_useState15","_useState16","openPublishDialog","setOpenPublishDialog","handleClose","handleCloseSnack","event","reason","window","location","reload","handleClosePublishDialog","handleSave","_ref","D_a_1_s_SurgicalNotes_Training_ClientApp_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_asyncToGenerator__WEBPACK_IMPORTED_MODULE_1__","D_a_1_s_SurgicalNotes_Training_ClientApp_node_modules_babel_preset_react_app_node_modules_babel_runtime_regenerator__WEBPACK_IMPORTED_MODULE_0___default","mark","_callee","wrap","_context","prev","next","createEvaluation","stop","apply","this","arguments","fetchEvaluations","_ref2","_callee2","response","data","_context2","fetch","sent","json","fetchAudioBlobs","_ref3","_callee3","audioName","_context3","concat","_x","refreshTable","_ref4","_callee4","_context4","useEffect","getLastEvaluation","_ref5","_callee5","filename","_context5","method","cache","headers","Content-Type","body","JSON","stringify","FileName","ok","_x2","reRunEvaluation","_ref6","_callee6","row","_context6","locale","displayName","dataset","description","self","_x3","checkTrainingPipeline","_ref7","_callee7","date","_context7","Authorization","Date","parse","latestBuild","checkPublishPipeline","_ref8","_callee8","_context8","triggerPipeline","_ref9","_callee9","_context9","definition","triggerPublishPipeline","_ref10","_callee10","_context10","_ref11","_callee11","courtneyEvaluations","_lastEvaluation","createdValue","wer2Value","wer1Value","model1url","model2url","dataseturl","datasetResponse","dataDataset","customModels","model1Match","model2Match","model1Value","model2Value","_context11","Ocp-Apim-Subscription-Key","values","filter","Array","isArray","length","moment","createdDateTime","format","properties","wordErrorRate2","wordErrorRate1","getCustomModels","find","m","_ref12","_callee12","_context12","abrupt","useInterval","_material_ui_core_Paper__WEBPACK_IMPORTED_MODULE_7__","className","_material_ui_core_Grid__WEBPACK_IMPORTED_MODULE_6__","item","xs","_material_ui_core_Button__WEBPACK_IMPORTED_MODULE_9__","onClick","disabled","_material_ui_core__WEBPACK_IMPORTED_MODULE_20__","size","_EvaluationTooltipCard__WEBPACK_IMPORTED_MODULE_23__","latestModel","justify","_material_ui_core__WEBPACK_IMPORTED_MODULE_8__","_material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_22__","aria-label","_material_ui_icons_Cached__WEBPACK_IMPORTED_MODULE_21___default","_material_ui_core_LinearProgress__WEBPACK_IMPORTED_MODULE_19__","_EntityTable__WEBPACK_IMPORTED_MODULE_25__","columnHeaders","handleEvaluationClick","e","evaluationUrl","preventDefault","split","history","push","fetching","_material_ui_core_Dialog__WEBPACK_IMPORTED_MODULE_10__","onClose","aria-labelledby","aria-describedby","disableBackdropClick","disableEscapeKeyDown","_material_ui_core_DialogTitle__WEBPACK_IMPORTED_MODULE_12__","_material_ui_core_DialogActions__WEBPACK_IMPORTED_MODULE_11__","autoFocus","_material_ui_core_DialogContent__WEBPACK_IMPORTED_MODULE_15__","_material_ui_core_DialogContentText__WEBPACK_IMPORTED_MODULE_16__","_material_ui_lab_Autocomplete__WEBPACK_IMPORTED_MODULE_18__","onChange","newValue","onInputChange","newInputValue","options","style","renderInput","params","_material_ui_core_TextField__WEBPACK_IMPORTED_MODULE_17__","ev","target","backgroundColor","position","zIndex","top","left","bottom","right","_material_ui_core_Snackbar__WEBPACK_IMPORTED_MODULE_13__","anchorOrigin","vertical","horizontal","autoHideDuration","d","__webpack_exports__","react__WEBPACK_IMPORTED_MODULE_0__","callback","delay","savedCallback","useRef","current","setInterval","clearInterval","EvaluationTooltipCard","react__WEBPACK_IMPORTED_MODULE_0___default","n","_material_ui_core_styles__WEBPACK_IMPORTED_MODULE_1__","_material_ui_core_Tooltip__WEBPACK_IMPORTED_MODULE_2__","_material_ui_core_Typography__WEBPACK_IMPORTED_MODULE_3__","_material_ui_core_IconButton__WEBPACK_IMPORTED_MODULE_4__","_material_ui_icons_Info__WEBPACK_IMPORTED_MODULE_5__","_material_ui_icons_Info__WEBPACK_IMPORTED_MODULE_5___default","HtmlTooltip","withStyles","tooltip","maxWidth","typography","pxToRem","border","Tooltip","Fragment","backendHost","hostname","indexOf","process","REACT_APP_BACKEND_HOST","API_ROOT","Auth","username","password","processToken","grant_type","scope","authParams","Promise","resolve","reject","axios","post","qs","then","expiresAt","expires_in","getTime","sessionStorage","setItem","access_token","pwd_expires_in","get","userResponse","gaUser","Account","secArchive","secMarkRead","secSave","secSign","Name","UserName","UserType","Email","DictatorId","Roles","IdentityMode","LUID","AuthorizedAccounts","Facility","PubSub","publish","catch","error","role","hasRole","accounts","getItem","roles","some","account","parseInt","userName","valid","undefined","removeItem","notifications","userKey","readNotifications","localStorage","i","IsRead","NotificationId","map","notification","Url","decodeURIComponent","console","log","appTitle","appBar","drawer","appBarShift","transition","transitions","create","easing","sharp","duration","enteringScreen","menuButton","hide","flexShrink","drawerOpen","drawerClose","defineProperty","leavingScreen","overflowX","breakpoints","up","toolbar","objectSpread","alignItems","justifyContent","mixins","content","SNBrand","main","gutters","nested","paddingLeft","drawerPaper","drawerContainer","overflow","ListItemLink","react_default","ListItem","button","component","Link","ResponsiveDrawer","auth","slicedToArray","openMenu","setOpenMenu","anchorEl","setAnchorEl","getUserName","List","disablePadding","subheader","ListSubheader","index","key","to","clsx","ListItemIcon","Mail_default","ListItemText","primary","MoveToInbox_default","CallToAction_default","Divider","Public_default","Person_default","AssignmentTurnedIn_default","Receipt_default","People_default","PersonPin_default","Create_default","Settings_default","userGuide","Help_default","CssBaseline","AppBar","Toolbar","isAuthenticated","Typography","noWrap","Grid","IconButton","aria-owns","aria-haspopup","currentTarget","AccountCircle_default","Menu","transformOrigin","MenuItem","signOut","Drawer","children","Layout","_Component","_this","classCallCheck","possibleConstructorReturn","getPrototypeOf","call","idleTimer","onIdle","_onIdle","bind","assertThisInitialized","handleAuthChanged","_handleAuthChanged","state","isValidLogin","inherits","createClass","token","subscribe","unsubscribe","setState","_this2","createMuiTheme","light","dark","contrastText","ThemeProvider","components_ResponsiveDrawer","index_es","ref","element","document","timeout","Component","minWidth","SegmentsInstructionsCard","Card","CardContent","href","useLocalStorage","initialValue","storedValue","setStoredValue","valueToStore","Function","maxHeight","gridCard","paddingTop","Segments","_useLocalStorage","_useLocalStorage2","filterAccounts","setFilterAccounts","activeAccounts","setActiveAccounts","_fetchData","asyncToGenerator","regenerator_default","loadTranscriptions","getAccounts","fetchData","accountSimpleArray","requestOptions","AccountNumber","formateddata","getToken","Paper","Autocomplete","fullWidth","multiple","getOptionLabel","option","DataTextField","getOptionSelected","Account1","defaultValue","TextField","placeholder","download","ArrowDownward_default","EntityTable","handleTranscriptClick","transcriptId","Login","handleNext","activeStep","isStepOptional","step","submit","login","handleChange","field","getUserLogin","updateLogin","headline","hasError","confirmationSent","loginErrorMessage","emailcode","newusername","confirmError","confirmIdentityError","sendingConfirmation","confirmingCode","loggingIn","path","from","pathname","replace","getUserEmail","errorMessage","error_description","steps","_this$state","react","page","sm","md","onSubmit","required","onKeyPress","FormHelperText","wrapper","Button","CircularProgress","buttonProgress","Stepper","Step","StepLabel","link","align","gutterBottom","paddingBottom","logo","backgroundImage","backgroundSize","minHeight","center","textDecoration","forgotLinkText","height","control","transcriptRoot","& h2","& button[title=\"Save\"]","& button[title=\"Picture-in-picture\"]","issueSnack","Segment","userHasUpdatePermission","isInRole","transcriptJson","setTranscriptJson","editable","mediaUrl","setMediaUrl","transcriptLoaded","setTranscriptLoaded","setAccount","recordToDelete","setRecordToDelete","_React$useState17","_React$useState18","_React$useState19","_React$useState20","openSaveDialog","setOpenSaveDialog","_React$useState21","_React$useState22","_React$useState23","_React$useState24","_React$useState25","_React$useState26","transcriptEditorRef","createRef","handleCloseSaveDialog","saveData","getEditorContent","match","transcriptName","RejectTranscription","transcript","segment_Alert","react_transcript_editor_default","transcriptData","sttJsonType","mediaType","isEditable","spellCheck","transcription","Dialog","DialogTitle","DialogActions","Snackbar","PrivateRoute","rest","objectWithoutProperties","isLoggedIn","react_router","render","flexWrap","Pronunciation","sasUrl","sentenceMeta","setSentenceMeta","displayForm","spokenForm","sentenceContent","setSentenceContent","fileContent","setFileContent","isSaving","setIsSaving","isUploading","setIsUploading","expression","test","handleOnChange","_event$target","onFormSubmit","formData","FormData","append","getElementById","reset","orientation","active","StepContent","helperText","files","pronunciation_Alert","getGlobalColumns","disableSearch","getDoctorColumns","SubstitutionsGlobal","isGlobal","_fetchDataGlobal","_fetchDataNonGlobal","fetchDataGlobal","fetchDataNonGlobal","substitution","addSubstitution","AddBox_default","entityName","updateSubEntity","deleteSubEntity","customDeletePath","getAccountColumns","DictatorRoutes","startIcon","dictatorRoute","addDictatorRoute","accountFilter","filteredAccounts","findIndex","b","getFilterAccountListing","SugestionCard","CardActions","filterOptions","createFilterOptions","limit","formControl","selectEmpty","Substitution","substitutionType","regExpression","dictatorId","substitutionglobalJson","setSubstitutionglobal","errors","setErrors","setAccounts","doctors","setDoctors","doctorValue","setDoctorValue","doctorInputValue","setDoctorInputValue","duplicateSubstitution","setDuplicateSubstitution","getDoctor","dictators","result","Physician","getAccount","accountId","getDoctors","unshift","_x4","PartitionGuid","partition","Guid","toConsumableArray","validateDuplicateSubstitution","Text","RegExpression","IsGlobal","isEnabled","SaveSubstitution","EditorId","getUserId","ReplaceAll","replaceAll","guid","partitionGuid","Type","Count","count","LastAppliedDate","lastAppliedDate","defaultDictatorId","FormControl","InputLabel","Select","s","FormControlLabel","Switch","checked","_event$target2","substitution_Alert","table","& thead th","& tbody td","& tbody tr:hover","cursor","visuallyHidden","clip","dividerPadding","getRoutingColumns","DictatorRoute","editorId","proofer","setDictatorRoute","selectedDoctor","setSelectedDoctor","openDoctorDialog","setOpenDoctorDialog","isDictatorLoading","setDictatorLoading","editors","setEditors","_React$useState27","_React$useState28","editorValue","setEditorValue","_React$useState29","_React$useState30","editorInputValue","setEditorInputValue","_React$useState31","_React$useState32","proofers","setProofers","_React$useState33","_React$useState34","prooferValue","setProoferValue","_React$useState35","_React$useState36","prooferInputValue","setProoferInputValue","_React$useState37","_React$useState38","searched","setSearched","requestSearch","searchedVal","filteredRows","physician","toLowerCase","includes","setFilteredRows","cancelSearch","_useTable","pages","setPage","rowsPerPage","setRowsPerPage","sortOrder","setSortOrder","sortField","setSortField","sortFieldDataType","setSortFieldDataType","sortedRows","useMemo","slice","handleSearchAndSort","_","orderBy","handleChangePage","newPage","handleChangeRowsPerPage","TblContainer","Table","TblHead","TableHead","TableRow","headCell","TableCell","sortDirection","TableSortLabel","direction","TblPagination","TablePagination","rowsPerPageOptions","onChangePage","onChangeRowsPerPage","useTable","handleCloseDoctorDialog","handleCheckboxOnChange","handleSaveDoctor","doctorsState","splice","sort","handleOnChangeDoctor","SaveDictatorRoute","RowKey","rowKey","PartitionKey","partitionKey","Proofer","Doctors","addPropertiesToDoctors","getMT","qTypeParams","allDataResults","Command","Parameters","Proof","forEach","doctor","editor","routing","courtney","hasNormals","lastModified","lastModifiedBy","rowkey","shard","Shard","LinearProgress","_objectSpread5","_x5","_x6","MtId","_x7","_x8","_x9","_x10","material_ui_search_bar_lib_default","searchVal","onCancelSearch","TableContainer","TableBody","hover","tabIndex","column","editDoctor","displayDefaultValue","defaultMessage","CheckBox_default","CheckBoxOutlineBlank_default","DialogContent","DialogContentText","Checkbox","dictatorRoute_Alert","Sentences","repeat","utfchars","uripattern","trim","sentences_Alert","Settings","speechModel","confidenceScore","customSettings","setCustomSettings","parseFloat","InputLabelProps","shrink","DocumentViewer","ts","apiKey","documentHtml","init","menubar","branding","plugins","onEditorChange","getDraftReport","jobId","getComparedDocument","draftReport","DraftReportString","Granularity","Document","doc","setDoc","loading","setLoading","_useParams","useParams","draftreport","comparedResult","reportHtml","escape","atob","loadData","CardHeader","common_DocumentViewer","bottomSpace","Test","customModel1Name","setTest","loadingDraft","setLoadingDraft","tabValue","setTabValue","rerunEvaluation","testid","TabContext","TabList","Tab","TabPanel","Test_Alert","DoctorProfiles","DoctorProfile","rank","doctorProfile","setDoctorProfile","SaveDoctorProfile","Rank","labelId","doctorProfile_Alert","ActiveDoctors","UserId","ESignature","file","setFile","toBase64","reader","FileReader","readAsDataURL","onload","onerror","SaveSignature","base64File","SaveSignatureRequest","Base64File","dist_index_es","acceptedFiles","dropzoneText","filesLimit","esignature_Alert","App","Layout_Layout","components_PrivateRoute","exact","isLocalhost","Boolean","registerValidSW","swUrl","onUpdate","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","baseUrl","getElementsByTagName","getAttribute","rootElement","ReactDOM","react_router_dom","basename","App_App","URL","origin","addEventListener","ready","unregister","checkValidServiceWorker","registerServiceWorker","textTransform","Controls","Input","_props$error","other","RadioGroup","items","FormLabel","Radio","convertToDefEventPara","DatePicker","useUtils_cfb96ac9","utils","DateFnsUtils","disableToolbar","inputVariant","ITEM_HEIGHT","withRouter","currentRow","aria-controls","MoreVert_default","keepMounted","PaperProps","evObj","handleDraftCompareClick","dateFormat","_useState17","isGuid","_useState18","_useState19","_useState20","_useState21","_useState22","_useState23","_useState24","_useState25","_useState26","_useState27","_useState28","searchColumns","setSearchColumns","_useState29","_useState30","useHistory","handleSearchByColumn","columnName","columnType","columnSearchValue","isValid","handleSelectOptions","filteredSelectOptions","Set","filteredOption","entries","finalFiltered","every","val","deleteEntity","reqBody","searchBy","controls_Controls","searchInputLabel","InputProps","startAdornment","InputAdornment","Search","searchValue","filtered","search","colSpan","paddingRight","updateEntity","Delete_default","innerRow","ThreeDotMenu","Alert_Alert"],"mappings":"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","file":"static/js/main.991bc420.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/SNChart_Admin_UserGuide.a60c400a.pdf\";","import React, { useEffect, useState } from 'react';\r\nimport useInterval from '../hooks/useInterval';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport { CircularProgress } from '@material-ui/core';\r\nimport CachedIcon from '@material-ui/icons/Cached';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport EvaluationTooltipCard from \"./EvaluationTooltipCard\";\r\nimport moment from 'moment';\r\n\r\nimport EntityTable from \"./EntityTable\";\r\n\r\nfunction Alert(props) {\r\n return ;\r\n};\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n width: '100%',\r\n '& > * + *': {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n searchInput: {\r\n width: '20%',\r\n marginTop: '20px'\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 14,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n container: {\r\n flexGrow: 1,\r\n },\r\n paper: {\r\n padding: theme.spacing.unit * 2,\r\n textAlign: 'left',\r\n color: theme.palette.text.secondary,\r\n },\r\n statusSuccess: {\r\n color: 'rgb(16, 124, 16)',\r\n fontWeight: 'bold'\r\n },\r\n status: {\r\n color: 'rgb(0, 0, 0)',\r\n fontWeight: 'bold'\r\n },\r\n disableLink: {\r\n pointerEvents: \"none\"\r\n }\r\n}));\r\n\r\nconst columns = [\r\n { id: 'displayName', label: 'Job Id', disableSorting: false },\r\n { id: 'menu', label: '', disableSorting: true },\r\n { id: 'customModel1Name', label: 'Courtney Version', disableSorting: false },\r\n { id: 'status', label: 'Status', disableSorting: false },\r\n { id: 'shortDateTime', label: 'Created', disableSorting: false, type: 'date' }\r\n];\r\n\r\nexport default function Tests(props) {\r\n const classes = useStyles();\r\n const [blobs, setBlobs] = useState([]);\r\n const [value, setValue] = React.useState(\"\");\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [isEvaluationCreating, setEvaluationCreating] = React.useState(false);\r\n const [isEvaluationRerun, setEvaluationRerun] = React.useState(false);\r\n const [isTableRefreshing, setTableRefresh] = React.useState(false);\r\n const [trainerInformation, setTrainerInformation] = React.useState({ status: \"\", name: \"\", id: 0, url: \"\", queueTime: \"\" });\r\n const [publishCourtneyInformation, setPublishCourtneyInformation] = React.useState({ status: \"\", name: \"\", id: 0, url: \"\", queueTime: \"\" });\r\n const [lastEvaluation, setLastEvaluation] = React.useState({ evaluationName: \"\", dataName: \"\", created: \"\", model1: \"\", model2: \"\", wer1: \"\", wer2: \"\", status: \"\" });\r\n const encodedString = new Buffer(\":u3n6pullmiwev5kytsxitdxmwyf7muqmdaybevd4qluqfld2c4dq\").toString('base64');\r\n const speechKey = 'adbeaf0ec72642a788aa7f9bc70c4817';\r\n const [open, setOpen] = useState(false);\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [severity, setSeverity] = useState(\"warning\");\r\n const preventDefault = (event) => event.preventDefault();\r\n const [rows, setRows] = useState([]);\r\n const [dataFetching, setDataFetching] = useState(false);\r\n const [openPublishDialog, setOpenPublishDialog] = useState(false);\r\n\r\n const handleClickOpen = () => {\r\n setValue(\"\");\r\n setInputValue('');\r\n setOpen(true);\r\n };\r\n\r\n const handleClickOpenPublishDialog = () => {\r\n setOpenPublishDialog(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleCloseSnack = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n window.location.reload(true);\r\n setOpenSnack(false);\r\n };\r\n\r\n const handleClosePublishDialog = () => {\r\n setOpenPublishDialog(false);\r\n };\r\n\r\n const handleOKPublishDialog = () => {\r\n triggerPublishPipeline();\r\n setSeverity(\"info\");\r\n setMessage(\"The process has been triggered\");\r\n setOpenPublishDialog(false);\r\n setOpenSnack(true) \r\n };\r\n\r\n const handleSave = async () => {\r\n setEvaluationCreating(true);\r\n await createEvaluation(inputValue);\r\n setEvaluationCreating(false);\r\n };\r\n\r\n const handleEvaluationClick = (e, evaluationUrl) => {\r\n preventDefault(e);\r\n let id = evaluationUrl.split(\"evaluations/\")[1];\r\n props.history.push(`/test/${id}`);\r\n };\r\n\r\n const fetchEvaluations = async () => {\r\n setDataFetching(true);\r\n const response = await fetch('api/Evaluations/GetEvaluations');\r\n const data = await response.json();\r\n setRows(data);\r\n setDataFetching(false);\r\n }\r\n\r\n const fetchAudioBlobs = async (audioName) => {\r\n const response = await fetch(`api/Evaluations/GetAudioBlobs?audioName=${audioName}`);\r\n const data = await response.json();\r\n setBlobs(data);\r\n }\r\n\r\n const refreshTable = async () => {\r\n setTableRefresh(true);\r\n await fetchEvaluations();\r\n setTableRefresh(false);\r\n }\r\n\r\n useEffect(() => {\r\n fetchEvaluations();\r\n getLastEvaluation();\r\n }, []);\r\n\r\n const createEvaluation = async (filename) => {\r\n const response = await fetch('api/Evaluations/CreateEvaluation', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ FileName: filename }) // body data type must match \"Content-Type\" header\r\n });\r\n if (response.ok) {\r\n setSeverity(\"info\");\r\n setMessage(\"Successfully created Test\");\r\n setOpen(false);\r\n setOpenSnack(true)\r\n } else {\r\n setSeverity(\"error\");\r\n setMessage(\"An error has occurred, please try again\");\r\n setOpen(false);\r\n setOpenSnack(true)\r\n }\r\n };\r\n\r\n const reRunEvaluation = async (row) => {\r\n await setEvaluationRerun(true);\r\n const response = await fetch('api/Evaluations/RerunEvaluation', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ locale: row.locale, displayName: row.displayName, model1: row.model1, model2: row.model2, dataset: row.dataset, description: \"trainer\", self: row.self }) // body data type must match \"Content-Type\" header\r\n });\r\n await setEvaluationRerun(false);\r\n if (response.ok) {\r\n setSeverity(\"info\");\r\n setMessage(\"Successfully Rerun Test\");\r\n setOpen(false);\r\n setOpenSnack(true)\r\n } else {\r\n setSeverity(\"error\");\r\n setMessage(\"An error has occurred, please try again\");\r\n setOpen(false);\r\n setOpenSnack(true)\r\n }\r\n };\r\n\r\n const checkTrainingPipeline = async () => {\r\n const response = await fetch(`https://dev.azure.com/surgicalnotes/surgicalnotes/_apis/build/definitions/70?api-version=5.1&includeLatestBuilds=true`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Basic ${encodedString}`\r\n }\r\n });\r\n const data = await response.json();\r\n let date = new Date(Date.parse(data.latestBuild.queueTime));\r\n setTrainerInformation({ status: data.latestBuild.status, id: data.latestBuild.id, url: data.latestBuild.url, name: data.name, queueTime: date });\r\n };\r\n\r\n const checkPublishPipeline = async () => {\r\n const response = await fetch(`https://dev.azure.com/surgicalnotes/surgicalnotes/_apis/build/definitions/82?api-version=5.1&includeLatestBuilds=true`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Basic ${encodedString}`\r\n }\r\n });\r\n const data = await response.json();\r\n let date = new Date(Date.parse(data.latestBuild.queueTime));\r\n setPublishCourtneyInformation({ status: data.latestBuild.status, id: data.latestBuild.id, url: data.latestBuild.url, name: data.name, queueTime: date });\r\n };\r\n\r\n const triggerPipeline = async () => {\r\n const response = await fetch(`https://dev.azure.com/surgicalnotes/surgicalnotes/_apis/build/builds?api-version=5.1`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Basic ${encodedString}`\r\n },\r\n body: JSON.stringify({ definition: { id: 70 } })\r\n });\r\n const data = await response.json();\r\n };\r\n\r\n const triggerPublishPipeline = async () => {\r\n const response = await fetch(`https://dev.azure.com/surgicalnotes/surgicalnotes/_apis/build/builds?api-version=5.1`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Basic ${encodedString}`\r\n },\r\n body: JSON.stringify({ definition: { id: 82 } })\r\n });\r\n const data = await response.json();\r\n };\r\n\r\n const getLastEvaluation = async () => {\r\n const response = await fetch(`https://southcentralus.api.cognitive.microsoft.com/speechtotext/v3.0/evaluations`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Ocp-Apim-Subscription-Key': `${speechKey}`\r\n }\r\n });\r\n const data = await response.json();\r\n let courtneyEvaluations = data.values.filter(a => a.description === \"sntrainer-evaluation-8765645\");\r\n if (Array.isArray(courtneyEvaluations) || courtneyEvaluations.length) {\r\n let lastEvaluation = courtneyEvaluations[courtneyEvaluations.length -1];\r\n let createdValue = moment(lastEvaluation.createdDateTime).format(\"YYYY-MM-DD HH:mm:ss\");\r\n let wer2Value = (lastEvaluation.properties.wordErrorRate2 + 0.01);\r\n let wer1Value = lastEvaluation.properties.wordErrorRate1;\r\n let model1url = lastEvaluation.model1.self;\r\n let model2url = lastEvaluation.model2.self;\r\n let dataseturl = lastEvaluation.dataset.self;\r\n \r\n\r\n //This can be refactored\r\n const datasetResponse = await fetch(`${dataseturl}`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Ocp-Apim-Subscription-Key': `${speechKey}`\r\n }\r\n });\r\n const dataDataset = await datasetResponse.json();\r\n\r\n let customModels = await getCustomModels();\r\n let model1Match = customModels.values.find(m => m.self === model1url);\r\n let model2Match = customModels.values.find(m => m.self === model2url);\r\n const model1Value = model1Match ? model1Match.displayName : \"\";\r\n const model2Value = model2Match ? model2Match.displayName : \"\";\r\n setLastEvaluation({ evaluationName: lastEvaluation.displayName, dataName: dataDataset.displayName, created: createdValue, wer1: lastEvaluation.properties.wordErrorRate1 * 100, wer2: (wer2Value) * 100, status: (wer2Value < wer1Value) ? \"Published\" : \"Not Published\", model1: model1Value, model2: model2Value});\r\n }\r\n \r\n };\r\n\r\n const getCustomModels = async () => {\r\n const response = await fetch(`https://southcentralus.api.cognitive.microsoft.com/speechtotext/v3.0/models`, {\r\n method: 'GET',\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Ocp-Apim-Subscription-Key': `${speechKey}`\r\n }\r\n });\r\n const data = await response.json();\r\n return data;\r\n };\r\n\r\n\r\n useInterval(() => {\r\n checkTrainingPipeline();\r\n checkPublishPipeline();\r\n }, 10000);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n {(trainerInformation.status === \"inProgress\" || trainerInformation.status === \"notStarted\") && }\r\n {(trainerInformation.status !== \"inProgress\" || trainerInformation.status !== \"notStarted\") && 'Retrain Courtney'}\r\n \r\n \r\n \r\n \r\n {(publishCourtneyInformation.status === \"inProgress\" || publishCourtneyInformation.status === \"notStarted\") && }\r\n {(publishCourtneyInformation.status !== \"inProgress\" || publishCourtneyInformation.status !== \"notStarted\") && 'Publish Courtney'}\r\n \r\n \r\n \r\n \r\n \r\n \r\n handleClickOpen()}\r\n >\r\n Add New Test\r\n \r\n \r\n \r\n
\r\n Latest Version of Courney:\r\n \r\n {rows.length > 0 ? rows[0].latestModel : \"\"}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n Evaluations\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {isTableRefreshing && }\r\n \r\n \r\n {\"This action will trigger the Courtney Publish process, Do you want to continue?\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"Add Test\"}\r\n \r\n \r\n \r\n Please select an audio file.\r\n \r\n
\r\n
\r\n {\r\n setValue(newValue);\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"controllable-states-demo\"\r\n options={blobs}\r\n style={{ width: 500 }}\r\n renderInput={(params) =>\r\n { fetchAudioBlobs(ev.target.value) }}\r\n />\r\n }\r\n />\r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n \r\n Save\r\n \r\n \r\n {isEvaluationCreating ?\r\n
\r\n \r\n
\r\n :\r\n null\r\n }\r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n
\r\n \r\n {isEvaluationRerun ?\r\n
\r\n
\r\n :\r\n null\r\n }\r\n
\r\n \r\n
\r\n
\r\n );\r\n}","import { useEffect, useRef } from 'react';\r\n\r\nexport default function useInterval(callback, delay) {\r\n const savedCallback = useRef();\r\n\r\n // Remember the latest callback.\r\n useEffect(() => {\r\n savedCallback.current = callback;\r\n }, [callback]);\r\n\r\n // Set up the interval.\r\n useEffect(() => {\r\n function tick() {\r\n savedCallback.current();\r\n }\r\n if (delay !== null) {\r\n let id = setInterval(tick, delay);\r\n return () => clearInterval(id);\r\n }\r\n }, [callback,delay]);\r\n}","import React from 'react';\r\nimport { withStyles} from '@material-ui/core/styles';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\n\r\nconst HtmlTooltip = withStyles((theme) => ({\r\n tooltip: {\r\n backgroundColor: '#f5f5f9',\r\n color: 'rgba(0, 0, 0, 0.87)',\r\n maxWidth: 500,\r\n fontSize: theme.typography.pxToRem(12),\r\n border: '1px solid #dadde9',\r\n },\r\n}))(Tooltip);\r\n\r\nexport default function EvaluationTooltipCard(props) {\r\n return (\r\n
\r\n \r\n Lastest Publish Courtney\r\n
\r\n {'Evaluation Name:'} {props.evaluationName}\r\n
\r\n {'Created:'} {props.created}\r\n
\r\n {'Data Name:'} {props.dataName}\r\n
\r\n {'Model 1 (Current):'} {props.model1} {'Error Rate:'} {props.wer1} {'%'}\r\n
\r\n {'Model 2 (Latest):'} {props.model2} {'Error Rate:'} {props.wer2} {'%'}\r\n
\r\n {'Status:'} {props.status}\r\n
\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n );\r\n}","let backendHost;\r\n\r\nconst hostname = window && window.location && window.location.hostname;\r\n\r\nif (hostname === 'beta.snchart.com' || hostname === '10.240.11.113') {\r\n backendHost = 'https://webapi.snchart.com';\r\n} else if (hostname === 'qa.snchart.com') {\r\n backendHost = 'https://webapi.snchart.com';\r\n} else if (hostname.indexOf('snchart.com') > 0) {\r\n backendHost = 'https://webapi.snchart.com';\r\n} else if (hostname === \"localhost\") {\r\n backendHost = \"https://webapi.snchart.com\";\r\n}\r\nelse {\r\n backendHost = process.env.REACT_APP_BACKEND_HOST || 'https://webapi.snchart.com';\r\n}\r\n\r\nexport const API_ROOT = `${backendHost}`;\r\n","import axios from 'axios';\r\nimport qs from 'qs';\r\nimport moment from 'moment';\r\nimport { API_ROOT } from './apiConfig';\r\nimport PubSub from 'pubsub-js';\r\n\r\nexport default class Auth {\r\n\r\n login(username, password) {\r\n\r\n return this.processToken({\r\n 'username': username,\r\n 'password': password,\r\n 'grant_type': 'password',\r\n 'scope': 'qtype,sql snchart'\r\n });\r\n\r\n }\r\n \r\n processToken(authParams) {\r\n return new Promise((resolve, reject) => {\r\n\r\n axios.post(`${API_ROOT}/token`,\r\n qs.stringify(authParams), {\r\n headers: {\r\n \"Content-Type\": \"application/x-www-form-urlencoded\"\r\n }\r\n }).then(function (response) {\r\n \r\n let expiresAt = JSON.stringify((response.data.expires_in * 1000) + new Date().getTime());\r\n sessionStorage.setItem('access_token', response.data.access_token);\r\n sessionStorage.setItem('expires_at', expiresAt);\r\n sessionStorage.setItem('pwd_expires_in', response.data.pwd_expires_in);\r\n \r\n axios.get(`${API_ROOT}/api/v1/users/me`,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": `Bearer ${response.data.access_token}`\r\n }\r\n }).then(function (userResponse) {\r\n let gaUser = '';\r\n sessionStorage.setItem('homeAccount', userResponse.data.Account);\r\n sessionStorage.setItem('secArchive', userResponse.data.secArchive);\r\n sessionStorage.setItem('secMarkRead', userResponse.data.secMarkRead);\r\n sessionStorage.setItem('secSave', userResponse.data.secSave);\r\n sessionStorage.setItem('secSign', userResponse.data.secSign);\r\n sessionStorage.setItem('userName', userResponse.data.Name);\r\n sessionStorage.setItem('userId', userResponse.data.UserName);\r\n sessionStorage.setItem('userType', userResponse.data.UserType);\r\n sessionStorage.setItem('email', userResponse.data.Email);\r\n sessionStorage.setItem('dictatorId', userResponse.data.DictatorId);\r\n sessionStorage.setItem('toDate', moment().format(\"MM/DD/YYYY\"));\r\n sessionStorage.setItem('roles', JSON.stringify(userResponse.data.Roles));\r\n if (userResponse.data.DictatorId) {\r\n sessionStorage.setItem('isValidLogin', true);\r\n gaUser = userResponse.data.UserName;\r\n }\r\n else {\r\n //sessionStorage.setItem('isValidLogin', true);\r\n sessionStorage.setItem('isValidLogin', userResponse.data.IdentityMode > 0);\r\n gaUser = `${userResponse.data.Account}_${userResponse.data.LUID}`;\r\n }\r\n\r\n sessionStorage.setItem('gaUserId', gaUser);\r\n\r\n if (userResponse.data.AuthorizedAccounts !== null && userResponse.data.AuthorizedAccounts.length) {\r\n\r\n sessionStorage.setItem('centerName', userResponse.data.AuthorizedAccounts[0].Facility);\r\n sessionStorage.setItem('activeAccount', userResponse.data.AuthorizedAccounts[0].Account);\r\n if (userResponse.data.AuthorizedAccounts.length > 1) {\r\n sessionStorage.setItem('canSwitchAccounts', \"true\");\r\n sessionStorage.setItem('userAccounts', JSON.stringify(userResponse.data.AuthorizedAccounts));\r\n }\r\n else {\r\n sessionStorage.setItem('canSwitchAccounts', \"false\");\r\n }\r\n } else {\r\n sessionStorage.setItem('userAccounts', '[{}]');\r\n }\r\n\r\n PubSub.publish('AuthChanged');\r\n resolve(true);\r\n });\r\n }).catch(error => {\r\n reject(error);\r\n });\r\n });\r\n }\r\n\r\n isInRole(role) {\r\n let hasRole = false;\r\n let accounts = JSON.parse(sessionStorage.getItem('userAccounts') || '[{}]');\r\n switch (role) {\r\n case 'Archive':\r\n hasRole = sessionStorage.getItem('secArchive') === 'true';\r\n break;\r\n case 'MarkRead':\r\n hasRole = sessionStorage.getItem('secMarkRead') === 'true';\r\n break;\r\n case 'Save':\r\n hasRole = sessionStorage.getItem('secSave') === 'true';\r\n break;\r\n case 'Sign':\r\n hasRole = sessionStorage.getItem('secSign') === 'true';\r\n break;\r\n case 'Admin':\r\n hasRole = sessionStorage.getItem('homeAccount') === '998';\r\n break;\r\n case 'FacilityAdmin':\r\n let roles = JSON.parse(sessionStorage.getItem('roles'));\r\n hasRole = roles.indexOf('Administrator') > -1 || roles.indexOf('SupportAdmin') > -1;\r\n break;\r\n case 'SNChartGlobalAdmin':\r\n hasRole = sessionStorage.getItem('homeAccount') === '998' || sessionStorage.getItem('homeAccount') === '9302020' || accounts.some(function (account) { return account.Account === \"9302020\" });\r\n break;\r\n case 'SNChartSuperUser':\r\n hasRole = sessionStorage.getItem('homeAccount') === '10202020' || accounts.some(function (account) { return account.Account === \"10202020\" });\r\n break;\r\n default:\r\n hasRole = false;\r\n }\r\n return hasRole;\r\n }\r\n\r\n isAuthenticated() {\r\n var expiresAt = JSON.parse(sessionStorage.getItem('expires_at') || '{}');\r\n return new Date().getTime() < expiresAt;\r\n }\r\n\r\n isPasswordExpired() {\r\n var expiresAt = parseInt(sessionStorage.getItem('pwd_expires_in'));\r\n return expiresAt <= 0;\r\n }\r\n\r\n getPasswordExpiresIn() {\r\n return parseInt(sessionStorage.getItem('pwd_expires_in'));\r\n }\r\n\r\n clearPasswordExpExpiresIn() {\r\n sessionStorage.setItem('pwd_expires_in', 180);\r\n }\r\n\r\n saveUserLogin(userName) {\r\n sessionStorage.setItem('snuser', userName);\r\n }\r\n\r\n getUserLogin() {\r\n return sessionStorage.getItem('snuser');\r\n }\r\n\r\n getGaUser() {\r\n\r\n return sessionStorage.getItem('gaUserId');\r\n }\r\n\r\n getUserName() {\r\n return sessionStorage.getItem('userName');\r\n }\r\n\r\n getUserEmail() {\r\n return sessionStorage.getItem('email');\r\n }\r\n\r\n getUserId() {\r\n return sessionStorage.getItem('userId');\r\n }\r\n getUserType() {\r\n return sessionStorage.getItem('userType');\r\n }\r\n getFromDate() {\r\n return sessionStorage.getItem('fromDate');\r\n }\r\n getToDate() {\r\n return sessionStorage.getItem('toDate');\r\n }\r\n isValidLogin() {\r\n return sessionStorage.getItem('isValidLogin') === \"true\";\r\n }\r\n setValidLogin(valid) {\r\n return sessionStorage.setItem('isValidLogin', valid);\r\n }\r\n setFromDate(value) {\r\n sessionStorage.setItem('fromDate', value);\r\n }\r\n setToDate(value) {\r\n sessionStorage.setItem('toDate', value);\r\n }\r\n getDictatorId() {\r\n return sessionStorage.getItem('dictatorId');\r\n }\r\n getActiveAccount() {\r\n return sessionStorage.getItem('activeAccount');\r\n }\r\n getHomeAccount() {\r\n return sessionStorage.getItem('homeAccount');\r\n }\r\n setActiveAccount(account) {\r\n return sessionStorage.setItem('activeAccount', account);\r\n }\r\n getUserAccounts() {\r\n return JSON.parse(sessionStorage.getItem('userAccounts') || '[{}]');\r\n }\r\n getCenterName() {\r\n return sessionStorage.getItem('centerName');\r\n }\r\n canSwitchAccounts() {\r\n return sessionStorage.getItem('canSwitchAccounts');\r\n }\r\n getToken() {\r\n // Retrieves the user token from localStorage\r\n return sessionStorage.getItem('access_token');\r\n }\r\n\r\n signOut(reload = true) {\r\n // Clear user token and profile data from localStorage\r\n //const history = createBrowserHistory();\r\n sessionStorage.removeItem('access_token');\r\n sessionStorage.removeItem('expires_at');\r\n sessionStorage.removeItem('pwd_expires_in');\r\n sessionStorage.removeItem('userAccounts');\r\n //location.reload(true);\r\n //history.replace('/');\r\n if (reload) {\r\n window.location.reload();\r\n }\r\n else {\r\n PubSub.publish('AuthChanged');\r\n }\r\n }\r\n\r\n markNotificationsRead(notifications) {\r\n var userKey = sessionStorage.getItem('gaUserId');\r\n var readNotifications = localStorage.getItem(`${userKey}_readNotifications`) != null ? JSON.parse(localStorage.getItem(\"readNotifications\")) : [];\r\n if (!Array.isArray(readNotifications)) {\r\n readNotifications = [];\r\n }\r\n for (var i = 0; i < notifications.length; i++) {\r\n if (!notifications[i].IsRead) {\r\n notifications[i].IsRead = true;\r\n readNotifications.push(notifications[i].NotificationId);\r\n }\r\n }\r\n localStorage.setItem(`${userKey}_readNotifications`, JSON.stringify(readNotifications));\r\n return notifications;\r\n }\r\n\r\n getNotifications() {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`${API_ROOT}/api/v1/Users/Notifications`,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": `Bearer ${sessionStorage.getItem('access_token')}`\r\n }\r\n }).then(function (response) {\r\n var userKey = sessionStorage.getItem('gaUserId');\r\n var readNotifications = localStorage.getItem(`${userKey}_readNotifications`) != null ? JSON.parse(localStorage.getItem(`${userKey}_readNotifications`)) : [];\r\n if (!Array.isArray(readNotifications)) {\r\n readNotifications = [];\r\n }\r\n\r\n const notifications = response.data.map((notification, i) => {\r\n const result = Object.assign({}, notification,\r\n {\r\n Url: decodeURIComponent(notification.Url),\r\n IsRead: readNotifications.indexOf(notification.NotificationId) > -1\r\n });\r\n\r\n return result;\r\n });\r\n resolve(notifications);\r\n }).catch(error => {\r\n console.log(error)\r\n });\r\n });\r\n }\r\n\r\n}","import React from 'react';\r\nimport clsx from 'clsx';\r\nimport PropTypes from 'prop-types';\r\nimport AppBar from '@material-ui/core/AppBar';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport InboxIcon from '@material-ui/icons/MoveToInbox';\r\nimport List from '@material-ui/core/List';\r\nimport ListItem from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport MailIcon from '@material-ui/icons/Mail';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport { Link } from 'react-router-dom';\r\nimport Auth from '../services/auth';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport AccountCircle from '@material-ui/icons/AccountCircle';\r\nimport CallToActionIcon from '@material-ui/icons/CallToAction';\r\nimport ReceiptIcon from '@material-ui/icons/Receipt';\r\nimport ListSubheader from '@material-ui/core/ListSubheader';\r\nimport PublicIcon from '@material-ui/icons/Public'\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport SettingsIcon from '@material-ui/icons/Settings';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport PersonPinIcon from '@material-ui/icons/PersonPin';\r\nimport HelpIcon from '@material-ui/icons/Help';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport userGuide from '../docs/SNChart_Admin_UserGuide.pdf';\r\nimport AssignmentTurnedInIcon from '@material-ui/icons/AssignmentTurnedIn';\r\nconst drawerWidth = 240;\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n },\r\n appTitle: {\r\n flexGrow: 1,\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n },\r\n appBarShift: {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\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 menuButton: {\r\n marginRight: 36,\r\n },\r\n hide: {\r\n display: 'none',\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\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) + 1,\r\n [theme.breakpoints.up('sm')]: {\r\n width: theme.spacing(9) + 1,\r\n },\r\n },\r\n toolbar: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'flex-end',\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n },\r\n content: {\r\n flexGrow: 1,\r\n marginLeft: \"240px\",\r\n padding: theme.spacing(3),\r\n \r\n },\r\n SNBrand: {\r\n color: theme.palette.secondary.main\r\n },\r\n gutters: theme.mixins.gutters(),\r\n nested: {\r\n paddingLeft: theme.spacing(4),\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n },\r\n drawerContainer: {\r\n overflow: 'auto',\r\n },\r\n\r\n}));\r\n\r\nfunction ListItemLink(props) {\r\n return ;\r\n}\r\n\r\nfunction ResponsiveDrawer(props) {\r\n \r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [open, setOpen] = React.useState(false);\r\n const [openMenu, setOpenMenu] = React.useState(false);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n //const { pathname } = props.location;\r\n\r\n const userName = auth.getUserName();\r\n\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n setOpenMenu(true);\r\n };\r\n\r\n const handleClose = () => {\r\n\r\n setAnchorEl({});\r\n setOpenMenu(false);\r\n };\r\n\r\n const drawer = (\r\n
\r\n \r\n Training\r\n \r\n }>\r\n {['Segments'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {['Pronunciation'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {['Sentences'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n\r\n \r\n \r\n \r\n \r\n Substitutions\r\n \r\n }>\r\n {['Global'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {['Doctor'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n \r\n \r\n \r\n \r\n Testing\r\n \r\n {['Tests'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n \r\n \r\n \r\n Routing\r\n \r\n }>\r\n {['Account'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {/*{['Doctor'].map((text, index) => (*/}\r\n\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n {/* */}\r\n\r\n {/*))}*/}\r\n \r\n \r\n \r\n Administration\r\n \r\n }>\r\n {['Doctor Profiles'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {['Active Doctors'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {['Doctor E-Signature'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n {['Settings'].map((text, index) => (\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n\r\n\r\n \r\n \r\n \r\n Help\r\n \r\n }>\r\n {['User Guide'].map((text, index) => (\r\n\r\n\r\n \r\n \r\n \r\n \r\n\r\n ))}\r\n \r\n \r\n
\r\n );\r\n\r\n const handleLogOut = () => {\r\n const auth = new Auth();\r\n auth.signOut();\r\n }\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {props.isAuthenticated}\r\n \r\n SNChart Admin\r\n \r\n {props.isAuthenticated && (\r\n\r\n
\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {userName}\r\n Log out\r\n\r\n \r\n \r\n \r\n
\r\n\r\n )}\r\n
\r\n \r\n {props.isAuthenticated &&\r\n \r\n \r\n \r\n {drawer}\r\n \r\n }\r\n
\r\n \r\n {props.children}\r\n
\r\n
\r\n );\r\n}\r\n\r\nResponsiveDrawer.propTypes = {\r\n /**\r\n * Injected by the documentation to work in an iframe.\r\n * You won't need it on your project.\r\n */\r\n container: PropTypes.any,\r\n};\r\n\r\nexport default ResponsiveDrawer;\r\n","import React, { Component } from 'react';\r\nimport { MuiThemeProvider, createMuiTheme } from '@material-ui/core/styles';\r\nimport CssBaseline from '@material-ui/core/CssBaseline';\r\nimport ResponsiveDrawer from './ResponsiveDrawer';\r\nimport IdleTimer from 'react-idle-timer';\r\nimport Auth from '../services/auth';\r\nimport PubSub from 'pubsub-js';\r\n\r\n\r\nexport class Layout extends Component {\r\n static displayName = Layout.name;\r\n \r\n\r\n constructor(props) {\r\n super(props);\r\n this.idleTimer = null;\r\n this.onIdle = this._onIdle.bind(this);\r\n this.handleAuthChanged = this._handleAuthChanged.bind(this);\r\n const auth = new Auth();\r\n\r\n this.state = {\r\n isAuthenticated: auth.isAuthenticated() && auth.isValidLogin()\r\n };\r\n }\r\n\r\n _onIdle(e) {\r\n\r\n const auth = new Auth();\r\n if (auth.isAuthenticated() && auth.isValidLogin()) {\r\n auth.signOut();\r\n }\r\n //console.log('user is idle', e)\r\n //console.log('last active', this.idleTimer.getLastActiveTime())\r\n }\r\n\r\n componentWillMount() {\r\n this.token = PubSub.subscribe('AuthChanged', this.handleAuthChanged.bind(this));\r\n }\r\n componentWillUnmount() {\r\n PubSub.unsubscribe(this.token);\r\n }\r\n\r\n _handleAuthChanged() {\r\n console.log('_handleAuthChanged');\r\n const auth = new Auth();\r\n\r\n\r\n this.setState({ isAuthenticated: auth.isAuthenticated() && auth.isValidLogin() });\r\n }\r\n\r\n render() {\r\n const auth = new Auth();\r\n const theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n light: '#0690f9',\r\n main: '#0568B2',\r\n dark: '#03487c',\r\n },\r\n secondary: {\r\n main: '#E08827',\r\n contrastText: '#fff',\r\n },\r\n },\r\n });\r\n return (\r\n {/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}\r\n \r\n \r\n { this.idleTimer = ref }}\r\n element={document}\r\n onIdle={this.onIdle}\r\n timeout={1000 * 60 * 15}>\r\n {this.props.children}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n minWidth: 275,\r\n marginBottom: 15\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 14,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n});\r\n\r\nexport default function SegmentsInstructionsCard() {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n {`Use 'Search Account' to filter the list of segments. Please edit all reports verbatim (as dictated by physician).`}\r\n
    \r\n
  • Write out abbreviations in words.
  • \r\n
  • Write out non-standard numeric strings in words (If doctor dictates numerical then spell it out. For example two and not 2.).
  • \r\n
  • Non-alphabetic characters or mixed alphanumeric characters should be transcribed as pronounced (period, comma, semicolon).
  • \r\n
  • Abbreviations that are pronounced as words shouldn't be edited (such as \"radar\", \"laser\", \"RAM\", or \"NATO\" - do not change CC to mL).
  • \r\n
  • Write out abbreviations that are pronounced as separate letters with each letter separated by a space.
  • \r\n
  • \r\n Reject segments that are inaudible or not relevant (cross-talk).\r\n
  • \r\n
  • \r\n Reference\r\n
  • \r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import { useState } from 'react';\r\n\r\n// Hook\r\nexport default function useLocalStorage(key, initialValue) {\r\n // State to store our value\r\n // Pass initial state function to useState so logic is only executed once\r\n const [storedValue, setStoredValue] = useState(() => {\r\n try {\r\n // Get from local storage by key\r\n const item = window.localStorage.getItem(key);\r\n console.log(item);\r\n // Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : initialValue;\r\n } catch (error) {\r\n // If error also return initialValue\r\n console.log(error);\r\n return initialValue;\r\n }\r\n });\r\n\r\n // Return a wrapped version of useState's setter function that ...\r\n // ... persists the new value to localStorage.\r\n const setValue = value => {\r\n try {\r\n // Allow value to be a function so we have same API as useState\r\n const valueToStore =\r\n value instanceof Function ? value(storedValue) : value;\r\n // Save state\r\n setStoredValue(valueToStore);\r\n // Save to local storage\r\n window.localStorage.setItem(key, JSON.stringify(valueToStore));\r\n } catch (error) {\r\n // A more advanced implementation would handle the error case\r\n console.log(error);\r\n }\r\n };\r\n\r\n return [storedValue, setValue];\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography } from '@material-ui/core';\r\nimport SegmentsInstructionsCard from \"./segmentsInstructionsCard\"\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport Button from '@material-ui/core/Button';\r\nimport ArrowDownwardIcon from '@material-ui/icons/ArrowDownward';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport _ from 'lodash';\r\nimport { API_ROOT } from '../services/apiConfig';\r\nimport useLocalStorage from '../hooks/useLocalStorage';\r\nimport Auth from '../services/auth';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Tooltip from '@material-ui/core/Tooltip';\r\n\r\nimport EntityTable from \"./EntityTable\";\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n width: '100%',\r\n },\r\n container: {\r\n maxHeight: 440,\r\n },\r\n searchInput: {\r\n width: '20%',\r\n marginTop: '20px'\r\n },\r\n gridCard: {\r\n paddingTop: '20px'\r\n }\r\n});\r\n\r\nexport default function Segments(props) {\r\n\r\n const classes = useStyles();\r\n const [rows, setRows] = useState([]);\r\n const [filterAccounts, setFilterAccounts] = useLocalStorage('filterAccountsStorage', undefined); \r\n const [activeAccounts, setActiveAccounts] = useState([]);\r\n const [dataFetching, setDataFetching] = useState(false);\r\n const columns = [\r\n { id: 'name', label: 'Transcript File', type: 'string' },\r\n { id: 'account', label: 'Account', type: 'number' },\r\n { id: 'job', label: 'Job', disableSorting: true },\r\n { id: 'createdOn', label: 'Created', type: 'date' }\r\n ];\r\n\r\n const handleTranscriptClick = (event, transcriptId) => {\r\n console.log(transcriptId);\r\n props.history.push(`/segment/${transcriptId}`);\r\n };\r\n\r\n useEffect(() => {\r\n setDataFetching(true);\r\n async function fetchData() {\r\n // You can await here\r\n console.log('fetchData');\r\n loadTranscriptions(filterAccounts);\r\n await getAccounts();\r\n }\r\n fetchData();\r\n }, []);\r\n\r\n const loadTranscriptions = async (accounts) => {\r\n\r\n // console.log(filterAccounts);\r\n setDataFetching(true);\r\n\r\n var accountSimpleArray = [];\r\n if (accounts !== undefined) {\r\n accountSimpleArray = accounts.map(function (item, index) {\r\n return item.AccountNumber;\r\n });\r\n }\r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(accountSimpleArray)\r\n };\r\n console.log(requestOptions);\r\n const response = await fetch('transcriptions', requestOptions);\r\n const data = await response.json();\r\n console.log(data);\r\n setRows(data);\r\n setDataFetching(false);\r\n\r\n }\r\n\r\n const getAccounts = async () => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Accounts`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setActiveAccounts(formateddata);\r\n //setFilterAccounts(formateddata);\r\n }\r\n }\r\n\r\n // const activeAccounts = [\"900\", \"11\"];\r\n \r\n return (\r\n \r\n \r\n Transcription Segments\r\n \r\n \r\n \r\n option.DataTextField ? option.DataTextField : \"\"}\r\n //getOptionLabel={(option) => option.title}\r\n getOptionSelected={(option, value) => option.Account1 === value.Account1}\r\n onChange={(event, newValue) => {\r\n setFilterAccounts(newValue);\r\n loadTranscriptions(newValue);\r\n }}\r\n value={filterAccounts || []}\r\n defaultValue={filterAccounts}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","import * as React from 'react';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport withStyles from '@material-ui/core/styles/withStyles';\r\nimport Auth from '../services/auth';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Link } from 'react-router-dom';\r\nimport FormHelperText from '@material-ui/core/FormHelperText';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Divider from '@material-ui/core/Divider';\r\n\r\nconst styles = theme => ({\r\n root: theme.mixins.gutters({\r\n paddingTop: 16,\r\n paddingBottom: 16,\r\n marginTop: theme.spacing(3),\r\n }),\r\n logo: {\r\n maxWidth: '100%',\r\n margin: 'auto',\r\n maxHeight: '40px'\r\n },\r\n page: {\r\n backgroundImage: `url(${\"images/login_bg.jpg\"})`,\r\n backgroundSize: 'cover',\r\n minHeight: 'calc(100vh - 24px)',\r\n marginLeft: \"-240px\",\r\n },\r\n center: {\r\n textAlign: 'center'\r\n },\r\n link: {\r\n textDecoration: 'none'\r\n },\r\n wrapper: {\r\n margin: theme.spacing(1),\r\n position: 'relative'\r\n },\r\n buttonProgress: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n },\r\n forgotLinkText: {\r\n marginTop: theme.spacing(1)\r\n }\r\n});\r\n\r\nfunction getSteps() {\r\n return ['Set User Name', 'Confirm Email'];\r\n}\r\n\r\n\r\nclass Login extends React.Component {\r\n\r\n\r\n constructor(props) {\r\n super(props);\r\n this.login = this.login.bind(this);\r\n this.Auth = new Auth();\r\n\r\n this.state = {\r\n username: this.Auth.getUserLogin() || '',\r\n password: '',\r\n updateLogin: false,\r\n headline: 'SIGN IN',\r\n hasError: false,\r\n confirmationSent: false,\r\n loginErrorMessage: 'Invalid username or password.',\r\n emailcode: '',\r\n newusername: '',\r\n activeStep: 0,\r\n confirmError: '',\r\n confirmIdentityError: '',\r\n sendingConfirmation: false,\r\n confirmingCode: false,\r\n loggingIn: false\r\n };\r\n }\r\n\r\n componentWillMount() {\r\n\r\n if (this.Auth.isAuthenticated() && this.Auth.isValidLogin()) {\r\n let path = this.props.location.state !== undefined ? this.props.location.state.from.pathname || '/' : '/';\r\n this.props.history.replace(path);\r\n }\r\n else if (this.Auth.isAuthenticated()) {\r\n this.setState({ updateLogin: true, headline: \"Update Login\", newusername: this.Auth.getUserEmail() });\r\n }\r\n }\r\n\r\n handleNext = () => {\r\n const { activeStep } = this.state;\r\n\r\n this.setState({\r\n activeStep: activeStep + 1,\r\n });\r\n };\r\n\r\n\r\n isStepOptional = step => {\r\n return step === 1;\r\n };\r\n\r\n submit = (event) => {\r\n event.preventDefault();\r\n this.login();\r\n };\r\n\r\n \r\n\r\n \r\n \r\n\r\n\r\n handleChange = field => event => {\r\n\r\n const { target: { value } } = event;\r\n this.setState({ [field]: value });\r\n }\r\n\r\n login() {\r\n\r\n var history = this.props.history;\r\n var self = this;\r\n self.setState({ loggingIn: true });\r\n this.Auth.login(this.state.username, this.state.password)\r\n .then(function (response) {\r\n self.setState({ loggingIn: false });\r\n \r\n if (self.Auth.isValidLogin()) {\r\n let path = self.props.location.state !== undefined ? self.props.location.state.from.pathname || '/' : '/';\r\n console.log('history.replace', path);\r\n self.props.history.replace(path);\r\n \r\n } else {\r\n self.setState({ updateLogin: true, headline: \"Update Login\", newusername: self.Auth.getUserEmail() });\r\n }\r\n }).catch(error => {\r\n self.setState({ loggingIn: false });\r\n let errorMessage = self.state.loginErrorMessage;\r\n\r\n if (error.response && error.response.data && error.response.data.error_description) {\r\n if (error.response.data.error_description === \"AccountLocked\") {\r\n errorMessage = \"Maximum login attempts exceeded. Use the Forgot username or password link to reset your password.\"\r\n }\r\n else if (error.response.data.error_description === \"AccountHold\") {\r\n errorMessage = \"Your access has been placed on hold until your account fees have been paid in full.\"\r\n }\r\n }\r\n self.setState({ hasError: true, loginErrorMessage: errorMessage });\r\n });\r\n }\r\n\r\n render() {\r\n const { classes } = this.props;\r\n const steps = getSteps();\r\n const { activeStep, sendingConfirmation, loggingIn, confirmingCode } = this.state;\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.headline}\r\n \r\n \r\n \r\n \r\n {!this.state.updateLogin && \r\n
\r\n
\r\n {\r\n if (ev.key === 'Enter') {\r\n\r\n ev.preventDefault();\r\n this.login();\r\n }\r\n }}\r\n error={this.state.hasError}\r\n\r\n />\r\n {this.state.hasError && {this.state.loginErrorMessage}}\r\n \r\n \r\n
}\r\n {!this.state.updateLogin && \r\n \r\n \r\n
\r\n \r\n {loggingIn && }\r\n
\r\n\r\n
\r\n
\r\n
}\r\n\r\n \r\n\r\n {this.state.updateLogin && \r\n \r\n {steps.map((label) => {\r\n const props = {};\r\n const labelProps = {};\r\n return (\r\n \r\n {label}\r\n \r\n );\r\n })}\r\n \r\n \r\n }\r\n \r\n \r\n \r\n \r\n \r\n Contact support (800) 459-5616\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n
);\r\n }\r\n\r\n}\r\n\r\nexport default withStyles(styles)(Login);","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport TranscriptEditor from \"@bbc/react-transcript-editor\";\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport Auth from '../services/auth';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n width: '100%'\r\n },\r\n paper: {\r\n height: 140,\r\n width: 100,\r\n },\r\n control: {\r\n padding: theme.spacing(2),\r\n },\r\n transcriptRoot: {\r\n '& h2': {\r\n width:'100%'\r\n\r\n }, '& button[title=\"Save\"]': {\r\n display: 'none'\r\n },\r\n '& button[title=\"Picture-in-picture\"]': {\r\n display: 'none'\r\n },\r\n\r\n },\r\n issueSnack: {\r\n backgroundColor: theme.palette.secondary.main,\r\n maxWidth: '100%'\r\n }\r\n}));\r\n\r\nexport default function Segment(props) {\r\n\tconst classes = useStyles();\r\n\r\n \r\n const auth = new Auth();\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n const [transcriptJson, setTranscriptJson] = React.useState({});\r\n const [editable] = React.useState(true);\r\n const [saved, setSaved] = React.useState(false);\r\n const [correctedTranscript, setCorrectedTranscript] = React.useState(\"\");\r\n const [mediaUrl, setMediaUrl] = React.useState(\"https://localhost:44334/63-FST-502491191_s5.wav\");\r\n const [transcriptLoaded, setTranscriptLoaded] = React.useState(false);\r\n const [account, setAccount] = React.useState({});\r\n const [recordToDelete, setRecordToDelete] = React.useState(\"\");\r\n const [open, setOpen] = React.useState(false);\r\n const [openSaveDialog, setOpenSaveDialog] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [openSnack, setOpenSnack] = React.useState(false);\r\n\t//setTranscriptJson(transcriptJsonRaw);\r\n const transcriptEditorRef = React.createRef();\r\n /*const handleAutoSaveChanges = newAutoSaveData => {\r\n console.log(\"handleAutoSaveChanges\", newAutoSaveData);\r\n //setCorrectedTranscript(newAutoSaveData.data);\r\n \r\n //const { data, ext } = newAutoSaveData;\r\n //this.setState({ autoSaveData: data, autoSaveExtension: ext });\r\n // Saving to local storage \r\n //localSave(this.state.mediaUrl, this.state.fileName, data);\r\n };*/\r\n\r\n const handleClickOpen = (transcription) => {\r\n //console.log(\"On selected\", transcription);\r\n setRecordToDelete(transcription);\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleOK = () => {\r\n RejectTranscription(recordToDelete);\r\n };\r\n\r\n const handleOKSaveDialog = () => {\r\n saveData();\r\n };\r\n\r\n const handleCloseSaveDialog = () => {\r\n setOpenSaveDialog(false);\r\n };\r\n\r\n const handleClickOpenSaveSegment = () => {\r\n\r\n setOpenSaveDialog(true);\r\n };\r\n\r\n const handleCloseSnack = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n props.history.push('/');\r\n setOpenSnack(false);\r\n };\r\n\r\n const saveData = async (event) => {\r\n // console.log(\"saveData\", transcriptEditorRef);\r\n\r\n var content = transcriptEditorRef.current.getEditorContent('txt');\r\n \r\n //console.log(content);\r\n const response = await fetch(`transcriptions/SaveTranscript/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body:JSON.stringify( {\r\n name: props.match.params.transcriptName,\r\n body: content.data\r\n })\r\n });\r\n\r\n if (response.ok) {\r\n setSeverity(\"info\");\r\n setMessage(\"Successfully saved segment\");\r\n setOpenSaveDialog(false);\r\n setOpenSnack(true)\r\n }\r\n else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpenSnack(true);\r\n }\r\n \r\n \r\n };\r\n\r\n const RejectTranscription = async (recordToDelete) => {\r\n\r\n const response = await fetch(`transcriptions/RejectTranscript/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: JSON.stringify({\r\n name: recordToDelete\r\n })\r\n });\r\n\r\n \r\n\r\n if (response.ok) {\r\n setSeverity(\"info\");\r\n setMessage(\"Successfully rejected segment\");\r\n setOpen(false);\r\n setOpenSnack(true)\r\n }\r\n else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpenSnack(true);\r\n }\r\n\r\n };\r\n\r\n \r\n useEffect(() => {\r\n // Update the document title using the browser API\r\n //document.title = `You clicked ${count} times`;\r\n // console.log('test');\r\n\r\n\r\n async function fetchData() {\r\n // You can await here\r\n console.log('fetchData');\r\n const response = await fetch(`transcriptions/GetTranscript/${props.match.params.transcriptName}`);\r\n const data = await response.json();\r\n //console.log(data.transcript);\r\n var transcript = JSON.parse(data.transcript);\r\n // console.log(transcript);\r\n // var startTime = transcript.paragraphs[0].start;\r\n //var endTime = transcript.paragraphs[0].start + 0.1;\r\n //transcript.paragraphs.unshift({ id: 1, start: startTime, end: endTime, speaker: \"SN\", isEditable: false });\r\n //transcript.words.unshift({ id: transcript.words.length + 1, start: startTime, end: endTime, text: props.match.params.transcriptName, isEditable: false });\r\n setAccount(data.account)\r\n setTranscriptJson(transcript);\r\n setMediaUrl(data.mediaUrl);\r\n setTranscriptLoaded(true);\r\n\r\n \r\n }\r\n fetchData();\r\n\r\n }, []);\r\n return (\r\n \r\n \r\n\r\n Please edit all reports verbatim (as dictated by physician).\r\n
Reject items that are inaudible or lack medical context (background noise, conversations, etc)
\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {transcriptLoaded && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"Are you sure to reject this segment?\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\"Are you sure you want to complete this segment?\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n );\r\n \r\n}\r\n","import * as React from 'react';\r\nimport Auth from '../services/auth';\r\nimport { Redirect, Route } from 'react-router'\r\n\r\n\r\n\r\nconst PrivateRoute = ({ component: Component, ...rest }) => {\r\n\r\n // Add your own authentication on the below line.\r\n const auth = new Auth();\r\n const isLoggedIn = auth.isAuthenticated();\r\n const isValidLogin = auth.isValidLogin();\r\n\r\n //\r\n\r\n console.log('privateroute', (isLoggedIn && isValidLogin));\r\n return (\r\n \r\n isLoggedIn && isValidLogin ? \r\n \r\n :\r\n \r\n\r\n }\r\n />\r\n )\r\n}\r\n\r\nexport default PrivateRoute","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography } from '@material-ui/core';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport StepContent from '@material-ui/core/StepContent';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Auth from '../services/auth';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n padding: theme.spacing(1),\r\n marginBottom: theme.spacing(2)\r\n },\r\n container: {\r\n maxHeight: 440,\r\n },\r\n searchInput: {\r\n width: '20%',\r\n marginTop: '20px'\r\n },\r\n gridCard: {\r\n paddingTop: '20px'\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function Pronunciation(props) {\r\n\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [sentenceMeta, setSentenceMeta] = React.useState({ sasUrl: \"\" });\r\n const [sentenceContent, setSentenceContent] = React.useState({ displayForm: \"\", spokenForm: \"\" });\r\n\r\n const [fileContent, setFileContent] = React.useState(null);\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [isUploading, setIsUploading] = React.useState(false);\r\n\r\n const saveData = async (event) => {\r\n\r\n const expression = /[a-zA-Z][a-zA-Z ]+[a-zA-Z]$/\r\n if (!expression.test(sentenceContent.displayForm) || !expression.test(sentenceContent.spokenForm)) {\r\n console.log(\"NOT\")\r\n return;\r\n }\r\n console.log(\"passed\")\r\n \r\n setIsSaving(true);\r\n // console.log(\"saveData\", transcriptEditorRef);\r\n //console.log(content);\r\n const response = await fetch(`api/pronunciation/SavePronunciation/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: JSON.stringify({\r\n displayForm: sentenceContent.displayForm,\r\n spokenForm: sentenceContent.spokenForm,\r\n })\r\n });\r\n\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsSaving(false);\r\n //props.history.push('/');\r\n \r\n };\r\n\r\n const handleOnChange = event => {\r\n const { name, value } = event.target;\r\n // if (value === \"\") {\r\n // setErrors([...errors, { field: name, errorMessage: \"empty value\" }]);\r\n //}\r\n // else {\r\n // setErrors(errors.filter((error) => { return error.field !== name }))\r\n //}\r\n setSentenceContent({ ...sentenceContent, [name]: value });\r\n };\r\n useEffect(() => {\r\n // Update the document title using the browser API\r\n //document.title = `You clicked ${count} times`;\r\n // console.log('test');\r\n\r\n async function fetchData() {\r\n // You can await here\r\n console.log('fetchData');\r\n const response = await fetch('api/Pronunciation');\r\n const data = await response.json();\r\n // console.log(data);\r\n setSentenceMeta(data);\r\n }\r\n fetchData();\r\n }, []);\r\n\r\n const onFormSubmit = async (e) => {\r\n e.preventDefault(); // Stop form submit\r\n setIsUploading(true);\r\n const formData = new FormData();\r\n formData.append('file', fileContent)\r\n\r\n const response = await fetch(`api/Pronunciation/ReplacePronunciation/`, {\r\n method: 'POST',\r\n headers: {\r\n //'Content-Type': 'multipart/form-data'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: formData\r\n });\r\n\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsUploading(false);\r\n //props.history.push('/');\r\n }\r\n const onChange = (e) => {\r\n setFileContent(e.target.files[0]);\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n\r\n setSentenceContent({ displayForm: \"\", spokenForm: \"\" });\r\n setFileContent(null);\r\n document.getElementById(\"replace-form\").reset();\r\n // props.history.push(`/pronunciation`);\r\n //props.history.pushState(null, '/');\r\n //props.history.pushState(null, '/pronunciation');\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n Pronunciation\r\n\r\n \r\n \r\n \r\n Review\r\n \r\n \r\n Download and review the current list of custom pronunciation\r\n \r\n \r\n \r\n \r\n \r\n Quick Add\r\n \r\n \r\n Add a new custom pronunciation\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Advanced Edit\r\n \r\n \r\n Upload and replace custom pronunciations\r\n\r\n
onFormSubmit(event)}>\r\n onChange(event)} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {message}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography, IconButton } from '@material-ui/core';\r\nimport AddBoxIcon from '@material-ui/icons/AddBox';\r\nimport Auth from '../services/auth';\r\nimport { API_ROOT } from '../services/apiConfig';\r\n\r\nimport EntityTable from \"./EntityTable\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n container: {\r\n flexGrow: 1\r\n },\r\n paper: {\r\n padding: theme.spacing.unit * 2,\r\n textAlign: 'left',\r\n color: theme.palette.text.secondary,\r\n }\r\n}));\r\nconst getGlobalColumns = () => {\r\n return [\r\n { id: 'regExpression', label: 'Courtney (ASR) Phrase', disableSorting: true },\r\n { id: 'text', label: 'Corrected Phrase', disableSorting: true },\r\n { id: 'replaceAll', label: 'Replace All', disableSorting: true, disableSearch: true },\r\n { id: 'count', label: 'Count', disableSorting: false, disableSearch: true },\r\n { id: 'lastAppliedDate', label: 'Last Applied Date', disableSorting: false, disableSearch: true, type: 'date' },\r\n { id: 'created', label: 'Created', disableSorting: false, type: 'date' },\r\n { id: 'editorId', label: 'Created By', disableSorting: true }\r\n ];\r\n};\r\nconst getDoctorColumns = () => {\r\n return [\r\n { id: 'regExpression', label: 'Courtney (ASR) Phrase', disableSorting: true },\r\n { id: 'text', label: 'Corrected Phrase', disableSorting: true },\r\n { id: 'account', label: 'Account', disableSorting: true },\r\n { id: 'dictatorId', label: 'Doctor Id', disableSorting: true },\r\n { id: 'replaceAll', label: 'Replace All', disableSorting: true, disableSearch: true },\r\n { id: 'count', label: 'Count', disableSorting: false, disableSearch: true },\r\n { id: 'totalJobs', label: 'Total Jobs', disableSorting: false, disableSearch: true },\r\n { id: 'percentage', label: '% Applied', disableSorting: false, disableSearch: true },\r\n { id: 'lastAppliedDate', label: 'Last Applied Date', disableSorting: false, disableSearch: true, type: 'date' },\r\n { id: 'created', label: 'Created', disableSorting: false, type: 'date' },\r\n { id: 'editorId', label: 'Created By', disableSorting: true }\r\n ];\r\n};\r\n\r\nexport default function SubstitutionsGlobal(props) {\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [rows, setRows] = useState([]);\r\n const columns = props.isGlobal ? getGlobalColumns() : getDoctorColumns();\r\n const userHasUpdatePermission = (props.isGlobal && auth.isInRole('SNChartGlobalAdmin')) || !props.isGlobal;\r\n const [dataFetching, setDataFetching] = useState(false);\r\n\r\n useEffect(() => {\r\n async function fetchDataGlobal() {\r\n // You can await here\r\n setDataFetching(true);\r\n console.log('fetchData');\r\n const response = await fetch('substitution/GetAllGlobal');\r\n const data = await response.json();\r\n //let metadata = await getSubstitutionMetadata();\r\n //if (metadata.length > 0) {\r\n // let globalSubstitutions = metadata.filter(a => { return a.Account === \"998\" });\r\n // data.forEach((item) => {\r\n\r\n // globalSubstitutions.forEach((sub) => {\r\n // if (item.guid == sub.RowKey) {\r\n // item.count = sub.CountApplied;\r\n // item.totalJobs = sub.TotalAvailableJobs;\r\n // return;\r\n // }\r\n // });\r\n\r\n \r\n // return this;\r\n // });\r\n // //let dataAfter = data;\r\n // setRows(data);\r\n //}\r\n //else {\r\n // setRows(data);\r\n //}\r\n setRows(data);\r\n setDataFetching(false);\r\n }\r\n\r\n async function fetchDataNonGlobal() {\r\n // You can await here\r\n setDataFetching(true);\r\n console.log('fetchData');\r\n const response = await fetch('substitution/GetAllNonGlobal');\r\n const data = await response.json();\r\n //let metadata = await getSubstitutionMetadata();\r\n //if (metadata.length > 0) {\r\n // let globalSubstitutions = metadata.filter(a => { return a.Account != \"998\" });\r\n // data.forEach((item) => {\r\n\r\n // globalSubstitutions.forEach((sub) => {\r\n // if (item.guid == sub.RowKey) {\r\n // item.count = sub.CountApplied;\r\n // item.totalJobs = sub.TotalAvailableJobs;\r\n // if (sub.CountApplied != 0) {\r\n // item.percentage = `${sub.PercentageApplied}%`;\r\n // }\r\n // return;\r\n // }\r\n // });\r\n\r\n\r\n // return this;\r\n // });\r\n // //let dataAfter = data;\r\n // setRows(data);\r\n //}\r\n //else {\r\n // setRows(data);\r\n //}\r\n setRows(data);\r\n setDataFetching(false);\r\n }\r\n\r\n if (props.isGlobal === true)\r\n fetchDataGlobal();\r\n else\r\n fetchDataNonGlobal();\r\n }, []);\r\n\r\n const addSubstitution = () => {\r\n const substitution = props.isGlobal ? \"globalsubstitution\" : \"doctorsubstitution\";\r\n props.history.push(`/${substitution}/new/0`, {\r\n isGlobal: props.isGlobal\r\n });\r\n }\r\n\r\n const getSubstitutionMetadata = async () => {\r\n const auth = new Auth();\r\n let qTypeParams = { Account: 'billing', Command: 'GetSubstitutionMetadata', Parameters: [] };\r\n const response = await fetch(`${API_ROOT}/api/v1/qtype/Query`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(qTypeParams)\r\n });\r\n let substitutions = await response.json()\r\n\r\n return substitutions;\r\n }\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {props.isGlobal ? \"Global Substitutions\" : \"Doctor Substitutions\" } \r\n addSubstitution()}\r\n disabled={!userHasUpdatePermission}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography, IconButton } from '@material-ui/core';\r\nimport AddBoxIcon from '@material-ui/icons/AddBox';\r\nimport Auth from '../services/auth';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport EntityTable from \"./EntityTable\";\r\nimport { API_ROOT } from '../services/apiConfig';\r\nimport useLocalStorage from '../hooks/useLocalStorage';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n container: {\r\n flexGrow: 1\r\n },\r\n paper: {\r\n padding: theme.spacing.unit * 2,\r\n textAlign: 'left',\r\n color: theme.palette.text.secondary,\r\n }\r\n}));\r\n\r\nconst getAccountColumns = () => {\r\n return [\r\n { id: 'account', label: 'Account', disableSorting: true },\r\n { id: 'editorId', label: 'Editor', disableSorting: true },\r\n { id: 'timestamp', label: 'Created', disableSorting: false, type: 'date' }\r\n ];\r\n};\r\n\r\nconst getDoctorColumns = () => {\r\n return [\r\n { id: 'account', label: 'Account', disableSorting: true },\r\n { id: 'dictatorId', label: 'Doctor', disableSorting: true },\r\n { id: 'editorId', label: 'Editor', disableSorting: true },\r\n { id: 'timestamp', label: 'Created', disableSorting: false, type: 'date' }\r\n ];\r\n};\r\n\r\nexport default function DictatorRoutes(props) {\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [rows, setRows] = useState([]);\r\n const [filterAccounts, setFilterAccounts] = useLocalStorage('filterAccountsStorageAccountListing', undefined);\r\n const [activeAccounts, setActiveAccounts] = useState([]);\r\n \r\n const isGlobal = props.isGlobal;\r\n const columns = isGlobal ? getAccountColumns() : getDoctorColumns();\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n const [dataFetching, setDataFetching] = useState(false);\r\n\r\n const addDictatorRoute = () => {\r\n const dictatorRoute = isGlobal ? \"accountrouting\" : \"dictatorroute\";\r\n props.history.push(`/${dictatorRoute}/new/0`, {\r\n isGlobal: isGlobal\r\n });\r\n }\r\n\r\n \r\n\r\n useEffect(() => {\r\n async function fetchDataGlobal() {\r\n // You can await here\r\n setDataFetching(true);\r\n //console.log('fetchDataGlobal');\r\n const response = await fetch('DictatorRoutes/GetAllGlobal');\r\n const data = await response.json();\r\n //console.log(data);\r\n await getAccounts();\r\n //setFilteredRows(data);\r\n setRows(data);\r\n //getfilterAccountListing(filterAccounts)\r\n setDataFetching(false);\r\n }\r\n\r\n async function fetchDataNonGlobal() {\r\n // You can await here\r\n setDataFetching(true);\r\n //console.log('fetchDataNonGlobal');\r\n const response = await fetch('DictatorRoutes/GetAllNonGlobal');\r\n const data = await response.json();\r\n setRows(data);\r\n setDataFetching(false);\r\n }\r\n\r\n if (!isGlobal)\r\n fetchDataNonGlobal();\r\n else\r\n fetchDataGlobal();\r\n\r\n //filterAccountListing(filterAccounts);\r\n\r\n }, [isGlobal]);\r\n\r\n const getAccounts = async () => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Accounts`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setActiveAccounts(formateddata);\r\n //setFilterAccounts(formateddata);\r\n }\r\n }\r\n\r\n \r\n\r\n const getFilterAccountListing = () => {\r\n\r\n let accountFilter = filterAccounts;\r\n if (accountFilter === undefined || accountFilter === null || accountFilter.length === 0) {\r\n return rows;\r\n\r\n }\r\n else {\r\n\r\n \r\n let filteredAccounts = rows.filter(a => { return accountFilter.findIndex(b => b.AccountNumber === a.account) > -1 });\r\n \r\n if (filteredAccounts !== undefined && filteredAccounts !== null) {\r\n \r\n return filteredAccounts;\r\n } else {\r\n return rows;\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 {!props.isGlobal ?\r\n Doctor Routes \r\n :\r\n Account Routes \r\n }\r\n\r\n }\r\n onClick={() => addDictatorRoute()}\r\n disabled={!userHasUpdatePermission}\r\n\r\n >\r\n Configure New Account\r\n \r\n \r\n \r\n {props.isGlobal && option.DataTextField ? option.DataTextField : \"\"}\r\n //getOptionLabel={(option) => option.title}\r\n getOptionSelected={(option, value) => option.Account1 === value.Account1}\r\n onChange={(event, newValue) => {\r\n setFilterAccounts(newValue);\r\n //filterAccountListing(newValue);\r\n }}\r\n value={filterAccounts || []}\r\n defaultValue={filterAccounts}\r\n renderInput={(params) => (\r\n \r\n )}\r\n />}\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Card from '@material-ui/core/Card';\r\nimport CardActions from '@material-ui/core/CardActions';\r\nimport CardContent from '@material-ui/core/CardContent';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Link from '@material-ui/core/Link';\r\n\r\nconst useStyles = makeStyles({\r\n root: {\r\n minWidth: 275,\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 14,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n});\r\n\r\nexport default function SugestionCard() {\r\n const classes = useStyles();\r\n return (\r\n \r\n \r\n \r\n Examples\r\n \r\n \r\n \r\n {`1. Use \"millimeter\" as the Courtney (ASR) Phrase and \"mm\" as the Corrected Phrase`}\r\n
\r\n {`2. Use \"Denver Health\" as the Courtney (ASR) Phrase and \"Denver Health Medical Center\" as the Corrected Phrase`}\r\n
\r\n {`3. Use \"next line\" as the Courtney (ASR) Phrase and \"
\" as the Corrected Phrase`}\r\n
\r\n {`4. Use \"facebook\" as the Courtney (ASR) Phrase and \"BLANK\" as the Corrected Phrase`}\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Regular Expresion Help Commands\r\n \r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect ,useState} from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Typography, Paper } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\r\nimport Switch from '@material-ui/core/Switch';\r\nimport Auth from '../services/auth';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport SugestionCard from '../components/suggestionCard';\r\nimport Select from '@material-ui/core/Select';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { API_ROOT } from '../services/apiConfig';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\n\r\nconst filterOptions = createFilterOptions({\r\n limit: 1500\r\n});\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n flexGrow: 1,\r\n width: \"100%\"\r\n },\r\n paper: {\r\n height: '100%',\r\n width: '100%',\r\n padding: theme.spacing(2),\r\n color: theme.palette.text.secondary\r\n },\r\n control: {\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: '100%',\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n buttonProgress: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n }\r\n}));\r\n\r\nexport default function Substitution(props) {\r\n const classes = useStyles();\r\n const substitutionType = [\r\n { value: 'Literal', label: 'Literal' },\r\n { value: 'RegEx', label: 'Regular Expression' }];\r\n const isGlobal = props.location.state.isGlobal;\r\n const [substitutionglobalJson, setSubstitutionglobal] = React.useState({ text: \"\", regExpression: \"\", account: \"\", dictatorId: \"\", type: substitutionType[0].value});\r\n const [errors, setErrors] = React.useState([]);\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [accounts, setAccounts] = useState([]);\r\n const [value, setValue] = React.useState(\"\");\r\n const [inputValue, setInputValue] = React.useState('');\r\n const [doctors, setDoctors] = useState([]);\r\n const [doctorValue, setDoctorValue] = React.useState(\"\");\r\n const [doctorInputValue, setDoctorInputValue] = React.useState('');\r\n const [duplicateSubstitution, setDuplicateSubstitution] = React.useState(false);\r\n\r\n const getDoctor = async (account, dictatorId) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n\r\n if (dictatorId == \"ALL\") {\r\n setDoctorValue({ DictatorId: \"ALL\", Physician: \"All Doctors for Account\", Account: account });\r\n return;\r\n }\r\n\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let dictators = await response.json();\r\n let result = dictators.find(a => { return a.DictatorId == dictatorId });\r\n if (response.ok) {\r\n setDoctorValue(result);\r\n }\r\n }\r\n\r\n const getAccount = async (accountId) => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Account?accountId=${accountId}`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setValue(formateddata);\r\n }\r\n }\r\n\r\n const getAccounts = async () => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Accounts`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setAccounts(formateddata);\r\n }\r\n }\r\n\r\n const getDoctors = async (account) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let data = await response.json();\r\n if (response.ok) {\r\n //console.log(data);\r\n \r\n data.unshift({ DictatorId: \"ALL\", Physician: \"All Doctors for Account\", Account: data[0].Account });\r\n setDoctors(data);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n\r\n const response = await fetch('substitution/GetSubstitutionGlobal', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ PartitionGuid: props.match.params.partition, Guid: props.match.params.substitution }) // body data type must match \"Content-Type\" header\r\n });\r\n // console.log(data);\r\n const data = await response.json();\r\n setSubstitutionglobal(data);\r\n getAccount(data.account);\r\n if (!isGlobal) {\r\n getDoctor(data.account, data.dictatorId);\r\n }\r\n }\r\n\r\n if (props.match.params.substitution !== \"0\") {\r\n fetchData();\r\n }\r\n getAccounts();\r\n\r\n }, []);\r\n\r\n const handleOnChange = event => {\r\n const { name, value } = event.target;\r\n if (value === \"\") {\r\n setErrors([...errors, { field: name, errorMessage: \"empty value\" }]);\r\n }\r\n else\r\n {\r\n setErrors(errors.filter((error) => {return error.field !== name }))\r\n }\r\n setSubstitutionglobal({ ...substitutionglobalJson, [name]: value });\r\n };\r\n\r\n const handleOnChangeReplace = event => {\r\n const { name, checked } = event.target;\r\n setSubstitutionglobal({ ...substitutionglobalJson, [name]: checked });\r\n };\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n if (duplicateSubstitution) {\r\n return;\r\n }\r\n else if (isGlobal) {\r\n props.history.push(`/globalsubstitution`);\r\n }\r\n else {\r\n props.history.push(`/doctorsubstitution`);\r\n }\r\n };\r\n\r\n const validateFieldsGlobal = () => {\r\n return (substitutionglobalJson.regExpression !== \"\" && \r\n substitutionglobalJson.text !== \"\" );\r\n }\r\n\r\n const validateFieldsDoctors = () => {\r\n return (substitutionglobalJson.regExpression !== \"\" && \r\n substitutionglobalJson.text !== \"\" && \r\n substitutionglobalJson.account !== \"\" && \r\n substitutionglobalJson.dictatorId !== \"\");\r\n }\r\n\r\n const validateDuplicateSubstitution = async () => {\r\n const response = await fetch('substitution/CheckDuplicate', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({\r\n Text: substitutionglobalJson.text,\r\n RegExpression: substitutionglobalJson.regExpression,\r\n IsGlobal: isGlobal,\r\n DictatorId: isGlobal ? \"-1\" : substitutionglobalJson.dictatorId,\r\n Account: isGlobal ? \"998\" : substitutionglobalJson.account\r\n }) // body data type must match \"Content-Type\" header\r\n });\r\n\r\n const data = await response.json();\r\n return data;\r\n }\r\n\r\n\r\n const isEnabled = substitutionglobalJson.regExpression.length > 0 && \r\n substitutionglobalJson.text.length > 0 &&\r\n (substitutionglobalJson.account.length > 0 || isGlobal) &&\r\n (substitutionglobalJson.dictatorId.length > 0 || isGlobal);\r\n\r\n const SaveSubstitution = async () => {\r\n if (props.match.params.partition === \"new\") {\r\n setIsSaving(true);\r\n const isDuplicate = await validateDuplicateSubstitution();\r\n if (isDuplicate) {\r\n setDuplicateSubstitution(true);\r\n setMessage(\"The substitution is duplicated. Please verify the content.\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n setIsSaving(false);\r\n return;\r\n }\r\n }\r\n setDuplicateSubstitution(false);\r\n setIsSaving(true);\r\n const auth = new Auth();\r\n const response = await fetch('substitution/SaveSubstitutionGlobal', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(\r\n {\r\n Account: isGlobal ? \"998\" : substitutionglobalJson.account,\r\n DictatorId: isGlobal ? \"-1\" : substitutionglobalJson.dictatorId,\r\n EditorId: auth.getUserId(),\r\n RegExpression: substitutionglobalJson.regExpression,\r\n Text: substitutionglobalJson.text,\r\n ReplaceAll: substitutionglobalJson.replaceAll ? substitutionglobalJson.replaceAll : false,\r\n Guid: substitutionglobalJson.guid ? substitutionglobalJson.guid : \"\",\r\n PartitionGuid: substitutionglobalJson.partitionGuid ? substitutionglobalJson.partitionGuid : \"\",\r\n Type: substitutionglobalJson.type,\r\n Count: substitutionglobalJson.count,\r\n LastAppliedDate: substitutionglobalJson.lastAppliedDate\r\n }\r\n )\r\n });\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsSaving(false);\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {isGlobal ? \"Global Substitution\" : \"Doctor Substitution\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!isGlobal &&
\r\n
\r\n {\r\n const defaultDictatorId = isGlobal ? \"-1\" : \"\";\r\n setValue(newValue);\r\n setDoctors([]);\r\n setDoctorInputValue('');\r\n setDoctorValue('');\r\n setSubstitutionglobal({ ...substitutionglobalJson, dictatorId: defaultDictatorId, account: '' });\r\n if (newValue) {\r\n getDoctors(newValue.AccountNumber);\r\n setSubstitutionglobal({ ...substitutionglobalJson, dictatorId: defaultDictatorId, account: newValue.AccountNumber });\r\n }\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"account-autocomplete\"\r\n options={accounts}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.DataTextField ? option.DataTextField : \"\"}\r\n renderInput={(params) => }\r\n />\r\n
}\r\n {!isGlobal &&
\r\n
\r\n
\r\n {\r\n setDoctorValue(newValue);\r\n if (newValue) {\r\n setSubstitutionglobal({ ...substitutionglobalJson, dictatorId: newValue.DictatorId });\r\n }\r\n else {\r\n setSubstitutionglobal({ ...substitutionglobalJson, dictatorId: '' });\r\n }\r\n\r\n }}\r\n inputValue={doctorInputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setDoctorInputValue(newInputValue);\r\n }}\r\n id=\"doctor-autocomplete\"\r\n options={doctors}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.Physician ? option.Physician : \"\"}\r\n renderInput={(params) => }\r\n />\r\n
\r\n
}\r\n \r\n Type\r\n \r\n {substitutionType.map(s => {\r\n return {s.label}\r\n })}\r\n \r\n \r\n\r\n \r\n \r\n }\r\n label={Replace All (instances found within a job or Operative Report)}\r\n />\r\n\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n );\r\n}","import React, { useState, useMemo } from 'react';\r\nimport { Table, TableHead, TableRow, TableCell, makeStyles, TablePagination, TableSortLabel } from '@material-ui/core';\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n marginTop: theme.spacing(3),\r\n '& thead th': {\r\n fontWeight: '600',\r\n color: theme.palette.primary.main\r\n },\r\n '& tbody td': {\r\n fontWeight: '300',\r\n },\r\n '& tbody tr:hover': {\r\n backgroundColor: '#f2f2f2',\r\n cursor: 'pointer',\r\n },\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n}));\r\n\r\nexport default function useTable(rows, columnHeaders, filteredRows) {\r\n const classes = useStyles();\r\n const pages = [5, 10, 25];\r\n const [page, setPage] = useState(0);\r\n const [rowsPerPage, setRowsPerPage] = useState(25);\r\n const [sortOrder, setSortOrder] = useState(\"desc\");\r\n const [sortField, setSortField] = useState(null);\r\n const [sortFieldDataType, setSortFieldDataType] = useState();\r\n\r\n const TblContainer = props => (\r\n \r\n {props.children}\r\n
\r\n );\r\n\r\n const sortedRows = useMemo(() => {\r\n // Default rows without search or sort\r\n if (!sortField && !filteredRows) return rows.slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n\r\n // Validation to set Page = 0 when search results are less than current page\r\n if (page > 0 && filteredRows && filteredRows.length <= (page * rowsPerPage)) {\r\n setPage(0);\r\n };\r\n\r\n // Handler for Search and Sort columns\r\n function handleSearchAndSort(data) {\r\n return _.orderBy([...data], (row) => {\r\n if (sortFieldDataType === 'date') {\r\n return moment(row[sortField], 'MM/DD/YYYY');\r\n } else if (sortFieldDataType === 'number') {\r\n return parseInt(row[sortField], 10);\r\n } else {\r\n return row[sortField];\r\n }\r\n }, sortOrder);\r\n }\r\n\r\n // Search results || Search results with Sort by sortField\r\n if (!sortField && filteredRows) {\r\n return filteredRows.slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n } else if (sortField && filteredRows) {\r\n return handleSearchAndSort(filteredRows).slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n }\r\n\r\n // Sorting columns by sortField\r\n return handleSearchAndSort(rows).slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n }, [rows, sortField, sortFieldDataType, sortOrder, page, rowsPerPage, filteredRows]);\r\n\r\n const TblHead = props => {\r\n return (\r\n \r\n \r\n {\r\n columnHeaders\r\n .map(headCell => (\r\n \r\n {\r\n headCell.disableSorting ? headCell.label :\r\n {\r\n setSortField(headCell.id);\r\n setSortFieldDataType(headCell.type);\r\n setSortOrder(sortOrder === 'desc' ? 'asc' : 'desc');\r\n }}\r\n >\r\n {headCell.label}\r\n {\r\n sortField === headCell.id ? (\r\n \r\n {sortOrder === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n )\r\n :\r\n null\r\n }\r\n \r\n }\r\n \r\n )\r\n )\r\n }\r\n \r\n \r\n )\r\n };\r\n\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(parseInt(event.target.value, 10))\r\n setPage(0);\r\n };\r\n\r\n const TblPagination = () => (\r\n \r\n );\r\n\r\n return {\r\n TblContainer,\r\n TblHead,\r\n TblPagination,\r\n sortedRows,\r\n filteredRows\r\n };\r\n};\r\n","import React, {useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Typography, Paper, IconButton} from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Auth from '../services/auth';\r\nimport { API_ROOT } from '../services/apiConfig';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport Divider from '@material-ui/core/Divider';\r\nimport Checkbox from '@material-ui/core/Checkbox'\r\nimport FormControlLabel from '@material-ui/core/FormControlLabel'\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport SearchBar from \"material-ui-search-bar\";\r\n\r\n//Custom table\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\n\r\n//Dialog\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport DialogContent from '@material-ui/core/DialogContent';\r\nimport DialogContentText from '@material-ui/core/DialogContentText';\r\n\r\nimport useTable from \"./useTable\";\r\n\r\n\r\nconst filterOptions = createFilterOptions({\r\n limit: 1500\r\n});\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n flexGrow: 1,\r\n width: \"100%\"\r\n },\r\n paper: {\r\n height: '100%',\r\n width: '100%',\r\n padding: theme.spacing(2),\r\n color: theme.palette.text.secondary\r\n },\r\n control: {\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: '100%',\r\n },\r\n buttonProgress: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n },\r\n dividerPadding: {\r\n marginTop: 20,\r\n marginBottom: 20,\r\n marginLeft: -2\r\n }\r\n}));\r\n\r\nconst getRoutingColumns = () => {\r\n return [\r\n { id: 'edit', label: '', disableSorting: true },\r\n { id: 'dictatorId', label: 'Doctor ID', disableSorting: true },\r\n { id: 'physician', label: 'Doctor Name', disableSorting: true },\r\n { id: 'editor', label: 'Editor', disableSorting: true },\r\n { id: 'proofer', label: 'Proofer', disableSorting: true },\r\n { id: 'routing', label: 'Routing?', disableSorting: true },\r\n { id: 'courtney', label: 'Courtney?', disableSorting: true },\r\n { id: 'history', label: 'History?', disableSorting: true },\r\n { id: 'hasNormals', label: 'Has Normals', disableSorting: true },\r\n { id: 'lastModified', label: 'Last Modified', disableSorting: false, type: 'date' },\r\n { id: 'lastModifiedBy', label: 'Last Modified By', disableSorting: true }\r\n ]\r\n};\r\n\r\nexport default function DictatorRoute(props){\r\n const classes = useStyles();\r\n const [dictatorRoute, setDictatorRoute] = React.useState({ account: \"\", dictatorId: \"\", editorId: \"\", proofer: \"\", doctors: []});\r\n const [errors, setErrors] = React.useState([]);\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const isGlobal = props.location.state.isGlobal || false;\r\n const [accounts, setAccounts] = useState([]);\r\n const [value, setValue] = React.useState(\"\");\r\n const [inputValue, setInputValue] = React.useState('');\r\n\r\n const [doctors, setDoctors] = useState([]);\r\n const [doctorValue, setDoctorValue] = React.useState(\"\");\r\n const [doctorInputValue, setDoctorInputValue] = React.useState('');\r\n const [selectedDoctor, setSelectedDoctor] = React.useState({});\r\n const [openDoctorDialog, setOpenDoctorDialog] = useState(false);\r\n const [isDictatorLoading, setDictatorLoading] = React.useState(false);\r\n const [editors, setEditors] = React.useState([]);\r\n const [editorValue, setEditorValue] = React.useState(\"\");\r\n const [editorInputValue, setEditorInputValue] = React.useState('');\r\n const [proofers, setProofers] = React.useState([]);\r\n const [prooferValue, setProoferValue] = React.useState(\"\");\r\n const [prooferInputValue, setProoferInputValue] = React.useState('');\r\n const [searched, setSearched] = React.useState(\"\");\r\n\r\n const requestSearch = (searchedVal) => {\r\n const filteredRows = rows.filter((row) => {\r\n return row.physician.toLowerCase().includes(searchedVal.toLowerCase());\r\n });\r\n setFilteredRows(filteredRows);\r\n };\r\n\r\n const cancelSearch = () => {\r\n setSearched(\"\");\r\n requestSearch(searched);\r\n };\r\n\r\n //CUSTOM TABLE IMPLEMENTATION\r\n\r\n const [rows, setRows] = useState([]);\r\n\r\n const [filteredRows, setFilteredRows] = useState(undefined);\r\n const {\r\n TblContainer,\r\n TblHead,\r\n TblPagination,\r\n sortedRows\r\n } = useTable(rows, getRoutingColumns(), filteredRows);\r\n\r\n //END TABLE IMPLEMENTATION\r\n\r\n\r\n //START DOCTOR DIALOG IMPLEMENTATION\r\n const handleCloseDoctorDialog = () => {\r\n setOpenDoctorDialog(false);\r\n };\r\n\r\n const handleCheckboxOnChange = event => {\r\n const { name, checked } = event.target;\r\n setSelectedDoctor({ ...selectedDoctor, [name]: checked });\r\n };\r\n\r\n const handleSaveDoctor = async () => {\r\n let doctorsState = [...rows];\r\n let index = doctorsState.findIndex(d => d.id === selectedDoctor.id);\r\n if (index !== -1) {\r\n doctorsState.splice(index, 1);\r\n }\r\n doctorsState.push(selectedDoctor);\r\n doctorsState.sort((a, b) => a.id < b.id ? -1 : (a.id > b.id ? 1 : 0))\r\n setRows(doctorsState);\r\n setDictatorRoute({ ...dictatorRoute, doctors: doctorsState });\r\n cancelSearch();\r\n setOpenDoctorDialog(false);\r\n };\r\n\r\n const handleOnChangeDoctor = event => {\r\n const { name, value } = event.target;\r\n \r\n setSelectedDoctor({ ...selectedDoctor, [name]: value });\r\n };\r\n //END DOCTOR DIALOG IMPLEMENTATION\r\n const handleOnChange = event => {\r\n const { name, value } = event.target;\r\n if (value === \"\") {\r\n setErrors([...errors, { field: name, errorMessage: \"empty value\" }]);\r\n }\r\n else {\r\n setErrors(errors.filter((error) => { return error.field !== name }))\r\n }\r\n setDictatorRoute({ ...dictatorRoute, [name]: value });\r\n };\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n if (isGlobal)\r\n props.history.push(`/accountrouting`);\r\n else \r\n props.history.push(`/editorrouting`);\r\n };\r\n\r\n const isEnabled = dictatorRoute.account.length > 0;\r\n\r\n const SaveDictatorRoute = async () => {\r\n //let doctorsState = [...rows];\r\n //setDictatorRoute({ ...dictatorRoute, doctors: doctorsState });\r\n\r\n setIsSaving(true);\r\n const response = await fetch('DictatorRoutes/SaveDictatorRoute', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(\r\n {\r\n Account: dictatorRoute.account,\r\n DictatorId: isGlobal ? \"-1\" : dictatorRoute.dictatorId,\r\n EditorId: dictatorRoute.editorId,\r\n RowKey: dictatorRoute.rowKey ? dictatorRoute.rowKey : \"\",\r\n PartitionKey: dictatorRoute.partitionKey ? dictatorRoute.partitionKey : \"\",\r\n Proofer: dictatorRoute.proofer,\r\n Doctors: rows\r\n }\r\n )\r\n \r\n });\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsSaving(false);\r\n }\r\n\r\n const getDoctor = async (account, dictatorId) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let dictators = await response.json();\r\n let result = dictators.find(a => { return a.DictatorId === dictatorId });\r\n if (response.ok) {\r\n setDoctorValue(result);\r\n }\r\n }\r\n\r\n const getAccount = async (accountId) => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Account?accountId=${accountId}`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setValue(formateddata);\r\n }\r\n }\r\n\r\n const getAccounts = async () => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Accounts`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setAccounts(formateddata);\r\n }\r\n }\r\n\r\n const getDoctors = async (account) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let data = await response.json();\r\n if (response.ok) {\r\n let enhancedDoctors = addPropertiesToDoctors(data);\r\n setRows(data);\r\n //console.log(enhancedDoctors);\r\n }\r\n }\r\n\r\n const getMT = async () => {\r\n const auth = new Auth();\r\n let qTypeParams = {Account: 'sql', Command: 'GetMT', Parameters: []};\r\n const response = await fetch(`${API_ROOT}/api/v1/Qtype/Query`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(qTypeParams)\r\n });\r\n let allDataResults = await response.json();\r\n\r\n let editors = allDataResults;\r\n let proofers = allDataResults.filter(a => { return a.Proof == 1 });\r\n if (response.ok) {\r\n setEditors(editors);\r\n setProofers(proofers);\r\n }\r\n }\r\n\r\n const addPropertiesToDoctors = (doctors) => {\r\n return doctors.forEach((doctor,index) => {\r\n doctor.editor = \"\";\r\n doctor.proofer = \"\";\r\n doctor.routing = true;\r\n doctor.courtney = false;\r\n doctor.history = false;\r\n doctor.hasNormals = \"\";\r\n doctor.lastModified = \"\";\r\n doctor.lastModifiedBy = \"\";\r\n doctor.id = index;\r\n doctor.rowkey = \"\";\r\n doctor.partitionKey = \"\";\r\n doctor.account = doctor.Account;\r\n doctor.dictatorId = doctor.DictatorId;\r\n doctor.physician = doctor.Physician;\r\n doctor.shard = doctor.Shard;\r\n\r\n delete doctor.Physician;\r\n delete doctor.DictatorId;\r\n delete doctor.Account;\r\n delete doctor.Shard;\r\n });\r\n }\r\n\r\n const editDoctor = (row) => {\r\n const auth = new Auth();\r\n setSelectedDoctor({ ...row, lastModifiedBy: auth.getUserId() });\r\n setOpenDoctorDialog(true);\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n setDictatorLoading(true);\r\n const response = await fetch('DictatorRoutes/GetDictatorRoute', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ PartitionKey: props.match.params.partition, RowKey: props.match.params.rowkey }) // body data type must match \"Content-Type\" header\r\n });\r\n // console.log(data);\r\n const data = await response.json();\r\n setDictatorRoute(data);\r\n setRows(data.doctors);\r\n getAccount(data.account);\r\n setEditorInputValue(data.editorId);\r\n setProoferInputValue(data.proofer);\r\n if (!isGlobal) {\r\n getDoctor(data.account, data.dictatorId);\r\n }\r\n setDictatorLoading(false);\r\n }\r\n\r\n if (props.match.params.rowkey !== \"0\") {\r\n fetchData();\r\n }\r\n getAccounts();\r\n getMT();\r\n\r\n }, []);\r\n\r\n //useEffect(() => {\r\n\r\n // if (rows.length > 0) {\r\n // console.log(\"rows changed: \", rows);\r\n // let doctorsState = [...rows];\r\n // setDefaultDoctors(doctorsState);\r\n // }\r\n \r\n\r\n //}, [rows]);\r\n\r\n //const setDefaultDoctors = (doctorsState) => {\r\n // debugger;\r\n // setDictatorRoute({ ...dictatorRoute, doctors: doctorsState });\r\n //}\r\n\r\n return (\r\n \r\n \r\n {isDictatorLoading && }\r\n \r\n \r\n {isGlobal ? \r\n Account Route\r\n :\r\n Doctor Route \r\n }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n const defaultDictatorId = isGlobal ? \"-1\" : \"\";\r\n setValue(newValue);\r\n setRows([]);\r\n setDictatorRoute({ ...dictatorRoute, dictatorId: defaultDictatorId, editorId: '', account: '', editorId: '', proofer: '' });\r\n setEditorValue('');\r\n setEditorInputValue('');\r\n setProoferValue('');\r\n setProoferInputValue('');\r\n if (newValue) {\r\n\r\n await getDoctors(newValue.AccountNumber);\r\n setDictatorRoute({ ...dictatorRoute, account: newValue.AccountNumber, dictatorId: defaultDictatorId, doctors: rows, editorId: '', proofer: '' });\r\n }\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"account-autocomplete\"\r\n options={accounts}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.DataTextField ? option.DataTextField : \"\"}\r\n renderInput={(params) => }\r\n disabled={props.match.params.rowkey !== \"0\" ? true : false }\r\n />\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n Global (default) Routing\r\n
\r\n
\r\n \r\n \r\n {\r\n setEditorValue(newValue);\r\n setDictatorRoute({ ...dictatorRoute, editorId: '' });\r\n if (newValue) {\r\n setDictatorRoute({ ...dictatorRoute, editorId: newValue.MtId });\r\n }\r\n }}\r\n inputValue={editorInputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setEditorInputValue(newInputValue);\r\n }}\r\n id=\"editors-autocomplete\"\r\n options={editors}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.MtId ? option.MtId : \"\"}\r\n renderInput={(params) => }\r\n />\r\n \r\n \r\n {\r\n setProoferValue(newValue);\r\n setDictatorRoute({ ...dictatorRoute, proofer: '' });\r\n if (newValue) {\r\n setDictatorRoute({ ...dictatorRoute, proofer: newValue.MtId });\r\n }\r\n }}\r\n inputValue={prooferInputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setProoferInputValue(newInputValue);\r\n }}\r\n id=\"proofers-autocomplete\"\r\n options={proofers}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.MtId ? option.MtId : \"\"}\r\n renderInput={(params) => }\r\n />\r\n \r\n
\r\n
\r\n Exception Routing\r\n \r\n \r\n\r\n {/*TABLE WILL EXIST HERE*/}\r\n \r\n requestSearch(searchVal)}\r\n onCancelSearch={() => cancelSearch()}\r\n placeholder=\"Search by Doctor Name\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {sortedRows.map((row, i) =>\r\n \r\n {getRoutingColumns().map((column) => {\r\n if (column.id === \"edit\") {\r\n return (\r\n editDoctor(row)}\r\n >\r\n \r\n \r\n );\r\n } else {\r\n\r\n let displayDefaultValue = false;\r\n let defaultMessage = `Using the default ${column.id} value`;\r\n let value = row[column.id];\r\n\r\n if (row[\"routing\"]) {\r\n if (column.id == \"editor\" && value == \"\") {\r\n value = dictatorRoute.editorId;\r\n displayDefaultValue = true;\r\n }\r\n\r\n if (column.id == \"proofer\" && value == \"\") {\r\n value = dictatorRoute.proofer;\r\n displayDefaultValue = true;\r\n }\r\n }\r\n\r\n return (\r\n\r\n \r\n {typeof value === 'boolean' ? value === true ? : : displayDefaultValue ? {value} : value}\r\n \r\n );\r\n }\r\n })}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*START-Dialog to update doctor record*/}\r\n \r\n \r\n {\"Update Doctor Route\"}\r\n \r\n \r\n \r\n Please fill out the form\r\n \r\n
\r\n
\r\n {/*Doctor Route Form */}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n }\r\n label={'Routing?'}\r\n />\r\n
\r\n
\r\n \r\n }\r\n label={'Courtney?'}\r\n />\r\n
\r\n
\r\n \r\n }\r\n label={'History?'}\r\n />\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n Cancel\r\n \r\n \r\n OK\r\n \r\n \r\n \r\n {/*END-Dialog to update doctor record*/}\r\n\r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n );\r\n}","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography } from '@material-ui/core';\r\nimport Stepper from '@material-ui/core/Stepper';\r\nimport Step from '@material-ui/core/Step';\r\nimport StepLabel from '@material-ui/core/StepLabel';\r\nimport StepContent from '@material-ui/core/StepContent';\r\nimport Button from '@material-ui/core/Button';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Auth from '../services/auth';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: 'flex',\r\n flexWrap: 'wrap',\r\n padding: theme.spacing(1),\r\n marginBottom: theme.spacing(2)\r\n },\r\n container: {\r\n maxHeight: 440,\r\n },\r\n searchInput: {\r\n width: '20%',\r\n marginTop: '20px'\r\n },\r\n gridCard: {\r\n paddingTop: '20px'\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function Sentences(props) {\r\n\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [sentenceMeta, setSentenceMeta] = React.useState({ sasUrl: \"\" });\r\n const [sentenceContent, setSentenceContent] = React.useState({ content: \"\" });\r\n\r\n const [fileContent, setFileContent] = React.useState(null);\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [isUploading, setIsUploading] = React.useState(false);\r\n\r\n const saveData = async (event) => {\r\n // console.log(\"saveData\", transcriptEditorRef);\r\n //console.log(content);\r\n\r\n const repeat = /([a-zA-Z])\\1{3}/g\r\n const utfchars = /[ -~]+$/u\r\n const uripattern = /[-a-zA-Z0-9@:%._\\+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_\\+.~#?&//=]*)?/gi;\r\n console.log(utfchars)\r\n if (repeat.test(sentenceContent.content.trim()) || !utfchars.test(sentenceContent.content.trim()) || uripattern.test(sentenceContent.content.trim())) {\r\n console.log(\"Wrong pattern\")\r\n return;\r\n }\r\n console.log(\"passes\")\r\n \r\n setIsSaving(true);\r\n const response = await fetch(`api/sentences/SaveSentence/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: JSON.stringify({\r\n content: sentenceContent.content\r\n })\r\n });\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsSaving(false);\r\n };\r\n\r\n const handleOnChange = event => {\r\n const { name, value } = event.target;\r\n // if (value === \"\") {\r\n // setErrors([...errors, { field: name, errorMessage: \"empty value\" }]);\r\n //}\r\n // else {\r\n // setErrors(errors.filter((error) => { return error.field !== name }))\r\n //}\r\n setSentenceContent({ ...sentenceContent, [name]: value });\r\n };\r\n\r\n useEffect(() => {\r\n // Update the document title using the browser API\r\n //document.title = `You clicked ${count} times`;\r\n // console.log('test');\r\n\r\n async function fetchData() {\r\n // You can await here\r\n console.log('fetchData');\r\n const response = await fetch('api/sentences');\r\n const data = await response.json();\r\n // console.log(data);\r\n setSentenceMeta(data);\r\n }\r\n fetchData();\r\n\r\n }, []);\r\n\r\n const onFormSubmit = async (e) => {\r\n e.preventDefault(); // Stop form submit\r\n setIsUploading(true);\r\n\r\n const formData = new FormData();\r\n formData.append('file', fileContent)\r\n\r\n const response = await fetch(`api/sentences/ReplaceSentences/`, {\r\n method: 'POST',\r\n headers: {\r\n //'Content-Type': 'multipart/form-data'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: formData\r\n });\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsUploading(false);\r\n }\r\n\r\n const onChange = (e) => {\r\n setFileContent(e.target.files[0]);\r\n }\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n\r\n setSentenceContent({ content: \"\" });\r\n setFileContent(null);\r\n document.getElementById(\"replace-form\").reset();\r\n // props.history.push(`/pronunciation`);\r\n //props.history.pushState(null, '/');\r\n //props.history.pushState(null, '/pronunciation');\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n Framed Sentences\r\n \r\n \r\n\r\n \r\n \r\n Review\r\n \r\n \r\n Download and review the current list of framed sentences\r\n \r\n \r\n \r\n \r\n \r\n Quick Add\r\n \r\n \r\n Add a new framed sentence\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Advanced Edit\r\n \r\n \r\n Upload and replace framed sentences\r\n
onFormSubmit(event)}>\r\n onChange(event)} />\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n\r\n
\r\n\r\n \r\n
\r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n );\r\n}\r\n","import React, { useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Button from '@material-ui/core/Button';\r\nimport Auth from '../services/auth';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n width: '100%',\r\n '& > * + *': {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n}));\r\n\r\nexport default function Settings(props) {\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [customSettings, setCustomSettings] = React.useState({ speechModel: \"\", confidenceScore: 60.0 });\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n\r\n const saveData = async (event) => {\r\n //console.log(content);\r\n await fetch(`api/CustomSettings/SaveCustomSettings/`, {\r\n method: 'POST',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n // 'Content-Type': 'application/x-www-form-urlencoded',\r\n },\r\n body: JSON.stringify({ confidenceScore: parseFloat(customSettings.confidenceScore), speechModel: customSettings.speechModel })\r\n });\r\n props.history.push('/');\r\n };\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n // You can await here\r\n console.log('fetchData');\r\n const response = await fetch('api/customSettings');\r\n const data = await response.json();\r\n //console.log(data);\r\n \r\n setCustomSettings(data);\r\n\r\n }\r\n fetchData();\r\n }, []);\r\n\r\n const handleOnChange = event => {\r\n const { name, value } = event.target;\r\n // if (value === \"\") {\r\n // setErrors([...errors, { field: name, errorMessage: \"empty value\" }]);\r\n //}\r\n // else {\r\n // setErrors(errors.filter((error) => { return error.field !== name }))\r\n //}\r\n //if (name === \"confidenceScore\") {\r\n // value = parseFloat(value);\r\n //}\r\n setCustomSettings({ ...customSettings, [name]: value });\r\n };\r\n\r\n return (\r\n \r\n\r\n \r\n Settings\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n}","import React from 'react';\r\nimport { Editor } from '@tinymce/tinymce-react';\r\n\r\nconst DocumentViewer = (props) => {\r\n\r\n const handleEditorChange = (content, editor) => {\r\n console.log('Content was updated:', content);\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nexport default DocumentViewer;\r\n","import axios from 'axios';\r\nimport { API_ROOT } from '../apiConfig';\r\nimport Auth from '../auth';\r\n \r\nconst auth = new Auth();\r\n\r\n\r\nexport const getReportById = async (account, reportId) => {\r\n return await axios.get(`${API_ROOT}/api/v1/Transcriptions/GetDocument?account=${account}&reportId=${reportId}`,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": `Bearer ${auth.getToken()}`\r\n }\r\n }\r\n )\r\n}\r\n\r\nexport const getDraftReport = async (jobId) => {\r\n return await axios.get(`/api/Customsettings/Drafts/${jobId}`,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\"\r\n }\r\n }\r\n )\r\n}\r\n\r\nexport const getComparedDocument = async (account, jobId, draftReport) => {\r\n return await axios.post(`${API_ROOT}/api/v1/Transcriptions/GetComparedDocument/${account}/${jobId}`,\r\n {\r\n DraftReportString: draftReport,\r\n Granularity: 0\r\n },\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n \"Authorization\": `Bearer ${auth.getToken()}`\r\n }\r\n }\r\n )\r\n}","import React, { useState, useEffect } from 'react';\r\nimport DocumentViewer from './common/DocumentViewer';\r\nimport { Card, CardHeader, CardContent, CircularProgress } from '@material-ui/core';\r\nimport { useParams } from 'react-router-dom';\r\nimport { getDraftReport, getComparedDocument } from '../services/Report/reportService';\r\n\r\nconst Document = () => {\r\n const [doc, setDoc] = useState();\r\n const [loading, setLoading] = useState(false);\r\n const { account, jobId } = useParams();\r\n\r\n\r\n useEffect(() => {\r\n\r\n const loadData = async () => {\r\n setLoading(true);\r\n const { data: draftreport } = await getDraftReport(jobId);\r\n const { data: comparedResult } = await getComparedDocument(account, jobId, draftreport);\r\n let reportHtml = decodeURIComponent(escape(atob(comparedResult)));\r\n setDoc(reportHtml);\r\n setLoading(false);\r\n }\r\n\r\n loadData();\r\n\r\n }, [])\r\n\r\n return (\r\n \r\n \r\n \r\n {loading &&\r\n \r\n }\r\n {!loading &&\r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default Document;","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography, AppBar } from '@material-ui/core';\r\nimport Button from '@material-ui/core/Button';\r\nimport Auth from '../services/auth';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport DocumentViewer from './common/DocumentViewer';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport { getDraftReport, getComparedDocument } from '../services/Report/reportService';\r\nimport Tab from '@material-ui/core/Tab';\r\nimport TabContext from '@material-ui/lab/TabContext';\r\nimport TabList from '@material-ui/lab/TabList';\r\nimport TabPanel from '@material-ui/lab/TabPanel';\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n padding: theme.spacing(2),\r\n width: '100%',\r\n '& > * + *': {\r\n marginTop: theme.spacing(2),\r\n },\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n },\r\n bullet: {\r\n display: 'inline-block',\r\n margin: '0 2px',\r\n transform: 'scale(0.8)',\r\n },\r\n title: {\r\n fontSize: 14,\r\n },\r\n pos: {\r\n marginBottom: 12,\r\n },\r\n container: {\r\n flexGrow: 1,\r\n },\r\n paper: {\r\n padding: theme.spacing.unit * 2,\r\n textAlign: 'left',\r\n color: theme.palette.text.secondary,\r\n },\r\n bottomSpace: {\r\n paddingBottom: '20px'\r\n }\r\n}));\r\n\r\nexport default function Test(props) {\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [test, setTest] = React.useState({ displayName: \"\", status: \"\", customModel1Name: \"\", text: \"\", queueTime: \"\" });\r\n const [isEvaluationRerun, setEvaluationRerun] = React.useState(false);\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [severity, setSeverity] = useState(\"warning\");\r\n const [loading, setLoading] = useState(false);\r\n const [loadingDraft, setLoadingDraft] = useState(false);\r\n const [doc, setDoc] = useState();\r\n const [tabValue, setTabValue] = React.useState('1');\r\n\r\n const handleTabChange = (event, newValue) => {\r\n //console.log('handleTabChange', newValue);\r\n setTabValue(newValue);\r\n };\r\n const handleCloseSnack = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n props.history.push('/tests');\r\n setOpenSnack(false);\r\n };\r\n const rerunEvaluation = async (row) => {\r\n await setEvaluationRerun(true);\r\n const response = await fetch('api/Evaluations/RerunEvaluation', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ locale: row.locale, displayName: row.displayName, model1: row.model1, model2: row.model2, dataset: row.dataset, description: \"trainer\", self: row.self }) // body data type must match \"Content-Type\" header\r\n });\r\n await setEvaluationRerun(false);\r\n\r\n if (response.ok) {\r\n setSeverity(\"info\");\r\n setMessage(\"Successfully Rerun Test\");\r\n setOpenSnack(true)\r\n }\r\n else {\r\n setSeverity(\"error\");\r\n setMessage(\"An error has occurred, please try again\");\r\n setOpenSnack(true)\r\n }\r\n }\r\n\r\n\r\n useEffect(() => {\r\n\r\n async function fetchData() {\r\n // You can await here\r\n setLoading(true);\r\n setLoadingDraft(true);\r\n const response = await fetch(`api/Evaluations/GetEvaluation/${props.match.params.testid}`);\r\n const data = await response.json();\r\n var test = data.test;\r\n test.displayName = test.displayName.split(\".\")[0];\r\n setTest(test);\r\n setLoading(false);\r\n var jobId = test.displayName;\r\n var account = jobId.split('-')[0];\r\n\r\n const { data: draftreport } = await getDraftReport(jobId);\r\n const { data: comparedResult } = await getComparedDocument(account, jobId, draftreport);\r\n let reportHtml = decodeURIComponent(escape(atob(comparedResult)));\r\n setLoadingDraft(false);\r\n setDoc(reportHtml);\r\n \r\n \r\n }\r\n fetchData();\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 \r\n {test.displayName}\r\n
Test Version of Courney: {test.customModel1Name}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {loading &&\r\n \r\n }\r\n {!loading &&\r\n \r\n }\r\n \r\n \r\n {loadingDraft &&\r\n \r\n }\r\n {!loadingDraft &&\r\n \r\n }\r\n \r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n { rerunEvaluation(test) }}\r\n >\r\n Re-test\r\n \r\n \r\n { props.history.push('/tests'); }}\r\n >\r\n Back\r\n \r\n\r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n {isEvaluationRerun ?
\r\n \r\n
: null}\r\n
\r\n \r\n
\r\n
\r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography, IconButton } from '@material-ui/core';\r\nimport AddBoxIcon from '@material-ui/icons/AddBox';\r\nimport Auth from '../services/auth';\r\n\r\nimport EntityTable from \"./EntityTable\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n container: {\r\n flexGrow: 1\r\n },\r\n paper: {\r\n padding: theme.spacing.unit * 2,\r\n textAlign: 'left',\r\n color: theme.palette.text.secondary,\r\n }\r\n}));\r\n\r\nconst columns = [\r\n { id: 'account', label: 'Account', disableSorting: true },\r\n { id: 'dictatorId', label: 'Doctor', disableSorting: true },\r\n { id: 'rank', label: 'Rank', disableSorting: true },\r\n { id: 'timestamp', label: 'Created', disableSorting: false, type: 'date' }\r\n];\r\n\r\nexport default function DoctorProfiles(props) {\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [rows, setRows] = useState([]);\r\n\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n const [dataFetching, setDataFetching] = useState(false);\r\n\r\n const addDoctorProfile = () => {\r\n const doctorProfile = \"doctorprofile\";\r\n props.history.push(`/${doctorProfile}/new/0`);\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchDataGlobal() {\r\n // You can await here\r\n setDataFetching(true);\r\n const response = await fetch('DoctorProfiles/GetAll');\r\n const data = await response.json();\r\n console.log(data);\r\n setRows(data);\r\n setDataFetching(false);\r\n }\r\n fetchDataGlobal();\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n Doctor Profiles \r\n }\r\n addDoctorProfile()}\r\n disabled={!userHasUpdatePermission}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Typography, Paper } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Auth from '../services/auth';\r\nimport { API_ROOT } from '../services/apiConfig';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Select from '@material-ui/core/Select';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\n\r\nconst filterOptions = createFilterOptions({\r\n limit: 1500\r\n});\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n flexGrow: 1,\r\n width: \"100%\"\r\n },\r\n paper: {\r\n height: '100%',\r\n width: '100%',\r\n padding: theme.spacing(2),\r\n color: theme.palette.text.secondary\r\n },\r\n control: {\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: '100%',\r\n },\r\n buttonProgress: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n },\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nexport default function DoctorProfile(props) {\r\n const classes = useStyles();\r\n const [doctorProfile, setDoctorProfile] = React.useState({ account: \"\", dictatorId: \"\", editorId: \"\",rank: \"\" });\r\n const [errors, setErrors] = React.useState([]);\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [accounts, setAccounts] = useState([]);\r\n const [value, setValue] = React.useState(\"\");\r\n const [inputValue, setInputValue] = React.useState('');\r\n\r\n const [doctors, setDoctors] = useState([]);\r\n const [doctorValue, setDoctorValue] = React.useState(\"\");\r\n const [doctorInputValue, setDoctorInputValue] = React.useState('');\r\n\r\n const handleOnChange = event => {\r\n const { name, value } = event.target;\r\n if (value === \"\") {\r\n setErrors([...errors, { field: name, errorMessage: \"empty value\" }]);\r\n }\r\n else {\r\n setErrors(errors.filter((error) => { return error.field !== name }))\r\n }\r\n setDoctorProfile({ ...doctorProfile, [name]: value });\r\n };\r\n\r\n const handlerankChange = (event) => {\r\n setDoctorProfile({ ...doctorProfile, rank: event.target.value });\r\n };\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n props.history.push(`/doctorprofiles`);\r\n };\r\n\r\n const isEnabled = doctorProfile.account.length > 0 &&\r\n (doctorProfile.dictatorId.length > 0) &&\r\n doctorProfile.rank.length > 0;\r\n\r\n const SaveDoctorProfile = async () => {\r\n setIsSaving(true);\r\n const response = await fetch('DoctorProfiles/SaveDoctorProfile', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(\r\n {\r\n Account: doctorProfile.account,\r\n DictatorId: doctorProfile.dictatorId,\r\n Rank: doctorProfile.rank,\r\n RowKey: doctorProfile.rowKey ? doctorProfile.rowKey : \"\",\r\n PartitionKey: doctorProfile.partitionKey ? doctorProfile.partitionKey : \"\"\r\n }\r\n )\r\n });\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsSaving(false);\r\n }\r\n\r\n const getDoctor = async (account, dictatorId) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let dictators = await response.json();\r\n let result = dictators.find(a => { return a.DictatorId == dictatorId });\r\n if (response.ok) {\r\n setDoctorValue(result);\r\n }\r\n }\r\n\r\n const getAccount = async (accountId) => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Account?accountId=${accountId}`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setValue(formateddata);\r\n }\r\n }\r\n\r\n const getAccounts = async () => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Accounts`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setAccounts(formateddata);\r\n }\r\n }\r\n\r\n const getDoctors = async (account) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let data = await response.json();\r\n if (response.ok) {\r\n setDoctors(data);\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n async function fetchData() {\r\n const response = await fetch('DoctorProfiles/GetDoctorProfile', {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify({ PartitionKey: props.match.params.partition, RowKey: props.match.params.rowkey }) // body data type must match \"Content-Type\" header\r\n });\r\n // console.log(data);\r\n const data = await response.json();\r\n setDoctorProfile(data);\r\n getAccount(data.account);\r\n getDoctor(data.account, data.dictatorId);\r\n \r\n }\r\n\r\n if (props.match.params.rowkey !== \"0\") {\r\n fetchData();\r\n }\r\n getAccounts();\r\n\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n Doctor Profile\r\n }\r\n Fill in the Account, Doctor and Rank fields\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n const defaultDictatorId = \"\";\r\n setValue(newValue);\r\n setDoctors([]);\r\n setDoctorInputValue('');\r\n setDoctorValue('');\r\n setDoctorProfile({ ...doctorProfile, dictatorId: defaultDictatorId, account: '' });\r\n if (newValue) {\r\n getDoctors(newValue.AccountNumber);\r\n setDoctorProfile({ ...doctorProfile, account: newValue.AccountNumber, dictatorId: defaultDictatorId });\r\n }\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"account-autocomplete\"\r\n options={accounts}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.DataTextField ? option.DataTextField : \"\"}\r\n renderInput={(params) => }\r\n />\r\n
\r\n {
\r\n
\r\n
\r\n {\r\n setDoctorValue(newValue);\r\n if (newValue) {\r\n setDoctorProfile({ ...doctorProfile, dictatorId: newValue.DictatorId });\r\n }\r\n else {\r\n setDoctorProfile({ ...doctorProfile, dictatorId: '' });\r\n }\r\n\r\n }}\r\n inputValue={doctorInputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setDoctorInputValue(newInputValue);\r\n }}\r\n id=\"doctor-autocomplete\"\r\n options={doctors}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.Physician ? option.Physician : \"\"}\r\n renderInput={(params) => }\r\n />\r\n
\r\n
\r\n\r\n }\r\n
\r\n \r\n Rank\r\n \r\n \r\n None\r\n \r\n Easy\r\n Medium\r\n Hard\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n props.history.push('/doctorprofiles')}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n \r\n {isSaving ? 'Saving' : 'Save'}\r\n {isSaving &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n );\r\n}","import React, { useEffect, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Paper from '@material-ui/core/Paper';\r\nimport { Typography } from '@material-ui/core';\r\nimport Auth from '../services/auth';\r\nimport { API_ROOT } from '../services/apiConfig';\r\n\r\nimport EntityTable from \"./EntityTable\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n width: '100%',\r\n },\r\n container: {\r\n flexGrow: 1\r\n },\r\n paper: {\r\n padding: theme.spacing.unit * 2,\r\n textAlign: 'left',\r\n color: theme.palette.text.secondary,\r\n }\r\n}));\r\n\r\nconst columns = [\r\n { id: 'UserId', label: 'ID', disableSorting: true },\r\n { id: 'Account', label: 'Account', disableSorting: true },\r\n { id: 'Signature', label: 'Signature', disableSorting: true },\r\n];\r\n\r\nexport default function ActiveDoctors(props) {\r\n const classes = useStyles();\r\n const auth = new Auth();\r\n const [rows, setRows] = useState([]);\r\n\r\n const userHasUpdatePermission = auth.isInRole('SNChartGlobalAdmin') || auth.isInRole('SNChartSuperUser');\r\n const [dataFetching, setDataFetching] = useState(false);\r\n\r\n useEffect(() => {\r\n async function fetchDataGlobal() {\r\n // You can await here\r\n setDataFetching(true);\r\n //const response = await fetch('DoctorProfiles/GetAll');\r\n //const data = await response.json();\r\n //console.log(data);\r\n\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Qtype/Query`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify({ Account: \"sql\", Command: \"GetActiveDictators\", Parameters: {} })\r\n });\r\n let data = await response.json();\r\n data.forEach((item) => {\r\n if (item.UserId.includes(\"'\")) {\r\n item.UserId = item.UserId.replace(/'/g, '')\r\n }\r\n return this;\r\n });\r\n setRows(data);\r\n setDataFetching(false);\r\n }\r\n fetchDataGlobal();\r\n }, []);\r\n\r\n return (\r\n \r\n
\r\n \r\n \r\n {\r\n Active Doctors\r\n }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}","import React, { useState, useEffect } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport Button from '@material-ui/core/Button';\r\nimport { Typography, Paper } from '@material-ui/core';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport Auth from '../services/auth';\r\nimport { API_ROOT } from '../services/apiConfig';\r\nimport Autocomplete, { createFilterOptions } from '@material-ui/lab/Autocomplete';\r\nimport { DropzoneArea } from 'material-ui-dropzone'\r\n\r\nconst filterOptions = createFilterOptions({\r\n limit: 1500\r\n});\r\n\r\nfunction Alert(props) {\r\n return ;\r\n}\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n flexGrow: 1,\r\n width: \"100%\"\r\n },\r\n paper: {\r\n height: '100%',\r\n width: '100%',\r\n padding: theme.spacing(2),\r\n color: theme.palette.text.secondary\r\n },\r\n control: {\r\n padding: theme.spacing(2),\r\n },\r\n textField: {\r\n marginLeft: theme.spacing(1),\r\n marginRight: theme.spacing(1),\r\n width: '100%',\r\n },\r\n buttonProgress: {\r\n position: 'absolute',\r\n top: '50%',\r\n left: '50%',\r\n marginTop: -12,\r\n marginLeft: -12\r\n }\r\n}));\r\n\r\nexport default function ESignature(props) {\r\n const classes = useStyles();\r\n const [dictatorRoute, setDictatorRoute] = React.useState({ account: \"\", dictatorId: \"\", editorId: \"\" });\r\n const [errors, setErrors] = React.useState([]);\r\n const [open, setOpen] = React.useState(false);\r\n const [message, setMessage] = React.useState(\"\");\r\n const [severity, setSeverity] = React.useState(\"warning\");\r\n const [isSaving, setIsSaving] = React.useState(false);\r\n const [accounts, setAccounts] = useState([]);\r\n const [value, setValue] = React.useState(\"\");\r\n const [inputValue, setInputValue] = React.useState('');\r\n\r\n const [doctors, setDoctors] = useState([]);\r\n const [doctorValue, setDoctorValue] = React.useState(\"\");\r\n const [doctorInputValue, setDoctorInputValue] = React.useState('');\r\n const [file, setFile] = React.useState([]);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason === 'clickaway') {\r\n return;\r\n }\r\n setOpen(false);\r\n window.location.reload();\r\n \r\n };\r\n\r\n const isEnabled = dictatorRoute.account.length > 0 &&\r\n (dictatorRoute.dictatorId.length > 0) && file.length > 0;\r\n\r\n\r\n const getAccounts = async () => {\r\n const auth = new Auth();\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/Accounts`, {\r\n method: 'GET', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n }\r\n });\r\n let data = await response.json();\r\n let formateddata = JSON.parse(data);\r\n if (response.ok) {\r\n setAccounts(formateddata);\r\n }\r\n }\r\n\r\n\r\n const getDoctors = async (account) => {\r\n const auth = new Auth();\r\n let accounts = [account];\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/AvailableDictatorsForAccount`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(accounts)\r\n });\r\n let data = await response.json();\r\n if (response.ok) {\r\n setDoctors(data);\r\n }\r\n }\r\n\r\n const toBase64 = file => new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => resolve(reader.result);\r\n reader.onerror = error => reject(error);\r\n });\r\n\r\n const SaveSignature = async () => {\r\n const auth = new Auth();\r\n let base64File = await toBase64(file[0]);\r\n let SaveSignatureRequest = { Account: dictatorRoute.account, UserId: dictatorRoute.dictatorId, Base64File: base64File.split(',')[1] };\r\n setIsSaving(true);\r\n const response = await fetch(`${API_ROOT}/api/v1/Users/SaveSignature`, {\r\n method: 'POST', // *GET, POST, PUT, DELETE, etc.\r\n cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n 'Authorization': `Bearer ${auth.getToken()}`\r\n },\r\n body: JSON.stringify(SaveSignatureRequest)\r\n });\r\n if (response.ok) {\r\n setMessage(\"Sucessfully saved!\");\r\n setSeverity(\"info\");\r\n setOpen(true);\r\n } else {\r\n setMessage(\"An error has Occurred!\");\r\n setSeverity(\"error\");\r\n setOpen(true);\r\n }\r\n setIsSaving(false);\r\n }\r\n\r\n useEffect(() => {\r\n getAccounts();\r\n\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n Doctor E-Signature\r\n Fill in the Account, Doctor and upload the signature file\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {\r\n const defaultDictatorId = \"\";\r\n setValue(newValue);\r\n setDoctors([]);\r\n setDoctorInputValue('');\r\n setDoctorValue('');\r\n setDictatorRoute({ ...dictatorRoute, dictatorId: defaultDictatorId, account: '' });\r\n if (newValue) {\r\n getDoctors(newValue.AccountNumber);\r\n setDictatorRoute({ ...dictatorRoute, account: newValue.AccountNumber, dictatorId: defaultDictatorId });\r\n }\r\n }}\r\n inputValue={inputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setInputValue(newInputValue);\r\n }}\r\n id=\"account-autocomplete\"\r\n options={accounts}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.DataTextField ? option.DataTextField : \"\"}\r\n renderInput={(params) => }\r\n />\r\n
\r\n {
\r\n
\r\n
\r\n {\r\n setDoctorValue(newValue);\r\n if (newValue) {\r\n setDictatorRoute({ ...dictatorRoute, dictatorId: newValue.DictatorId });\r\n }\r\n else {\r\n setDictatorRoute({ ...dictatorRoute, dictatorId: '' });\r\n }\r\n\r\n }}\r\n inputValue={doctorInputValue}\r\n onInputChange={(event, newInputValue) => {\r\n setDoctorInputValue(newInputValue);\r\n }}\r\n id=\"doctor-autocomplete\"\r\n options={doctors}\r\n style={{ width: 500 }}\r\n filterOptions={filterOptions}\r\n getOptionLabel={(option) => option.Physician ? option.Physician : \"\"}\r\n renderInput={(params) => }\r\n />\r\n
\r\n
\r\n\r\n }\r\n
\r\n
\r\n \r\n setFile(files)}\r\n />\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n window.location.reload()}\r\n >\r\n Cancel\r\n \r\n \r\n \r\n \r\n {isSaving ? 'Saving' : 'Save'}\r\n {isSaving &&\r\n \r\n }\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {message}\r\n \r\n \r\n
\r\n );\r\n}","import React, { Component } from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport { Layout } from './components/Layout';\r\nimport './custom.css'\r\nimport Segments from './components/segments';\r\nimport Login from './components/Login';\r\nimport Segment from './components/segment';\r\nimport PrivateRoute from './components/PrivateRoute';\r\nimport Pronunciation from './components/pronunciation';\r\nimport SubstitutionsGlobal from './components/substitutionsGlobal';\r\nimport DictatorRoutes from './components/dictatorRoutes';\r\nimport Substitution from './components/substitution';\r\nimport DictatorRoute from './components/dictatorRoute';\r\nimport Sentences from './components/sentences';\r\nimport Settings from './components/Settings';\r\nimport Document from './components/Document';\r\nimport Tests from './components/Tests';\r\nimport Test from './components/Test';\r\nimport DoctorProfiles from './components/doctorProfiles';\r\nimport DoctorProfile from './components/doctorProfile';\r\nimport ActiveDoctors from './components/activeDoctors';\r\nimport ESignature from './components/esignature';\r\n//#663795\r\nexport default class App extends Component {\r\n\r\n static displayName = App.name;\r\n render() {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n}\r\n","// In production, we register a service worker to serve assets from local cache.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\r\n// cached resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\r\n// This link also includes instructions on opting out of this behavior.\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.1/8 is considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\nexport default function register(onUpdate) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\r\n return;\r\n }\r\n\r\n window.addEventListener('load', () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Lets check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl);\r\n } else {\r\n // Is not local host. Just register service worker\r\n registerValidSW(swUrl, onUpdate);\r\n }\r\n });\r\n }\r\n}\r\n\r\nfunction registerValidSW(swUrl, onUpdate) {\r\n navigator.serviceWorker\r\n .register(swUrl, onUpdate)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n installingWorker.onstatechange = () => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the old content will have been purged and\r\n // the fresh content will have been added to the cache.\r\n // It's the perfect time to display a \"New content is\r\n // available; please refresh.\" message in your web app.\r\n console.log('New content is available; please refresh.');\r\n if (onUpdate) onUpdate();\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n }\r\n }\r\n };\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nfunction checkValidServiceWorker(swUrl) {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl)\r\n .then(response => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n if (\r\n response.status === 404 ||\r\n response.headers.get('content-type').indexOf('javascript') === -1\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl);\r\n }\r\n })\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister();\r\n });\r\n }\r\n}\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { BrowserRouter } from 'react-router-dom';\r\nimport App from './App';\r\nimport registerServiceWorker from './registerServiceWorker';\r\n\r\nconst baseUrl = document.getElementsByTagName('base')[0].getAttribute('href');\r\nconst rootElement = document.getElementById('root');\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n rootElement);\r\n\r\nregisterServiceWorker();\r\n","import React from 'react'\r\nimport { Button as MuiButton, makeStyles } from \"@material-ui/core\";\r\n\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n root: {\r\n margin: theme.spacing(0.5)\r\n },\r\n label: {\r\n textTransform: 'none'\r\n }\r\n}))\r\n\r\nexport default function Button(props) {\r\n\r\n const { text, size, color, variant, onClick, ...other } = props\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n {text}\r\n \r\n )\r\n}\r\n","import Input from \"./Input\";\r\nimport RadioGroup from \"./RadioGroup\";\r\nimport Select from \"./Select\";\r\nimport Checkbox from \"./Checkbox\";\r\nimport DatePicker from \"./DatePicker\";\r\nimport Button from \"./Button\";\r\n\r\nconst Controls = {\r\n Input,\r\n RadioGroup,\r\n Select,\r\n Checkbox,\r\n DatePicker,\r\n Button\r\n}\r\n\r\nexport default Controls;","import React from 'react'\r\nimport { TextField } from '@material-ui/core';\r\n\r\nexport default function Input(props) {\r\n\r\n const { name, label, value, size, fullWidth, variant, error = null, onChange, ...other } = props;\r\n return (\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { FormControl, FormLabel, RadioGroup as MuiRadioGroup, FormControlLabel, Radio } from '@material-ui/core';\r\n\r\nexport default function RadioGroup(props) {\r\n\r\n const { name, label, value, onChange, items } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {\r\n items.map(\r\n item => (\r\n } label={item.title} />\r\n )\r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport {\r\n FormControl,\r\n InputLabel,\r\n Select as MuiSelect,\r\n MenuItem,\r\n FormHelperText\r\n} from '@material-ui/core';\r\n\r\nexport default function Select(props) {\r\n\r\n const { name, label, value, size, fullWidth, disabled, variant, error = null, onChange, options } = props;\r\n\r\n return (\r\n \r\n {label}\r\n \r\n {None}\r\n {options.map(\r\n item => (\r\n {item.title}\r\n )\r\n )}\r\n \r\n {error && {error}}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { FormControl, FormControlLabel, Checkbox as MuiCheckbox } from '@material-ui/core';\r\n\r\nexport default function Checkbox(props) {\r\n\r\n const { name, label, value, onChange } = props;\r\n\r\n\r\n const convertToDefEventPara = (name, value) => ({\r\n target: {\r\n name, value\r\n }\r\n })\r\n\r\n return (\r\n \r\n onChange(convertToDefEventPara(name, e.target.checked))}\r\n />}\r\n label={label}\r\n />\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\";\r\nimport DateFnsUtils from \"@date-io/date-fns\";\r\n\r\nexport default function DatePicker(props) {\r\n\r\n const { name, label, value, size, fullWidth, variant, disabled, format, onChange } = props;\r\n\r\n const convertToDefEventPara = (name, value) => ({\r\n target: {\r\n name, value\r\n }\r\n });\r\n\r\n return (\r\n \r\n onChange(convertToDefEventPara(name, date))}\r\n />\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Menu from '@material-ui/core/Menu';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MoreVertIcon from '@material-ui/icons/MoreVert';\r\nimport { withRouter } from \"react-router\";\r\n\r\n\r\nconst options = [\r\n 'View',\r\n 'Rerun Test'\r\n];\r\n\r\nconst ITEM_HEIGHT = 48;\r\n\r\n function DotMenu(props) {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const open = Boolean(anchorEl);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const handleEvaluationClick = (evaluationUrl) => {\r\n let id = evaluationUrl.split(\"evaluations/\")[1];\r\n props.history.push(`/test/${id}`);\r\n };\r\n\r\n const handleDraftCompareClick = (evObj) => {\r\n // let id = evaluationUrl.split(\"evaluations/\")[1];\r\n // props.history.push(`/test/${id}`);\r\n let jobId = evObj.split(\".\")[0];\r\n let account = jobId.split(\"-\")[0];\r\n props.history.push(`/document/${account}/${jobId}`);\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {options.map((option) => (\r\n {\r\n if (option === \"View\") {\r\n handleEvaluationClick(props.currentRow.self);\r\n } else if (option === \"Draft Comparison\") {\r\n handleDraftCompareClick(props.currentRow.displayName);\r\n } else {\r\n props.rerunEvaluation(props.currentRow);\r\n }\r\n }}>\r\n {option}\r\n \r\n ))}\r\n \r\n
\r\n );\r\n}\r\n\r\nexport default withRouter(DotMenu);","import React, { useEffect, useState, useMemo } from 'react';\r\nimport {\r\n Table,\r\n TableHead,\r\n TableBody,\r\n TableRow,\r\n TableCell,\r\n makeStyles,\r\n TablePagination,\r\n TableSortLabel,\r\n Toolbar\r\n} from '@material-ui/core';\r\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\r\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\r\nimport InputAdornment from '@material-ui/core/InputAdornment';\r\nimport Controls from \"./controls/Controls\";\r\nimport { Search } from \"@material-ui/icons\";\r\nimport DotMenu from \"./ThreeDotMenu\";\r\nimport Link from '@material-ui/core/Link';\r\nimport { IconButton } from '@material-ui/core';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport CreateIcon from '@material-ui/icons/Create';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport Button from '@material-ui/core/Button';\r\nimport Snackbar from '@material-ui/core/Snackbar';\r\nimport LinearProgress from '@material-ui/core/LinearProgress';\r\nimport MuiAlert from '@material-ui/lab/Alert';\r\nimport { useHistory } from \"react-router-dom\";\r\n\r\nimport _ from 'lodash';\r\nimport moment from 'moment';\r\n\r\nconst useStyles = makeStyles(theme => ({\r\n table: {\r\n marginTop: theme.spacing(3),\r\n '& thead th': {\r\n fontWeight: '600',\r\n color: theme.palette.primary.main\r\n },\r\n '& tbody td': {\r\n fontWeight: '300',\r\n },\r\n '& tbody tr:hover': {\r\n backgroundColor: '#f2f2f2',\r\n cursor: 'pointer',\r\n },\r\n },\r\n statusSuccess: {\r\n color: 'rgb(16, 124, 16)',\r\n fontWeight: 'bold'\r\n },\r\n status: {\r\n color: 'rgb(0, 0, 0)',\r\n fontWeight: 'bold'\r\n },\r\n visuallyHidden: {\r\n border: 0,\r\n clip: 'rect(0 0 0 0)',\r\n height: 1,\r\n margin: -1,\r\n overflow: 'hidden',\r\n padding: 0,\r\n position: 'absolute',\r\n top: 20,\r\n width: 1,\r\n },\r\n}));\r\n\r\nexport default function EntityTable(props) {\r\n const classes = useStyles();\r\n const [pages, setPages] = useState(props.pages || [5, 10, 25]);\r\n const [page, setPage] = useState(0);\r\n const [rowsPerPage, setRowsPerPage] = useState(25);\r\n const [sortOrder, setSortOrder] = useState(\"desc\");\r\n const [sortField, setSortField] = useState(null);\r\n const [sortFieldDataType, setSortFieldDataType] = useState();\r\n const [dateFormat, setDateFormat] = useState(props.dateFormat || 'MM/DD/YYYY');\r\n const [filteredRows, setFilteredRows] = useState(undefined);\r\n const [recordToDelete, setRecordToDelete] = useState({ partitionGuid: '', guid: '', isGuid: true });\r\n const [open, setOpen] = useState(false);\r\n const [openSnack, setOpenSnack] = useState(false);\r\n const [message, setMessage] = useState(\"\");\r\n const [severity, setSeverity] = useState(\"warning\");\r\n const [searchColumns, setSearchColumns] = useState({});\r\n // Adding actions if user has update or delete permission\r\n const [columnHeaders, setColumnHeaders] = useState((props.updateSubEntity || props.deleteSubEntity) ? [{ id: 'actions', label: 'Actions', disableSorting: true }, ...props.columnHeaders] : props.columnHeaders);\r\n let history = useHistory();\r\n\r\n // Sorting and Filtering\r\n const sortedRows = useMemo(() => {\r\n // When receiving new set of rows from server, this will clean the previous filtered values and filters\r\n if (props.fetching) {\r\n setFilteredRows(undefined);\r\n setSearchColumns({});\r\n }\r\n if ((page * rowsPerPage) > props.rows.length) setPage(0);\r\n // Default rows without search or sort\r\n if (!sortField && !filteredRows) return props.rows.slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n\r\n // Validation to set Page = 0 when search results are less than current page\r\n if (page > 0 && filteredRows && filteredRows.length <= (page * rowsPerPage)) {\r\n setPage(0);\r\n };\r\n\r\n // Handler for Search and Sort columns\r\n function handleSearchAndSort(data) {\r\n return _.orderBy([...data], (row) => {\r\n if (sortFieldDataType === 'date') {\r\n return moment(row[sortField], dateFormat);\r\n } else if (sortFieldDataType === 'number') {\r\n return parseInt(row[sortField], 10);\r\n } else {\r\n return row[sortField];\r\n }\r\n }, sortOrder);\r\n }\r\n\r\n // Search results || Search results with Sort by sortField\r\n if (!sortField && filteredRows) {\r\n return filteredRows.slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n } else if (sortField && filteredRows) {\r\n return handleSearchAndSort(filteredRows).slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n }\r\n\r\n // Sorting columns by sortField\r\n return handleSearchAndSort(props.rows).slice(page * rowsPerPage, (page + 1) * rowsPerPage);\r\n }, [props.rows, sortField, sortFieldDataType, sortOrder, page, rowsPerPage, filteredRows, columnHeaders]);\r\n\r\n // Pagination\r\n const handleChangePage = (event, newPage) => {\r\n setPage(newPage);\r\n };\r\n\r\n const handleChangeRowsPerPage = event => {\r\n setRowsPerPage(parseInt(event.target.value, 10))\r\n setPage(0);\r\n };\r\n\r\n // Single Search\r\n const handleSearch = e => {\r\n const searchValue = e.target.value;\r\n if (searchValue !== '') {\r\n const filtered = _.filter([...props.rows], row => row[props.searchBy].indexOf(searchValue) >= 0);\r\n setFilteredRows(filtered);\r\n } else {\r\n setFilteredRows(undefined);\r\n }\r\n };\r\n\r\n // Multi column input text and date picker search\r\n const handleSearchByColumn = (columnName, columnType) => (e) => {\r\n const inputValue = e.target.value;\r\n let columnSearchValue;\r\n if (columnType && columnType === 'date') {\r\n columnSearchValue = moment(inputValue).isValid() && moment(inputValue).format(dateFormat).replace(/\\b0/g, ''); // Removing leading zeros from dates 01 -> 1\r\n } else if (columnType === 'number') {\r\n if (inputValue !== \"\") {\r\n columnSearchValue = parseInt(inputValue, 10).toString();\r\n } else {\r\n columnSearchValue = inputValue;\r\n }\r\n } else {\r\n columnSearchValue = inputValue;\r\n }\r\n setSearchColumns({ ...searchColumns, [columnName]: columnSearchValue });\r\n }\r\n\r\n // Multi column select input search\r\n const handleSelectOptions = (columnName, columnType) => {\r\n // Getting unique values\r\n const rows = filteredRows ? filteredRows : props.rows;\r\n const filteredSelectOptions = [...new Set(rows.map(row => row[columnName].toString()))];\r\n\r\n // Sorting unique values\r\n const sortedSelectOptions = _.orderBy(filteredSelectOptions, (filteredOption) => {\r\n if (columnType === 'date') {\r\n return moment(filteredOption, dateFormat);\r\n } else if (columnType === 'number') {\r\n return parseInt(filteredOption, 10).toString();\r\n } else {\r\n return filteredOption;\r\n }\r\n }, 'asc');\r\n\r\n // Returning object for Input Select\r\n return sortedSelectOptions.map((filteredOption, i) => ({ id: i, value: filteredOption, title: filteredOption }));\r\n }\r\n\r\n // Searching by columns with values set in search inputs\r\n useEffect(() => {\r\n if (Object.entries(searchColumns).length === 0) return;\r\n const finalFiltered = _.filter([...props.rows], row =>\r\n Object\r\n .entries(searchColumns)\r\n .every(([key, val]) =>\r\n moment(val).isValid() && row[key].indexOf(val) >= 0 ||\r\n !val.length ||\r\n row[key].toLowerCase().indexOf(val.toLowerCase()) >= 0));\r\n setFilteredRows(finalFiltered);\r\n }, [searchColumns]);\r\n\r\n // Update Row\r\n const updateEntity = (partitionGuid, guid) => {\r\n // Specific logic for Global and Doctor substitution\r\n const isGlobal = { isGlobal: props.entityName === 'globalsubstitution' || props.entityName === 'accountrouting' };\r\n history.push(`/${props.entityName}/${partitionGuid}/${guid}`, isGlobal !== undefined ? isGlobal : undefined);\r\n //props.history.push(`/${dictatorRoute}/${partitionKey}/${rowKey}`\r\n }\r\n\r\n // Delete Row\r\n const deleteEntity = async (partitionGuid, guid, isGuid) => {\r\n let reqBody;\r\n isGuid ? reqBody = { PartitionGuid: partitionGuid, Guid: guid } : reqBody = { PartitionKey: partitionGuid, RowKey: guid };\r\n const response = await fetch(props.customDeletePath ? props.customDeletePath : `/${props.entityName}/${partitionGuid}/${guid}`, {\r\n method: 'POST',\r\n cache: 'no-cache',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n },\r\n body: JSON.stringify(reqBody)\r\n });\r\n\r\n if (response.ok) {\r\n setSeverity(\"info\");\r\n setMessage(\"Successfully deleted record\");\r\n setOpen(false);\r\n setOpenSnack(true)\r\n }\r\n }\r\n\r\n // Dialog\r\n const handleCloseSnack = (event, reason) => {\r\n if (reason === 'clickaway') return;\r\n setOpenSnack(false);\r\n history.push('/');\r\n };\r\n\r\n function Alert(props) {\r\n return ;\r\n }\r\n\r\n return (\r\n <>\r\n
\r\n {!props.fetching && props.searchBy &&\r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n onChange={handleSearch}\r\n />\r\n \r\n }\r\n \r\n \r\n \r\n {columnHeaders.map(headCell => (\r\n \r\n {headCell.disableSorting ? headCell.label :\r\n {\r\n setSortField(headCell.id);\r\n setSortFieldDataType(headCell.type);\r\n setSortOrder(sortOrder === 'desc' ? 'asc' : 'desc');\r\n }}\r\n >\r\n {headCell.label}\r\n {sortField === headCell.id ? (\r\n \r\n {sortOrder === 'desc' ? 'sorted descending' : 'sorted ascending'}\r\n \r\n ) : null\r\n }\r\n \r\n }\r\n \r\n ))\r\n }\r\n \r\n \r\n {!props.fetching &&\r\n columnHeaders.map((headCell) => (\r\n \r\n {headCell.label &&\r\n headCell.id !== 'actions' &&\r\n !headCell.disableSearch &&\r\n ((((headCell.type === undefined || headCell.type === 'string' || headCell.type === 'number') && !headCell.search) &&\r\n )\r\n || (headCell.type && headCell.type === 'date' &&\r\n \r\n || (headCell.search && headCell.search === 'select' &&\r\n \r\n )\r\n ))\r\n }\r\n \r\n ))\r\n }\r\n \r\n \r\n {props.fetching ?\r\n \r\n \r\n \r\n \r\n \r\n :\r\n \r\n {sortedRows.map((row, i) => {\r\n return (\r\n props.handleTranscriptClick(e, row[columnHeaders[0].id]) : undefined}\r\n >\r\n {props.children ? props.children :\r\n columnHeaders.map((column) => {\r\n if (column.id === \"actions\") {\r\n return \r\n {props.updateSubEntity && updateEntity(row.partitionGuid ? row.partitionGuid : row.partitionKey, row.guid ? row.guid : row.rowKey)}\r\n disabled={props.userHasUpdatePermission && !props.userHasUpdatePermission}\r\n >\r\n \r\n }\r\n {props.deleteSubEntity && {\r\n setRecordToDelete({\r\n partitionGuid: row.partitionGuid ? row.partitionGuid : row.partitionKey,\r\n guid: row.guid ? row.guid : row.rowKey,\r\n isGuid: row.partitionGuid !== undefined\r\n }); setOpen(true)\r\n }}\r\n disabled={props.userHasUpdatePermission && !props.userHasUpdatePermission}\r\n >\r\n \r\n }\r\n ;\r\n } else if (column.id === \"deleste\") {\r\n return (\r\n {\r\n setRecordToDelete({\r\n partitionGuid: row.partitionGuid ? row.partitionGuid : row.partitionKey,\r\n guid: row.guid ? row.guid : row.rowKey,\r\n isGuid: row.partitionGuid !== undefined\r\n }); setOpen(true)\r\n }}\r\n disabled={!props.userHasUpdatePermission}\r\n >\r\n \r\n \r\n );\r\n } else if (column.id === \"menu\") {\r\n const innerRow = row;\r\n return (\r\n \r\n \r\n \r\n );\r\n } else if (column.id === \"displayName\") {\r\n const innerRow = row;\r\n const value = row[column.id];\r\n return (\r\n \r\n props.handleEvaluationClick(e, innerRow.self) : undefined}\r\n >\r\n {value}\r\n \r\n \r\n );\r\n } else if (column.id === \"status\") {\r\n const value = row[column.id];\r\n return (\r\n \r\n {value}\r\n \r\n );\r\n } else {\r\n const value = row[column.id];\r\n if (typeof value === 'boolean') {\r\n return (\r\n \r\n {typeof value === 'boolean' ? value === true ? : : value}\r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {column.format && typeof value === 'number' ? column.format(value) : value}\r\n \r\n );\r\n }\r\n }\r\n })\r\n }\r\n \r\n );\r\n })}\r\n \r\n }\r\n
\r\n \r\n
\r\n {!props.fetching &&\r\n \r\n }\r\n setOpen(false)}\r\n aria-labelledby=\"alert-dialog-title\"\r\n aria-describedby=\"alert-dialog-description\"\r\n >\r\n \r\n {\"Are you sure to delete this record?\"}\r\n \r\n \r\n setOpen(false)}\r\n color=\"primary\"\r\n >\r\n No\r\n \r\n deleteEntity(recordToDelete.partitionGuid, recordToDelete.guid, recordToDelete.isGuid)}\r\n color=\"primary\"\r\n autoFocus\r\n >\r\n Yes\r\n \r\n \r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\n/********************************************************************************************************************\r\n EntityTable Component:\r\n It receives rows and columns parameters to render the data inside a table.\r\n\r\n Parameters:\r\n rows: PropTypes.array (Required) - Array of data to display\r\n columnHeaders: PropTypes.object (Required) - Column headings to display, how to use:\r\n const columns = [\r\n { id: 'name', label: 'Transcript File', type: 'string' },\r\n { id: 'account', label: 'Account', type: 'number', search: 'select' },\r\n { id: 'job', label: 'Job', disableSorting: true },\r\n { id: 'createdOn', label: 'Created', type: 'date' }\r\n ];\r\n disableSorting: Disable the sorting for the column\r\n disableSearch: Disable search for the column\r\n search: 'select' displays a select input instead of input text\r\n fullWidth: Set the width for the input to use the whole row cell\r\n searchBy: PropTypes.string (Optional) - Column name use to display Search input and searching through the data\r\n searchInputLabel: PropTypes.string (Optional) - Label to display in Search Input\r\n userHasUpdatePermission: PropTypes.bool (Optional) - Permission to disable update/delete buttons\r\n entityName: PropTypes.string (Optional) - Name of the entity used most for history push in url path\r\n pages: Number of records by page to display in pagination, default value: [5, 10, 25]\r\n dateFormat: Date format for dates values, default value: 'MM/DD/YYYY'\r\n customDeletePath: PropTypes.string (Optional) - Custom path for delete endpoint\r\n fetching: PropTypes.bool (Optional) - Loading state for Table component\r\n\r\n - A nice to have in future we can improve how specific functions are handled without using props -\r\n reRunEvaluation: PropTypes.fn (Optional) - Specific function of Tests Page\r\n handleEvaluationClick: PropTypes.fn (Optional) - Specific function of Tests Page\r\n handleTranscriptClick: PropTypes.fn (Optional) - Specific function of Segments Page\r\n********************************************************************************************************************/"],"sourceRoot":""}