{"version":3,"sources":["tooth_chart.svg","sonicare_icon.png","oralb.webp","oralb_step1.png","oralb_step2.png","auth.js","Base.js","fetch.js","SextantInfo.js","util.js","SextantPerio.js","Sextant.js","Toothchart.js","Tooltip.js","Scorecard.js","BrushProviders.js","Patients.js","Settings.js","AuthCallback.js","BrushlinkCallback.js","ManufacturerBase.js","mfg-fetch.js","ManufacturerLogin.js","ManufacturerContent.js","ManufacturerAnalytics.js","ManufacturerSettings.js","ManufacturerLogout.js","ManufacturerBilling.js","ManufacturerSubscribe.js","AdminBase.js","AdminLogin.js","AdminApprovals.js","AdminAnalytics.js","AdminLogging.js","AdminLogout.js","AdminBilling.js","Oralb.js","App.js","index.js","brushlink_icon.svg"],"names":["module","exports","__webpack_require__","p","getAccessToken","window","sessionStorage","getItem","getJWT","access_token","jwtDecode","auth","hasScope","scope","jwt","_iteratorNormalCompletion","_didIteratorError","_iteratorError","undefined","_step","_iterator","split","Symbol","iterator","next","done","value","err","return","getDomain","iss","cachedDomain","query","querystring","parse","location","search","substring","domain","process","getSessionState","Base","props","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","state","a","document","createElement","href","referrer","parentQuery","_at","browserHistory","push","concat","hash","removeItem","reload","react_default","reactstrap_es","color","light","expand","navbar","es","className","to","children","React","Component","fetch","input","init","accessToken","headers","Authorization","then","resp","status","setItem","Math","random","toString","url","encodeURIComponent","hostname","pathname","SextantInfo","size","brushScore","alt","src","brushlinkIcon","width","height","setTitle","title","sep","pos","indexOf","length","intToHexString","int","h","round","getColourFromScore","score","min","max","s","l","r","g","b","hue2rgb","q","t","hslToRGB","SextantPerio","PerioMode","tooth","_this2","insideTerm","outsideTerm","onClick","sideButtonClicked","active","side","setState","name","direction","sideKey","data","Error","colour","header","leftSide","rightSide","id","buttonsFromTooth","weights","pd1Colour","getValue","pd_weight","pd2Colour","pd3Colour","gm1Colour","gm_weight","gm2Colour","gm3Colour","cal1Colour","cal_weight","cal2Colour","cal3Colour","bld1Colour","bld_weight","bld2Colour","bld3Colour","fg1Colour","fg_weight","fg2Colour","fg3Colour","sup1Colour","sup_weight","sup2Colour","sup3Colour","mgj1Colour","mgj_weight","mgj2Colour","mgj3Colour","mobColour","Mobility","mob_weight","plaColour","Plaque","pla_weight","blColour","BoneLoss","bl_weight","position","bordered","style","background","getCellBG","colSpan","target","placement","Sextant","selectedTooth","hasOwnProperty","perioInfo","SextantPerio_SextantPerio","toothPerio","SextantInfo_SextantInfo","Toothchart","objRef","createRef","current","addEventListener","objDoc","contentDocument","toothBorders","querySelectorAll","fill","cursor","_onToothClick","bind","_onToothMouseover","_onToothMouseout","componentDidUpdate","teeth","toothNo","getElementById","toothBorder","querySelector","options","assign","hidden","stroke","strokeWidth","opacity","strokeOpacity","fillOpacity","display","textContent","notation","fdiNotation","universalNotation","sextants","sextantNo","sextantBox","sextantLabel","sextantTrend","sextantBrushTime","label","trend","trendColor","brushTimeHidden","brushTime","String","e","onToothClick","number","_toothId","onToothOver","onToothOut","ref","toothChart","aria-label","type","parseInt","parentNode","replace","TooltipSB","tooltipOpen","toggle","assertThisInitialized","prevState","_this$props","text","onMouseOver","onMouseOut","isOpen","Scorecard","pairings","graphBrushData","sextantScores","generalScore","brushScorePastLabel","brushScoreLabel","perioExams","brushingData","activePerio","activePreviousPerio","currentSextant","perioScore","previousPerioScore","perioDate","previousPerioDate","manufacturer","manufacturer_id","1","2","3","4","5","6","plan","br_score_weight","br_freq_weight","br_length_weight","generalGraphData","sextantGraphData","visible","printMode","practice_name","patient","brush_modal","perioScoreCache","activePerioDate","identifiers","getPatientIdentifiers","updateAverageScore","method","_ref","asyncToGenerator","regenerator_default","mark","_callee","body","wrap","_context","prev","ok","json","sent","brushlink","stop","_x","apply","arguments","catch","console","error","_ref2","_callee2","_context2","chart_notation","ddx_tooth_notation","ddx_parent_name","_x2","_ref3","_callee3","_context3","_x3","chart","pm_id","_ref4","_callee4","_context4","_x4","credentials","_ref5","_callee5","_context5","unshift","date","CURRENT_PERIO","_x5","today","Date","getFullYear","getMonth","slice","getDate","getBrushingPlan","prevProps","_this3","index","d","dPreviousIndex","i","_ref6","_callee6","_i","_context6","abrupt","updateBrushingData","_x6","_ref7","_callee7","_context7","_x7","currentTooth","calculatePerioScore","res","colourTeeth","calculateBrushingScores","teethState","perioScores","Teeth","ToothNum","toothInSextant","params","patid","chart_number","_this4","_ref8","_callee8","_context8","_x8","_this5","_ref9","_callee9","_context9","sessions_manufacturer_text","sessions_manufacturer","sessions_brushing_sessions","sort","session_date","_x9","prevScore","currentScore","DOWN_TREND","HORIZONTAL_TREND","UP_TREND","count","graphData","calculateGraphData","sessions","earlySessions","ceil","earlyScores","calculateBrushScores","brushingScores","generalTrend","getTrendStats","averageBrushTime","averageBrushingDaily","daysMissed","sessions_missed_days","trendData0","trendData1","trendData2","trendData3","trendData4","trendData5","plan0","plan1","plan2","plan3","plan4","plan5","top_right_time","top_center_time","top_left_time","bottom_left_time","bottom_center_time","bottom_right_time","getSextantScoreLabel","Array","isArray","averageTime","firstSessionDate","moment","utc","lastSessionDate","days","diff","sessionsWithSextantScores","validSessions","forEach","session","session_duration","session_score","scores","session_sextant_one_score","session_sextant_two_score","session_sextant_three_score","session_sextant_four_score","session_sextant_five_score","session_sextant_six_score","some","map","toFixed","month","format","s0Score","s1Score","s2Score","s3Score","s4Score","s5Score","brush_score","perio_score","internal_date","sextant","newTime","newPlan","_this6","Accept","Content-type","JSON","stringify","overall_time","_ref10","_callee10","_context10","_x10","perio","Exam","ExamDate","_context11","t0","_this7","_ref11","_callee12","_context12","log","BrushScoreLabel","BrushScorePastLabel","_x12","_this8","focusedSextant","perioTrend","filter","Sextant_Sextant","focusedSextantInfo","brushingPlan","planTime","onChange","changeSextantTime","setNewPlan","onDismiss","absLabel","abmLabel","averageBrushingMinutes","floor","averageBrushingSeconds","provider","_Extra","ProviderName","chartData","chartBrush","Brush","dataKey","padding","left","right","tick","startIndex","LineChart","Line","yAxisId","dropdown","onPerioExamChange","v","key","selected","ResponsiveContainer","margin","top","bottom","XAxis","offset","YAxis","textAnchor","angle","orientation","Tooltip","CartesianGrid","strokeDasharray","Legend","print_plan_info","sextantPlans","currentMonth","toLocaleString","currentYear","currentDay","padStart","patientName","first_name","last_name","displayScore","brushMfgLogo","sonicareIcon","fluid","xs","setTimeout","onPrintClick","src_Tooltip","Toothchart_Toothchart","md","overflowY","maxHeight","toggleBrushModal","getConfigurationLink","print","MAX_PERIO_SCORE","MAX_SECONDARY_PERIO_SCORE","BrushProviders","brushlinks_paired","brushlink_reg_token","preferences","brushlink_accepted","sonicare_accepted","grushPairModalState","grushSignupModalState","grush_pair_username","grush_pair_password","terms_accepted","grush_signup_username","grush_signup_password","grush_signup_account","grush_signup_email","grush_signup_practice","grush_signup_study_group","accept_checked","toggleGrushPairModal","toggleGrushSignupModal","handleChange","handleGrushPairSubmit","brushlink_paired","grush_paired","grush","userInfo","one_time_token","acceptedTime","isValid","isBefore","practiceName","givenName","given_name","familyName","family_name","email","phoneNumber","phone_number","open","preventDefault","grushUsername","grushEmail","grushPassword","grushAccount","grushPractice","grushStudyGroup","grush_username","grush_email","grush_password","grush_account","grush_practice","grush_study_group","alert","grushSignup","defineProperty","toggleAccepted","disabled","termsAccepted","grushDisconnect","grush_accepted","grushSignUp","grush_reg_token","onSubmit","handleGrushSignupSubmit","required","grushPairDetails","account","brushlinkDisconnect","signUp","brushlinkSignup","brushlinkPair","bl","sm","oralb","tag","nonce","Patients","patients","patientPairAction","getPatients","patientId","action","patient_ddx_id","pair","_loop","pairing_patient_info","pairing_patient","pairing_manufacturer_text","hover","Settings","getPreferences","for","handleWeightChange","resetDefaults","setPreferences","Auth","redirect","error_description","hashQuery","redirect_uri","BrushlinkAuth","code","Content-Type","finally","opener","ManufacturerBase","mfgFetch","ManufacturerLogin","usernameValue","passwordValue","loginFailed","username","password","token","submitLogin","updateManufacturerValue","placeholder","updateUsernameValue","invalid","updatePasswordValue","ManufacturerContent","content","approvedContent","approvalContent","rejectedContent","formInvalid","submitFailed","addDisabled","addModalState","deleteModalState","viewModalState","logModalState","editModalState","warningModalState","logContent","selectedContent","deleteContent","editContent","alertState","reapplyEdit","content_title","content_type","content_description","content_category","content_range_start","content_range_end","content_file","content_thumbnail","handleContent","toggleAddModal","toggleDeleteModal","toggleViewModal","toggleLogModal","toggleEditModal","toggleWarningModal","publishContent","dismissAlert","handleEditSubmit","grabContent","content_approved","contents","published","content_published","content_id","rejected","reapplyContent","showApprovalLog","edit","selectEdit","deleteButton","viewDetails","selectContent","contentSubtitle","lastAction","content_uploaded","content_updated","daysPending","getTime","hoursPending","daysText","hoursText","contentPending","html","FormData","validateForm","setAlertMessage","submitEditContent","files","contentId","msg","alertMessage","_this9","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","addContentClick","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","approvalSection","approvedSection","rejectedSection","viewModal","locale","navigator","userLanguage","language","start","toLocaleDateString","end","uploaded","updated","pending","content_manufacturer_text","deleteModal","logModal","denials","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","content_denials","denial","deniedDate","denial_created","denial_username","denial_reason","addModal","submitContent","rows","warningModal","editModal","dateInputStart","startInputValue","tempDate","getTimezoneOffset","isNaN","toISOString","dateInputEnd","endInputValue","saveAndReapply","ManufacturerAnalytics","analytics","detailedModalState","detailContent","toggleDetailedInfo","viewDetailedInfo","grabAnalytics","analytics_content","analytics_logo","noData","contentAnalytics","eduClick","eduLoad","newClick","newLoad","eventsClick","eventsLoad","miscClick","miscLoad","content_analytics","loaded","clicked","lastUpdated","analytic_command","logoLoads","logoLoads30","logoLoad","now","logoDate","analytic_created","abs","categoryBarData","Thumbnail Clicks","Thumbnail Impressions","barChart","BarChart","allowDecimals","Bar","practiceInfo","adata","ac","analytic_practice_name","locInfo","analytic_country","analytic_region","detailModal","ManufacturerSettings","logs","grabLogs","grabPreferences","activity_created","weekday","year","day","hour","minute","activity_username","activity_message","currentLogo","preferences_logo","tempLogo","preferences_temp_logo","submitPreferences","ManufacturerLogout","ManufacturerBilling","linkedPractices","getLinkedPractices","practices","statusText","practice","practice_id","practice_region","practice_country","ManufacturerSubscribe","AdminBase","AdminLogin","AdminApprovals","approvalLogos","approvalBlurbs","approvalModalState","denyModalState","denialReason","denyContent","denyPrefId","toggleDeny","approvePreference","handlePreferences","prefs","pref","preferences_temp_blurb","denyId","content_denial","preference_manufacturer","preference_type","preference_approved","preference_denial","logoApprovals","_loop2","preferences_manufacturer_text","preferences_manufacturer","blurbApprovals","_loop3","oldSlogan","preferences_blurb","modal","denyModal","denyButton","approveContent","updateDenialReason","AdminAnalytics","content_manufacturer","analytic_manufacturer","AdminLogging","activity_manufacturer","activity_manufacturer_text","AdminLogout","ADD_LABEL","AdminBilling","new_practice_id","new_practice_locations","new_practice_setup_paid","new_practice_do_not_bill","practiceButtonLabel","historyModalState","practiceHistory","filter_practice_id","billNewPractice","toggleHistoryModal","loadPractices","currentTarget","dataset","practiceId","practiceLocations","practiceSetupPaid","practiceDoNotBill","locations","setup_paid","do_not_bill","subscription_start_date","addNewPractice","result","unsubscribePractice","billablePractices","includes","subDate","pName","data-practice-id","data-practice-locations","data-practice-setup-paid","data-practice-do-not-bill","data-practice-sub-date","handlePracticeClick","handlePracticeHistoryClick","handlePracticeUnsubscribeClick","historyModal","orders","practice_orders","order","order_date","order_id","hsd_sku","linkStyle","overflow","borderRadius","appLinkImageStyle","centerStyle","justifyContent","rowStyle","endNoteStyle","alignItems","OralB","OralbIcon","objectSpread","OralbStepOne","OralbStepTwo","App","history","path","component","mfg","Oralb","AuthCallback","ReactDOM","render","src_App_0"],"mappings":"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","file":"static/js/main.99401b93.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/tooth_chart.a02e463f.svg\";","module.exports = __webpack_public_path__ + \"static/media/sonicare_icon.6bcfba07.png\";","module.exports = __webpack_public_path__ + \"static/media/oralb.ce456840.webp\";","module.exports = __webpack_public_path__ + \"static/media/oralb_step1.0922ac64.png\";","module.exports = __webpack_public_path__ + \"static/media/oralb_step2.85ad3289.png\";","import jwtDecode from 'jwt-decode';\nimport querystring from 'query-string';\n\nfunction getAccessToken() {\n return window.sessionStorage.getItem('access_token');\n}\n\nfunction getJWT() {\n const access_token = getAccessToken();\n if (access_token === null) {\n return null;\n }\n return jwtDecode(access_token);\n}\n\nfunction hasScope(scope) {\n const jwt = getJWT();\n if (jwt === null) {\n return false;\n }\n\n for (let s of jwt.scope.split(' ')) {\n if (s === scope) {\n return true;\n }\n }\n return false;\n}\n\nfunction getDomain() {\n const jwt = getJWT();\n if (jwt !== null) {\n return jwt.iss;\n }\n\n const cachedDomain = window.sessionStorage.getItem('domain');\n if (cachedDomain) {\n return cachedDomain;\n }\n\n const query = querystring.parse(window.location.search.substring(1));\n if (query.domain) {\n return query.domain;\n }\n\n return process.env.REACT_APP_DDX_DOMAIN;\n}\n\nfunction getSessionState() {\n return window.sessionStorage.getItem('session_state');\n}\n\nexport default {\n getAccessToken: getAccessToken,\n getJWT: getJWT,\n hasScope: hasScope,\n getDomain: getDomain,\n\n getSessionState: getSessionState\n}\n","import React from 'react';\nimport { Navbar, Nav, NavbarBrand, NavItem, Container, Row, Col } from 'reactstrap';\nimport { Link, browserHistory } from 'react-router';\nimport auth from './auth';\nimport querystring from 'query-string';\n\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nclass Base extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n }\n }\n\n componentDidMount() {\n let a = document.createElement('a');\n a.href = document.referrer;\n\n let parentQuery = querystring.parse(a.search.substring(1));\n if (parentQuery && typeof parentQuery === 'object' && parentQuery._at === 'providers') {\n browserHistory.push(`/providers${window.location.search}${window.location.hash}`);\n }\n }\n\n _onSessionChange() {\n // Change detected; wipe session\n window.sessionStorage.removeItem('session_state');\n window.sessionStorage.removeItem('access_token');\n window.location.reload();\n }\n\n _hasAccessToken() {\n return auth.getAccessToken() !== null;\n }\n\n render() {\n return (\n
\n \n \n DDX SmartBrush\n \n \n \n \n \n \n {this.props.children}\n \n \n \n
\n );\n }\n}\n\nexport default Base;","import auth from './auth';\n\nfunction fetch(input, init) {\n const accessToken = auth.getAccessToken();\n init = init || {};\n init.headers = init.headers || {};\n if (accessToken) {\n init.headers.Authorization = `Bearer ${accessToken}`;\n }\n init.headers['Accept'] = 'application/json';\n return window.fetch(input, init)\n .then((resp) => {\n if (resp.status === 401) {\n if (!window.sessionStorage.getItem('state')) {\n window.sessionStorage.setItem('state', Math.random().toString());\n }\n if (!window.sessionStorage.getItem('nonce')) {\n window.sessionStorage.setItem('nonce', Math.random().toString());\n }\n\n const domain = auth.getDomain();\n const url = `https://${domain}/authorize?` +\n `response_type=${encodeURIComponent('token')}&` +\n `client_id=dental.ddx.smartbrush&` +\n `redirect_uri=${encodeURIComponent(`https://${window.location.hostname}/auth/callback?redirect_uri=${window.location.pathname}${window.location.search}`)}&` +\n `scope=${encodeURIComponent('openid profile practice.patient.read order.read order.write')}&` +\n `state=${encodeURIComponent(window.sessionStorage.getItem('state'))}&` +\n `nonce=${encodeURIComponent(window.sessionStorage.getItem('nonce'))}`;\n window.sessionStorage.setItem('authorize_url', url);\n window.location = `${url}&prompt=none`;\n return;\n }\n if (resp.status === 405) {\n window.location = `https://${window.location.hostname}/mfg/subscribe`;\n return;\n }\n return resp;\n });\n}\n\nexport default fetch;\n","import React from 'react';\nimport brushlinkIcon from './brushlink_icon.svg';\n\nclass SextantInfo extends React.Component {\n constructor(props) {\n super(props);\n }\n\n componentWillMount() {\n\n }\n\n componentDidMount() {\n // fetch scorecard info\n }\n\n render() {\n if (this.props.size === \"sm\" && !this.props.brushScore) {\n return null;\n }\n return (\n
\n
\n \"Toothbrush\"\n {this.props.brushScore ? this.props.brushScore + \"%\" : 'No brushing data'}\n
\n
\n );\n }\n}\n\nexport {\n SextantInfo\n};\n","export function setTitle(title, sep) {\n sep = sep || ' - ';\n const pos = document.title.indexOf(sep);\n if (pos === -1) {\n document.title = title + sep + document.title;\n } else {\n document.title = title + sep + document.title.substring(pos + sep.length);\n }\n}\n\nfunction intToHexString(int) {\n let h = Math.round(int).toString(16);\n return h.length === 1 ? '0' + h : h;\n}\n\nfunction hslToRGB(h, s, l) {\n h /= 360;\n s /= 100;\n l /= 100;\n\n let r, g, b;\n if(s === 0){\n r = g = b = l;\n } else {\n let hue2rgb = function hue2rgb(p, q, t){\n if (t < 0) t += 1;\n if (t > 1) t -= 1;\n if(t < 1/6) return p + (q - p) * 6 * t;\n if(t < 1/2) return q;\n if(t < 2/3) return p + (q - p) * (2/3 - t) * 6;\n return p;\n };\n\n let q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n let p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return `#${intToHexString(r * 255)}${intToHexString(g * 255)}${intToHexString(b* 255)}`;\n}\n\nfunction getHueFromScore(score, min, max) {\n if (min < max) {\n score = score > max ? max : score;\n score = score < min ? min : score;\n }\n let norm = (score - min) / (max - min);\n return ((1 - norm) * 130).toString(10);\n}\n\nexport function getColourFromScore(score, min, max) {\n //let hue = getHueFromScore(score, min, max);\n //return hslToRGB(hue, 90, 50);\n if (min < max) {\n score = score > max ? max : score;\n score = score < min ? min : score;\n }\n let norm = (score - min) / (max - min);\n return hslToRGB(0, 100, 100 - (norm * 50));\n}","import React from 'react';\nimport {Badge} from 'reactstrap';\nimport {Table, ButtonGroup, Button, UncontrolledTooltip} from \"reactstrap\";\nimport {getColourFromScore} from \"./util\";\n\nclass SextantPerio extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n PerioMode: 0\n };\n }\n\n componentWillMount() {\n\n }\n\n componentDidMount() {\n // fetch scorecard info\n }\n\n\n buttonsFromTooth(tooth) {\n let insideTerm = \"Lingual\";\n let outsideTerm = \"Buccal\";\n\n\n if ((tooth >= 6 && tooth <= 11) || (tooth >= 22 && tooth <= 27)) { // anterior tooth\n outsideTerm = \"Facial\";\n }\n\n if ((tooth >= 1 && tooth <= 16)) { // top\n insideTerm = \"Palatal\"\n }\n\n return (\n \n \n \n \n );\n }\n\n sideButtonClicked(side) {\n this.setState({\n PerioMode: side\n });\n }\n\n getValue(name, direction) {\n let sideKey;\n if (this.state.PerioMode === 0) sideKey = 'Lingual';\n else if (this.state.PerioMode === 1) sideKey = 'Facial';\n\n if (typeof this.props.data !== 'object') return 0;\n if (typeof this.props.data[sideKey] !== 'object') throw new Error();\n if (typeof this.props.data[sideKey][name] !== 'object') throw new Error();\n if (typeof this.props.data[sideKey][name][direction] !== 'number') throw new Error();\n return this.props.data[sideKey][name][direction];\n }\n\n getCellBG(colour) {\n if (colour === \"#ffffff\") {\n return \"#f7f7f7\";\n }\n return colour;\n }\n\n render() {\n\n if (!this.props.data) {\n return null;\n }\n\n let header = null;\n\n let leftSide = \"Distal\";\n let rightSide = \"Mesial\";\n if (this.props.tooth) {\n header = (\n \n
{this.buttonsFromTooth(this.props.tooth)}
\n
\n );\n\n if ((this.props.tooth >= 9 && this.props.tooth <= 16) || (this.props.tooth >= 17 && this.props.tooth <= 24)) {\n leftSide = \"Mesial\";\n rightSide = \"Distal\";\n }\n }\n\n let weights = this.props.weights;\n let pd1Colour = getColourFromScore((this.getValue('PD', leftSide) / 9) * weights.pd_weight, 1, 8);\n let pd2Colour = getColourFromScore((this.getValue('PD', 'Center') / 9) * weights.pd_weight, 1, 8);\n let pd3Colour = getColourFromScore((this.getValue('PD', rightSide) / 9) * weights.pd_weight, 1, 8);\n\n let gm1Colour = getColourFromScore((this.getValue('GM', leftSide) / 9) * weights.gm_weight, 1, 8);\n let gm2Colour = getColourFromScore((this.getValue('GM', 'Center') / 9) * weights.gm_weight, 1, 8);\n let gm3Colour = getColourFromScore((this.getValue('GM', rightSide) / 9) * weights.gm_weight, 1, 8);\n\n let cal1Colour = getColourFromScore((this.getValue('CAL', leftSide) / 9) * weights.cal_weight, 1, 8);\n let cal2Colour = getColourFromScore((this.getValue('CAL', 'Center') / 9) * weights.cal_weight, 1, 8);\n let cal3Colour = getColourFromScore((this.getValue('CAL', rightSide) / 9) * weights.cal_weight, 1, 8);\n\n let bld1Colour = getColourFromScore(this.getValue('Bleeding', leftSide) * weights.bld_weight, 1, 8);\n let bld2Colour = getColourFromScore(this.getValue('Bleeding', 'Center') * weights.bld_weight, 1, 8);\n let bld3Colour = getColourFromScore(this.getValue('Bleeding', rightSide) * weights.bld_weight, 1, 8);\n\n let fg1Colour = getColourFromScore((this.getValue('FG', leftSide) / 4) * weights.fg_weight, 1, 8);\n let fg2Colour = getColourFromScore((this.getValue('FG', 'Center') / 4) * weights.fg_weight, 1, 8);\n let fg3Colour = getColourFromScore((this.getValue('FG', rightSide) / 4) * weights.fg_weight, 1, 8);\n\n let sup1Colour = getColourFromScore(this.getValue('Suppuration', leftSide) * weights.sup_weight, 1, 8);\n let sup2Colour = getColourFromScore(this.getValue('Suppuration', 'Center') * weights.sup_weight, 1, 8);\n let sup3Colour = getColourFromScore(this.getValue('Suppuration', rightSide) * weights.sup_weight, 1, 8);\n\n let mgj1Colour = getColourFromScore((this.getValue('MGJ', leftSide) / 9) * weights.mgj_weight, 1, 8);\n let mgj2Colour = getColourFromScore((this.getValue('MGJ', 'Center') / 9) * weights.mgj_weight, 1, 8);\n let mgj3Colour = getColourFromScore((this.getValue('MGJ', rightSide) / 9) * weights.mgj_weight, 1, 8);\n\n let mobColour = getColourFromScore((this.props.data.Mobility / 4) * weights.mob_weight, 1, 8);\n\n let plaColour = getColourFromScore((this.props.data.Plaque / 3) * weights.pla_weight, 1, 8);\n\n let blColour = getColourFromScore((this.props.data.BoneLoss / 3) * weights.bl_weight, 1, 8);\n\n return (\n
\n \n

Sextant {(this.props.position)} Tooth {this.props.tooth}

\n {header}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Type{leftSide} (L)Center{rightSide} (R)
PD{this.getValue('PD', leftSide)}{this.getValue('PD', 'Center')}{this.getValue('PD', rightSide)}
GM{this.getValue('GM', leftSide)}{this.getValue('GM', 'Center')}{this.getValue('GM', rightSide)}
CAL{this.getValue('CAL', leftSide)}{this.getValue('CAL', 'Center')}{this.getValue('CAL', rightSide)}
Bld{this.getValue('Bleeding', leftSide)}{this.getValue('Bleeding', 'Center')}{this.getValue('Bleeding', rightSide)}
MGJ{this.getValue('MGJ', leftSide)}{this.getValue('MGJ', 'Center')}{this.getValue('MGJ', rightSide)}
FG{this.getValue('FG', leftSide)}{this.getValue('FG', 'Center')}{this.getValue('FG', rightSide)}
Sup{this.getValue('Suppuration', leftSide)}{this.getValue('Suppuration', 'Center')}{this.getValue('Suppuration', rightSide)}
Mobility{this.props.data.Mobility}
Plaque{this.props.data.Plaque}
Bone Loss{this.props.data.BoneLoss}
\n\n Probing Depth (ranges from 1 to 9)\n Gingival Margin (ranges from 1 to 9)\n Clinical Attachment Level (ranges from 1 to 9)\n Bleeding (0 for no bleeding, 1 for bleeding)\n Mucco Gingival Junction (ranges from 1 to 9)\n Furcation Grade (ranges from 0 to 4)\n Suppuration (0 for no suppuration, 1 for suppuration)\n Mobility (ranges from 0 to 4)\n Plaque (ranges from 0 to 3)\n Bone loss (ranges from 0 to 3)\n
\n\n );\n\n }\n}\n\nexport {\n SextantPerio\n};\n","import React from 'react';\nimport {Badge} from 'reactstrap';\nimport {SextantInfo} from './SextantInfo';\nimport {SextantPerio} from \"./SextantPerio\";\n\nclass Sextant extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n selectedTooth: \"\"\n };\n\n if (!this.props.hasOwnProperty('position')) {\n return; // @TODO fix\n }\n\n\n }\n\n componentWillMount() {\n }\n\n componentDidMount() {\n\n }\n\n render() {\n let perioInfo = null;\n if (this.props.tooth >= 1 && this.props.tooth <= 32) {\n perioInfo = ;\n }\n\n return (\n
\n {perioInfo}\n \n
\n );\n }\n}\n\nexport {\n Sextant\n};\n","import React from 'react';\nimport toothChart from './tooth_chart.svg';\n\nexport default class Toothchart extends React.Component {\n\n static universalNotation = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17',\n '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32'];\n static fdiNotation = ['18', '17', '16', '15', '14', '13', '12', '11', '21', '22', '23', '24', '25', '26', '27', '28',\n '38', '37', '36', '35', '34', '33', '32', '31', '41', '42', '43', '44', '45', '46', '47', '48'];\n\n constructor(props) {\n super(props);\n this.objRef = React.createRef();\n }\n\n static _toothId(e) {\n return parseInt(e.target.parentNode.id.replace(/^tooth-/, ''));\n }\n\n componentDidMount() {\n this.objRef.current.addEventListener('load', () => {\n this.objDoc = this.objRef.current.contentDocument;\n\n let toothBorders = this.objDoc.querySelectorAll('.tooth-border');\n for (let b of toothBorders) {\n b.style.fill = 'white';\n b.style.cursor = 'pointer';\n\n b.addEventListener('click', this._onToothClick.bind(this));\n b.addEventListener('mouseover', this._onToothMouseover.bind(this));\n b.addEventListener('mouseout', this._onToothMouseout.bind(this));\n }\n\n this.componentDidUpdate();\n });\n }\n\n componentDidUpdate() {\n if (!this.objDoc) return; // not mounted\n let teeth = this.props.teeth || {};\n for (let toothNo = 1; toothNo <= 32; toothNo++) {\n let tooth = this.objDoc.getElementById(`tooth-${toothNo}`);\n let toothBorder = tooth.querySelector('.tooth-border');\n\n let options = Object.assign({\n hidden: false,\n fill: 'white',\n stroke: 'black',\n strokeWidth: 10,\n opacity: 1,\n strokeOpacity: 1,\n fillOpacity: 1,\n }, teeth.hasOwnProperty(toothNo) ? teeth[toothNo] : {});\n\n tooth.style.display = options.hidden ? 'none' : 'block';\n tooth.style.opacity = options.opacity;\n toothBorder.style.fill = options.fill;\n toothBorder.style.stroke = options.stroke;\n toothBorder.style.strokeWidth = options.strokeWidth;\n toothBorder.style.strokeOpacity = options.strokeOpacity;\n toothBorder.style.fillOpacity = options.fillOpacity;\n\n let toothLabel = this.objDoc.getElementById(`tooth-label-${toothNo}`);\n toothLabel.querySelector('tspan').textContent = this.props.notation === \"FDI\" ? Toothchart.fdiNotation[toothNo - 1] : Toothchart.universalNotation[toothNo - 1];\n }\n\n let sextants = this.props.sextants || {};\n for (let sextantNo = 1; sextantNo <= 6; sextantNo++) {\n let sextantBox = this.objDoc.getElementById(`sextant-${sextantNo}-box`);\n let sextantLabel = this.objDoc.getElementById(`sextant-${sextantNo}-label`);\n let sextantTrend = this.objDoc.getElementById(`sextant-${sextantNo}-trend`);\n let sextantBrushTime = this.objDoc.getElementById(`sextant-${sextantNo}-br-time`);\n\n let options = Object.assign({\n hidden: false,\n label: ' ',\n trend: ' ',\n trendColor: 'black',\n brushTimeHidden: false,\n brushTime: ' '\n }, sextants.hasOwnProperty(sextantNo) ? sextants[sextantNo] : {});\n\n sextantBox.style.display = options.hidden ? 'none' : 'block';\n let label = String(options.label).substring(0, 4);\n sextantLabel.textContent = label && label !== \"NaN%\" ? label : \"N/A\";\n sextantTrend.textContent = '';\n //sextantTrend.textContent = String(options.trend).substring(0, 1);\n sextantBrushTime.querySelector('tspan').textContent = String(options.brushTime).substring(0, 5);\n sextantBrushTime.style.display = options.brushTimeHidden ? 'none' : 'block';\n sextantTrend.style.fill = options.trendColor;\n }\n }\n\n _onToothClick(e) {\n if (typeof this.props.onToothClick !== 'function') return;\n\n this.props.onToothClick({\n number: Toothchart._toothId(e)\n });\n }\n\n _onToothMouseover(e) {\n if (typeof this.props.onToothOver !== 'function') return;\n\n this.props.onToothOver({\n number: Toothchart._toothId(e)\n });\n }\n\n _onToothMouseout(e) {\n if (typeof this.props.onToothOut !== 'function') return;\n\n this.props.onToothOut({\n number: Toothchart._toothId(e)\n });\n }\n\n render() {\n return (\n \n );\n }\n}\n","import React, { Component } from 'react';\nimport { Tooltip } from 'reactstrap';\nimport './TooltipSB.css'; // Import the CSS file\n\nclass TooltipSB extends Component {\n constructor(props) {\n super(props);\n this.state = {\n tooltipOpen: false\n };\n this.toggle = this.toggle.bind(this);\n }\n\n toggle() {\n this.setState(prevState => ({\n tooltipOpen: !prevState.tooltipOpen\n }));\n }\n\n render() {\n const { id, text } = this.props;\n return (\n
\n \n ?\n \n \n {text}\n \n
\n );\n }\n}\n\nexport default TooltipSB;\n","import React from 'react';\nimport fetch from './fetch';\nimport {Alert, Button, Col, Container, Input, Modal, ModalBody, ModalFooter, ModalHeader, Row, Table} from 'reactstrap';\nimport 'bootstrap/dist/css/bootstrap.min.css';\nimport {Sextant} from './Sextant';\nimport {Brush, CartesianGrid, Legend, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis} from 'recharts';\nimport Toothchart from \"./Toothchart\";\nimport {getColourFromScore} from \"./util\";\nimport auth from './auth';\nimport brushlinkIcon from './brushlink_icon.svg';\nimport sonicareIcon from './sonicare_icon.png';\nimport moment from 'moment';\nimport TooltipSB from \"./Tooltip\";\n\n\n//window.$ = window.jQuery = require('../node_modules/jquery/dist/jquery.min');\n\nclass Scorecard extends React.Component {\n static CURRENT_PERIO = \"Current\"\n static sextantPlans = [\n \"top_right_time\",\n \"top_center_time\",\n \"top_left_time\",\n \"bottom_left_time\",\n \"bottom_center_time\",\n \"bottom_right_time\",\n ];\n static sextants = [\n 1, 1, 1, 1, 1,\n 2, 2, 2, 2, 2, 2,\n 3, 3, 3, 3, 3,\n 4, 4, 4, 4, 4,\n 5, 5, 5, 5, 5, 5,\n 6, 6, 6, 6, 6,\n ];\n static UP_TREND = '↗';\n static DOWN_TREND = '↘';\n static HORIZONTAL_TREND = '→';\n static MAX_PERIO_SCORE = 9;\n static MAX_SECONDARY_PERIO_SCORE = 4;\n\n constructor(props) {\n super(props);\n\n this.state = {\n pairings: null,\n graphBrushData: [],\n sextantScores: [],\n generalScore: null,\n brushScorePastLabel: \"\",\n brushScoreLabel: \"\",\n\n perioExams: [],\n brushingData: null,\n activePerio: null,\n activePreviousPerio: null,\n currentSextant: null,\n perioScore: {\n score: -1,\n teeth: null\n },\n previousPerioScore: {\n score: -1,\n teeth: null\n },\n\n perioDate: null,\n previousPerioDate: null,\n\n manufacturer: null,\n manufacturer_id: null,\n\n teeth: {},\n sextants: {\n 1: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 2: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 3: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 4: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 5: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 6: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''}\n },\n\n plan: null,\n\n weights: {\n pd_weight: 10,\n gm_weight: 10,\n cal_weight: 10,\n mgj_weight: 10,\n fg_weight: 10,\n bld_weight: 10,\n sup_weight: 10,\n mob_weight: 10,\n pla_weight: 10,\n bl_weight: 10,\n br_score_weight: 33,\n br_freq_weight: 33,\n br_length_weight: 33\n },\n generalGraphData: [],\n sextantGraphData: [[], [], [], [], [], []],\n visible: false,\n printMode: false,\n practice_name: '',\n patient: null,\n brush_modal: false,\n };\n\n this.perioScoreCache = {};\n }\n\n static onPrintClick(e) {\n window.print();\n }\n\n componentDidMount() {\n let activePerioDate = undefined;\n let identifiers = this.getPatientIdentifiers();\n\n this.updateAverageScore()\n\n\n fetch('/api/v1/brush-status', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n if (body) {\n this.setState({\n pairings: body\n });\n\n if (body.brushlink === false) {\n this.setState({\n brush_modal: true,\n });\n }\n\n }\n })\n .catch((err) => {\n console.error('Could not get brush pairing status', err);\n });\n\n fetch('/api/v1/provider-info', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (resp && !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n if (body) {\n this.setState({\n chart_notation: body.ddx_tooth_notation,\n practice_name: body.hasOwnProperty('ddx_parent_name') ? body.ddx_parent_name : '',\n });\n }\n })\n .catch((err) => {\n console.error('Could not get DDX user info', err);\n });\n\n fetch('/api/v1/preferences', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n this.setState({\n weights: body\n });\n })\n .catch((err) => {\n console.error('Could not fetch preferences', err);\n });\n\n fetch(`/api/v1/patient-info?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&id=${encodeURIComponent(identifiers.id)}`, {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n this.setState({\n patient: body\n });\n })\n .catch((err) => {\n console.error('Could not get patient information', err);\n });\n\n if (identifiers.chart !== \"\" || identifiers.pm_id !== \"\") {\n fetch(`http://127.0.0.1:54280/pms/dentrix/perio_exams?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}`, {\n credentials: 'omit'\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let json = await resp.json();\n\n json.unshift({\n date: Scorecard.CURRENT_PERIO\n });\n if (json.length > 0) {\n activePerioDate = json[0].date;\n }\n this.setState({\n perioExams: json,\n activePerioDate\n });\n })\n .catch((err) => {\n console.error('Could not fetch perio information. No perio available.', err);\n let today = new Date();\n this.setState({\n activePerioDate: today.getFullYear() + \"-\" + ((\"0\" + (today.getMonth() + 1)).slice(-2)) + \"-\" + ((\"0\" + today.getDate()).slice(-2))\n });\n });\n } else {\n let today = new Date();\n this.setState({\n activePerioDate: today.getFullYear() + \"-\" + ((\"0\" + (today.getMonth() + 1)).slice(-2)) + \"-\" + ((\"0\" + today.getDate()).slice(-2))\n });\n }\n this.getBrushingPlan();\n }\n\n componentDidUpdate(prevProps, prevState) {\n if (this.state.activePerioDate !== prevState.activePerioDate && this.state.activePerioDate) {\n let identifiers = this.getPatientIdentifiers();\n\n let index = -1;\n\n let d = this.state.activePerioDate;\n if (d === Scorecard.CURRENT_PERIO && this.state.perioExams.length >= 2) {\n d = this.state.perioExams[1].date;\n }\n\n let dPreviousIndex = -1;\n\n for (let i = 0; i < this.state.perioExams.length; i++) {\n if (this.state.perioExams[i].date === d) {\n dPreviousIndex = i + 1;\n break;\n }\n }\n\n\n if (d && d !== Scorecard.CURRENT_PERIO) {\n if (identifiers.chart !== \"\" || identifiers.pm_id !== \"\") {\n fetch(`http://127.0.0.1:54280/pms/dentrix/perio_exam?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&date=${encodeURIComponent(d)}`, {\n credentials: 'omit'\n })\n .then(async (resp) => {\n if (resp && resp.ok) {\n let json = await resp.json();\n this.setState({\n activePerio: json\n });\n\n for (let i = 0; i < this.state.perioExams.length; i++) {\n if (this.state.activePerioDate === this.state.perioExams[i].date) {\n if (i + 1 < this.state.perioExams.length) {\n index = i + 1;\n break;\n }\n }\n }\n\n let perioDate = this.state.activePerioDate;\n if (this.state.activePerioDate === Scorecard.CURRENT_PERIO) {\n let today = new Date();\n perioDate = today.getFullYear() + \"-\" + ((\"0\" + (today.getMonth() + 1)).slice(-2)) + \"-\" + ((\"0\" + today.getDate()).slice(-2));\n }\n\n let previousPerioDate = null;\n previousPerioDate = index === -1 ? null : this.state.perioExams[index].date\n\n this.setState({\n perioDate: perioDate,\n previousPerioDate: previousPerioDate\n });\n this.updateBrushingData(previousPerioDate, perioDate);\n } else {\n throw \"invalid response status\";\n }\n })\n .catch((err) => {\n console.error('Could not fetch perio exams. No perio available.', err);\n });\n\n if (dPreviousIndex >= 1 && dPreviousIndex < this.state.perioExams.length) {\n fetch(`http://127.0.0.1:54280/pms/dentrix/perio_exam?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&date=${encodeURIComponent(this.state.perioExams[dPreviousIndex].date)}`, {\n credentials: 'omit'\n })\n .then(async (resp) => {\n if (resp && resp.ok) {\n let json = await resp.json();\n this.setState({\n activePreviousPerio: json\n });\n } else {\n throw \"invalid perio response status\";\n }\n })\n .catch((err) => {\n console.error('Could not fetch previous perio exams. No perio available.', err);\n this.setState({\n activePreviousPerio: null,\n });\n });\n } else {\n this.setState({\n activePreviousPerio: null,\n });\n }\n }\n }\n }\n\n if (this.state.activePerio !== prevState.activePerio || this.state.currentSextant !== prevState.currentSextant || this.state.currentTooth !== prevState.currentTooth) {\n this.setState({\n perioScore: {\n score: -1,\n teeth: null\n }\n });\n\n this.calculatePerioScore(this.state.activePerio).then((res) => {\n this.setState({\n perioScore: res\n });\n });\n }\n\n if (this.state.perioScore !== prevState.perioScore && this.state.perioScore) {\n this.colourTeeth();\n }\n\n if (this.state.activePreviousPerio !== prevState.activePreviousPerio && this.state.activePreviousPerio) {\n this.setState({\n previousPerioScore: {\n score: -1,\n teeth: null\n }\n });\n\n this.calculatePerioScore(this.state.activePreviousPerio).then((res) => {\n this.setState({\n previousPerioScore: res\n });\n this.calculateBrushingScores();\n });\n }\n }\n\n colourTeeth() {\n let teethState = {};\n\n for (let toothNo = 1; toothNo <= 32; toothNo++) {\n let color;\n let perioScores = this.state.perioScore;\n if (this.state.activePerio && this.state.activePerio.hasOwnProperty('Teeth')) {\n let t;\n for (let tooth of this.state.activePerio.Teeth) {\n if (tooth.ToothNum === toothNo) {\n t = tooth;\n }\n }\n if (perioScores.teeth) {\n color = getColourFromScore(perioScores.teeth[t.ToothNum - 1], 100, 1);\n }\n }\n if (!color) color = '#ffffff';\n\n\n let toothInSextant = typeof this.state.currentSextant === 'number' &&\n this.state.currentSextant === Scorecard.sextants[toothNo - 1];\n\n let strokeWidth = 10;\n if (this.state.currentTooth === toothNo) {\n strokeWidth = 25;\n } else if (toothInSextant) {\n strokeWidth = 15;\n }\n\n teethState[toothNo] = {\n fill: color,\n //hidden: tooth.ToothState === 1,\n //stroke: toothInSextant ? '#0F0' : '#000',\n opacity: toothInSextant || this.state.currentSextant === null ? '1' : '0.1',\n strokeWidth\n };\n }\n\n this.setState({teeth: teethState});\n }\n\n getPatientIdentifiers() {\n let chart = this.props.params.hasOwnProperty('patid') ? this.props.params.patid : '';\n if (!chart) {\n chart = this.props.location.query.chart_number;\n }\n let pm_id = this.props.location.query.pm_id;\n let id = this.props.location.query.id;\n return {\n chart: chart !== \"undefined\" && chart ? chart : \"\",\n pm_id: pm_id !== \"undefined\" && pm_id ? pm_id : \"\",\n id: id !== \"undefined\" && id ? id : \"\"\n };\n }\n\n getBrushingPlan() {\n let identifiers = this.getPatientIdentifiers();\n fetch(`/api/v1/brushing-plan?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&id=${encodeURIComponent(identifiers.id)}`, {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n\n this.setState({\n plan: body\n });\n })\n .catch((err) => {\n console.error('Could not fetch brushing plan', err);\n });\n }\n\n updateBrushingData(previousPerioDate, perioDate) {\n // brushing data\n let identifiers = this.getPatientIdentifiers();\n if (!identifiers.chart && !identifiers.id && !identifiers.pm_id) {\n return;\n }\n\n fetch(`/api/v1/scorecard-data?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&id=${encodeURIComponent(identifiers.id)}&from=${encodeURIComponent(previousPerioDate)}&to=${encodeURIComponent(perioDate)}`, {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n this.setState({\n brushingData: null,\n });\n this.calculateBrushingScores();\n throw \"invalid response status\";\n }\n let body = await resp.json();\n // console.log(body);\n\n if (body.hasOwnProperty('sessions_manufacturer') && body.hasOwnProperty('sessions_manufacturer_text')) {\n this.setState({\n manufacturer: body.sessions_manufacturer_text,\n manufacturer_id: body.sessions_manufacturer,\n });\n }\n\n if (!body.hasOwnProperty('sessions_brushing_sessions') || !body.sessions_brushing_sessions) {\n this.setState({\n brushingData: null,\n });\n this.calculateBrushingScores();\n return;\n }\n body.sessions_brushing_sessions.sort(function (a, b) {\n return (new Date(a.session_date)) - (new Date(b.session_date));\n });\n this.setState({\n brushingData: body\n });\n this.calculateBrushingScores();\n })\n .catch((err) => {\n this.setState({\n brushingData: null\n });\n\n this.setState({\n sextants: {\n 1: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 2: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 3: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 4: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 5: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 6: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''}\n }\n });\n console.error('Could not fetch brushing information', err);\n });\n }\n\n getTrendStats(prevScore, currentScore) {\n if (prevScore === -1 || currentScore === -1) {\n return null;\n }\n let label = Scorecard.DOWN_TREND;\n let color = '#FF0000';\n\n if (Math.round(currentScore) === Math.round(prevScore)) {\n label = Scorecard.HORIZONTAL_TREND;\n color = '#000000';\n } else if (currentScore < prevScore) {\n label = Scorecard.DOWN_TREND;\n color = '#FF0000';\n } else {\n label = Scorecard.UP_TREND;\n color = '#00FF00';\n }\n\n return {\n label: label,\n color: color\n };\n }\n\n getSextantScoreLabel(score) {\n if (score !== null && score !== \"\" && typeof score == \"number\") {\n return score.toString() + \"%\";\n }\n return \"\";\n }\n\n calculateBrushingScores() {\n if (!this.state.brushingData || !this.state.brushingData.hasOwnProperty('sessions_brushing_sessions') || this.state.brushingData.count <= 0) {\n let graphData = this.calculateGraphData();\n this.setState({\n generalGraphData: graphData.generalGraphData,\n sextantGraphData: graphData.sextantGraphData\n });\n this.setState({\n sextants: {\n 1: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 2: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 3: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 4: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 5: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''},\n 6: {hidden: false, label: \"\", trend: \"\", trendColor: \"#000\", brushTime: ''}\n }\n });\n return;\n }\n // console.log(this.state.brushingData);\n let sessions = this.state.brushingData.sessions_brushing_sessions;\n let earlySessions = sessions.slice(0, Math.ceil(sessions.length * 0.5));\n\n let earlyScores = this.calculateBrushScores(earlySessions);\n let brushingScores = this.calculateBrushScores(sessions);\n\n let graphData = this.calculateGraphData(sessions);\n\n this.setState({\n generalGraphData: graphData.generalGraphData,\n sextantGraphData: graphData.sextantGraphData,\n sextantScores: brushingScores.sextantScores,\n generalScore: brushingScores.generalScore,\n generalTrend: this.getTrendStats(earlyScores.generalScore, brushingScores.generalScore),\n averageBrushTime: brushingScores.averageBrushTime,\n averageBrushingDaily: brushingScores.averageBrushingDaily,\n daysMissed: this.state.brushingData.sessions_missed_days\n });\n\n let trendData0 = this.getTrendStats(earlyScores.sextantScores[0], brushingScores.sextantScores[0]);\n let trendData1 = this.getTrendStats(earlyScores.sextantScores[1], brushingScores.sextantScores[1]);\n let trendData2 = this.getTrendStats(earlyScores.sextantScores[2], brushingScores.sextantScores[2]);\n let trendData3 = this.getTrendStats(earlyScores.sextantScores[3], brushingScores.sextantScores[3]);\n let trendData4 = this.getTrendStats(earlyScores.sextantScores[4], brushingScores.sextantScores[4]);\n let trendData5 = this.getTrendStats(earlyScores.sextantScores[5], brushingScores.sextantScores[5]);\n\n let plan0 = \"\", plan1 = \"\", plan2 = \"\", plan3 = \"\", plan4 = \"\", plan5 = \"\";\n if (this.state.hasOwnProperty('plan') && this.state.plan) {\n plan0 = this.state.plan.top_right_time + ' s';\n plan1 = this.state.plan.top_center_time + ' s';\n plan2 = this.state.plan.top_left_time + ' s';\n plan3 = this.state.plan.bottom_left_time + ' s';\n plan4 = this.state.plan.bottom_center_time + ' s';\n plan5 = this.state.plan.bottom_right_time + ' s';\n }\n\n // console.log(this.state.sextantScores);\n this.setState({\n sextants: {\n 1: {\n hidden: false,\n label: this.getSextantScoreLabel(this.state.sextantScores[0]),\n trend: trendData0.label,\n trendColor: trendData0.color,\n brushTime: plan0\n },\n 2: {\n hidden: false,\n label: this.getSextantScoreLabel(this.state.sextantScores[1]),\n trend: trendData1.label,\n trendColor: trendData1.color,\n brushTime: plan1\n },\n 3: {\n hidden: false,\n label: this.getSextantScoreLabel(this.state.sextantScores[2]),\n trend: trendData2.label,\n trendColor: trendData2.color,\n brushTime: plan2\n },\n 4: {\n hidden: false,\n label: this.getSextantScoreLabel(this.state.sextantScores[3]),\n trend: trendData3.label,\n trendColor: trendData3.color,\n brushTime: plan3\n },\n 5: {\n hidden: false,\n label: this.getSextantScoreLabel(this.state.sextantScores[4]),\n trend: trendData4.label,\n trendColor: trendData4.color,\n brushTime: plan4\n },\n 6: {\n hidden: false,\n label: this.getSextantScoreLabel(this.state.sextantScores[5]),\n trend: trendData5.label,\n trendColor: trendData5.color,\n brushTime: plan5\n }\n }\n });\n }\n\n calculateBrushScores(sessions) {\n if (!sessions || !Array.isArray(sessions) || sessions.length <= 0) {\n return;\n }\n\n let sextantScores = [0, 0, 0, 0, 0, 0];\n let generalScore = 0;\n let averageTime = 0;\n let averageBrushingDaily;\n\n let firstSessionDate = moment(sessions[0].session_date).utc();\n let lastSessionDate = moment(sessions[sessions.length - 1].session_date).utc();\n if (this.state.activePerioDate) {\n lastSessionDate = moment(this.state.activePerioDate).utc();\n if (this.state.activePerioDate === Scorecard.CURRENT_PERIO) {\n lastSessionDate = moment().utc();\n }\n }\n\n let days = lastSessionDate.diff(firstSessionDate, 'days');\n days = days <= 0 ? 1 : days;\n averageBrushingDaily = sessions.length / days;\n //let sessionMilestones = new Array(Math.ceil(days)).fill(0);\n let sessionsWithSextantScores = 0;\n let validSessions = 0;\n sessions.forEach(function (session, index) {\n if (session.session_duration === -1 || session.session_duration === 0) {\n // console.error(\"Ignoring invalid session from average calculations.\")\n return;\n }\n averageTime += session.session_duration;\n generalScore += session.session_score;\n validSessions += 1;\n\n const scores = [\n session.session_sextant_one_score,\n session.session_sextant_two_score,\n session.session_sextant_three_score,\n session.session_sextant_four_score,\n session.session_sextant_five_score,\n session.session_sextant_six_score\n ];\n\n // Check if any score is not zero\n if (scores.some(score => score !== 0)) {\n // Since at least one score is not zero, add all scores to sextantScores\n sextantScores[0] += scores[0];\n sextantScores[1] += scores[1];\n sextantScores[2] += scores[2];\n sextantScores[3] += scores[3];\n sextantScores[4] += scores[4];\n sextantScores[5] += scores[5];\n sessionsWithSextantScores += 1;\n }\n //let i = Math.floor((new Date(session.session_date).getTime() - firstSessionDate.getTime()) / 86400000); // invalid array key??\n //sessionMilestones[i]++;\n });\n\n // console.log(\"sessions: \", sessions);\n // console.log(\"SUM sextantScores[2]: \",sextantScores[2]);\n // console.log(\"sessionsWithSextantScores: \",sessionsWithSextantScores);\n\n //let missedCounter = 0;\n //for (let m of sessionMilestones) {\n // missedCounter = m < 2 ? missedCounter + 1 : missedCounter;\n //}\n\n averageTime /= validSessions;\n\n sextantScores = sextantScores.map(function (s) {\n return Math.round((s / sessionsWithSextantScores));\n });\n\n //generalScore = sextantScores.reduce((sum, a) => sum + a);\n generalScore = Math.round(generalScore / validSessions);\n\n return {\n generalScore: generalScore,\n sextantScores: sextantScores,\n averageBrushTime: averageTime.toFixed(2),\n averageBrushingDaily: averageBrushingDaily.toFixed(2)\n };\n }\n\n calculateGraphData(sessions) {\n let generalGraphData = [];\n let sextantGraphData = [[], [], [], [], [], []];\n\n\n let perioScore = null;\n let previousPerioScore = null;\n // SB-58 Confusion around the perio score interpolating between known values\n let perioStep = null;\n perioScore = this.state.perioScore.score;\n previousPerioScore = this.state.previousPerioScore.score;\n\n if (sessions && Array.isArray(sessions)) {\n // if (perioScore !== null && previousPerioScore !== null) {\n // perioStep = (perioScore - previousPerioScore) / sessions.length;\n // }\n\n sessions.forEach(function (session, i) {\n let date = moment(session.session_date).utc();\n let month = date.format('MMM');\n\n let s0Score = session.session_sextant_one_score;\n let s1Score = session.session_sextant_two_score;\n let s2Score = session.session_sextant_three_score;\n let s3Score = session.session_sextant_four_score;\n let s4Score = session.session_sextant_five_score;\n let s5Score = session.session_sextant_six_score;\n\n generalGraphData.push({\n date: month + '-' + date.format('DD'),\n brush_score: Math.round(session.session_score.toFixed(1)),\n perio_score: perioStep !== null ? Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)) : perioScore,\n internal_date: date\n });\n\n sextantGraphData[0].push({\n date: month + '-' + date.format('DD'),\n brush_score: s0Score.toFixed(1),\n perio_score: perioStep !== null ? Math.round(previousPerioScore + (perioStep * i)) : perioScore,\n internal_date: date\n });\n\n sextantGraphData[1].push({\n date: month + '-' + date.format('DD'),\n brush_score: s1Score.toFixed(1),\n perio_score: perioStep !== null ? Math.round(previousPerioScore + (perioStep * i)) : perioScore,\n internal_date: date\n });\n\n sextantGraphData[2].push({\n date: month + '-' + date.format('DD'),\n brush_score: s2Score.toFixed(1),\n perio_score: perioStep !== null ? Math.round(previousPerioScore + (perioStep * i)) : perioScore,\n internal_date: date\n });\n\n sextantGraphData[3].push({\n date: month + '-' + date.format('DD'),\n brush_score: s3Score.toFixed(1),\n perio_score: perioStep !== null ? Math.round(previousPerioScore + (perioStep * i)) : perioScore,\n internal_date: date\n });\n\n sextantGraphData[4].push({\n date: month + '-' + date.format('DD'),\n brush_score: s4Score.toFixed(1),\n perio_score: perioStep !== null ? Math.round(previousPerioScore + (perioStep * i)) : perioScore,\n internal_date: date\n });\n\n sextantGraphData[5].push({\n date: month + '-' + date.format('DD'),\n brush_score: s5Score.toFixed(1),\n perio_score: perioStep !== null ? Math.round(previousPerioScore + (perioStep * i)) : perioScore,\n internal_date: date\n });\n });\n } else if (this.state.activePreviousPerio && this.state.activePerio) {\n // let datePrevious = this.state.activePreviousPerio.hasOwnProperty('Exam') && this.state.activePreviousPerio.Exam.hasOwnProperty('ExamDate') ? new Date(this.state.activePreviousPerio.Exam.ExamDate) : null;\n // let dateCurrent = this.state.activePerio.hasOwnProperty('Exam') && this.state.activePerio.Exam.hasOwnProperty('ExamDate') ? new Date(this.state.activePerio.Exam.ExamDate) : null;\n // let daysDifference = Math.round(Math.abs((dateCurrent - datePrevious) / (24 * 60 * 60 * 1000)));\n // daysDifference = Math.min(daysDifference, 1000);\n // if (datePrevious === null || dateCurrent === null) {\n // return {\n // generalGraphData: generalGraphData,\n // sextantGraphData: sextantGraphData\n // };\n // }\n // SB-58 do not use data interpolation between perio scores\n return {\n generalGraphData: generalGraphData,\n sextantGraphData: sextantGraphData\n }\n // if (perioScore !== null && previousPerioScore !== null) {\n // perioStep = (perioScore - previousPerioScore) / daysDifference;\n // } else {\n // return {\n // generalGraphData: generalGraphData,\n // sextantGraphData: sextantGraphData\n // }\n // }\n\n // datePrevious.setDate(datePrevious.getDate() - 1);\n // for (let i = 0; i < daysDifference + 1; i++) {\n // datePrevious.setDate(datePrevious.getDate() + 1);\n // generalGraphData.push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n //\n // sextantGraphData[0].push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n //\n // sextantGraphData[1].push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n //\n // sextantGraphData[2].push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n //\n // sextantGraphData[3].push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n //\n // sextantGraphData[4].push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n //\n // sextantGraphData[5].push({\n // date: moment(datePrevious).format('MMM - DD'),\n // brush_score: 0,\n // perio_score: Math.round(parseFloat(previousPerioScore) + (parseFloat(perioStep) * i)),\n // internal_date: datePrevious\n // });\n // }\n\n }\n\n return {\n generalGraphData: generalGraphData,\n sextantGraphData: sextantGraphData\n };\n }\n\n onToothClick(e) {\n if (e.number === this.state.currentTooth) {\n this.setState({\n currentTooth: null,\n currentSextant: null\n });\n return;\n }\n let sextant = Scorecard.sextants[e.number - 1];\n this.setState({\n currentTooth: e.number,\n currentSextant: sextant\n });\n }\n\n onPerioExamChange(e) {\n this.setState({\n activePerioDate: e.target.value,\n activePerio: null,\n teeth: null,\n currentTooth: null,\n currentSextant: null\n });\n }\n\n changeSextantTime(e) {\n if (!this.state.hasOwnProperty('currentSextant') || !this.state.currentSextant) {\n return;\n }\n\n let newTime = parseInt(e.target.value, 10);\n let newPlan = this.state.plan;\n switch (this.state.currentSextant) {\n case 1:\n newPlan.top_right_time = newTime;\n break;\n case 2:\n newPlan.top_center_time = newTime;\n break;\n case 3:\n newPlan.top_left_time = newTime;\n break;\n case 4:\n newPlan.bottom_left_time = newTime;\n break;\n case 5:\n newPlan.bottom_center_time = newTime;\n break;\n case 6:\n newPlan.bottom_right_time = newTime;\n break;\n default:\n break;\n }\n\n let sextants = this.state.sextants;\n sextants[this.state.currentSextant].brushTime = newTime + ' s';\n\n this.setState({\n plan: newPlan,\n sextants: sextants\n });\n }\n\n setNewPlan() {\n let identifiers = this.getPatientIdentifiers();\n if (!identifiers.id && !identifiers.pm_id && !identifiers.chart) {\n return;\n }\n\n fetch(`/api/v1/brushing-plan?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&id=${encodeURIComponent(identifiers.id)}`, {\n method: 'POST',\n headers: {\n Accept: `application/json`,\n 'Content-type': `application/json`\n },\n body: JSON.stringify({\n top_left_time: this.state.plan.top_left_time,\n bottom_left_time: this.state.plan.bottom_left_time,\n top_center_time: this.state.plan.top_center_time,\n bottom_center_time: this.state.plan.bottom_center_time,\n top_right_time: this.state.plan.top_right_time,\n bottom_right_time: this.state.plan.bottom_right_time,\n overall_time: this.state.plan.top_left_time + this.state.plan.top_right_time + this.state.plan.top_center_time +\n this.state.plan.bottom_left_time + this.state.plan.bottom_center_time + this.state.plan.bottom_right_time\n })\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n this.setState({\n visible: true\n });\n })\n .catch((err) => {\n console.error('Could not fetch brushing plan', err);\n });\n }\n\n async calculatePerioScore(perio) {\n if (!perio || !perio.hasOwnProperty('Teeth') || !Array.isArray(perio.Teeth)\n || !perio.hasOwnProperty(\"Exam\") || !perio.Exam.hasOwnProperty('ExamDate')) {\n return {\n score: -1,\n teeth: null\n };\n }\n\n if (this.perioScoreCache.hasOwnProperty(perio.Exam.ExamDate)) {\n return this.perioScoreCache[perio.Exam.ExamDate];\n }\n\n try {\n const resp = await fetch('/api/v1/perio-score', {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-type': `application/json`\n },\n body: JSON.stringify(perio)\n });\n if (!resp || !resp.ok) {\n console.error(\"invalid response status for perio-score\");\n return {\n score: -1,\n teeth: null\n };\n }\n let score = await resp.json();\n if (score) {\n this.perioScoreCache[perio.Exam.ExamDate] = score;\n return score;\n } else {\n console.error(\"bad score payload from server\");\n return {\n score: -1,\n teeth: null\n };\n }\n } catch (err) {\n console.error('Could not get perio score', err);\n return {\n score: -1,\n teeth: null\n };\n }\n }\n\n onDismiss() {\n this.setState({\n visible: false\n });\n }\n\n updateAverageScore(e) {\n let identifiers = this.getPatientIdentifiers();\n if (!identifiers.chart && !identifiers.id && !identifiers.pm_id) {\n return;\n }\n\n fetch(`/api/v1/brushing-score?chart_number=${encodeURIComponent(identifiers.chart)}&pm_id=${encodeURIComponent(identifiers.pm_id)}&id=${encodeURIComponent(identifiers.id)}`, {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n this.setState({\n brushScorePastLabel: \"N/A\",\n brushScoreLabel: \"N/A\"\n });\n }\n let body = await resp.json();\n\n console.log(\"body \", body)\n if (body.hasOwnProperty('BrushScoreLabel')) {\n this.setState({\n brushScoreLabel: body.BrushScoreLabel,\n });\n } else {\n this.setState({\n brushScoreLabel: \"N/A\"\n });\n }\n\n if (body.hasOwnProperty('BrushScorePastLabel')) {\n this.setState({\n brushScorePastLabel: body.BrushScorePastLabel,\n });\n } else {\n this.setState({\n brushScorePastLabel: \"N/A\",\n });\n }\n })\n .catch((err) => {\n this.setState({\n brushScorePastLabel: \"N/A\",\n brushScoreLabel: \"N/A\"\n })\n console.error('Could not fetch brushing overall scores', err);\n });\n }\n\n toggleBrushModal() {\n this.setState(prevState => ({\n brush_modal: !prevState.brush_modal\n }));\n }\n\n getConfigurationLink() {\n return 'https://' + auth.getDomain() + '/practice_portal/addon_configure?id=dental.ddx.smartbrush&m=configurePage';\n }\n\n render() {\n let focusedSextant = null;\n let perioColor = null;\n let perioScore = this.state.perioScore.score;\n let previousPerioScore = this.state.previousPerioScore.score;\n let perioTrend = this.getTrendStats(previousPerioScore, perioScore);\n\n if (perioScore > 0) {\n perioColor = getColourFromScore(perioScore, 100, 1);\n }\n\n if (this.state.currentSextant >= 1 && this.state.currentSextant <= 6) {\n let toothPerio;\n if (this.state.activePerio && Array.isArray(this.state.activePerio.Teeth)) {\n toothPerio = this.state.activePerio.Teeth.filter((t) => t.ToothNum === this.state.currentTooth)[0];\n }\n focusedSextant = ;\n }\n\n let focusedSextantInfo = null;\n let brushingPlan = null;\n if (focusedSextant) {\n focusedSextantInfo = (\n
\n
\n {focusedSextant}\n
\n
\n );\n\n if (this.state.plan) {\n let planTime = 0;\n switch (this.state.currentSextant) {\n case 1:\n planTime = this.state.plan.top_right_time;\n break;\n case 2:\n planTime = this.state.plan.top_center_time;\n break;\n case 3:\n planTime = this.state.plan.top_left_time;\n break;\n case 4:\n planTime = this.state.plan.bottom_left_time;\n break;\n case 5:\n planTime = this.state.plan.bottom_center_time;\n break;\n case 6:\n planTime = this.state.plan.bottom_right_time;\n break;\n default:\n break;\n }\n\n brushingPlan = (\n
\n

Brushing Plan

\n

time (seconds)

\n \n \n \n Plan updated\n \n
\n );\n }\n }\n\n let averageBrushingMinutes = Math.floor(this.state.averageBrushTime / 60);\n let averageBrushingSeconds = +(this.state.averageBrushTime - (60 * averageBrushingMinutes)).toFixed(1);\n let absLabel, abmLabel;\n\n abmLabel = averageBrushingMinutes > 0 ? averageBrushingMinutes + ' minute' : '';\n absLabel = averageBrushingSeconds > 0 ? averageBrushingSeconds + ' second' : '';\n abmLabel = averageBrushingMinutes > 1 ? abmLabel + 's' : abmLabel;\n absLabel = averageBrushingSeconds > 1 ? absLabel + 's' : absLabel;\n\n let provider = this.state.activePerio && this.state.activePerio.hasOwnProperty('_Extra')\n && this.state.activePerio._Extra.hasOwnProperty('ProviderName') ? this.state.activePerio._Extra.ProviderName : '';\n\n\n let chartData = focusedSextant !== null ? this.state.sextantGraphData[this.state.currentSextant - 1] : this.state.generalGraphData;\n\n let chartBrush = null;\n if (chartData && Array.isArray(chartData) && chartData.length > 0) {\n chartBrush = (\n 36 ? chartData.length - 36 : 0}>\n \n \n \n \n );\n }\n\n let dropdown = (\n \n {\n this.state.perioExams.map((v) => {\n return (\n \n )\n })\n }\n \n );\n\n let chart = null;\n if (chartData !== null && chartBrush !== null) {\n chart = (\n \n \n \n \n \n \n \n\n {chartBrush}\n\n \n \n \n \n \n );\n } else {\n chart = (\n \n {\"There are no brushing sessions available for the dates \" + (this.state.previousPerioDate ? \"between \" + this.state.previousPerioDate +\n \" and \" : \"before \") + (this.state.perioDate ? this.state.perioDate : \"today\") + \".\"}\n \n )\n }\n\n let print_plan_info = [];\n if (this.state.plan) {\n for (let i = 0; i < 6; i++) {\n print_plan_info.push(\n \n {i + 1}\n {this.state.plan[Scorecard.sextantPlans[i]]}\n \n )\n }\n }\n\n let today = new Date();\n let currentMonth = today.toLocaleString('en-us', {month: 'long'});\n let currentYear = today.getFullYear();\n let currentDay = String(today.getDate()).padStart(2, '0');\n\n let patientName = this.state.patient && this.state.patient.hasOwnProperty('first_name') ? this.state.patient.first_name : '';\n if (patientName !== \"\") {\n patientName += this.state.patient.hasOwnProperty('last_name') ? ' ' + this.state.patient.last_name : '';\n }\n\n // Do not react to sextant selection as per SB-64\n // let displayScore = 'N/A';\n // displayScore = focusedSextant && this.state.sextantScores.length === 6 ? this.state.sextantScores[this.state.currentSextant - 1] + '%' : displayScore;\n let displayScore = this.state.generalScore ? this.state.generalScore + '%' : 'N/A';\n\n let brushMfgLogo = null;\n switch (this.state.manufacturer) {\n case \"Brushlink\":\n brushMfgLogo = (\n \"manufacturer\n );\n break;\n case \"Sonicare\":\n brushMfgLogo = (\n \"manufacturer\n );\n break;\n }\n\n return
\n \n
\n \n \n \"DDX\n

Smartbrush

\n \n \n
\n {brushMfgLogo}\n
\n
\n {dropdown}\n
\n
\n \"Print {\n this.setState({\n activePerioDate: Scorecard.CURRENT_PERIO,\n }, () => {\n // ugly way to wait for the cascade of state changes, update react to use the useEffect hook :P\n setTimeout(Scorecard.onPrintClick, 100)\n }\n );\n\n }}/>\n
\n \n
\n \n \n

\n {\"Average Brushing Score \" + this.state.brushScoreLabel}\n \n

\n \n
\n \n \n
\n

\n Brushing Score\n \n

\n

\n {displayScore} {this.state.generalTrend ? this.state.generalTrend.label : ''}\n

\n
\n
\n

\n Perio Score\n

\n

\n {perioScore > 0 ? perioScore + '%' : 'N/A'} {perioTrend ? perioTrend.label : ''}\n

\n
\n \n
\n \n \n
\n Frequency: {this.state.averageBrushingDaily} times/day\n
\n
\n Length: {abmLabel} {absLabel}\n
\n
\n Days Missed: {this.state.daysMissed}\n
\n \n
\n\n \n \n
\n \n
\n \n {this.state.activePerio && focusedSextant ? {focusedSextantInfo} : ''}\n \n
\n {chart}\n
\n {brushingPlan}\n \n
\n
\n \n \n \n \n \"Henry\n \n \n
\n\n
\n
\n \n

{this.state.practice_name}

\n

{provider ? 'Provider: ' + provider : ''}

\n
{currentMonth + ' ' + currentDay + ', ' + currentYear}
\n
\n \n \"manufacturer\n \n
\n
\n\n
\n
\n \n

Report: {patientName}

\n \n

Brushing Grade: {this.state.generalScore ? this.state.generalScore : 'N/A'}%

\n

Perio Grade: {perioScore > 0 ? perioScore : 'N/A'}%

\n
\n
\n
\n \n
Brushing Plan
\n \n \n \n \n \n \n \n {print_plan_info}\n
SextantDuration(s)
\n
\n\n
\n
\n \n

Brushing Statistics

\n
Length
{abmLabel} {absLabel}
\n
Frequency
{this.state.averageBrushingDaily} times/day
\n
Days Missed
{this.state.daysMissed}
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
Notes
\n
\n \"DDX\n
\n
\n\n \n Brush Providers\n \n

You have not paired with a brush provider yet, brushing data will be disabled until you link\n up with the patient's brush provider. You can access the configuration page by clicking\n this link.

\n
\n

The SmartBrush configuration page can also be accessed through the DDX store and clicking the\n configure button under the SmartBrush section.

\n
\n \n \n \n
\n
;\n }\n}\n\nexport default Scorecard;\n","import React from 'react';\nimport {Button, Col, Form, FormGroup, Input, Label, Modal, ModalBody, ModalFooter, ModalHeader} from 'reactstrap';\nimport {setTitle} from './util';\nimport fetch from './fetch';\nimport moment from 'moment';\n\nclass BrushProviders extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n brushlinks_paired: false,\n brushlink_reg_token: \"\",\n preferences: {\n brushlink_accepted: null,\n sonicare_accepted: null,\n },\n grushPairModalState: false,\n grushSignupModalState: false,\n grush_pair_username: \"\",\n grush_pair_password: \"\",\n\n terms_accepted: null,\n grush_signup_username: \"\",\n grush_signup_password: \"\",\n grush_signup_account: \"\",\n grush_signup_email: \"\",\n grush_signup_practice: \"\",\n grush_signup_study_group: \"\",\n\n accept_checked: false,\n\n\n }\n\n this.toggleGrushPairModal = this.toggleGrushPairModal.bind(this);\n this.toggleGrushSignupModal = this.toggleGrushSignupModal.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleGrushPairSubmit = this.handleGrushPairSubmit.bind(this);\n }\n\n static brushlinkPair() {\n const state = Math.random().toString();\n window.sessionStorage.setItem('brush_brushlink_state', state);\n const nonce = Math.random().toString();\n window.sessionStorage.setItem('brush_brushlink_nonce', nonce);\n\n const url = `https://admin-us.brushlink.com/oauth/authorize?` +\n `response_type=${encodeURIComponent('code')}&` +\n `client_id=378daedf0c27c77bba2fe3de5619d833b92a3acd8765bdb7ffee3e9aca3ae4bf&` +\n `redirect_uri=${encodeURIComponent('https://smartbrush.ddx.dental/brushlink-offline-callback')}&` +\n `state=${encodeURIComponent(state)}&` +\n `nonce=${encodeURIComponent(nonce)}`;\n window.sessionStorage.setItem('brush_brushlink_authorize_url', url);\n\n window.open(`${url}&prompt=none`, \"_blank\");\n //window.location = `${url}&prompt=none`;\n }\n\n componentWillMount() {\n }\n\n componentDidMount() {\n setTitle('Brush Providers');\n fetch('/api/v1/brush-status', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n let body = await resp.json();\n this.setState({\n brushlink_paired: body.brushlink,\n grush_paired: body.grush\n });\n })\n .catch((err) => {\n console.error('Could not get brush pairing status', err);\n });\n\n fetch('/api/v1/brushlink-reg-token', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n let body = await resp.json();\n if (!body.hasOwnProperty('one_time_token')) {\n return;\n }\n\n fetch('/api/v1/provider-info', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n let body = await resp.json();\n this.userInfo = body;\n })\n .catch((err) => {\n console.error('Could not get DDX user info', err);\n });\n this.setState({\n brushlink_reg_token: body.one_time_token\n });\n })\n .catch((err) => {\n console.error('Could not get brushlink registration token', err);\n });\n\n fetch('/api/v1/preferences', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n\n let acceptedTime = null;\n if (body && body.hasOwnProperty('terms_accepted')) {\n acceptedTime = moment(body.terms_accepted);\n if (!acceptedTime.isValid() || acceptedTime.isBefore(moment(\"2020-09-15\", \"YYYY-MM-DD\"))) {\n acceptedTime = null;\n }\n }\n this.setState({\n preferences: body,\n terms_accepted: acceptedTime,\n });\n })\n .catch((err) => {\n console.error('Could not fetch preferences', err);\n });\n\n\n }\n\n grushPair() {\n this.toggleGrushPairModal();\n /*const state = Math.random().toString();\n window.sessionStorage.setItem('brush_grush_state', state);\n const nonce = Math.random().toString();\n window.sessionStorage.setItem('brush_grush_nonce', nonce);\n\n const url = `https:/13.57.57.202:8081/oauth/`;\n window.sessionStorage.setItem('brush_grush_authorize_url', url);\n window.open(`${url}&prompt=none`, \"_blank\");*/\n }\n\n brushlinkSignup() {\n let practiceName = this.userInfo && this.userInfo.hasOwnProperty('ddx_parent_name') ? this.userInfo.ddx_parent_name : '';\n let givenName = this.userInfo && this.userInfo.hasOwnProperty('given_name') ? this.userInfo.given_name : '';\n let familyName = this.userInfo && this.userInfo.hasOwnProperty('family_name') ? this.userInfo.family_name : '';\n let email = this.userInfo && this.userInfo.hasOwnProperty('email') ? this.userInfo.email : '';\n let phoneNumber = this.userInfo && this.userInfo.hasOwnProperty('phone_number') ? this.userInfo.phone_number : '';\n\n const url = `https://admin-us.brushlink.com/support/registration?one_time_token=${encodeURIComponent(this.state.brushlink_reg_token)}` +\n `&practice_name=${encodeURIComponent(practiceName)}` +\n `&first_name=${encodeURIComponent(givenName)}` +\n `&last_name=${encodeURIComponent(familyName)}` +\n `&email=${encodeURIComponent(email)}` +\n `&phone_number=${encodeURIComponent(phoneNumber)}`;\n window.open(url, \"_blank\");\n }\n\n grushSignup() {\n this.toggleGrushSignupModal();\n //const url = `https://smartbrush.ddx.dental/...`;\n }\n\n brushlinkDisconnect() {\n fetch('/api/v1/brushlink-disconnect', {\n method: 'POST',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n window.location.reload();\n })\n .catch((err) => {\n console.error('Could not get disconnect brushlink', err);\n });\n }\n\n grushDisconnect() {\n fetch('/api/v1/grush-disconnect', {\n method: 'POST',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n window.location.reload();\n })\n .catch((err) => {\n console.error('Could not get disconnect brushlink', err);\n });\n }\n\n toggleGrushPairModal() {\n this.setState(prevState => ({\n grushPairModalState: !prevState.grushPairModalState,\n }));\n }\n\n toggleGrushSignupModal() {\n this.setState(prevState => ({\n grushSignupModalState: !prevState.grushSignupModalState,\n }));\n }\n\n handleGrushSignupSubmit(e) {\n e.preventDefault();\n\n let grushUsername = this.state.grush_signup_username;\n let grushEmail = this.state.grush_signup_email;\n let grushPassword = this.state.grush_signup_password;\n let grushAccount = this.state.grush_signup_account;\n let grushPractice = this.state.grush_signup_practice;\n let grushStudyGroup = this.state.grush_signup_study_group;\n\n fetch('/api/v1/grush-signup-practice', {\n method: 'POST',\n body: JSON.stringify({\n grush_username: grushUsername,\n grush_email: grushEmail,\n grush_password: grushPassword,\n grush_account: grushAccount,\n grush_practice: grushPractice,\n grush_study_group: grushStudyGroup,\n }),\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n alert(\"Could not register your Grush Account. Please double-check your input.\");\n return;\n }\n this.setState({\n grush_pair_username: grushUsername,\n grush_pair_password: grushPassword,\n });\n console.log(\"Registered, pairing...\");\n this.grushSignup();\n //window.location.reload();\n })\n .catch((err) => {\n console.error('Could not get signup grush account: ', err);\n });\n\n }\n\n handleGrushPairSubmit(e) {\n e.preventDefault();\n let grushUsername = this.state.grush_pair_username;\n let grushPassword = this.state.grush_pair_password;\n\n\n fetch('/api/v1/grush-pair-practice', {\n method: 'POST',\n body: JSON.stringify({\n grush_account: grushUsername,\n grush_password: grushPassword,\n }),\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n alert(\"Could not pair Grush Account to DDX Practice\");\n return;\n }\n window.location.reload();\n })\n .catch((err) => {\n console.error('Could not get disconnect brushlink', err);\n });\n }\n\n handleChange(e) {\n this.setState({[e.target.name]: e.target.value});\n }\n\n termsAccepted() {\n this.setState({\n terms_accepted: true\n });\n fetch('/api/v1/accept-terms', {\n method: 'POST',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n console.log('could not save acceptance of terms.');\n return;\n }\n })\n .catch((err) => {\n console.error('could not save acceptance of terms: ', err);\n });\n\n }\n\n toggleAccepted() {\n this.setState({\n accept_checked: !this.state.accept_checked,\n });\n }\n\n render() {\n if (!this.state.terms_accepted) {\n return (\n
\n

Before you can use the DDX SmartBrush, you must agree to our terms of service. Please review the\n information below and accept the terms to continue.

\n Service Agreement Document\n
\n \n

\n By checking this box, you agree to the terms in the document linked above\n

\n \n
\n );\n }\n\n let grush_paired = null;\n if (this.state.grush_paired === true) {\n grush_paired = (\n \n \n \n \n );\n } else {\n let grushTermsAccepted = this.state.preferences.grush_accepted;\n if (grushTermsAccepted == null) {\n\n }\n\n let grushSignUp = null;\n if (!this.state.grush_reg_token) {\n grushSignUp = (\n \n \n \n Grush Signup\n
this.handleGrushSignupSubmit(e)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n );\n }\n grush_paired = (\n \n \n {grushSignUp}\n \n Grush Pair\n
this.handleGrushPairSubmit(e, this.state.grushPairDetails.account)}>\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n\n
\n );\n }\n\n let brushlink_paired = null;\n if (this.state.brushlink_paired === true) {\n brushlink_paired = (\n \n \n \n \n );\n } else {\n\n let blTermsAccepted = this.state.preferences.brushlink_accepted;\n if (blTermsAccepted == null) { // document link & accept button\n //blTermsAccepted = (\n\n //);\n }\n let signUp = null;\n if (this.state.brushlink_reg_token) {\n signUp = (\n \n );\n }\n brushlink_paired = (\n \n \n {signUp}\n \n );\n }\n\n let bl = null;\n if (process.env.REACT_APP_BRUSHLINK_ENABLED === \"1\") {\n bl = (\n \n Brushlink\n \n {brushlink_paired}\n \n \n );\n }\n\n let gr = null;\n if (process.env.REACT_APP_GRUSH_ENABLED === \"1\") {\n gr = (\n \n Grush\n \n {grush_paired}\n \n \n )\n }\n\n let oralb = null;\n if (process.env.REACT_APP_ORALB_ENABLED === \"1\") {\n oralb = (\n \n Oral-B\n \n \n \n \n \n \n )\n }\n\n return (\n
\n

Brush Providers

\n

\n Pair with brush providers to support patients with those smart toothbrushes, and to view and\n interact with their brushing data.\n

\n
\n {bl}\n {gr}\n {oralb}\n
\n
\n );\n }\n}\n\nexport default BrushProviders;","import React from 'react';\nimport {Alert, Button, Table} from 'reactstrap';\nimport fetch from \"./fetch\";\nimport {setTitle} from \"./util\";\n\nclass Patients extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n visible: false,\n patients: [],\n };\n\n this.patientPairAction = this.patientPairAction.bind(this);\n this.getPatients();\n }\n\n componentWillMount() {\n }\n\n componentDidMount() {\n setTitle('Patient Management');\n }\n\n // 0 -> unpair, 1 -> pair\n patientPairAction(patientId, action) {\n fetch('/api/v1/patient-pair', {\n method: 'POST',\n headers: {\n Accept: `application/json`,\n 'Content-type': `application/json`\n },\n body: JSON.stringify({\n patient_ddx_id: patientId,\n pair: action\n })\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n\n this.getPatients();\n })\n .catch((err) => {\n console.error('Could not change patient pair status', err);\n });\n }\n\n getPatients() {\n fetch('/api/v1/paired-patients', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n let body = await resp.json();\n this.setState({\n patients: body ? body : []\n });\n })\n .catch((err) => {\n console.error('Could not fetch patients', err);\n });\n }\n\n onDismiss() {\n this.setState({\n visible: false\n });\n }\n\n\n render() {\n let patients = [];\n\n for (let patient of this.state.patients) {\n patients.push(\n \n \n

{patient.pairing_patient_info ? patient.pairing_patient_info.first_name + \" \" + patient.pairing_patient_info.last_name : \"DDX ID: \" + patient.pairing_patient}

\n \n \n

Linked with {patient.pairing_manufacturer_text}

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

Patient Management


\n \n Message\n \n
\n \n \n \n \n \n \n \n {patients}\n \n
PatientStatusActions
\n
\n
\n
\n
\n );\n }\n}\n\nexport default Patients;","import React from 'react';\nimport {Alert, Button, Input, Label} from 'reactstrap';\nimport fetch from \"./fetch\";\nimport {setTitle} from \"./util\";\n\nclass Settings extends React.Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n pd_weight: 10,\n gm_weight: 10,\n cal_weight: 10,\n mgj_weight: 10,\n fg_weight: 10,\n bld_weight: 10,\n sup_weight: 10,\n mob_weight: 10,\n pla_weight: 10,\n bl_weight: 10,\n br_score_weight: 33,\n br_freq_weight: 33,\n br_length_weight: 33,\n visible: false\n };\n }\n\n componentWillMount() {\n }\n\n componentDidMount() {\n setTitle('Analytical Configuration');\n\n this.getPreferences();\n }\n\n setPreferences() {\n fetch('/api/v1/preferences', {\n method: 'POST',\n headers: {\n Accept: `application/json`,\n 'Content-type': `application/json`\n },\n body: JSON.stringify({\n pd_weight: parseInt(this.state.pd_weight, 10),\n gm_weight: parseInt(this.state.gm_weight, 10),\n cal_weight: parseInt(this.state.cal_weight, 10),\n mgj_weight: parseInt(this.state.mgj_weight, 10),\n fg_weight: parseInt(this.state.fg_weight, 10),\n bld_weight: parseInt(this.state.bld_weight, 10),\n sup_weight: parseInt(this.state.sup_weight, 10),\n mob_weight: parseInt(this.state.mob_weight, 10),\n pla_weight: parseInt(this.state.pla_weight, 10),\n bl_weight: parseInt(this.state.bl_weight, 10),\n br_score_weight: parseInt(this.state.br_score_weight, 10),\n br_freq_weight: parseInt(this.state.br_freq_weight, 10),\n br_length_weight: parseInt(this.state.br_length_weight, 10)\n })\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n this.setState({\n visible: true\n });\n })\n .catch((err) => {\n console.error('Could save preferences', err);\n });\n }\n\n resetDefaults() { // @TODO change for sane defaults\n this.setState({\n pd_weight: 25,\n gm_weight: 5,\n cal_weight: 5,\n mgj_weight: 5,\n fg_weight: 6,\n bld_weight: 25,\n sup_weight: 5,\n mob_weight: 7,\n pla_weight: 7,\n bl_weight: 10,\n br_score_weight: 33,\n br_freq_weight: 33,\n br_length_weight: 33\n });\n }\n\n getPreferences() {\n fetch('/api/v1/preferences', {\n method: 'GET',\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n return;\n }\n let body = await resp.json();\n this.setState(body);\n })\n .catch((err) => {\n console.error('Could not fetch preferences', err);\n });\n }\n\n handleWeightChange(e) {\n switch (e.target.id) {\n case \"pb\":\n this.setState({\n pd_weight: e.target.value\n });\n break;\n case \"gm\":\n this.setState({\n gm_weight: e.target.value\n });\n break;\n case \"cal\":\n this.setState({\n cal_weight: e.target.value\n });\n break;\n case \"mgj\":\n this.setState({\n mgj_weight: e.target.value\n });\n break;\n case \"fg\":\n this.setState({\n fg_weight: e.target.value\n });\n break;\n case \"bld\":\n this.setState({\n bld_weight: e.target.value\n });\n break;\n case \"sup\":\n this.setState({\n sup_weight: e.target.value\n });\n break;\n case \"pla\":\n this.setState({\n pla_weight: e.target.value\n });\n break;\n case \"mob\":\n this.setState({\n mob_weight: e.target.value\n });\n break;\n case \"bl\":\n this.setState({\n bl_weight: e.target.value\n });\n break;\n case \"br_length\":\n this.setState({\n br_length_weight: e.target.value\n });\n break;\n case \"br_freq\":\n this.setState({\n br_freq_weight: e.target.value\n });\n break;\n case \"br_score\":\n this.setState({\n br_score_weight: e.target.value\n });\n break;\n default:\n break;\n }\n }\n\n onDismiss() {\n this.setState({\n visible: false\n });\n }\n\n render() {\n return (\n
\n

Analytical Configuration


\n \n Configuration updated\n \n

Here you can modify how much a section of the grades counts towards the final score. If they are set to zero, they will not be used to calculate the patients final perio or brushing scores.

\n
\n
\n

Perio Analytics

\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n );\n }\n}\n\nexport default Settings;","import React from 'react';\nimport { browserHistory } from 'react-router';\nimport querystring from 'query-string';\nimport { Container, Row, Col } from 'reactstrap';\nimport auth from './auth';\n\nclass Auth extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n\n componentDidMount() {\n const query = querystring.parse(window.location.search.substring(1));\n if (query.error) {\n let redirect;\n switch (query.error) {\n case 'login_required':\n case 'interaction_required':\n redirect = window.sessionStorage.getItem('authorize_url');\n break;\n default:\n break;\n }\n if (redirect) {\n window.location = redirect;\n } else {\n this.setState({\n error: query.error_description\n });\n }\n return;\n } else {\n window.sessionStorage.removeItem('authorize_url');\n }\n\n const hash = window.location.hash.substring(1);\n const hashQuery = querystring.parse(hash);\n\n const state = window.sessionStorage.getItem('state');\n if (hashQuery.state !== state) {\n this.setState({\n error: 'Invalid state'\n });\n return;\n }\n window.sessionStorage.removeItem('state');\n\n window.sessionStorage.removeItem('nonce'); //@TODO verify\n\n\n if (hashQuery.access_token) {\n window.sessionStorage.setItem('access_token', hashQuery.access_token);\n const jwt = auth.getJWT();\n if (jwt) {\n window.sessionStorage.setItem('domain', jwt.iss);\n }\n } else {\n window.sessionStorage.removeItem('access_token');\n }\n browserHistory.replace(query.redirect_uri ? query.redirect_uri : '/');\n }\n\n render() {\n if (!this.state.error) {\n return (\n
\n );\n }\n\n return (\n \n \n \n

Authentication Error

\n

There was a problem authenticating with DDX. The following message was returned from the server:

\n
{this.state.error}
\n \n
\n
\n );\n }\n}\n\nexport default Auth;\n","import React from 'react';\nimport querystring from 'query-string';\nimport {Col, Container, Row} from 'reactstrap';\nimport fetch from './fetch';\n\nclass BrushlinkAuth extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n error: null\n };\n }\n\n componentDidMount() {\n const query = querystring.parse(window.location.search.substring(1));\n if (query.error) {\n let redirect;\n switch (query.error) {\n case 'login_required':\n case 'interaction_required':\n redirect = window.sessionStorage.getItem('brush_brushlink_authorize_url');\n break;\n default:\n break;\n }\n if (redirect) {\n window.location = redirect;\n } else {\n this.setState({\n error: query.error_description\n });\n }\n return;\n } else {\n window.sessionStorage.removeItem('brush_brushlink_authorize_url');\n }\n\n const state = window.sessionStorage.getItem('brush_brushlink_state');\n window.sessionStorage.removeItem('brush_brushlink_state');\n\n // Section removed as per https://ddxdental.atlassian.net/browse/SB-67\n // if (query.state !== state) {\n // this.setState({\n // error: 'Invalid state'\n // });\n // return;\n // }\n\n // api request to backed with code\n let params = {\n code: query.code\n };\n\n fetch('/api/v1/brushlink-token?' + querystring.stringify(params), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json'\n }\n }).finally((resp) => {\n if (!this.state.error) {\n //browserHistory.replace(query.redirect_uri ? query.redirect_uri : '/providers');\n if (window.opener) {\n window.opener.location.reload();\n // window.close(); // https://ddxdental.atlassian.net/browse/SB-67\n }\n }\n });\n\n }\n\n render() {\n if (!this.state.error) {\n return (\n
\n

\n Successfully paired with Brushlink! You can now close this window and access patient data from\n inside the DDX Smartbrush Addon\n

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

Authentication Error

\n

There was a problem authenticating with Brushlink. The following message was returned from\n the server:

\n
{this.state.error}
\n \n
\n
\n );\n }\n}\n\nexport default BrushlinkAuth;","import React from 'react';\nimport { Navbar, Nav, NavbarBrand, NavItem, Container, Row, Col } from 'reactstrap';\nimport { Link, browserHistory } from 'react-router';\nimport auth from './auth';\nimport querystring from 'query-string';\n\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nclass ManufacturerBase extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n }\n }\n\n componentDidMount() {\n }\n\n _onSessionChange() {\n // Change detected; wipe session\n window.sessionStorage.removeItem('session_state');\n window.sessionStorage.removeItem('access_token');\n window.location.reload();\n }\n\n render() {\n return (\n
\n \n \n DDX SmartBrush - Portal\n \n \n \n \"DDX\n \n \n \n \n \n {this.props.children}\n \n \n \n\n
\n );\n }\n}\n\nexport default ManufacturerBase;","function mfgFetch(input, init) {\n const accessToken = window.sessionStorage.getItem('mfg_token');\n init = init || {};\n init.headers = init.headers || {};\n if (accessToken) {\n init.headers.Authorization = `Bearer ${accessToken}`;\n }\n init.headers['Accept'] = 'application/json';\n return window.fetch(input, init)\n .then((resp) => {\n if (resp.status === 401) {\n let url = `https://smartbrush.ddx.dental/mfg/login`;\n if (window.location.href.indexOf(\"admin\") !== -1) {\n url = `https://smartbrush.ddx.dental/admin/login`;\n }\n window.location = `${url}`;\n return;\n }\n return resp;\n });\n}\n\nexport default mfgFetch;\n","import React from 'react';\nimport {\n Button,\n FormFeedback,\n Form,\n FormGroup,\n Label,\n Input, Navbar, NavbarBrand\n} from 'reactstrap';\nimport mfgFetch from './mfg-fetch';\n\nclass ManufacturerLogin extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n usernameValue: '',\n passwordValue: '',\n manufacturer: '2',\n loginFailed: false,\n }\n }\n\n componentWillMount() {\n }\n\n\n componentDidMount() {\n }\n\n submitLogin(e) {\n e.preventDefault();\n\n this.setState({\n loginFailed: false\n });\n\n mfgFetch('/api/v1/mfg/login', {\n method: 'POST',\n headers: {\n Accept: `application/json`,\n 'Content-type': `application/json`\n },\n body: JSON.stringify({\n manufacturer: this.state.manufacturer,\n username: this.state.usernameValue,\n password: this.state.passwordValue\n })\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n if (body) {\n window.sessionStorage.setItem('mfg_token', body.token);\n window.location = `https://${window.location.hostname}/mfg/content`;\n }\n })\n .catch((err) => {\n console.error('Could not login', err);\n this.setState({\n loginFailed: true\n });\n });\n }\n\n updateUsernameValue(e) {\n this.setState({\n usernameValue: e.target.value\n });\n }\n\n updatePasswordValue(e) {\n this.setState({\n passwordValue: e.target.value\n });\n }\n\n updateManufacturerValue(e) {\n this.setState({\n manufacturer: e.target.value\n });\n }\n\n render() {\n return (\n
\n
\n \n \n DDX SmartBrush - Portal\n \n \n \"DDX\n \n \n
\n\n

Smartbrush Login

\n
this.submitLogin(e) }>\n \n
\n \n \n
\n \n this.updateUsernameValue(e)}\n invalid={this.state.loginFailed}\n />\n \n this.updatePasswordValue(e)}\n invalid={this.state.loginFailed}\n />\n \n Looks like there is an issue with either your username or your password. Verify them and try again.\n \n
\n \n
\n
\n );\n }\n}\n\nexport default ManufacturerLogin;","import React from 'react';\nimport {Button, Modal, ModalHeader, ModalBody, ModalFooter, Form, FormGroup, Label, Input,\n UncontrolledButtonDropdown, DropdownToggle, DropdownMenu, DropdownItem, Alert,\n Card, CardTitle, CardSubtitle, CardText, CardBody} from 'reactstrap';\nimport mfgFetch from \"./mfg-fetch\";\n\nclass ManufacturerContent extends React.Component {\n\n constructor(props) {\n super(props);\n this.state = {\n content: {\n approvedContent: [],\n approvalContent: [],\n rejectedContent: [],\n },\n formInvalid: false,\n submitFailed: false,\n addDisabled: false,\n addModalState: false,\n deleteModalState: false,\n viewModalState: false,\n logModalState: false,\n editModalState: false,\n warningModalState: false,\n logContent: null,\n selectedContent: null,\n deleteContent: null,\n editContent: null,\n alertState: false,\n reapplyEdit: false,\n\n content_title: \"\",\n content_type: \"video\",\n content_description: \"\",\n content_category: \"educational\",\n content_range_start: null,\n content_range_end: null,\n content_file: null,\n content_thumbnail: null\n };\n\n this.handleContent = this.handleContent.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.toggleAddModal = this.toggleAddModal.bind(this);\n this.toggleDeleteModal = this.toggleDeleteModal.bind(this);\n this.toggleViewModal = this.toggleViewModal.bind(this);\n this.toggleLogModal = this.toggleLogModal.bind(this);\n this.toggleEditModal = this.toggleEditModal.bind(this);\n this.toggleWarningModal = this.toggleWarningModal.bind(this);\n this.deleteContent = this.deleteContent.bind(this);\n this.publishContent = this.publishContent.bind(this);\n this.dismissAlert = this.dismissAlert.bind(this);\n this.handleEditSubmit = this.handleEditSubmit.bind(this);\n }\n\n componentWillMount() {\n }\n\n\n componentDidMount() {\n this.grabContent();\n }\n\n grabContent() {\n mfgFetch('/api/v1/mfg/content', {\n method: 'GET'\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let body = await resp.json();\n this.handleContent(body);\n })\n .catch((err) => {\n console.error(\"Could not get manufacturer's content\", err);\n });\n }\n\n selectContent(content) {\n this.setState({\n selectedContent: content,\n viewModalState: true,\n });\n }\n\n selectEdit(content) {\n if (!content) {\n return;\n }\n this.setState({\n editContent: content,\n content_title: content.content_title,\n content_type: content.content_type,\n content_description: content.content_description,\n content_category: content.content_category,\n content_range_start: content.content_range_start,\n content_range_end: content.content_range_end,\n editModalState: true,\n });\n if (content.content_approved === \"1\") {\n this.setState({\n warningModalState: true,\n });\n }\n }\n\n showApprovalLog(content) {\n this.setState({\n logContent: content,\n logModalState: true,\n });\n }\n\n handleContent(contents) {\n let approvedContent = [];\n let approvalContent = [];\n let rejectedContent = [];\n if (contents) {\n for (let content of contents) {\n if (content.hasOwnProperty('content_approved')) {\n\n let published = null;\n if (content.content_published === '1' && content.content_approved === '1') {\n published = (\n this.publishContent(content.content_id, '0')}>Un-publish\n );\n } else if (content.content_approved === '1') {\n published = (\n this.publishContent(content.content_id, '1')}>Publish\n );\n }\n\n let rejected = null;\n if (content.content_approved === '-1') {\n rejected = (\n \n this.reapplyContent(content.content_id)}>Re-apply for approval\n this.showApprovalLog(content)}>Approval Log\n \n );\n }\n\n let edit = (\n \n );\n\n let deleteButton = (\n { this.setState({ deleteContent: content }); this.toggleDeleteModal(); }}>\n Delete\n \n );\n\n let viewDetails = (\n \n );\n\n\n let contentSubtitle = \"\";\n switch (content.content_approved) {\n case \"-1\":\n contentSubtitle = \"Approval denied\";\n break;\n case \"0\":\n contentSubtitle = \"Awaiting approval\";\n break;\n case \"1\":\n if (content.content_published === \"1\") {\n contentSubtitle = \"Currently published\";\n } else {\n contentSubtitle = \"Currently un-published\";\n }\n break;\n }\n\n let lastAction = new Date(content.content_uploaded);\n if (content.content_updated) {\n lastAction = new Date(content.content_updated);\n }\n let daysPending = (((new Date()).getTime() - lastAction.getTime()) / 86400000);\n let hoursPending = Math.floor((daysPending % 1) * 24);\n let daysText = 'day';\n if (daysPending >= 2) {\n daysText = 'days';\n }\n let hoursText = 'hour';\n if (hoursPending >= 2) {\n hoursText = 'hours';\n }\n\n let contentPending = \"\";\n let action = \"Pending for\";\n if (content.content_approved === \"1\") {\n if (content.content_published === \"1\") {\n action = \"Published for\";\n } else {\n action = \"\";\n }\n }\n\n if (action !== \"\") {\n if (daysPending >= 1) {\n contentPending = (\n

{action} {daysPending.toFixed(0)} {daysText} and {hoursPending} {hoursText}

\n );\n } else if (hoursPending >= 1) {\n contentPending = (\n

{action} {hoursPending} {hoursText}

\n );\n } else {\n contentPending = (\n

{action} less than an hour

\n );\n }\n }\n\n if (content.content_approved === \"-1\") {\n contentPending = (\n

Denied on {lastAction.toLocaleString('en-us', {month: 'short'})} {lastAction.getDate()}, {lastAction.getFullYear()}

\n );\n }\n\n let html = (\n \n \n {content.content_title}\n {contentSubtitle}\n
\n \n {contentPending}\n \n\n
\n \n {viewDetails}\n {edit}\n \n \n â‹®\n \n {published}\n {rejected}\n {deleteButton}\n \n \n \n \n
\n
\n
\n\n );\n\n content.html = html;\n\n switch (content.content_approved) {\n case \"0\":\n approvalContent.push(content);\n break;\n case \"1\":\n approvedContent.push(content);\n break;\n case \"-1\":\n rejectedContent.push(content);\n break;\n }\n }\n }\n }\n\n this.setState({\n content: {\n approvedContent: approvedContent,\n approvalContent: approvalContent,\n rejectedContent: rejectedContent,\n }\n });\n }\n\n submitEditContent(e) {\n e.preventDefault();\n\n const data = new FormData(e.target);\n\n this.setState({\n formInvalid: false,\n submitFailed: false\n });\n\n if (!this.validateForm()) {\n this.setState({\n formInvalid: true\n });\n return;\n }\n\n mfgFetch('/api/v1/mfg/resubmit', {\n method: 'POST',\n body: data,\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n this.setState({\n editModalState: false,\n alertState: true,\n });\n this.grabContent();\n this.setAlertMessage(\"Your content was successfully edited.\\n\");\n })\n .catch((err) => {\n console.error('There was an error trying to edit your content: ', err);\n this.setState({\n submitFailed: true\n });\n });\n }\n\n handleEditSubmit(e, id) {\n this.submitEditContent(e);\n if (this.state.reapplyEdit) {\n this.reapplyContent(id);\n }\n }\n\n saveAndReapply() {\n this.setState({\n reapplyEdit: true,\n });\n }\n\n submitContent(e) {\n e.preventDefault();\n const data = new FormData(e.target);\n\n this.setState({\n formInvalid: false,\n submitFailed: false,\n addDisabled: true,\n });\n\n if (!this.validateForm()) {\n this.setState({\n formInvalid: true,\n addDisabled: false,\n });\n return;\n }\n\n mfgFetch('/api/v1/mfg/content', {\n method: 'POST',\n body: data,\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n this.setState({\n addModalState: false,\n alertState: true,\n addDisabled: false,\n });\n this.grabContent();\n this.setAlertMessage(\"Your content was successfully submitted. Please wait for one of our team members to review and process your content.\\n\");\n })\n .catch((err) => {\n console.error('Could not submit content: ', err);\n this.setState({\n submitFailed: true,\n addDisabled: false,\n });\n });\n\n }\n\n addContentClick(e) { // open add content window\n this.setState({\n addModalState: true,\n content_title: \"\",\n content_type: \"video\",\n content_description: \"\",\n content_category: \"educational\",\n content_range_start: null,\n content_range_end: null,\n content_file: null,\n content_thumbnail: null,\n });\n }\n\n toggleAddModal() { // toggle open content window\n this.setState(prevState => ({\n addModalState: !prevState.addModalState\n }));\n }\n\n toggleDeleteModal() { // toggle open content window\n this.setState(prevState => ({\n deleteModalState: !prevState.deleteModalState,\n }));\n }\n\n toggleViewModal() {\n this.setState(prevState => ({\n viewModalState: !prevState.viewModalState,\n }));\n }\n\n toggleLogModal() {\n this.setState(prevState => ({\n logModalState: !prevState.logModalState,\n }));\n }\n\n toggleEditModal() {\n this.setState(prevState => ({\n editModalState: !prevState.editModalState,\n }));\n }\n\n toggleWarningModal() {\n this.setState(prevState => ({\n warningModalState: !prevState.warningModalState,\n }));\n }\n\n\n validateForm() {\n // @TODO extra form validation\n return true;\n }\n\n handleChange(e) {\n if (e.target.name === 'content_file' || e.target.name === 'content_thumbnail') {\n this.setState({ [e.target.name]: e.target.files[0] });\n return;\n }\n this.setState({ [e.target.name]: e.target.value });\n }\n\n deleteContent(contentId) {\n mfgFetch('/api/v1/mfg/delete', {\n method: 'POST',\n body: JSON.stringify({\n content_id: contentId,\n }),\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n this.setAlertMessage(\"Successfully deleted content.\");\n this.grabContent();\n })\n .catch((err) => {\n console.error('could not delete content: ', err);\n this.setAlertMessage(\"There was an error trying to delete that content.\");\n });\n this.setState({\n deleteModalState: false\n });\n }\n\n publishContent(contentId, status) {\n mfgFetch('/api/v1/mfg/publish', {\n method: 'POST',\n body: JSON.stringify({\n content_id: contentId,\n content_published: status\n }),\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n let action = \"published\";\n if (status === '0') {\n action = \"un-published\";\n }\n this.setAlertMessage(\"Successfully \" + action + \" content.\");\n this.grabContent();\n })\n .catch((err) => {\n console.error('could not publish content: ', err);\n this.setAlertMessage(\"There was an error trying to modify that content.\");\n });\n\n }\n\n reapplyContent(contentId) {\n mfgFetch('/api/v1/mfg/reapply', {\n method: 'POST',\n body: JSON.stringify({\n content_id: contentId,\n }),\n })\n .then(async (resp) => {\n if (!resp || !resp.ok) {\n throw \"invalid response status\";\n }\n this.setAlertMessage(\"Successfully re-submitted content for approval.\");\n this.grabContent();\n })\n .catch((err) => {\n console.error('could not re-apply content: ', err);\n this.setAlertMessage(\"There was an error trying to re-submit that content for approval.\");\n });\n }\n\n dismissAlert() {\n this.setState({\n alertState: false,\n });\n }\n\n setAlertMessage(msg) {\n this.setState({\n alertMessage: msg\n });\n }\n\n render() {\n let approvalContent = [];\n for(let content of this.state.content.approvalContent) {\n if (!content) {\n continue;\n }\n approvalContent.push(content.html);\n\n }\n // Add more content button\n approvalContent.push(\n \n \n
this.addContentClick(e)}>\n +\n
\n
\n
\n );\n\n let approvedContent = [];\n for(let content of this.state.content.approvedContent) {\n if (!content) {\n continue;\n }\n approvedContent.push(content.html);\n }\n\n let rejectedContent = [];\n for(let content of this.state.content.rejectedContent) {\n if (!content) {\n continue;\n }\n rejectedContent.push(content.html);\n }\n\n let approvalSection = (\n
\n

Awaiting Approval

\n
\n {approvalContent}\n
\n
\n );\n let approvedSection = (\n
\n

Approved Content

\n
\n {approvedContent}\n
\n
\n );\n let rejectedSection = (\n
\n

Rejected Content

\n
\n {rejectedContent}\n
\n
\n );\n\n let viewModal = null;\n if (this.state.selectedContent) {\n let locale = window.navigator.userLanguage || window.navigator.language || \"en-US\";\n let start = \"\";\n if (this.state.selectedContent.content_range_start) {\n start = (\n Start Date: {(new Date(this.state.selectedContent.content_range_start)).toLocaleDateString(locale)}\n );\n }\n let end = \"\";\n if (this.state.selectedContent.content_range_end) {\n end = (\n End Date: {(new Date(this.state.selectedContent.content_range_end)).toLocaleDateString(locale)}\n );\n }\n\n let uploaded = new Date(this.state.selectedContent.content_uploaded);\n let updated = new Date(this.state.selectedContent.content_updated);\n\n let daysPending = (((new Date()).getTime() - updated.getTime()) / 86400000);\n let hoursPending = Math.floor((daysPending % 1) * 24);\n let daysText = 'day';\n if (daysPending >= 2) {\n daysText = 'days';\n }\n let hoursText = 'hour';\n if (hoursPending > 1) {\n hoursText = 'hours';\n }\n let pending = null;\n if (this.state.selectedContent.content_approved === '0') {\n if (daysPending >= 1) {\n pending = (\n Pending for: {daysPending.toFixed(0)} {daysText} and {hoursPending} {hoursText}\n );\n } else if (hoursPending >= 1) {\n pending = (\n Pending for: {hoursPending} {hoursText}\n );\n } else {\n pending = (\n Pending for: less than an hour\n );\n }\n }\n\n viewModal = (\n \n {this.state.selectedContent.content_title}\n \n
\n
\n \n

Description: {this.state.selectedContent.content_description}

\n

Type: {this.state.selectedContent.content_type}

\n

Category: {this.state.selectedContent.content_category}

\n {start}\n {end}\n
\n Manufacturer: {this.state.selectedContent.content_manufacturer_text}\n Uploaded: {uploaded.toLocaleDateString(\"en-US\")}\n Last Updated: {updated.toLocaleDateString(\"en-US\")}\n {pending}\n
\n \n \n \"Content\n View Content\n \n \n
\n \n \n \n
\n
\n
\n );\n }\n\n let deleteModal = null;\n if (this.state.deleteContent) {\n deleteModal = (\n \n Are you sure?\n \n Please confirm that you would like to DELETE content titled: {this.state.deleteContent.content_title}\n \n \n \n \n \n \n );\n }\n\n let logModal = null;\n if (this.state.logContent) {\n let denials = [];\n for (let denial of this.state.logContent.content_denials) {\n let deniedDate = new Date(denial.denial_created);\n denials.push(\n \n Denied by {denial.denial_username} - {deniedDate.toLocaleString('en-us', {month: 'long'}) + '-' + deniedDate.getDate()}\n Reasoning: {denial.denial_reason}\n \n );\n }\n logModal = (\n \n {this.state.logContent.content_title} - Approval Log\n \n {denials}\n \n \n \n \n \n );\n }\n\n let addModal = (\n \n Upload Content\n
this.submitContent(e)}>\n \n \n

File uploads: Thumbnail must be a png or jpeg, under 5MB. Files must be under 1GB and can be a document/pdf or image (png, jpeg, gif).

\n \n \n \n \n \n \n \n \n\n \n \n