Changelog
Source:NEWS.md
james 1.7.3 (August 2025)
This is a maintenance release that includes various infrastructure updates, enhancements to the OpenAPI specification, and minor bug fixes.
New features
-
Adds the template
inst/spec/openapi.in.yamland the functionjames:::update_openapi_spec(), which updates the OpenAPI template to the current JAMES version and saves it asinst/spec/openapi.yaml. This enables:- Easy maintenance of the OpenAPI specification.
- Serving API documentation directly from the JAMES server at
https://<host>/docs, removing the dependency on SwaggerHub.
- Easy maintenance of the OpenAPI specification.
Includes versioned JSON schemas (
bds_vx.y.json) for data exchange, now bundled with the package and downloadable fromhttps://<host>/schemas.Updates all
Rand JavaScript code to default tolocalhost:8080as the OpenCPU server URL (previouslylocalhost:80). Port 8080 is used to prevent confusion with Docker or system-level port 80.Adds
qmd/JAMES_version_maintaince.qmd, a Quarto file to be run after each version change. This script updates version numbers across the package, including the OpenAPI spec,index.html, and thegetting_started.Rmdvignette.
Infrastructure and development changes
Updates the package to use R 4.5.0.
-
Cleans
renv.lockby removing all development-only packages (e.g.,"roxygen2","devtools","desc","evaluate","jamesdemodata","pkgload") and their dependencies. This reduces the package’s footprint in production environments.After running
renv::restore()to install production dependencies, calljames:::install_dev_packages()once to install development tools. Do not include development packages inrenv.lock. Only snapshot production dependencies defined in theDESCRIPTIONfile usingrenv::snapshot(). -
Adds a test to
test-request_site()that demonstrates:- How
request_site()fails on nested data uploads when usinglocalhost. - A working alternative solution.
This change ensures that the
jamesdemoShiny app can now also demonstrate a fully functioning localhost server. - How
Adapts links to reflect the change of BDS-maintenance from NCJ TO NICTIZ
Updates
getting_started.Rmdto work with localhost:8080 and show two-step data upload
james 1.7.2 (Feb 2025)
- Evades a problem in
vignettes/articles/getting_started.Rmdthat occasionally occurs when thevalidate = TRUEflag is active
james 1.7.1 (Feb 2025)
- Resolves a bug in the de-duplication of parental data in BDS field 63. The
bdsreader 0.28.0package now returns the correct data for these cases. See https://github.com/growthcharts/bdsreader/issues/10.
james 1.7.0 (Nov 2024)
- Adds a target height indicator to height charts for ages 1–21 years and 0–21 years. The target height is calculated using the mid-parental height method described by Hermanussen and Cole (2004). This indicator is plotted at the age of 20.5 years and includes the 95% target height range. The calculation requires the heights of both biological parents (preferred) but can also be performed using only the mother’s height. The target height is adjusted based on the child’s sex and the population standard used for comparison. In the JAMES interface, the target height is automatically recalculated when the user selects a different population.
james 1.6.5 (Oct 2024)
- Solves an issue for same-sex couples with two mothers or two fathers in BDS 63 field . The
bdsreader 0.27.0package returns the correct data for these cases. See https://github.com/growthcharts/bdsreader/issues/10. - Adds a
inst/CITATIONfile for suggestion a citation to JAMES - Changes the return value of
versionto conform to swagger documentation
james 1.6.4 (May 2024)
- Solves an issue where the week sliders for pre-terms were not properly initialized in the case that the child has no data for the first four years (#6)
james 1.6.3 (May 2024)
Automatic donordata selection
- Simplifies individual prediction by means of curve matching. The user needs to specify “now” and “future” age and the number of desired matches, and JAMES automatically select appropriate donor data based on the “future” age. This update resolves two issues related to choice and updating of the donordata menu. (#5, #31)
james 1.6.2 (May 2024)
Better chart initialisation
- When the data contain only developmental data, JAMES initialises to the D-score chart (#33)
james 1.6.1 (May 2024)
Administrative updates and workflow improvements
- Updates to
R 4.4.0and associated libraries - Adds helper
james:::update_version_files()to automate references to current version (#32) - Adds a description of package update actions:
qmd/deploy_JAMES.rmd - Updates the GH workflow for package checking
james 1.6.0 (Apr 2024)
Visible changes
- Changes the version number so that the JAMES package has the same version as the JAMES docker
- Updates to
growthscreener 1.21.0, which changes weight for height criteria into weight-for-age - Changes the definition and processing of BDS 71 (parental birth land) to provide a string with 4 digits (was numeric and integer previously) to conform to alphanumeric typology in BDS (updates to
bdsreader 0.25.0) - Introduces throttling of 3 sec for checkbox, sliders and radio buttons
- Resolves the WFH sequence problem when later height is shorter (#24)
- Added JAMES, version and copyright note to “Meldingen”
- Removed the superfluous header “GROEIDIAGRAMMEN” from the left panel
- Adds a check and warning if the stored OpenCPU session does not contain data created by read_bds()
More informative Meldingen panel
JAMES now writes on Meldingen for rq1 (james::convert_tgt_chartadvice()) and rq2 (james::draw_chart()):
- The session ID
- The
ocpu.callfrom javascript to theRfunction - A summary of the response from
R - If present: warnings from
R - If present: messages from
R
Note: The update of “Meldingen” when the call failed does always work, so it may be that “Meldingen” displays the results from the last functional call instead of the failed call. If the request failed, there will be a pop-up window with a stack trace from R.
Internal changes
- Updates javascript, HTML and CSS for clarity and efficiency
- Moves styling from
index.htmltomain.css - Removes allegro blend (#20)
- Returns
txt,sessionandsitein blend response as strings (#21) - Transfers all event binding functionality from
index.htmlintostart.js - Refactors JS code https://github.com/growthcharts/james/pull/26/#issue-2197694510
- Updates all packages and renv to CRAN version March 2024
Simplified update logic
- The JS call to
update()(which draws the chart) is now removed from the call-back function ofrq1. Thus, initialization of controls and drawing of charts are now done independently and in parallel. This removes a nestedocpu.call()call, thereby improveing performance. - This change was undone in 1.5.6 because controls were not properly updated.
james 0.68.0
- Updates all packages, includes
growthscreener 1.20.0, which include language development guideline - Version meant to test and solve various implementation issues reported by K Nienhuis, okt 2023
james 0.67.0
- Adds support for the
validateandintermediateflags toupload_data() - Updates to faster and cleaner
bdsreader0.23.0 package
james 0.66.0
Solves problems with the javascript interface
The interface did not select the correct chart for
lollypopchildren. The problem was related to an incorrect gestational age field in the demodata. Thebdsreader::write_bds()was refactored. Alldemodatawere updated with the correct values.Made a change in the data schema:
Reference–>referenceto adhere tocamelCasein BDS schemaAdded a new possibility to run the javascript interface in the local environment. See
../notes/debug-javascript.qmdfor details.Repaired the
chartcodefield in the interface
james 0.63.0
- Resolves a problem with the weight-for-age references for 0-15 months
- Updates JAMES to latest R packages
james 0.62.0
- Add pathname in URL construction to make JAMES browsers requests reachable when URL is something like htpps://site/path/request.
james 0.59.2
- Version used to build james docker 1.3.0
- Update packages
- Make library snapshot, update
renv.lock
james 0.58.2
- Make
sitehostinrequest_site()work with URL path
james 0.58.0
- Changes to make an isolated
httpAPI - Allows for host names such as
http://myhost/modulewith a partial path - Reads
OpenCPUsession from the local file system - Removes
hostarguments to functions - Removes
hostparameter from javascript calls - Introduces
sitehostargument forrequest_site() - Update to
jamesclient 0.30.0
james 0.57.0
- Makes host definitions consistent everywhere as
http://myhost - Uses txt, host, session, format argument sequence in all functions
- Obtains current host and protocol from javascript URL
- Replaces
ulocsession indicator byuses(user session) - Adds arguments
scheme,hostandsessiontoconvert_tgt_chartadvice() - Renames
$keyto$sessionin JS
james 0.56.0
Breaking changes
- Uses generalised
httrresponse object as defined injamesclient 0.26.1 - Replaces
locparameter bysessionparameter - Adds deprecated notes about the
locparameter - Replaces all calls to
jamesclient::upload_txt()byjamesclient::james_post() - Update
renv.lockwithjamesclientand other R package updates - Adds processing steps for new
sessionquery argument
james 0.52.1
- Updates documentation of
request_blend()
james 0.52.0
- Breaking change is data structure
- Change data structure of
read_bds()to a simple list to ease standard JSON representation - Adapt various JAMES functions to work with change to simple list
- Update to
bdsreader 0.17.0 - Update
renv.lock
james 0.51.2
- Remove chart element from
request_blend()because of problems with the JSON representation
james 0.51.1
- Return chart from
request_blend()now contains SVG instead of grob
james 0.51.0
- Add
request_blend()that acts like a one-stop-shop - Deprecate
custom_list()in favour ofrequest_blend() - Add messages that indicate removal of deprecated function in Sept 2022
james 0.49.0
- Replace
screen_curves()andscreen_growth()byapply_screeners() - Make relevant screener parameters visible in james package
james 0.48.1
- Block passing of
\dotstochartbox::list_charts()
james 0.48.0
- Copy over all arguments from
bdsreader::read_bds()toupload_data() - Update documentation
- Do not pass down
\dotstojsonlite::FROMjson()
james 0.47.0
- Decrecate
fetch_loc()by the better-namedupload_data()
james 0.46.3
- Update docs for
fetch_loc()
james 0.46.0
- Adds
list_screeners()to produce overview of JGZ guidelines
james 0.45.3
- Solve authentication bug in
validate_chartcode()
james 0.45.2
- Vectorise and export
validate_chartcode()
james 0.44.1
- Adds a
version()function
james 0.43.3
- Prevent “the condition has length > 1 and only the first element will be used” in
draw_chart()
james 0.43.2
- Adds forgotten
authenticatetodraw_chart() - Updates renv.lock to
chartplotter 0.28.0
james 0.41.1
- Adds an explicit
authTokenargument forlist_charts()
james 0.42.0
- Refreshes the public key for Eaglescience integration
- Solves a problem with token validation
james 0.41.0
- Builds in fall back in case
pubkeyis not given toauthenticate - Changes argument
jwttoauthTokenfor easy integration
james 0.40.0
- Repairs a problem with
bdsreaderthat prevented D-score calculation with format = “2.0”
james 0.37.0
james 0.36.0
- Update to R 4.1.0
- Solves a bug that resulted from changes in the internal format of the grid package. The james package now depends on
grid 4.1.0and hence onR >= 4.1.
james 0.35.0
- Checks spelling and updates word list
- Adds token to GHA R-CMD-CHECK
- Removes LICENCE file, which makes CMD-CHECK complain
- Install V8 lib in linux workflow
james 0.33.0
- Tranfers repo to
growthchartsorganisation - Adds
schemaargument to users facing functions, setbds_schema_str.jsonas default - Adds automatic GHA R CMD check
- Cleans out error so that R CMD check runs without errors
james 0.32.0
- Breaking changes
- Replaces
jamestestdependency byjamesdemodatapackage - Replaces
minihealthdependency bybdsreaderpackage - Styles all files
- Switches to
markdowndocumentation - Uses
localhostin examples (localhost should be on)
james 0.29.1
- Simplifies testing condition in
draw_chart()
james 0.27.0
- Combines
lollypop.termandlollypop.pretermintolollypop - Simplifies donordata menu
- Renames “anthropometric” to “automatic”
james 0.25.0
Major changes:
- Splits the site output into “Groei”, “Ontwikkeling” and “Voorspeller”
- Add function
fetch_loc()as a replacement forupload_txt()andconvert_bds_ind() - Add function
screen_growth()as a replacement forscreen_curves() - Add function
calculate_dscore() - Add table of primary user functions to README
- Add table of legacy functions indicating preferred alternatives
- Run styler on all R sources
- Move out
upload_txt()tojamesclientpackage - Transfer toJSON() call in
custom_list()to its caller screen_curves(), socustom_list()doesn’t anymore JSONify the function result
Minor changes
- Add deprecated warnings to
convert_bds_ind(),draw_chart_bds,draw_chart_indandscreen_curves - Update tests to account for deprecated functions and arguments
- Solve problem in
screen_curves(). The function now always returns a JSON result
james 0.24.0
- Re-introduce legacy functions
draw_chart_bds,draw_chart_ind - Change
screen_curvesto old behavior, thus producing a list instead of a table - Re-introduce arguments
bds_data,location,ind_locand?ind=
james 0.23.0
- Major update incorporating the following breaking changes since
james 0.16.0
- JAMES now consistently uses the
txtparameter for JSON child data input, both in theRpackage and in the javascript. This replaces arguments likebds_dataandbds. - JAMES now consistently uses the
locparameters as the URL with uploaded child data. This replaces arguments namedlocation,ind_locandind. The query parameter?ind=in URL’s is outdated, and superseeded by?loc=. - All analysis functions now accept
txtandlocinput. When both are specified,txttakes precedence. - For consistency, function
upload_txtreplacesupdate_bds. - Function
screen_curvesno longer returns a list, but only the screening results, consistent with its naming. A new functioncustom_listtakes over this task fromscreen_curves. - Removed functions:
draw_chart_bds,draw_chart_ind,draw_plot(replaced bydraw_chart).
- Enhancements:
- The site accept now the
?txt=query parameter, which bypasses the need to upload data. - The new function
request_siteconstructs URL’s for personalised sites. - The new function
custom_listcreates a custom list of return values (formerly implemented byscreen_curves), and adds a new element containing the D-score from the last observation. - A new function
update_txt()to upload data to JAMES - The JAMES server location is now independent of the data location, so uploaded data can be stored on an external URL that is under control of the client.
- The javascript reduces the number of calls via
OpenCPU, resulting in speedier site updates. - Function
draw_chartgets a new parameterdraw_grobargument, which allows the user to defer drawing and to tweak thegTreeobject directly.
james 0.22.1
- Make JAMES server default in
get_host() - Tweaks behavior of
draw_chart()for more intuitive API. - Change default in
request_site()to upload - Solves bug in
get_loc()
james 0.21.0
- The communication between javascript and R is now based on empty strings instead of
nullandNULL. * The site is functional again!
james 0.20.0
- Major change: Systematic use of
txtandlocarguments in bothRand javascript - Codes
nullvalues in javascript by{}before making request toR - Replaces
is.null(x)by!length(x) - Removes
stop()withintryCatch - Provides extra argument
txt, so makingget_tgt()more intelligent - Undoes behavior change in
draw_chart()in0.19.0because that killed interactivity - Undoes
dotsindraw_chart()because that didn’t play well with requests
james 0.19.0
-
validate_chartcode()is no longer exported, and returnsTRUE/FALSE - Change of behavior in
draw_chart(): When the user specifies a validchartcode, then this chart is selected, irrespective ofselector. - Removes superfluous functions
draw_chart_ind(),draw_chart_bdsanddraw_plot() - Moves
select_chart()arguments indraw_chart()to dots
james 0.18.0
- Simplifies
screen_curves() - Moves functionality for Allegro Sultum to
custom_list() - Adds various getters
- Makes server and data location independent
james 0.17.0
- Removes some hard paths in
screen_curves() - Add server-sided
upload_txt()for uploading data - Add server-sided
request_site()for uploading data and url construction
james 0.15.1
- Reduce printing to
.valbydraw_chart()
james 0.14.0
- Uses the
svgliteshortcut in the javascript calls. This requiresopencpu 2.1.5.1001and theArialfont to be installed on the server.
james 0.10.0
- Set the
max.printoption to 100.000 entries in order to allow for printing the full chart list
james 0.8.0
- Adds function
screen_curves()for screening on JGZ guidelines. The function also returns the site URL, so it acts as a one-stop-shop - Adds dependencies to
growthscreener,jamesclientandjsonlite