var single_width = 420; var single_height = 300; var margins = {top: 8, right: 8, bottom: 20, left: 35}; var meta1 = [ {col: "STUDYID", label: ""}, {col: "RAND", label: "Randomized"}, {col: "SCREEN", label: "Screened"}, {col: "CAT", label: ""}, {col: "TARGET", label: "Target"} ] var site_order = ["02","08","09","10","55","60","68","70","80","81","82","83","90", "95"]; var visit_order = ["D0","W2","W4","W8","W12","W16","W20","W24","W28","W32","W36","W40","W44","W48"]; ///////////////////// // Top Right Panel // ///////////////////// var dataElementTL = ".gg-dash-item.top.left"; var dataPathTL= "sample_SCRandRAND.csv" var settingsTL = { "resizable":false, "width":single_width, "height":single_height, "margin":margins, "y":{ "column":"SITEID", "type": "ordinal", "label":" ", "behavior": "firstfilter", }, "x":{ "column":"VALUE", "label":" ", "type": "linear", }, "marks":[ { "type":"circle", "per":["SITEID","TYPE"], "values": { "TYPE": ["Target"] }, "attributes":{"fill":"black","stroke":"black"} }, { "type":"bar", "split":"TYPE", "arrange":"nested", "per":["SITEID","TYPE"], "values": { "TYPE": ["Randomized","Screened"] } } ], "color_by":"TYPE", "colors":["#2b8cbe","#a6bddb","black"], "legend":{ "label":"" } } var instanceTL = webCharts.createChart(dataElementTL+" .gg-dash-item-content", settingsTL) instanceTL.on("layout",function(){ console.log(this) }) instanceTL.on("resize",function(){ //modify legend to include totals var total_rand = d3.sum(this.filtered_data.filter(function(d){return d.TYPE=="Randomized"}),function(d){return d.VALUE}); var total_scr = d3.sum(this.filtered_data.filter(function(d){return d.TYPE=="Screened"}),function(d){return d.VALUE}); this.legend.selectAll(".legend-label").filter(function(f){return f.label === "Randomized"}) .text("Randomized ("+total_rand+")") this.legend.selectAll(".legend-label").filter(function(f){return f.label === "Screened"}) .text("Screened ("+total_scr+")"); //add tooltips to y axis labels var chart=this var ticks = this.svg.select(".y.axis").selectAll(".tick").append("title") .text(function(d){ var match = chart.filtered_data.filter(function(f){return f["LABEL"] === d})[0]; return match["MOUSEOVER"]; }); }); d3.csv(dataPathTL, function(e,d){ instanceTL.init(d); }) ////////////////////// // Top Middle Panel // ////////////////////// var dataElementTM = ".gg-dash-item.top.middle"; var dataPathTM = "sample_VIS.csv" var settingsTM = { "resizable":false, "width":single_width, "height":single_height, "margin":margins, "y":{ "type": "linear", "behavior": "firstfilter" }, "x":{ "column":"AVISITAS", "type": "ordinal", "label":"", "order":visit_order }, "marks":[ { "arrange":"stacked", "split":"CAT", "type":"bar", "per":["AVISITAS"], "summarizeY":"percent", "tooltip":"$y" } ], "color_by":"CAT", "colors":["#e34a33",'#fc8d59','rgb(102,194,165)',"#fecc5c",'rgb(43,131,186)'], "legend":{ "label":"", "order": ["Missed", "Out of Window", "In Window", "Overdue", "Expected"] } } var controlsTM = webCharts.createControls(dataElementTM+" .gg-dash-item-title", { location: "top", inputs: [ {type: "subsetter", value_col: "SITENAME", label: "Site"}, {label: "", type:"radio", option: "marks[0].summarizeY", values: ["percent", "count"], relabels: ["%", "N"]} ] } ); var instanceTM = webCharts.createChart(dataElementTM+" .gg-dash-item-content", settingsTM, controlsTM) d3.csv(dataPathTM, function(e,d){ instanceTM.init(d); }) ///////////////////// // Top Right Panel // ///////////////////// var dataElementTR = ".gg-dash-item.top.right"; var dataPathTR = "sample_QUERY.csv" var settingsTR = { "resizable":false, "width":single_width, "height":single_height, "margin":margins, "y":{ "type": "linear", "behavior": "firstfilter" }, "x":{ "column":"SITEID", "type": "ordinal", "label":"", "order":site_order }, "marks":[ { "arrange":"stacked", "split":"CAT", "type":"bar", "per":["SITEID"], "summarizeY":"percent", "tooltip":"$y" } ], "color_by":"CAT", "colors":['rgb(102,194,165)', "#fecc5c", "#e34a33"], "legend":{ "label":"", "order": ["Resolved", "Outstanding <= 90 days", "Outstanding > 90 days"] } } var controlsTR = webCharts.createControls(dataElementTR+" .gg-dash-item-title", { location: "top", inputs: [ {label: "", type:"radio", option: "marks[0].summarizeY", values: ["percent", "count"], relabels: ["%", "N"]} ] } ); var instanceTR = webCharts.createChart(dataElementTR+" .gg-dash-item-content", settingsTR, controlsTR) d3.csv(dataPathTR, function(e,d){ instanceTR.init(d); }) /////////////////////// // Bottom Left Panel // /////////////////////// var dataElementBL = ".gg-dash-item.bottom.left"; var dataPathBL = "sample_ENROLL.csv" var settingsBL = { "resizable":false, "width":single_width, "height":single_height, "margin":margins, "y":{ "column":"VALUE", "type": "linear", "behavior": "firstfilter", "label":"" }, "x":{ "column":"DATE", "type": "time", "label":"", "format":"%b-%y" }, "marks":[ { "arrange":"stacked", "type":"line", "per":["TYPE"], "summarizeY":"sum", "tooltip":"$y" } ], "date_format":"%d-%b-%y", "color_by":"TYPE", "colors":["#2b8cbe","#a6bddb" ], "legend":{ "label":"", } } var controlsBL = webCharts.createControls(dataElementBL+" .gg-dash-item-title", { location: "top", inputs: [ {type: "subsetter", value_col: "SITENAME", label: "Site"} ] } ); var instanceBL = webCharts.createChart(dataElementBL+" .gg-dash-item-content", settingsBL, controlsBL) d3.csv(dataPathBL, function(e,d){ instanceBL.init(d); }) ///////////////////////// // Bottom Middle Panel // ///////////////////////// var dataElementBM = ".gg-dash-item.bottom.middle"; var dataPathBM = "sample_DEVS.csv" var settingsBM = { "resizable":false, "width":single_width, "height":single_height, "margin":margins, "y":{ "type": "linear", "behavior": "firstfilter" }, "x":{ "column":"SITEID", "type": "ordinal", "label":"", "order":site_order, "domain":site_order }, "marks":[ { "arrange":"stacked", "split":"CAT", "type":"bar", "per":["SITEID"], "summarizeY":"count", "tooltip":"$y" } ], "color_by":"CAT", "colors":['rgb(254,229,217)','rgb(252,174,145)','rgb(251,106,74)','rgb(222,45,38)','rgb(165,15,21)'], "legend":{ "label":"", "order": ["1-3 mon.", "4-6 mon.", "7-9 mon.", "10-12 mon.", "> 1 yr."].reverse() } } var instanceBM = webCharts.createChart(dataElementBM+" .gg-dash-item-content", settingsBM) d3.csv(dataPathBM, function(e,d){ instanceBM.init(d); }) //////////////////////// // Bottom Right Panel // //////////////////////// var dataElementBR = ".gg-dash-item.bottom.right"; var dataPathBR = "sample_FORMS.csv" var settingsBR = { "resizable":false, "width":single_width, "height":single_height, "margin":margins, "y":{ "type": "linear", "behavior": "firstfilter" }, "x":{ "column":"SITEID", "type": "ordinal", "label":"", "order":site_order, "domain":site_order }, "marks":[ { "arrange":"stacked", "split":"CAT", "type":"bar", "per":["SITEID"], "summarizeY":"count", "tooltip":"$y" } ], "color_by":"CAT", "colors":['rgb(102,194,165)', "#fecc5c", "#e34a33"], "legend":{ "label":"", "order": ["Received", "Outstanding <= 90 days", "Outstanding > 90 days"] } } var controlsBR = webCharts.createControls(dataElementBR+" .gg-dash-item-title", { location: "top", inputs: [ {label: "", type:"radio", option: "marks[0].summarizeY", values: ["percent", "count"], relabels: ["%", "N"]} ] } ); var instanceBR = webCharts.createChart(dataElementBR+" .gg-dash-item-content", settingsBR, controlsBR) d3.csv(dataPathBR, function(e,d){ instanceBR.init(d); })