rhoinc / safety-histogram Goto Github PK
View Code? Open in Web Editor NEWHistogram showing distribution of lab measures, vital signs and other measures related to safety in clinical trials.
License: MIT License
Histogram showing distribution of lab measures, vital signs and other measures related to safety in clinical trials.
License: MIT License
Use the Results over Time as a prototype to update the settings merge process
From Jack
The variable called "Lab Tests" does not match other charts, so please change it to "Measure"
Bug introduced with webcharts v1.9
From Meagan Spychala on 9/19:
"It would be really useful if the axes’ ranges stayed consistent when using a filter. For example, we were looking at a longitudinal graphic of systolic blood pressure across several sites, but each site’s graphic had an updated vertical range to fit that site, it did the use aggregate of the data (i.e. if the SBP for the study as a whole was 70 to 160, but a site’s range was 90-120, the 90-120 would be the vertical axis range for that site only) . Because the range of the vertical (SBP) and horizontal (Visit) axes can change, it is harder to see if the sites were in line with each other or if there was an outlying site. I think it’s appropriate to have the range of the axes change depending on the measure (for example, SBP vs. DBP), but once you pick a measure, the axes’ range should be held constant based upon the overall data to be able to identify potential trends."
throw a console.warning() instead
Add feature to sort by site, so they can see AEs (and vitals, labs, etc.) from one site at a time
This line of wrapper.js is using the outdated config names.
Don't bomb if Sex and Race variables aren't provided
The Normal range control shouldn't be active/visible when no "normal range" data is available for the measure
For example, the ability to filter on "Active" vs. "Discontinued"
Change default to null
for filters
property, but create and example to demonstrate how to create an instance of the chart with custom filters.
@samussiah did something in the changes since v1.2.0 break backwards compatability? If not, I'd recommend we change version in package.json from 2.0.0 to 1.3.0.
...from control-label to wc-control-label to keep in sync with webcharts v1.10.0.
d3.selectAll('.wc-controls .control-label')
in the developer console and verify that the selection returns 0 nodes.modeled after https://github.com/RhoInc/ae-timelines/wiki
There is a standalone example saved at /projects/181 that we will want use in the wiki and move to a gist.
rendererSpecificSettings
in src/defaultSettings.js
with settings-schema.json
in the settings-schema branch. There should be properties in settings-schema.json
that match up with variables in the rendererSpecificSettings section of src/defaultSettings.js
.Be able to flag and remove records that have been removed from the chart (filtering, highlighting, ??)
Jeremy to prototype
Auto-scaling was throwing people off, so add ability to set limits. Or toggle between log axis and linear.
In test webcharts version 1.9.0-RC3, I noticed a pagination bug, where you can click on a bar in the chart with lots of records, page through the table for several pages, and then if you click on a bar with fewer records, it seems to retain the pagination, even if the new table does not have that many pages, so you end up with an empty table. It shows the correct number of records, and you can click a page or arrow button to be taken to a page with records on it, but the table should be properly refreshed when you click on a new bar.
Steps to recreate:
webcharts is being updated with a chart.destroy() method. Lets add support for that functionality here as well.
destroy()
is a webcharts method that in this renderer also destroys the listing.per @bzkrouse , causing issues in https://github.com/RhoInc/safetyExploreR
Right now, the renderer silently removes controls for filters that aren't found in the data set in this bit of code
Let's put in a console.warn() whenever this happens.
instead of observation +/- 1, observation +/- observation*.05
Then the only outstanding question for Graphics is why the occasional discontinuous histograms for continuous data. For some, at least, it may have to do with the way the reported values are grouped for graphing. For sodium (bottom paste, below), for example, the lab reports in whole numbers, so there will be many 136s, 137s, 138s, etc; but the graph parses at 135.400-136.240, 136.240-137.080, [gap], 137.920-138.760. The gap, then, would be explained because there don’t exist any reported values between the whole numbers. Let’s see if that works on albumin … one moment please … Yep: the gaps are between whole numbers. So… would be good if the data could all be cut across actual reported values rather than between them, but this is not high priority because I can obviously still read them; just won’t look as good if/when we send them out.
No longer supporting react/chart-foundry in core library.
Leave a comment
Steps to recreate:
Expected behavior - table header resets to "Click a bar to see details." when filtering.
Allow users to subset on which tests are displayed (using the chart template)
npm run build-chf
is failing for the current codebase :(
Not sure the best way to handle this, but it would be good to have the number of relevant study participants shown somewhere on the chart. Maybe add a footnote for "X of X participants shown in this view"
Normal range columns are included in the settings object, but I don't think we use them.
"I’m thinking we’d want to let you manually update min and max for the x-axis (the range of values) on the histogram using something very similar to the new controls in the outlier explorer. When the x-axis changes, we would have the y-axis (the counts) automatically update to match the displayed data." - From Jeremy and Jack's email exchange on 12/7
Confirm basic functionality and new features are working as expected in examples shown below:
Examples using v2.0.0 Release Candidate
Basic Functionality (Tested every release)
New Functionality (Tested in V2.0.0 only)
Confirm that the Measure variable is the only filter available
(#28, #18) Confirm that the following filters appear in the example (measure, site, visitnum, sex, race)
(#27) Confirm table header resets when a new filter is applied: test by clicking a bar to expand the table, filter on a variable, check that the table header now says "Click a bar for details."
(#8) Confirm that linked table shows consistent set of default columns when filtering
(#20) Confirm # of enrolled/randomized participants is visible in chart header
(#12) Confirm the ability to apply normal ranges by checking the Normal range box: a range rectangle should appear for each participant
(#11) Confirm that the bars are not cut off on either end of the chart
(#38) Confirm that the option to select normal ranges isn't available when the data doesn't include normal ranges
something like
this.config.x.format = range > 5
? '1d'
: range > .5
? '.1f'
: range > .05
? '.2f'
: '.3f';
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.