{"version":3,"file":"secure.dd9580efbe4d6d1f3a25.js","mappings":"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","sources":["webpack://lib/webpack/universalModuleDefinition","webpack://lib/./node_modules/moment/locale/ sync ^\\.\\/.*$","webpack://lib/./src/secure/announcements/announcements.page.ts","webpack://lib/./src/secure/communications/directory.page.ts","webpack://lib/./src/secure/home/home.page.ts","webpack://lib/./src/secure/reports/activation/scripts/optnow-activation.ts","webpack://lib/./src/secure/reports/enrollment/scripts/observational-enrollment.ts","webpack://lib/./src/secure/reports/enrollment/scripts/optnow-enrollment.ts","webpack://lib/./src/secure/resources/consortium.page.ts","webpack://lib/./src/secure/resources/gallery.page.ts","webpack://lib/./src/secure/secure.module.ts","webpack://lib/./src/secure/studies/phase2/scripts/calculator.page.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"lib\"] = factory();\n\telse\n\t\troot[\"lib\"] = root[\"lib\"] || {}, root[\"lib\"][\"secure\"] = factory();\n})(self, function() {\nreturn ","var map = {\n\t\"./af\": 2786,\n\t\"./af.js\": 2786,\n\t\"./ar\": 867,\n\t\"./ar-dz\": 4130,\n\t\"./ar-dz.js\": 4130,\n\t\"./ar-kw\": 6135,\n\t\"./ar-kw.js\": 6135,\n\t\"./ar-ly\": 6440,\n\t\"./ar-ly.js\": 6440,\n\t\"./ar-ma\": 7702,\n\t\"./ar-ma.js\": 7702,\n\t\"./ar-ps\": 315,\n\t\"./ar-ps.js\": 315,\n\t\"./ar-sa\": 6040,\n\t\"./ar-sa.js\": 6040,\n\t\"./ar-tn\": 7100,\n\t\"./ar-tn.js\": 7100,\n\t\"./ar.js\": 867,\n\t\"./az\": 1083,\n\t\"./az.js\": 1083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 8338,\n\t\"./bg.js\": 8338,\n\t\"./bm\": 7438,\n\t\"./bm.js\": 7438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 6225,\n\t\"./bn-bd.js\": 6225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 1560,\n\t\"./bo.js\": 1560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 622,\n\t\"./bs.js\": 622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 877,\n\t\"./cv.js\": 877,\n\t\"./cy\": 7373,\n\t\"./cy.js\": 7373,\n\t\"./da\": 4780,\n\t\"./da.js\": 4780,\n\t\"./de\": 9740,\n\t\"./de-at\": 217,\n\t\"./de-at.js\": 217,\n\t\"./de-ch\": 894,\n\t\"./de-ch.js\": 894,\n\t\"./de.js\": 9740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 837,\n\t\"./el.js\": 837,\n\t\"./en-au\": 8348,\n\t\"./en-au.js\": 8348,\n\t\"./en-ca\": 7925,\n\t\"./en-ca.js\": 7925,\n\t\"./en-gb\": 2243,\n\t\"./en-gb.js\": 2243,\n\t\"./en-ie\": 6436,\n\t\"./en-ie.js\": 6436,\n\t\"./en-il\": 7207,\n\t\"./en-il.js\": 7207,\n\t\"./en-in\": 4175,\n\t\"./en-in.js\": 4175,\n\t\"./en-nz\": 6319,\n\t\"./en-nz.js\": 6319,\n\t\"./en-sg\": 1662,\n\t\"./en-sg.js\": 1662,\n\t\"./eo\": 2915,\n\t\"./eo.js\": 2915,\n\t\"./es\": 5655,\n\t\"./es-do\": 5251,\n\t\"./es-do.js\": 5251,\n\t\"./es-mx\": 6112,\n\t\"./es-mx.js\": 6112,\n\t\"./es-us\": 1146,\n\t\"./es-us.js\": 1146,\n\t\"./es.js\": 5655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 7763,\n\t\"./eu.js\": 7763,\n\t\"./fa\": 6959,\n\t\"./fa.js\": 6959,\n\t\"./fi\": 1897,\n\t\"./fi.js\": 1897,\n\t\"./fil\": 2549,\n\t\"./fil.js\": 2549,\n\t\"./fo\": 4694,\n\t\"./fo.js\": 4694,\n\t\"./fr\": 4470,\n\t\"./fr-ca\": 3049,\n\t\"./fr-ca.js\": 3049,\n\t\"./fr-ch\": 2330,\n\t\"./fr-ch.js\": 2330,\n\t\"./fr.js\": 4470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 9295,\n\t\"./ga.js\": 9295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 8794,\n\t\"./gl.js\": 8794,\n\t\"./gom-deva\": 7884,\n\t\"./gom-deva.js\": 7884,\n\t\"./gom-latn\": 3168,\n\t\"./gom-latn.js\": 3168,\n\t\"./gu\": 5349,\n\t\"./gu.js\": 5349,\n\t\"./he\": 4206,\n\t\"./he.js\": 4206,\n\t\"./hi\": 94,\n\t\"./hi.js\": 94,\n\t\"./hr\": 316,\n\t\"./hr.js\": 316,\n\t\"./hu\": 2138,\n\t\"./hu.js\": 2138,\n\t\"./hy-am\": 1423,\n\t\"./hy-am.js\": 1423,\n\t\"./id\": 9218,\n\t\"./id.js\": 9218,\n\t\"./is\": 135,\n\t\"./is.js\": 135,\n\t\"./it\": 626,\n\t\"./it-ch\": 150,\n\t\"./it-ch.js\": 150,\n\t\"./it.js\": 626,\n\t\"./ja\": 9183,\n\t\"./ja.js\": 9183,\n\t\"./jv\": 4286,\n\t\"./jv.js\": 4286,\n\t\"./ka\": 2105,\n\t\"./ka.js\": 2105,\n\t\"./kk\": 7772,\n\t\"./kk.js\": 7772,\n\t\"./km\": 8758,\n\t\"./km.js\": 8758,\n\t\"./kn\": 9282,\n\t\"./kn.js\": 9282,\n\t\"./ko\": 3730,\n\t\"./ko.js\": 3730,\n\t\"./ku\": 1408,\n\t\"./ku-kmr\": 563,\n\t\"./ku-kmr.js\": 563,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 3291,\n\t\"./ky.js\": 3291,\n\t\"./lb\": 6841,\n\t\"./lb.js\": 6841,\n\t\"./lo\": 5466,\n\t\"./lo.js\": 5466,\n\t\"./lt\": 7010,\n\t\"./lt.js\": 7010,\n\t\"./lv\": 7595,\n\t\"./lv.js\": 7595,\n\t\"./me\": 9861,\n\t\"./me.js\": 9861,\n\t\"./mi\": 5493,\n\t\"./mi.js\": 5493,\n\t\"./mk\": 5966,\n\t\"./mk.js\": 5966,\n\t\"./ml\": 7341,\n\t\"./ml.js\": 7341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 370,\n\t\"./mr.js\": 370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 1237,\n\t\"./ms-my.js\": 1237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 2126,\n\t\"./mt.js\": 2126,\n\t\"./my\": 6165,\n\t\"./my.js\": 6165,\n\t\"./nb\": 4924,\n\t\"./nb.js\": 4924,\n\t\"./ne\": 6744,\n\t\"./ne.js\": 6744,\n\t\"./nl\": 3901,\n\t\"./nl-be\": 9814,\n\t\"./nl-be.js\": 9814,\n\t\"./nl.js\": 3901,\n\t\"./nn\": 3877,\n\t\"./nn.js\": 3877,\n\t\"./oc-lnc\": 2135,\n\t\"./oc-lnc.js\": 2135,\n\t\"./pa-in\": 5858,\n\t\"./pa-in.js\": 5858,\n\t\"./pl\": 4495,\n\t\"./pl.js\": 4495,\n\t\"./pt\": 9520,\n\t\"./pt-br\": 7971,\n\t\"./pt-br.js\": 7971,\n\t\"./pt.js\": 9520,\n\t\"./ro\": 6459,\n\t\"./ro.js\": 6459,\n\t\"./ru\": 1793,\n\t\"./ru.js\": 1793,\n\t\"./sd\": 950,\n\t\"./sd.js\": 950,\n\t\"./se\": 490,\n\t\"./se.js\": 490,\n\t\"./si\": 124,\n\t\"./si.js\": 124,\n\t\"./sk\": 4249,\n\t\"./sk.js\": 4249,\n\t\"./sl\": 4985,\n\t\"./sl.js\": 4985,\n\t\"./sq\": 1104,\n\t\"./sq.js\": 1104,\n\t\"./sr\": 9131,\n\t\"./sr-cyrl\": 9915,\n\t\"./sr-cyrl.js\": 9915,\n\t\"./sr.js\": 9131,\n\t\"./ss\": 5893,\n\t\"./ss.js\": 5893,\n\t\"./sv\": 8760,\n\t\"./sv.js\": 8760,\n\t\"./sw\": 1172,\n\t\"./sw.js\": 1172,\n\t\"./ta\": 7333,\n\t\"./ta.js\": 7333,\n\t\"./te\": 3110,\n\t\"./te.js\": 3110,\n\t\"./tet\": 2095,\n\t\"./tet.js\": 2095,\n\t\"./tg\": 7321,\n\t\"./tg.js\": 7321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 9005,\n\t\"./tk.js\": 9005,\n\t\"./tl-ph\": 5768,\n\t\"./tl-ph.js\": 5768,\n\t\"./tlh\": 9444,\n\t\"./tlh.js\": 9444,\n\t\"./tr\": 2397,\n\t\"./tr.js\": 2397,\n\t\"./tzl\": 8254,\n\t\"./tzl.js\": 8254,\n\t\"./tzm\": 1106,\n\t\"./tzm-latn\": 699,\n\t\"./tzm-latn.js\": 699,\n\t\"./tzm.js\": 1106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 7691,\n\t\"./uk.js\": 7691,\n\t\"./ur\": 3795,\n\t\"./ur.js\": 3795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 588,\n\t\"./uz-latn.js\": 588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 5666,\n\t\"./vi.js\": 5666,\n\t\"./x-pseudo\": 4378,\n\t\"./x-pseudo.js\": 4378,\n\t\"./yo\": 5805,\n\t\"./yo.js\": 5805,\n\t\"./zh-cn\": 3839,\n\t\"./zh-cn.js\": 3839,\n\t\"./zh-hk\": 5726,\n\t\"./zh-hk.js\": 5726,\n\t\"./zh-mo\": 9807,\n\t\"./zh-mo.js\": 9807,\n\t\"./zh-tw\": 4152,\n\t\"./zh-tw.js\": 4152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 6700;","\r\nexport class SecureAnnouncementsPage {\r\n\r\n constructor() {\r\n\r\n //document.ready\r\n $(() => {\r\n\r\n\r\n });\r\n }\r\n\r\n}","export class ProjectDirectoryPage {\r\n\r\n dataTable: any;\r\n\r\n constructor() {\r\n\r\n $(() => {\r\n\r\n this.dataTable = $('#users-table').DataTable({\r\n \"dom\": '<\"top-controls\"<\"reset-section\">Bf>rtip',\r\n autoWidth: false,\r\n order: [[1, \"asc\"]],\r\n info: false,\r\n paging: false,\r\n scrollX: true,\r\n //\"columnDefs\": [\r\n //{ \"orderable\": false, \"targets\": 8 }, //don't want to sort actions column\r\n //{ \"width\": \"85px\", \"targets\": 6 }, //last login column can be fixed width\r\n //{ \"width\": \"25px\", \"targets\": 7 } //status column can be fixed width\r\n //]\r\n buttons: [\r\n {\r\n extend: 'csv',\r\n text: '',\r\n titleAttr: 'CSV',\r\n charset: 'utf-8',\r\n exportOptions: {\r\n columns: [0, 1, 2, 3, 4]\r\n }\r\n }\r\n , {\r\n text: '',\r\n titleAttr: 'Create Email List',\r\n charset: 'utf-8',\r\n action: (e, dt, node, config) => {\r\n this.copyVisibleEmailToClipboard();\r\n }\r\n }\r\n ]\r\n });\r\n\r\n let resetSectionDiv: string =\r\n \"
\" +\r\n \"   \" +\r\n \"
\"\r\n ;\r\n $(\".reset-section\").empty().html(resetSectionDiv);\r\n $(\".reset-section\").css('display', 'inline-block');\r\n $(\".reset-section\").css('float', 'left');\r\n $(\".reset-section\").css('margin-top', '5px');\r\n\r\n $('#users-table').on('search.dt', (e, settings) => {\r\n this.setUsersFoundLabel(this.dataTable.rows({ search: 'applied' }).count());\r\n });\r\n\r\n this.initializeFilters();\r\n });\r\n }\r\n\r\n initializeFilters(): void {\r\n\r\n for (let index = 2; index <= 3; ++index) { //filter on organization and affiliation\r\n let selectId: string = '#filter-dropdown-' + index;\r\n let filterIndex: number = index;\r\n\r\n let uniqueValues: string[] = [];\r\n let delimiter: string = \",\";\r\n\r\n\r\n let dropdownSourceIndex: number = index;\r\n\r\n this.dataTable.column(dropdownSourceIndex).data().unique().map((data: string) => {\r\n let parts: string[] = [];\r\n if (delimiter != \"\") { parts = data.split(delimiter); }\r\n else { parts[0] = data; }\r\n\r\n parts.map((part: string) => {\r\n part = part.trim();\r\n if (part.length > 0 && !uniqueValues.includes(part)) {\r\n uniqueValues.push(part);\r\n }\r\n });\r\n });\r\n\r\n uniqueValues = uniqueValues.sort((a: string, b: string) => {\r\n return a.toLowerCase().localeCompare(b.toLowerCase());\r\n });\r\n\r\n uniqueValues.forEach((element: any) => {\r\n $(selectId).append(new Option(element, element, false, true));\r\n });\r\n\r\n\r\n\r\n\r\n $(selectId).on('changed.bs.select', (e, clickedIndex, isSelected, previousValue) => {\r\n let values: string[] = ($(selectId).val());\r\n //console.log(\"changed\", values);\r\n\r\n let search: string = \"\";\r\n\r\n if (values.length > 0) {\r\n search = \"(\\\\b\" + values.join(\"\\\\b)|(\\\\b\") + \"\\\\b)\";\r\n }\r\n else { search = \"NOTHING-MATCHED-1234567890\"; }\r\n console.log(\"search1 \", search);\r\n search = search.split(\"(\").join(\"\").split(\")\").join(\"\");\r\n console.log(\"search2 \", search);\r\n this.dataTable.column(filterIndex)\r\n .search(search, true, false)\r\n .draw();\r\n });\r\n\r\n\r\n $(selectId).selectpicker({\r\n dropupAuto: false,\r\n selectedTextFormat: \"count\",\r\n\r\n countSelectedText: (numSelected, numTotal) => {\r\n if (numSelected == numTotal) {\r\n return \"All\";\r\n }\r\n else {\r\n return numSelected + \" Selected\";\r\n }\r\n }\r\n });\r\n\r\n $(selectId).selectpicker(\"refresh\");\r\n\r\n \r\n\r\n }\r\n }\r\n\r\n resetFilters(): void {\r\n let filterIndex: number;\r\n for (let index = 3; index >= 2; --index) { //skip details and title column\r\n\r\n $('#filter-dropdown-' + index).selectpicker('selectAll');\r\n $('#filter-dropdown-' + index).selectpicker(\"refresh\");\r\n\r\n filterIndex = index;\r\n this.dataTable.column(filterIndex).search('').draw();\r\n }\r\n this.dataTable.search('').draw();\r\n }\r\n\r\n setUsersFoundLabel(count: number): void {\r\n\r\n switch (count) {\r\n case 0: $('#users-found-count').text(\"Nobody Found\"); break;\r\n case 1: $('#users-found-count').text(\"1 Person Found\"); break;\r\n default: $('#users-found-count').text(count + \" People Found\");\r\n }\r\n }\r\n\r\n copyVisibleEmailToClipboard(): void {\r\n let visibleUsers = this.dataTable.rows({ search: 'applied' }).data().toArray();\r\n console.log(visibleUsers);\r\n let emailList: string[] = new Array();\r\n\r\n visibleUsers.forEach(function (item) {\r\n emailList.push(item[1]);\r\n });\r\n\r\n let emailListString: string = emailList.join(\"; \");\r\n\r\n navigator.clipboard.writeText(emailListString)\r\n .then(() => {\r\n $('#emailListValue').text(emailListString);\r\n $('#directory-email-modal').modal('show');\r\n },\r\n () => {\r\n alert(\"There was an error copying to the clipboard. Please try again.\");\r\n });\r\n }\r\n}","import { CountUp } from 'countup.js';\r\nimport 'waypoints/lib/jquery.waypoints.min';\r\n\r\nexport class SecureHomePage {\r\n\r\n constructor() {\r\n\r\n //document.ready\r\n $(() => {\r\n\r\n this.initializeCounters();\r\n\r\n });\r\n }\r\n\r\n initializeCounters(): void {\r\n\r\n ($('.countup')).waypoint({\r\n handler: function () {\r\n const counter = new CountUp(this.element, this.element.textContent, { useEasing: false, duration: 1 });\r\n if (!counter.error) {\r\n counter.start();\r\n }\r\n this.destroy();\r\n },\r\n offset: 'bottom-in-view'\r\n });\r\n }\r\n}","var Highcharts = require('highcharts/highcharts-gantt');\r\n\r\nexport class OptNowActivationPage {\r\n\tsiteData: any;\r\n\r\n\tconstructor(siteData: any) {\r\n\t\tthis.siteData = siteData;\r\n\r\n\t\t$(() => {\r\n\t\t\tvar day_ms = 24 * 60 * 60 * 1000;\r\n\t\t\tvar tab_blue = '#6699CC';\r\n var tab_orange = '#532565';\r\n var df_sites = Object.keys(siteData); console.log('df_sites', df_sites);\r\n var df_cols = Object.keys(Object.values(siteData)[1]).slice(1); console.log('df_cols', df_cols);\r\n\r\n var start_dates = [];\r\n Object.values(siteData).map(function (item) {\r\n start_dates.push(item['StartDate']);\r\n delete item['StartDate'];\r\n return item;\r\n });\r\n\r\n\t\t\t// get all of the categories from the site data\r\n\t\t\tvar cols = Object.keys(Object.values(siteData)[1]);\r\n\r\n\t\t\t// get all of the date values\r\n\t\t\tvar gantt_vals = Object.values(siteData).map(k => Object.values(k).filter(j => j != null).reduce((acc, c) => acc + 1, 0) / 12);\r\n\r\n\t\t\tvar gantt_color = gantt_vals.map(x => x == 1 ? tab_blue : tab_orange);\r\n\r\n var datadata = [];\r\n for (var i = 0; i < df_sites.length; i += 1) {\r\n datadata.push({ name: df_sites[i], data: [] })\r\n for (var j = 0; j < df_cols.length; j += 1) {\r\n var start_dt = (Object.values(siteData)[i][df_cols[j]]) == null ? null : j;\r\n var end_dt = (start_dt == null ? null : j + 1)\r\n\r\n datadata[i].data = [...datadata[i].data,\r\n ...[{\r\n name: df_cols[j],\r\n y: i,\r\n start: start_dt,\r\n end: end_dt,\r\n color: gantt_color[i]\r\n }]];\r\n };\r\n };\r\n console.log('datadata', datadata);\r\n\r\n\r\n\t\t\tvar cols_plus = [...cols, ...['']];\r\n\r\n Highcharts.ganttChart('div_1', {\r\n \r\n credits: { enabled: false },\r\n title: { text: 'OPTimize NOW' },\r\n subtitle: { text: 'Site Activation Progress' },\r\n series: datadata,\r\n yAxis: { categories: Object.keys(siteData) },\r\n xAxis: [{\r\n categories: cols_plus,\r\n labels: { align: 'left' }, //enabled:false}, // min:0, max:11, startOnTick: true, minPadding:0,\r\n grid: { enabled: false },\r\n tickInterval: 1,\r\n max: cols_plus.length - 1\r\n },\r\n { visible: false }],\r\n tooltip: {\r\n useHTML: true,\r\n formatter: function () {\r\n var point_date = Object.entries(siteData)[this.y][1][this.key]\r\n // let parent = (this.point.parent) ? (this.point.parent) : this.key;\r\n return Object.keys(siteData)[this.y] + ' (' + Math.round(gantt_vals[this.y] * 100) + '% Complete)'\r\n + '
' + this.key + ' (' + Highcharts.dateFormat('%d %b %Y', point_date) + ')'\r\n // + '
' + HighC.dateFormat('%d %b %Y', point_date) \r\n }\r\n }\r\n });\r\n \r\n // div_2 = \"% Complete by Site\"\r\n var task_comp = [];\r\n for (var i = 0; i < Object.keys(siteData).length; i += 1) { task_comp.push(Math.round(gantt_vals[i] * 100)) };\r\n var bar_missing = Object.values(siteData).map(k => Object.values(k).map((e, i) => (e == null) ? cols[i] + '
' : '').filter(String));\r\n\r\n // sort sites by completion%\r\n var site_task_comp = [];\r\n for (var i = 0; i < Object.keys(siteData).length; i += 1) { site_task_comp.push([Object.keys(siteData)[i], Math.round(gantt_vals[i] * 100)]) };\r\n\r\n var site_task_comp_sort = site_task_comp.sort(function (a, b) { return b[1] - a[1] });\r\n\r\n\r\n Highcharts.chart('div_2', {\r\n credits: { enabled: false },\r\n chart: { type: 'bar', height: 599 },\r\n title: { text: 'Overall Activation Completion %' },\r\n legend: { enabled: false },\r\n tooltip: { //enabled: false},\r\n formatter: function () {\r\n return this.x + ': ' + this.y + '%';\r\n }\r\n },\r\n xAxis: { categories: site_task_comp_sort.map(x => x[0]) },\r\n yAxis: {\r\n title: false, //{text:''}, \r\n endOnTick: false,\r\n min: 0, max: 100\r\n },\r\n series: [{ data: site_task_comp_sort.map(x => x[1]) }],\r\n colors: gantt_color, plotOptions: { bar: { colorByPoint: false } },\r\n });\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n // div_3 - IRB & contract status\r\n\r\n // IRB gantt\r\n var IRB_gantt_vals = Object.values(siteData).map(k => [...Object.values(k).slice(0, 4), ...Object.values(k).slice(-1)].filter(j => j != null).reduce((a, c) => a + 1, 0) / 5);\r\n var IRB_gantt_color = IRB_gantt_vals.map(x => x == 1 ? tab_blue : tab_orange); //'#2caffe':'#FEB56A')\r\n\r\n var IRB_cols = [...df_cols.slice(0, 4), ...df_cols.slice(-1)];\r\n var IRB_cols_plus = [...IRB_cols, ...['']];\r\n\r\n var dd2 = [];\r\n for (var i = 0; i < Object.keys(siteData).length; i += 1) { //rows\r\n dd2.push({ name: Object.keys(siteData)[i], data: [] });\r\n for (j = 0; j < IRB_cols.length; j += 1) {\r\n var start_dt = (Object.values(siteData)[i][IRB_cols[j]]) == null ? null : j;\r\n var end_dt = (start_dt == null ? null : j + 1);\r\n\r\n dd2[i].data = [...dd2[i].data,\r\n ...[{\r\n name: IRB_cols[j],\r\n y: i,\r\n start: start_dt, //Object.values(site_sites)[i][cols[j]],\r\n end: end_dt,\r\n color: IRB_gantt_color[i]\r\n }]];\r\n };\r\n };\r\n\r\n \r\n var chart_3 = Highcharts.ganttChart('div_3', {\r\n credits: { enabled: false },\r\n title: { text: 'OPTimize NOW' },\r\n subtitle: { text: 'IRB' },\r\n series: dd2,\r\n yAxis: { categories: Object.keys(siteData), showLastLabel:true },\r\n xAxis: [{\r\n categories: IRB_cols_plus,\r\n\r\n labels: { align: 'left' }, //enabled:false}, // min:0, max:11, startOnTick: true, minPadding:0,\r\n grid: { enabled: false },\r\n tickInterval: 1\r\n },\r\n { visible: false }\r\n ],\r\n tooltip: {\r\n useHTML: true,\r\n formatter: function () {\r\n var point_date = Object.entries(siteData)[this.y][1][this.key]\r\n return Object.keys(siteData)[this.y] + ' (' + Math.round(gantt_vals[this.y] * 100) + '% Complete)'\r\n + '
' + this.key + ' (' + Highcharts.dateFormat('%d %b %Y', point_date) + ')';\r\n }\r\n }\r\n });\r\n\r\n // mitigate space btw yAxis & values\r\n window.addEventListener('load', load_funct);\r\n function load_funct() {\r\n resize_funct();\r\n window.addEventListener('resize', resize_funct);\r\n }\r\n function resize_funct() {\r\n // var y_offset = -1 * 1.0077**chart_1.chartWidth/chart_1.chartHeight;\r\n var y_offset = -1 * 1.00133 ** chart_3.chartWidth;\r\n chart_3.update({ yAxis: { offset: y_offset } });\r\n }\r\n\r\n /*\r\n // // div_4 = \"% Complete by Site\"\r\n var IRB_max = Object.values(siteData).map(k => Math.max(...[...Object.values(k).slice(0, 4), ...Object.values(k).slice(-1)]));\r\n\r\n var IRB_t2c = []\r\n // // if (start_dates.length == IRB_max.length) {\r\n for (var i = 0; i < start_dates.length; i += 1) {\r\n if (IRB_max[i] > 0) {\r\n IRB_t2c.push((IRB_max[i] - start_dates[i]) / 86400000);\r\n } else {\r\n IRB_t2c.push(0);\r\n // IRB_t2c.push(1)\r\n }\r\n }\r\n \r\n\r\n Highcharts.chart('div_4', {\r\n credits: { enabled: false },\r\n chart: { type: 'bar', height: 599 },\r\n title: { text: 'IRB and Contract Status' },\r\n subtitle: { text: 'Time to Completion' },\r\n legend: { enabled: false },\r\n tooltip: { //enabled: false},\r\n formatter: function () {\r\n return this.x + ' - Time to Completion: ' + this.y + ' days';\r\n }\r\n },\r\n xAxis: { categories: Object.keys(siteData) },\r\n yAxis: {\r\n title: false, //{text:''}, \r\n endOnTick: false\r\n },\r\n series: [{ data: IRB_t2c }],\r\n colors: IRB_gantt_color, plotOptions: {\r\n bar: { colorByPoint: true }, series: { pointWidth: 20 }\r\n },\r\n });\r\n */\r\n\t\t});\r\n\t}\r\n}","var Highcharts = require('highcharts/highcharts');\r\n\r\nexport class EnrollmentPage {\r\n siteScoreTreatment: any;\r\n formCompletions: any;\r\n raceData: any;\r\n ethnicData: any;\r\n constructor(raceData: any, ethnicData: any, siteNames: any, siteEnrollmentData: any, siteScoringData:any, siteSelection: any, formCompletes: any) {\r\n this.siteScoreTreatment = siteScoringData;\r\n this.formCompletions = formCompletes;\r\n this.raceData = raceData;\r\n this.ethnicData = ethnicData;\r\n\r\n $(() => {\r\n var page = this;\r\n let siteSelect = $('#selSite');\r\n siteSelect.empty();\r\n siteSelect.append('');\r\n\r\n $.each(siteSelection, function (Id: string, Obj: any) {\r\n siteSelect.append($('').attr('value', Obj.Id).text(Obj.Name))\r\n });\r\n\r\n Highcharts.setOptions({\r\n colors: ['#532565', '#982568', '#981f32', '#bf362e', '#e07c3e', '#818a91', '#dddddd']\r\n });\r\n\r\n // Highcharts.chart('obsEnrollment', {\r\n // chart: {\r\n // plotBackgroundColor: null,\r\n // plotBorderWidth: null,\r\n // plotShadow: false,\r\n // type: 'pie',\r\n // styledMode: false\r\n // },\r\n // title: {\r\n // text: ''\r\n // },\r\n // tooltip: {\r\n // pointFormat: '{series.name}: {point.percentage:.1f}%'\r\n // },\r\n // accessibility: {\r\n // point: {\r\n // valueSuffix: '%'\r\n // }\r\n // },\r\n // plotOptions: {\r\n // pie: {\r\n // allowPointSelect: true,\r\n // cursor: 'pointer',\r\n \r\n // dataLabels: {\r\n // enabled: true,\r\n // format: '{point.name}: {point.percentage:.1f} %'\r\n // }\r\n // }\r\n // },\r\n // series: [{\r\n // name: \"Period\",\r\n // colorByPoint: true,\r\n // data: enrollmentData\r\n\t\t\t\t//}]\r\n \r\n // });\r\n\r\n Highcharts.chart('obsEnrollBySite', {\r\n chart: {\r\n type: 'bar',\r\n marginLeft: 250,\r\n marginBottom: 90\r\n },\r\n title: {\r\n text: ''\r\n },\r\n xAxis: {\r\n width: 300,\r\n categories: siteNames\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal'\r\n }\r\n },\r\n\r\n series: siteEnrollmentData\r\n });\r\n\r\n var treatmentChart = Highcharts.chart('obsScoreTreatment', {\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: [\r\n '01/01/22-03/31/22',\r\n '10/01/19-12/31/19',\r\n '10/01/21-12/31/21',\r\n '07/01/21-09/30/21'\r\n \r\n \r\n ],\r\n crosshair: true\r\n },\r\n yAxis: {\r\n min: 0,\r\n units: 'Subject Count'\r\n },\r\n tooltip: {\r\n headerFormat: '{point.key}',\r\n pointFormat: '' +\r\n '',\r\n footerFormat: '
{series.name}: {point.y:.0f}
',\r\n shared: true,\r\n useHTML: true\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n column: {\r\n pointPadding: 0.2,\r\n borderWidth: 0\r\n }\r\n },\r\n series: this.filterScoringTreatment(-1)\r\n });\r\n\r\n var completionsChart = Highcharts.chart('obsFormCompletions', {\r\n chart: {\r\n type: 'column'\r\n },\r\n title: {\r\n text: ''\r\n },\r\n xAxis: {\r\n categories: [\r\n 'Site Survey',\r\n 'Provider Survey'\r\n ],\r\n crosshair: true\r\n },\r\n yAxis: {\r\n min: 0\r\n },\r\n legend: {\r\n enabled: false\r\n\t\t\t\t},\r\n tooltip: {\r\n headerFormat: '{point.key}',\r\n pointFormat: '' +\r\n '',\r\n footerFormat: '
{series.name}: {point.y:.0f} surveys
',\r\n shared: true,\r\n useHTML: true\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n column: {\r\n pointPadding: 0.2,\r\n borderWidth: 0\r\n }\r\n },\r\n series: [{\r\n name: \"Completions\",\r\n data: this.filterFormCompletions(-1)\r\n }]\r\n });\r\n\r\n siteSelect.on('change', function () {\r\n let sel: string = $('#selSite').val();\r\n let site = parseInt(sel);\r\n let seriesData = page.filterScoringTreatment(site);\r\n treatmentChart.series[0].update(seriesData[0]);\r\n treatmentChart.series[1].update(seriesData[1]);\r\n treatmentChart.redraw();\r\n\r\n let completionsData = page.filterFormCompletions(site);\r\n completionsChart.series[0].update({ name: \"Completions\", data: completionsData });\r\n completionsChart.redraw();\r\n\r\n let raceData = page.filterRaceData(site);\r\n raceChart.series[0].update({name: \"Race\", data: raceData});\r\n raceChart.redraw();\r\n\r\n let ethnicData = page.filterEthnicData(site);\r\n ethnicChart.series[0].update({ name: \"Ethnicity\", data: ethnicData });\r\n ethnicChart.redraw();\r\n });\r\n });\r\n\r\n var raceChart = Highcharts.chart('obsRace', {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n styledMode: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n pointFormat: '{series.name}: {point.percentage:.1f}%'\r\n },\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n\r\n dataLabels: {\r\n enabled: true,\r\n format: '{point.name}: {point.percentage:.1f} %'\r\n }\r\n }\r\n },\r\n series: [{\r\n name: \"Race\",\r\n colorByPoint: true,\r\n data: this.filterRaceData(-1)\r\n\t\t\t\t}]\r\n\r\n });\r\n\r\n var ethnicChart = Highcharts.chart('obsEthnic', {\r\n chart: {\r\n plotBackgroundColor: null,\r\n plotBorderWidth: null,\r\n plotShadow: false,\r\n type: 'pie',\r\n styledMode: false\r\n },\r\n title: {\r\n text: ''\r\n },\r\n tooltip: {\r\n pointFormat: '{series.name}: {point.percentage:.1f}%'\r\n },\r\n accessibility: {\r\n point: {\r\n valueSuffix: '%'\r\n }\r\n },\r\n credits: {\r\n enabled: false\r\n },\r\n plotOptions: {\r\n pie: {\r\n allowPointSelect: true,\r\n cursor: 'pointer',\r\n\r\n dataLabels: {\r\n enabled: true,\r\n format: '{point.name}: {point.percentage:.1f} %'\r\n }\r\n }\r\n },\r\n series: [{\r\n name: \"Ethnicity\",\r\n colorByPoint: true,\r\n data: this.filterEthnicData(-1)\r\n }]\r\n\r\n });\r\n }\r\n\r\n filterEthnicData(site: number) {\r\n var ethnicities = [{\r\n name: \"Hispanic or Latino\",\r\n y: 0\r\n },\r\n {\r\n name: \"Not Hispanic or Latino\",\r\n y: 0\r\n },\r\n {\r\n name: \"Unknown or not reported\",\r\n y: 0\r\n }];\r\n\r\n this.ethnicData.forEach(function (entry) {\r\n if (site <= 0) {\r\n for (let i = 0; i < 3; i++) {\r\n ethnicities[i].y += entry.Ethnicities[i];\r\n }\r\n }\r\n else if (site == entry.Site) {\r\n for (let i = 0; i < 3; i++) {\r\n ethnicities[i].y += entry.Ethnicities[i];\r\n }\r\n }\r\n });\r\n\r\n return ethnicities;\r\n\t}\r\n\r\n filterRaceData(site: number) {\r\n var races = [{\r\n name: \"Black\",\r\n y: 0\r\n },\r\n {\r\n name: \"American Indian or Alaskan Native\",\r\n y: 0\r\n\r\n },\r\n {\r\n name: \"Native Hawaiian or Other Pacific Islander\",\r\n y: 0\r\n },\r\n {\r\n name: \"White\",\r\n y: 0\r\n },\r\n {\r\n name: \"Asian\",\r\n y: 0\r\n },\r\n {\r\n name: \"Unknown or not reported\",\r\n y: 0\r\n },\r\n {\r\n name: \"More than one race\",\r\n y: 0\r\n }];\r\n\r\n this.raceData.forEach(function (entry) {\r\n if (site <= 0) {\r\n for (let i = 0; i < 7; i++) {\r\n races[i].y += entry.Races[i];\r\n }\r\n }\r\n else if (site == entry.Site) {\r\n for (let i = 0; i < 7; i++) {\r\n races[i].y += entry.Races[i];\r\n }\r\n\t\t\t}\r\n });\r\n\r\n // hide races with 0 values, make it cleaner\r\n for (let i = 6; i >= 0; i--) {\r\n if (races[i].y == 0)\r\n races.splice(i, 1);\r\n\t\t}\r\n\r\n return races;\r\n\t}\r\n\r\n filterScoringTreatment(site: number) {\r\n // output needs to be:\r\n // name: Pharmacologic Treatment or No Pharmacological Treatment\r\n // data: [sum of period 1, sum of period 2]\r\n var output1 =\r\n {\r\n name: \"Pharmacologic Treatment\",\r\n data: [0, 0, 0, 0]\r\n };\r\n\r\n var output2 =\r\n {\r\n name: \"No Pharmacological Treatment\",\r\n data: [0, 0, 0, 0]\r\n\t\t}\r\n \r\n this.siteScoreTreatment.forEach(function (entry) {\r\n if (site <= 0) {\r\n if (entry.treatment == '1') // yes treatment\r\n {\r\n output1.data[entry.period - 1] += 1;\r\n }\r\n else {\r\n output2.data[entry.period - 1] += 1;\r\n\t\t\t\t}\r\n }\r\n else {\r\n if (entry.site == site) {\r\n if (entry.treatment == '1') // yes treatment\r\n {\r\n output1.data[entry.period - 1] += 1;\r\n }\r\n else {\r\n output2.data[entry.period - 1] += 1;\r\n }\r\n\t\t\t\t}\r\n\t\t\t}\r\n });\r\n\r\n return [output1, output2];\r\n }\r\n\r\n filterFormCompletions(site: number) {\r\n var siteSurvey = 0;\r\n var providerSurvey = 0;\r\n\r\n\r\n this.formCompletions.forEach(function (entry) {\r\n if (site <= 0) {\r\n siteSurvey += entry.SiteSurvey;\r\n providerSurvey += entry.ProviderSurvey;\r\n }\r\n else {\r\n if (site == entry.Site) {\r\n siteSurvey += entry.SiteSurvey;\r\n providerSurvey += entry.ProviderSurvey;\r\n\t\t\t\t}\r\n\t\t\t}\r\n });\r\n\r\n return [siteSurvey, providerSurvey];\r\n\r\n\t}\r\n\r\n\r\n}","var Highcharts = require('highcharts/highcharts');\r\n\r\nexport class OptNowEnrollmentPage {\r\n enrollmentData: any;\r\n hospitalStayData: any;\r\n\tconstructor(enrollmentData: any, hospitalStayData: any) {\r\n this.enrollmentData = enrollmentData;\r\n this.hospitalStayData = hospitalStayData;\r\n $(() => {\r\n var opt_sites = [{ 'siten': 101, 'site': 'University of Arkansas for Medical Sciences', 'ast': 'Finnegan', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 103, 'site': 'Thomas Jefferson University', 'ast': 'Finnegan', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 104, 'site': 'University of Louisville Hospital', 'ast': 'Finnegan', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 105, 'site': 'University of Alabama at Birmingham', 'ast': 'Finnegan', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 106, 'site': 'Indiana University - Eskenazi Hospital', 'ast': 'Finnegan', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 107, 'site': 'University of Kansas', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 108, 'site': 'University of Kentucky', 'ast': 'Finnegan', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 109, 'site': \"Norton Women's and Children's Hospital\", 'ast': 'Finnegan', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 110, 'site': \"Norton Children's Hospital\", 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 111, 'site': \"Oklahoma Children's Hospital\", 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 112, 'site': 'ChristianaCare', 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 202, 'site': 'University of Nebraska', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 203, 'site': 'University of South Florida - Tampa', 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 204, 'site': 'Good Samaritan Hospital', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 205, 'site': 'Hospital of the University of Pennsylvania (HUP)', 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 209, 'site': 'Pennsylvania Hospital (PAH)', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 210, 'site': 'AtlantiCare', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 213, 'site': \"University of Cincinnati Children's Hospital\", 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 215, 'site': 'University of New Mexico', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 216, 'site': 'University of Rochester', 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 217, 'site': 'University of Utah', 'ast': 'ESC', 'Dosing Approach': 'Scheduled Opioid Taper' },\r\n { 'siten': 303, 'site': 'St. Elizabeth Healthcare', 'ast': 'ESC', 'Dosing Approach': 'Symptom-Based' },\r\n { 'siten': 310, 'site': 'Kettering Health', 'ast': 'Finnegan', 'Dosing Approach': 'Scheduled Opioid Taper' }]\r\n\r\n var bar_colors = { 'Finnegan': '#982568', 'ESC': '#532565' };\r\n var dosing_colors = { 'Scheduled Opioid Taper': '#532565', 'Symptom-Based': '#982568' };\r\n // console.log(Object.values(bar_colors))\r\n\r\n // official colors\r\n var off_colors = {\r\n 'Purple': '#532565',\r\n 'Magenta': '#982568',\r\n 'Red': '#981f32',\r\n 'Coral': '#e07c3e',\r\n 'Orange': '#bf362e',\r\n 'Purple-Tint': '#c0b3c5',\r\n 'Magenta-Tint': '#dabeca',\r\n 'Red-Tint': '#dbb9b3',\r\n 'Coral-Tint': '#eecdcb',\r\n 'Orange-Tint': '#f5d8c3'\r\n }\r\n\r\n // off_colors_alt = {\r\n // 'Purple':'#532565', 'Purple-Tint': '#c0b3c5',\r\n // 'Magenta':'#982568', 'Magenta-Tint': '#dabeca',\r\n // 'Red': '#981f32', 'Red-Tint': '#dbb9b3',\r\n // 'Coral': '#e07c3e', 'Coral-Tint': '#eecdcb',\r\n // 'Orange': '#bf362e', 'Orange-Tint': '#f5d8c3'\r\n // }\r\n\r\n\r\n // globally remove Highcharts watermark\r\n Highcharts.setOptions({ credits: { enabled: false } });\r\n\r\n\r\n\r\n // count by opt_sites from json\r\n var OPT_data = opt_sites.map(siteObj => {\r\n var count = enrollmentData.filter(obj =>\r\n obj.items.some(\r\n item =>\r\n obj.siteName === siteObj.site\r\n )).length;\r\n return {\r\n ...siteObj,\r\n count: count,\r\n color: bar_colors[siteObj.ast]\r\n };\r\n }).sort((a, b) => b.count - a.count);\r\n\r\n\r\n // 1a - barchart data\r\n var OPT_enroll = Object.values(\r\n opt_sites.reduce((acc, siteObj) => {\r\n var count = enrollmentData.filter(obj =>\r\n obj.items.some(\r\n item =>\r\n obj.siteName === siteObj.site\r\n )).length;\r\n if (!acc[siteObj.ast]) {\r\n acc[siteObj.ast] = {\r\n name: siteObj.ast,\r\n data: [],\r\n color: bar_colors[siteObj.ast]\r\n };\r\n }\r\n acc[siteObj.ast].data.push({\r\n name: siteObj.site,\r\n y: count\r\n });\r\n return acc;\r\n }, {}))\r\n .map((series: any) => ({\r\n ...series,\r\n data: series.data.sort((a, b) => b.y - a.y)\r\n }));\r\n\r\n // 1b - Highcharts barchart\r\n Highcharts.chart('opt_barchart_1', {\r\n chart: { type: 'bar', height: 600 },\r\n title: { text: 'Enrollment by Assessment Approach' },\r\n xAxis: { type: 'category', allowDecimals: false },\r\n yAxis: { title: { text: 'Count' }, allowDecimals: false },\r\n legend: {\r\n enabled: true, labelFormatter: function () {\r\n var total = 0;\r\n for (var i = this.yData.length; i--;) { total += this.yData[i]; };\r\n return this.name + '- Total: ' + total;\r\n } },\r\n plotOptions: { series: { borderWidth: 0, dataLabels: { enabled: true } } },\r\n series: OPT_enroll\r\n });\r\n\r\n\r\n\r\n\r\n // 2a - stacked barchart data\r\n const OPT_dosing: any[] = [...new Set(OPT_data.map((obj: any) => obj['Dosing Approach']))].map((x: any) => {\r\n return {\r\n name: x,\r\n data: Object.values(OPT_data.reduce((acc: any, obj: any) => {\r\n if (!acc[obj.ast]) {\r\n acc[obj.ast] = {};\r\n }\r\n if (!acc[obj.ast][obj['Dosing Approach']]) {\r\n acc[obj.ast][obj['Dosing Approach']] = 0;\r\n }\r\n acc[obj.ast][obj['Dosing Approach']] += obj.count;\r\n return acc;\r\n }, {})).map((ast: any) => ast[x] || 0)\r\n };\r\n });\r\n\r\n // 2b - Highcharts stacked_barchart \r\n Highcharts.chart('opt_barchart_2', {\r\n chart: { type: 'bar', borderWidth: 1, borderColor: '#000000' },\r\n title: { text: 'Enrollment by Assessment and Dosing Approach' },\r\n xAxis: {\r\n categories: [...new Set(OPT_data.map((obj: any) => obj.ast))],\r\n type: 'category',\r\n allowDecimals: false\r\n },\r\n yAxis: { title: { text: 'Count' }, tickInterval: 10, allowDecimals: false },\r\n legend: {\r\n enabled: true, labelFormatter: function () {\r\n var total = 0;\r\n for (var i = this.yData.length; i--;) { total += this.yData[i]; };\r\n return this.name + '- Total: ' + total;\r\n } },\r\n plotOptions: {\r\n series: {\r\n stacking: 'normal',\r\n borderWidth: 0,\r\n dataLabels: { enabled: true },\r\n pointPadding: .9,\r\n groupPadding: 1\r\n }\r\n },\r\n colors: Object.values(dosing_colors)\r\n , //[ '#e07c3e', '#982568'],\r\n series: OPT_dosing\r\n });\r\n\r\n\r\n\r\n\r\n\r\n // barchart_3 data \r\n var PT_PRIM_EXYN__count: any = hospitalStayData.reduce((acc, record) => {\r\n record.items.forEach(item => {\r\n if (item.itemName === \"PT_PRIM_EXYN\") {\r\n acc[item.itemValue] = (acc[item.itemValue] || 0) + 1;\r\n }\r\n });\r\n return acc;\r\n }, {});\r\n\r\n const treatment_ticks: number = Math.round(Object.values(PT_PRIM_EXYN__count).reduce((a: number, b: number) => a + b, 0) as number / 4);\r\n \r\n\r\n // Highcharts barchart_3\r\n Highcharts.chart('opt_barchart_3', {\r\n chart: { type: 'bar', borderWidth: 1, borderColor: '#000000' },\r\n title: { text: 'Enrollment by Treatment Status' },\r\n xAxis: { type: 'category', allowDecimals: false, title: { text: '' }, labels: { enabled: false } }, //categories: ['Yes', 'No'] },\r\n yAxis: {\r\n title: { text: 'Count' },\r\n tickInterval: treatment_ticks,\r\n allowDecimals: false\r\n },\r\n tooltip: {\r\n formatter: function () {\r\n return '' + this.series.name + ': ' + this.y;\r\n }\r\n },\r\n series: [\r\n {\r\n name: 'Pharmacologically Treated',\r\n data: [{ y: PT_PRIM_EXYN__count['1'] || 0 }],\r\n color: '#982568'\r\n },\r\n {\r\n name: 'NOT Pharmacologically Treated',\r\n data: [{ y: PT_PRIM_EXYN__count['2'] || 0 }],\r\n color: '#532565'\r\n }\r\n ],\r\n caption: \"Total number may not add to total enrolled.\"\r\n });\r\n // var bar_colors = {'Finnegan': '#eecdcb', 'ESC': '#532565'};\r\n // console.log(Object.values(bar_colors))\r\n\r\n\r\n\r\n // Piechart data\r\n\r\n var race_decode = {\r\n '1': 'Black', '2': 'American Indian or Alaskan Native', '3': 'Native Hawaiian or Other Pacific Islander',\r\n '4': 'White', '5': 'Asian', '6': 'Unknown', '7': 'More than one race selected'\r\n }\r\n var race_array = enrollmentData.map(record => record.items\r\n .filter(i => i.itemName.startsWith('DM_RACE___')\r\n && i.itemValue === '1')\r\n .map(i => i.itemName))\r\n // .map(i => i.split('___')[1]))\r\n var race_array2 = enrollmentData.map(record => {\r\n var races = record.items\r\n .filter(i => i.itemName.startsWith('DM_RACE___') && i.itemValue === '1')\r\n .map(i => i.itemName)\r\n .map(i => i.split('___')[1]);\r\n return races.length > 1 ? '7' : races[0]; //parseInt(7) : parseInt(races[0]);\r\n });\r\n\r\n\r\n\r\n var eth_vals = ['Hispanic or Latino', 'Not Hispanic or Latino', 'Unknown']\r\n var ethnicity_array = enrollmentData.reduce((acc, record) => [\r\n ...acc,\r\n ...record.items\r\n .filter(item => item.itemName.startsWith('DM_ETHNI'))\r\n .map(item => item.itemValue)\r\n ], []);\r\n\r\n const counts1: any = race_array2.reduce((acc: any, val: any) => ({ ...acc, [val]: (acc[val] || 0) + 1 }), {});\r\n const counts2: any = ethnicity_array.reduce((acc: any, val: any) => ({ ...acc, [val]: (acc[val] || 0) + 1 }), {});\r\n const decoded_counts1: any = Object.entries(counts1).reduce((acc: any, [key, value]: any) => ({ ...acc, [race_decode[key]]: value }), {});\r\n const decoded_counts2: any = Object.entries(counts2).reduce((acc: any, [key, value]: any) => ({ ...acc, [eth_vals[key - 1]]: value }), {}); // -1!\r\n var pie_data1: any = Object.entries(decoded_counts1).map(([name, y]) => ({ name, y }));\r\n var pie_data2: any = Object.entries(decoded_counts2).map(([name, y]) => ({ name, y }));\r\n\r\n // Highcharts piecharts\r\n\r\n var pie_size = 169;\r\n\r\n Highcharts.chart('pie_chart_1', {\r\n chart: { type: 'pie', borderWidth: 1, borderColor: '#000000' },\r\n title: { text: 'Race Distribution', y: 100 },\r\n series: [{ data: pie_data1, showInLegend: true }],\r\n legend: {\r\n enabled: false\r\n //floating: true, //x:-200,\r\n //layout: 'horizontal', align: 'middle', verticalAlign: 'bottom'\r\n },\r\n colors: Object.values(off_colors),\r\n plotOptions: { pie: { size: pie_size } },\r\n tooltip: { formatter: function () { return '' + this.point.name + ': ' + this.y + ' (' + Math.round(this.point.percentage) + '%)'; } }\r\n })\r\n\r\n Highcharts.chart('pie_chart_2', {\r\n chart: { type: 'pie', borderWidth: 1, borderColor: '#000000' },\r\n title: { text: 'Ethnicity Distribution', y: 100 },\r\n series: [{ data: pie_data2, showInLegend: true }],\r\n legend: {\r\n enabled: false\r\n //floating: true, //x:-100,\r\n //layout: 'horizontal', align: 'middle', verticalAlign: 'bottom'\r\n },\r\n colors: Object.values(off_colors).filter((val, idx) => idx % 3 == 1),\r\n plotOptions: { pie: { size: pie_size } },\r\n tooltip: { formatter: function () { return '' + this.point.name + ': ' + this.y + ' (' + Math.round(this.point.percentage) + '%)'; } }\r\n })\r\n });\r\n\t}\r\n}","\r\nexport class SecureConsortiumPage {\r\n\r\n constructor() {\r\n\r\n //document.ready\r\n $(() => {\r\n\r\n\r\n });\r\n }\r\n\r\n}","\r\nexport class SecureGalleryPage {\r\n\r\n constructor() {\r\n\r\n //document.ready\r\n $(() => {\r\n\r\n\r\n });\r\n }\r\n\r\n}","\r\n//var dt = require('datatables.net')(window, $);\r\n\r\n\r\n// SCRIPTS\r\n\r\n//to make discoverable from cshtml\r\nimport { SecureHomePage } from './home/home.page'; export { SecureHomePage };\r\nimport { ProjectDirectoryPage } from './communications/directory.page'; export { ProjectDirectoryPage };\r\nimport { SecureGalleryPage } from './resources/gallery.page'; export { SecureGalleryPage };\r\nimport { SecureConsortiumPage } from './resources/consortium.page'; export { SecureConsortiumPage };\r\nimport { SecureAnnouncementsPage } from './announcements/announcements.page'; export { SecureAnnouncementsPage };\r\nimport { EnrollmentPage } from './reports/enrollment/scripts/observational-enrollment'; export { EnrollmentPage };\r\nimport { OptNowActivationPage } from './reports/activation/scripts/optnow-activation'; export { OptNowActivationPage };\r\nimport { CalculatorPage } from './studies/phase2/scripts/calculator.page'; export { CalculatorPage };\r\nimport { OptNowEnrollmentPage } from './reports/enrollment/scripts/optnow-enrollment'; export { OptNowEnrollmentPage };\r\n\r\n// STYLES\r\nimport 'jstree/dist/themes/default/style.min.css';\r\nimport './home/home.scss';\r\nimport './resources/gallery.scss';\r\nimport './resources/consortium.scss';\r\nimport './announcements/announcements.scss';\r\nimport './reports/enrollment/observational.scss';\r\nimport './reports/activation/optnow.scss';\r\nimport 'tempusdominus-bootstrap-4/build/css/tempusdominus-bootstrap-4.min.css';","import 'tempusdominus-bootstrap-4';\r\n\r\nexport class CalculatorPage {\r\n\tconstructor() {\r\n\t\t$(() => {\r\n\t\t\t($('#dose4') as any).datetimepicker({ icons: { time: \"fas fa-clock\", date: \"fas fa-calendar\", up: \"fas fa-arrow-up\", down: \"fas fa-arrow-down\" }, sideBySide: true });\r\n\t\t\t($('#dose3') as any).datetimepicker({ icons: { time: \"fas fa-clock\", date: \"fas fa-calendar\", up: \"fas fa-arrow-up\", down: \"fas fa-arrow-down\" }, sideBySide: true });\r\n\t\t\t($('#dose2') as any).datetimepicker({ icons: { time: \"fas fa-clock\", date: \"fas fa-calendar\", up: \"fas fa-arrow-up\", down: \"fas fa-arrow-down\" }, sideBySide: true });\r\n\t\t\t($('#dose1') as any).datetimepicker({ icons: { time: \"fas fa-clock\", date: \"fas fa-calendar\", up: \"fas fa-arrow-up\", down: \"fas fa-arrow-down\" }, sideBySide: true });\r\n\t\t\t($('#calculateButton') as any).click(() => {\r\n\t\t\t\t// make sure dose1, dose2, dose3, and dose4 are filled out\r\n\t\t\t\tif (($('#dose1Input') as any).val() === '' || ($('#dose2Input') as any).val() === '' || ($('#dose3Input') as any).val() === '' || ($('#dose4Input') as any).val() === '') {\r\n\t\t\t\t\t$('#taperBody').html(\"Please fill out all four doses before calculating the taper.\");\r\n\t\t\t\t\t$('#taperDialog').modal('show');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t// grab the date from dose4 and dose1\r\n\t\t\t\tconst dose4 = new Date(($('#dose4Input') as any).val());\r\n\t\t\t\tconst dose1 = new Date(($('#dose1Input') as any).val());\r\n\t\t\t\t// calculate the difference\r\n\t\t\t\tconst diff = Math.abs(dose4.getTime() - dose1.getTime()) / 1000;\r\n\t\t\t\tif (diff > 86400) {\r\n\t\t\t\t\t$('#taperBody').html(\"The next planned dose will NOT be the fourth dose this baby receives in 24 hours. Please proceed with symptom-based dosing with the next planned dose (Dose 4).\");\r\n\t\t\t\t\t$('#taperDialog').modal('show');\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\t$('#taperBody').html(\"The administration of the 4th dose entered in this calculator requires a transition to a scheduled opioid taper.Please initiate your site’s scheduled opioid taper with administration of this 4th dose.\");\r\n\t\t\t\t\t$('#taperDialog').modal('show');\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t});\r\n\t}\r\n\r\n}\r\n"],"names":["root","factory","exports","module","define","amd","self","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","constructor","$","this","dataTable","DataTable","autoWidth","order","info","paging","scrollX","buttons","extend","text","titleAttr","charset","exportOptions","columns","action","dt","node","config","copyVisibleEmailToClipboard","empty","html","css","on","settings","setUsersFoundLabel","rows","search","count","initializeFilters","index","selectId","filterIndex","uniqueValues","delimiter","dropdownSourceIndex","column","data","unique","parts","split","part","trim","length","includes","push","sort","a","b","toLowerCase","localeCompare","forEach","element","append","Option","clickedIndex","isSelected","previousValue","values","val","join","console","log","draw","selectpicker","dropupAuto","selectedTextFormat","countSelectedText","numSelected","numTotal","resetFilters","visibleUsers","toArray","emailList","Array","item","emailListString","navigator","clipboard","writeText","then","modal","alert","initializeCounters","waypoint","handler","counter","CountUp","textContent","useEasing","duration","error","start","destroy","offset","Highcharts","siteData","tab_blue","tab_orange","df_sites","df_cols","slice","start_dates","cols","gantt_vals","k","filter","j","reduce","acc","c","gantt_color","x","datadata","i","name","end_dt","start_dt","y","end","color","cols_plus","ganttChart","credits","enabled","title","subtitle","series","yAxis","categories","xAxis","labels","align","grid","tickInterval","max","visible","tooltip","useHTML","formatter","point_date","entries","key","Math","round","dateFormat","task_comp","String","site_task_comp","site_task_comp_sort","chart","type","height","legend","endOnTick","min","colors","plotOptions","bar","colorByPoint","IRB_gantt_vals","IRB_gantt_color","IRB_cols","IRB_cols_plus","dd2","chart_3","showLastLabel","resize_funct","y_offset","chartWidth","update","window","addEventListener","raceData","ethnicData","siteNames","siteEnrollmentData","siteScoringData","siteSelection","formCompletes","siteScoreTreatment","formCompletions","page","siteSelect","each","Id","Obj","attr","Name","setOptions","marginLeft","marginBottom","width","stacking","treatmentChart","crosshair","units","headerFormat","pointFormat","footerFormat","shared","pointPadding","borderWidth","filterScoringTreatment","completionsChart","filterFormCompletions","sel","site","parseInt","seriesData","redraw","completionsData","filterRaceData","raceChart","filterEthnicData","ethnicChart","plotBackgroundColor","plotBorderWidth","plotShadow","styledMode","accessibility","point","valueSuffix","pie","allowPointSelect","cursor","dataLabels","format","ethnicities","entry","Ethnicities","Site","races","Races","splice","output1","output2","treatment","period","siteSurvey","providerSurvey","SiteSurvey","ProviderSurvey","enrollmentData","hospitalStayData","opt_sites","bar_colors","off_colors","OPT_data","siteObj","obj","items","some","siteName","ast","OPT_enroll","allowDecimals","labelFormatter","total","yData","OPT_dosing","Set","borderColor","groupPadding","PT_PRIM_EXYN__count","record","itemName","itemValue","treatment_ticks","caption","race_decode","race_array2","startsWith","eth_vals","ethnicity_array","counts1","counts2","decoded_counts1","value","decoded_counts2","pie_data1","pie_data2","showInLegend","size","percentage","idx","SecureHomePage","ProjectDirectoryPage","SecureGalleryPage","SecureConsortiumPage","SecureAnnouncementsPage","EnrollmentPage","OptNowActivationPage","CalculatorPage","OptNowEnrollmentPage","datetimepicker","icons","time","date","up","down","sideBySide","click","dose4","Date","dose1","abs","getTime"],"sourceRoot":""}