Do we need another Osteoporosis risk tool?... | HRB Open Research dataLayer = dataLayer || []; // Standard GTM initialization - Google Consent Mode handles consent automatically (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl+ '>m_auth=hzk0Vc3qFsQYhCrIoHz68A>m_preview=env-1>m_cookies_win=x';f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-MWFK8L5J'); ;window.NREUM||(NREUM={});NREUM.init={distributed_tracing:{enabled:true},privacy:{cookies_enabled:true},ajax:{deny_list:["bam.nr-data.net"]}}; ;NREUM.loader_config={accountID:"438030",trustKey:"438030",agentID:"772317073",licenseKey:"97f8f67f26",applicationID:"772317073"} ;NREUM.info={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net",licenseKey:"97f8f67f26",applicationID:"772317073",sa:1} ;/*! For license information please see nr-loader-spa-1.236.0.min.js.LICENSE.txt */ (()=>{"use strict";var e,t,r={5763:(e,t,r)=>{r.d(t,{P_:()=>l,Mt:()=>g,C5:()=>s,DL:()=>v,OP:()=>T,lF:()=>D,Yu:()=>y,Dg:()=>h,CX:()=>c,GE:()=>b,sU:()=>_});var n=r(8632),i=r(9567);const o={beacon:n.ce.beacon,errorBeacon:n.ce.errorBeacon,licenseKey:void 0,applicationID:void 0,sa:void 0,queueTime:void 0,applicationTime:void 0,ttGuid:void 0,user:void 0,account:void 0,product:void 0,extra:void 0,jsAttributes:{},userAttributes:void 0,atts:void 0,transactionName:void 0,tNamePlain:void 0},a={};function s(e){if(!e)throw new Error("All info objects require an agent identifier!");if(!a[e])throw new Error("Info for ".concat(e," was never set"));return a[e]}function c(e,t){if(!e)throw new Error("All info objects require an agent identifier!");a[e]=(0,i.D)(t,o),(0,n.Qy)(e,a[e],"info")}var u=r(7056);const d=()=>{const e={blockSelector:"[data-nr-block]",maskInputOptions:{password:!0}};return{allow_bfcache:!0,privacy:{cookies_enabled:!0},ajax:{deny_list:void 0,enabled:!0,harvestTimeSeconds:10},distributed_tracing:{enabled:void 0,exclude_newrelic_header:void 0,cors_use_newrelic_header:void 0,cors_use_tracecontext_headers:void 0,allowed_origins:void 0},session:{domain:void 0,expiresMs:u.oD,inactiveMs:u.Hb},ssl:void 0,obfuscate:void 0,jserrors:{enabled:!0,harvestTimeSeconds:10},metrics:{enabled:!0},page_action:{enabled:!0,harvestTimeSeconds:30},page_view_event:{enabled:!0},page_view_timing:{enabled:!0,harvestTimeSeconds:30,long_task:!1},session_trace:{enabled:!0,harvestTimeSeconds:10},harvest:{tooManyRequestsDelay:60},session_replay:{enabled:!1,harvestTimeSeconds:60,sampleRate:.1,errorSampleRate:.1,maskTextSelector:"*",maskAllInputs:!0,get blockClass(){return"nr-block"},get ignoreClass(){return"nr-ignore"},get maskTextClass(){return"nr-mask"},get blockSelector(){return e.blockSelector},set blockSelector(t){e.blockSelector+=",".concat(t)},get maskInputOptions(){return e.maskInputOptions},set maskInputOptions(t){e.maskInputOptions={...t,password:!0}}},spa:{enabled:!0,harvestTimeSeconds:10}}},f={};function l(e){if(!e)throw new Error("All configuration objects require an agent identifier!");if(!f[e])throw new Error("Configuration for ".concat(e," was never set"));return f[e]}function h(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");f[e]=(0,i.D)(t,d()),(0,n.Qy)(e,f[e],"config")}function g(e,t){if(!e)throw new Error("All configuration objects require an agent identifier!");var r=l(e);if(r){for(var n=t.split("."),i=0;i {r.d(t,{D:()=>i});var n=r(50);function i(e,t){try{if(!e||"object"!=typeof e)return(0,n.Z)("Setting a Configurable requires an object as input");if(!t||"object"!=typeof t)return(0,n.Z)("Setting a Configurable requires a model to set its initial properties");const r=Object.create(Object.getPrototypeOf(t),Object.getOwnPropertyDescriptors(t)),o=0===Object.keys(r).length?e:r;for(let a in o)if(void 0!==e[a])try{"object"==typeof e[a]&&"object"==typeof t[a]?r[a]=i(e[a],t[a]):r[a]=e[a]}catch(e){(0,n.Z)("An error occurred while setting a property of a Configurable",e)}return r}catch(e){(0,n.Z)("An error occured while setting a Configurable",e)}}},6818:(e,t,r)=>{r.d(t,{Re:()=>i,gF:()=>o,q4:()=>n});const n="1.236.0",i="PROD",o="CDN"},385:(e,t,r)=>{r.d(t,{FN:()=>a,IF:()=>u,Nk:()=>f,Tt:()=>s,_A:()=>o,il:()=>n,pL:()=>c,v6:()=>i,w1:()=>d});const n="undefined"!=typeof window&&!!window.document,i="undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self.navigator instanceof WorkerNavigator||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis.navigator instanceof WorkerNavigator),o=n?window:"undefined"!=typeof WorkerGlobalScope&&("undefined"!=typeof self&&self instanceof WorkerGlobalScope&&self||"undefined"!=typeof globalThis&&globalThis instanceof WorkerGlobalScope&&globalThis),a=""+o?.location,s=/iPad|iPhone|iPod/.test(navigator.userAgent),c=s&&"undefined"==typeof SharedWorker,u=(()=>{const e=navigator.userAgent.match(/Firefox[/\s](\d+\.\d+)/);return Array.isArray(e)&&e.length>=2?+e[1]:0})(),d=Boolean(n&&window.document.documentMode),f=!!navigator.sendBeacon},1117:(e,t,r)=>{r.d(t,{w:()=>o});var n=r(50);const i={agentIdentifier:"",ee:void 0};class o{constructor(e){try{if("object"!=typeof e)return(0,n.Z)("shared context requires an object as input");this.sharedContext={},Object.assign(this.sharedContext,i),Object.entries(e).forEach((e=>{let[t,r]=e;Object.keys(i).includes(t)&&(this.sharedContext[t]=r)}))}catch(e){(0,n.Z)("An error occured while setting SharedContext",e)}}}},8e3:(e,t,r)=>{r.d(t,{L:()=>d,R:()=>c});var n=r(2177),i=r(1284),o=r(4322),a=r(3325);const s={};function c(e,t){const r={staged:!1,priority:a.p[t]||0};u(e),s[e].get(t)||s[e].set(t,r)}function u(e){e&&(s[e]||(s[e]=new Map))}function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"feature";if(u(e),!e||!s[e].get(t))return a(t);s[e].get(t).staged=!0;const r=[...s[e]];function a(t){const r=e?n.ee.get(e):n.ee,a=o.X.handlers;if(r.backlog&&a){var s=r.backlog[t],c=a[t];if(c){for(var u=0;s&&u {let[t,r]=e;return r.staged}))&&(r.sort(((e,t)=>e[1].priority-t[1].priority)),r.forEach((e=>{let[t]=e;a(t)})))}function f(e,t){var r=e[1];(0,i.D)(t[r],(function(t,r){var n=e[0];if(r[0]===n){var i=r[1],o=e[3],a=e[2];i.apply(o,a)}}))}},2177:(e,t,r)=>{r.d(t,{c:()=>f,ee:()=>u});var n=r(8632),i=r(2210),o=r(1284),a=r(5763),s="nr@context";let c=(0,n.fP)();var u;function d(){}function f(e){return(0,i.X)(e,s,l)}function l(){return new d}function h(){u.aborted=!0,u.backlog={}}c.ee?u=c.ee:(u=function e(t,r){var n={},c={},f={},g=!1;try{g=16===r.length&&(0,a.OP)(r).isolatedBacklog}catch(e){}var p={on:b,addEventListener:b,removeEventListener:y,emit:v,get:x,listeners:w,context:m,buffer:A,abort:h,aborted:!1,isBuffering:E,debugId:r,backlog:g?{}:t&&"object"==typeof t.backlog?t.backlog:{}};return p;function m(e){return e&&e instanceof d?e:e?(0,i.X)(e,s,l):l()}function v(e,r,n,i,o){if(!1!==o&&(o=!0),!u.aborted||i){t&&o&&t.emit(e,r,n);for(var a=m(n),s=w(e),d=s.length,f=0;fn,p:()=>i});var n=r(2177).ee.get("handle");function i(e,t,r,i,o){o?(o.buffer([e],i),o.emit(e,t,r)):(n.buffer([e],i),n.emit(e,t,r))}},4322:(e,t,r)=>{r.d(t,{X:()=>o});var n=r(5546);o.on=a;var i=o.handlers={};function o(e,t,r,o){a(o||n.E,i,e,t,r)}function a(e,t,r,i,o){o||(o="feature"),e||(e=n.E);var a=t[o]=t[o]||{};(a[r]=a[r]||[]).push([e,i])}},3239:(e,t,r)=>{r.d(t,{bP:()=>s,iz:()=>c,m$:()=>a});var n=r(385);let i=!1,o=!1;try{const e={get passive(){return i=!0,!1},get signal(){return o=!0,!1}};n._A.addEventListener("test",null,e),n._A.removeEventListener("test",null,e)}catch(e){}function a(e,t){return i||o?{capture:!!e,passive:i,signal:t}:!!e}function s(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;window.addEventListener(e,t,a(r,n))}function c(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2],n=arguments.length>3?arguments[3]:void 0;document.addEventListener(e,t,a(r,n))}},4402:(e,t,r)=>{r.d(t,{Ht:()=>u,M:()=>c,Rl:()=>a,ky:()=>s});var n=r(385);const i="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";function o(e,t){return e?15&e[t]:16*Math.random()|0}function a(){const e=n._A?.crypto||n._A?.msCrypto;let t,r=0;return e&&e.getRandomValues&&(t=e.getRandomValues(new Uint8Array(31))),i.split("").map((e=>"x"===e?o(t,++r).toString(16):"y"===e?(3&o()|8).toString(16):e)).join("")}function s(e){const t=n._A?.crypto||n._A?.msCrypto;let r,i=0;t&&t.getRandomValues&&(r=t.getRandomValues(new Uint8Array(31)));const a=[];for(var s=0;s {r.d(t,{Bq:()=>n,Hb:()=>o,oD:()=>i});const n="NRBA",i=144e5,o=18e5},7894:(e,t,r)=>{function n(){return Math.round(performance.now())}r.d(t,{z:()=>n})},7243:(e,t,r)=>{r.d(t,{e:()=>o});var n=r(385),i={};function o(e){if(e in i)return i[e];if(0===(e||"").indexOf("data:"))return{protocol:"data"};let t;var r=n._A?.location,o={};if(n.il)t=document.createElement("a"),t.href=e;else try{t=new URL(e,r.href)}catch(e){return o}o.port=t.port;var a=t.href.split("://");!o.port&&a[1]&&(o.port=a[1].split("/")[0].split("@").pop().split(":")[1]),o.port&&"0"!==o.port||(o.port="https"===a[0]?"443":"80"),o.hostname=t.hostname||r.hostname,o.pathname=t.pathname,o.protocol=a[0],"/"!==o.pathname.charAt(0)&&(o.pathname="/"+o.pathname);var s=!t.protocol||":"===t.protocol||t.protocol===r.protocol,c=t.hostname===r.hostname&&t.port===r.port;return o.sameOrigin=s&&(!t.hostname||c),"/"===o.pathname&&(i[e]=o),o}},50:(e,t,r)=>{function n(e,t){"function"==typeof console.warn&&(console.warn("New Relic: ".concat(e)),t&&console.warn(t))}r.d(t,{Z:()=>n})},2587:(e,t,r)=>{r.d(t,{N:()=>c,T:()=>u});var n=r(2177),i=r(5546),o=r(8e3),a=r(3325);const s={stn:[a.D.sessionTrace],err:[a.D.jserrors,a.D.metrics],ins:[a.D.pageAction],spa:[a.D.spa],sr:[a.D.sessionReplay,a.D.sessionTrace]};function c(e,t){const r=n.ee.get(t);e&&"object"==typeof e&&(Object.entries(e).forEach((e=>{let[t,n]=e;void 0===u[t]&&(s[t]?s[t].forEach((e=>{n?(0,i.p)("feat-"+t,[],void 0,e,r):(0,i.p)("block-"+t,[],void 0,e,r),(0,i.p)("rumresp-"+t,[Boolean(n)],void 0,e,r)})):n&&(0,i.p)("feat-"+t,[],void 0,void 0,r),u[t]=Boolean(n))})),Object.keys(s).forEach((e=>{void 0===u[e]&&(s[e]?.forEach((t=>(0,i.p)("rumresp-"+e,[!1],void 0,t,r))),u[e]=!1)})),(0,o.L)(t,a.D.pageViewEvent))}const u={}},2210:(e,t,r)=>{r.d(t,{X:()=>i});var n=Object.prototype.hasOwnProperty;function i(e,t,r){if(n.call(e,t))return e[t];var i=r();if(Object.defineProperty&&Object.keys)try{return Object.defineProperty(e,t,{value:i,writable:!0,enumerable:!1}),i}catch(e){}return e[t]=i,i}},1284:(e,t,r)=>{r.d(t,{D:()=>n});const n=(e,t)=>Object.entries(e||{}).map((e=>{let[r,n]=e;return t(r,n)}))},4351:(e,t,r)=>{r.d(t,{P:()=>o});var n=r(2177);const i=()=>{const e=new WeakSet;return(t,r)=>{if("object"==typeof r&&null!==r){if(e.has(r))return;e.add(r)}return r}};function o(e){try{return JSON.stringify(e,i())}catch(e){try{n.ee.emit("internal-error",[e])}catch(e){}}}},3960:(e,t,r)=>{r.d(t,{K:()=>a,b:()=>o});var n=r(3239);function i(){return"undefined"==typeof document||"complete"===document.readyState}function o(e,t){if(i())return e();(0,n.bP)("load",e,t)}function a(e){if(i())return e();(0,n.iz)("DOMContentLoaded",e)}},8632:(e,t,r)=>{r.d(t,{EZ:()=>u,Qy:()=>c,ce:()=>o,fP:()=>a,gG:()=>d,mF:()=>s});var n=r(7894),i=r(385);const o={beacon:"bam.nr-data.net",errorBeacon:"bam.nr-data.net"};function a(){return i._A.NREUM||(i._A.NREUM={}),void 0===i._A.newrelic&&(i._A.newrelic=i._A.NREUM),i._A.NREUM}function s(){let e=a();return e.o||(e.o={ST:i._A.setTimeout,SI:i._A.setImmediate,CT:i._A.clearTimeout,XHR:i._A.XMLHttpRequest,REQ:i._A.Request,EV:i._A.Event,PR:i._A.Promise,MO:i._A.MutationObserver,FETCH:i._A.fetch}),e}function c(e,t,r){let i=a();const o=i.initializedAgents||{},s=o[e]||{};return Object.keys(s).length||(s.initializedAt={ms:(0,n.z)(),date:new Date}),i.initializedAgents={...o,[e]:{...s,[r]:t}},i}function u(e,t){a()[e]=t}function d(){return function(){let e=a();const t=e.info||{};e.info={beacon:o.beacon,errorBeacon:o.errorBeacon,...t}}(),function(){let e=a();const t=e.init||{};e.init={...t}}(),s(),function(){let e=a();const t=e.loader_config||{};e.loader_config={...t}}(),a()}},7956:(e,t,r)=>{r.d(t,{N:()=>i});var n=r(3239);function i(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],r=arguments.length>2?arguments[2]:void 0,i=arguments.length>3?arguments[3]:void 0;return void(0,n.iz)("visibilitychange",(function(){if(t)return void("hidden"==document.visibilityState&&e());e(document.visibilityState)}),r,i)}},1214:(e,t,r)=>{r.d(t,{em:()=>v,u5:()=>N,QU:()=>S,_L:()=>I,Gm:()=>L,Lg:()=>M,gy:()=>U,BV:()=>Q,Kf:()=>ee});var n=r(2177);const i="nr@original";var o=Object.prototype.hasOwnProperty,a=!1;function s(e,t){return e||(e=n.ee),r.inPlace=function(e,t,n,i,o){n||(n="");var a,s,c,u="-"===n.charAt(0);for(c=0;c 2?n-2:0),o=2;o {r(A[T],e,w),r(E[T],e,w)})),r(l._A,"fetch",y),t.on(y+"end",(function(e,r){var n=this;if(r){var i=r.headers.get("content-length");null!==i&&(n.rxSize=i),t.emit(y+"done",[null,r],n)}else t.emit(y+"done",[e],n)})),t}const O={},j=["pushState","replaceState"];function S(e){const t=function(e){return(e||n.ee).get("history")}(e);return!l.il||O[t.debugId]++||(O[t.debugId]=1,s(t).inPlace(window.history,j,"-")),t}var P=r(3239);const C={},R=["appendChild","insertBefore","replaceChild"];function I(e){const t=function(e){return(e||n.ee).get("jsonp")}(e);if(!l.il||C[t.debugId])return t;C[t.debugId]=!0;var r=s(t),i=/[?&](?:callback|cb)=([^&#]+)/,o=/(.*)\.([^.]+)/,a=/^(\w+)(\.|$)(.*)$/;function c(e,t){var r=e.match(a),n=r[1],i=r[3];return i?c(i,t[n]):t[n]}return r.inPlace(Node.prototype,R,"dom-"),t.on("dom-start",(function(e){!function(e){if(!e||"string"!=typeof e.nodeName||"script"!==e.nodeName.toLowerCase())return;if("function"!=typeof e.addEventListener)return;var n=(a=e.src,s=a.match(i),s?s[1]:null);var a,s;if(!n)return;var u=function(e){var t=e.match(o);if(t&&t.length>=3)return{key:t[2],parent:c(t[1],window)};return{key:e,parent:window}}(n);if("function"!=typeof u.parent[u.key])return;var d={};function f(){t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}function l(){t.emit("jsonp-error",[],d),t.emit("jsonp-end",[],d),e.removeEventListener("load",f,(0,P.m$)(!1)),e.removeEventListener("error",l,(0,P.m$)(!1))}r.inPlace(u.parent,[u.key],"cb-",d),e.addEventListener("load",f,(0,P.m$)(!1)),e.addEventListener("error",l,(0,P.m$)(!1)),t.emit("new-jsonp",[e.src],d)}(e[0])})),t}var k=r(5763);const H={};function L(e){const t=function(e){return(e||n.ee).get("mutation")}(e);if(!l.il||H[t.debugId])return t;H[t.debugId]=!0;var r=s(t),i=k.Yu.MO;return i&&(window.MutationObserver=function(e){return this instanceof i?new i(r(e,"fn-")):i.apply(this,arguments)},MutationObserver.prototype=i.prototype),t}const z={};function M(e){const t=function(e){return(e||n.ee).get("promise")}(e);if(z[t.debugId])return t;z[t.debugId]=!0;var r=n.c,o=s(t),a=k.Yu.PR;return a&&function(){function e(r){var n=t.context(),i=o(r,"executor-",n,null,!1);const s=Reflect.construct(a,[i],e);return t.context(s).getCtx=function(){return n},s}l._A.Promise=e,Object.defineProperty(e,"name",{value:"Promise"}),e.toString=function(){return a.toString()},Object.setPrototypeOf(e,a),["all","race"].forEach((function(r){const n=a[r];e[r]=function(e){let i=!1;[...e||[]].forEach((e=>{this.resolve(e).then(a("all"===r),a(!1))}));const o=n.apply(this,arguments);return o;function a(e){return function(){t.emit("propagate",[null,!i],o,!1,!1),i=i||!e}}}})),["resolve","reject"].forEach((function(r){const n=a[r];e[r]=function(e){const r=n.apply(this,arguments);return e!==r&&t.emit("propagate",[e,!0],r,!1,!1),r}})),e.prototype=a.prototype;const n=a.prototype.then;a.prototype.then=function(){var e=this,i=r(e);i.promise=e;for(var a=arguments.length,s=new Array(a),c=0;c e())),t};function m(e,t){i.inPlace(t,["onreadystatechange"],"fn-",E)}function b(){var e=this,t=r.context(e);e.readyState>3&&!t.resolved&&(t.resolved=!0,r.emit("xhr-resolved",[],e)),i.inPlace(e,f,"fn-",E)}if(function(e,t){for(var r in e)t[r]=e[r]}(o,p),p.prototype=o.prototype,i.inPlace(p.prototype,J,"-xhr-",E),r.on("send-xhr-start",(function(e,t){m(e,t),function(e){h.push(e),a&&(y?y.then(A):u?u(A):(w=-w,x.data=w))}(t)})),r.on("open-xhr-start",m),a){var y=c&&c.resolve();if(!u&&!c){var w=1,x=document.createTextNode(w);new a(A).observe(x,{characterData:!0})}}else t.on("fn-end",(function(e){e[0]&&e[0].type===d||A()}));function A(){for(var e=0;e {r.d(t,{t:()=>n});const n=r(3325).D.ajax},6660:(e,t,r)=>{r.d(t,{A:()=>i,t:()=>n});const n=r(3325).D.jserrors,i="nr@seenError"},3081:(e,t,r)=>{r.d(t,{gF:()=>o,mY:()=>i,t9:()=>n,vz:()=>s,xS:()=>a});const n=r(3325).D.metrics,i="sm",o="cm",a="storeSupportabilityMetrics",s="storeEventMetrics"},4649:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageAction},7633:(e,t,r)=>{r.d(t,{Dz:()=>i,OJ:()=>a,qw:()=>o,t9:()=>n});const n=r(3325).D.pageViewEvent,i="firstbyte",o="domcontent",a="windowload"},9251:(e,t,r)=>{r.d(t,{t:()=>n});const n=r(3325).D.pageViewTiming},3614:(e,t,r)=>{r.d(t,{BST_RESOURCE:()=>i,END:()=>s,FEATURE_NAME:()=>n,FN_END:()=>u,FN_START:()=>c,PUSH_STATE:()=>d,RESOURCE:()=>o,START:()=>a});const n=r(3325).D.sessionTrace,i="bstResource",o="resource",a="-start",s="-end",c="fn"+a,u="fn"+s,d="pushState"},7836:(e,t,r)=>{r.d(t,{BODY:()=>A,CB_END:()=>E,CB_START:()=>u,END:()=>x,FEATURE_NAME:()=>i,FETCH:()=>_,FETCH_BODY:()=>v,FETCH_DONE:()=>m,FETCH_START:()=>p,FN_END:()=>c,FN_START:()=>s,INTERACTION:()=>l,INTERACTION_API:()=>d,INTERACTION_EVENTS:()=>o,JSONP_END:()=>b,JSONP_NODE:()=>g,JS_TIME:()=>T,MAX_TIMER_BUDGET:()=>a,REMAINING:()=>f,SPA_NODE:()=>h,START:()=>w,originalSetTimeout:()=>y});var n=r(5763);const i=r(3325).D.spa,o=["click","submit","keypress","keydown","keyup","change"],a=999,s="fn-start",c="fn-end",u="cb-start",d="api-ixn-",f="remaining",l="interaction",h="spaNode",g="jsonpNode",p="fetch-start",m="fetch-done",v="fetch-body-",b="jsonp-end",y=n.Yu.ST,w="-start",x="-end",A="-body",E="cb"+x,T="jsTime",_="fetch"},5938:(e,t,r)=>{r.d(t,{W:()=>o});var n=r(5763),i=r(2177);class o{constructor(e,t,r){this.agentIdentifier=e,this.aggregator=t,this.ee=i.ee.get(e,(0,n.OP)(this.agentIdentifier).isolatedBacklog),this.featureName=r,this.blocked=!1}}},9144:(e,t,r)=>{r.d(t,{j:()=>m});var n=r(3325),i=r(5763),o=r(5546),a=r(2177),s=r(7894),c=r(8e3),u=r(3960),d=r(385),f=r(50),l=r(3081),h=r(8632);function g(){const e=(0,h.gG)();["setErrorHandler","finished","addToTrace","inlineHit","addRelease","addPageAction","setCurrentRouteName","setPageViewName","setCustomAttribute","interaction","noticeError","setUserId"].forEach((t=>{e[t]=function(){for(var r=arguments.length,n=new Array(r),i=0;i 1?r-1:0),i=1;i {e.exposed&&e.api[t]&&o.push(e.api[t](...n))})),o.length>1?o:o[0]}(t,...n)}}))}var p=r(2587);function m(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},m=arguments.length>2?arguments[2]:void 0,v=arguments.length>3?arguments[3]:void 0,{init:b,info:y,loader_config:w,runtime:x={loaderType:m},exposed:A=!0}=t;const E=(0,h.gG)();y||(b=E.init,y=E.info,w=E.loader_config),(0,i.Dg)(e,b||{}),(0,i.GE)(e,w||{}),(0,i.sU)(e,x),y.jsAttributes??={},d.v6&&(y.jsAttributes.isWorker=!0),(0,i.CX)(e,y),g();const T=function(e,t){t||(0,c.R)(e,"api");const h={};var g=a.ee.get(e),p=g.get("tracer"),m="api-",v=m+"ixn-";function b(t,r,n,o){const a=(0,i.C5)(e);return null===r?delete a.jsAttributes[t]:(0,i.CX)(e,{...a,jsAttributes:{...a.jsAttributes,[t]:r}}),x(m,n,!0,o||null===r?"session":void 0)(t,r)}function y(){}["setErrorHandler","finished","addToTrace","inlineHit","addRelease"].forEach((e=>h[e]=x(m,e,!0,"api"))),h.addPageAction=x(m,"addPageAction",!0,n.D.pageAction),h.setCurrentRouteName=x(m,"routeName",!0,n.D.spa),h.setPageViewName=function(t,r){if("string"==typeof t)return"/"!==t.charAt(0)&&(t="/"+t),(0,i.OP)(e).customTransaction=(r||"http://custom.transaction")+t,x(m,"setPageViewName",!0)()},h.setCustomAttribute=function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if("string"==typeof e){if(["string","number"].includes(typeof t)||null===t)return b(e,t,"setCustomAttribute",r);(0,f.Z)("Failed to execute setCustomAttribute.\nNon-null value must be a string or number type, but a type of was provided."))}else(0,f.Z)("Failed to execute setCustomAttribute.\nName must be a string type, but a type of was provided."))},h.setUserId=function(e){if("string"==typeof e||null===e)return b("enduser.id",e,"setUserId",!0);(0,f.Z)("Failed to execute setUserId.\nNon-null value must be a string type, but a type of was provided."))},h.interaction=function(){return(new y).get()};var w=y.prototype={createTracer:function(e,t){var r={},i=this,a="function"==typeof t;return(0,o.p)(v+"tracer",[(0,s.z)(),e,r],i,n.D.spa,g),function(){if(p.emit((a?"":"no-")+"fn-start",[(0,s.z)(),i,a],r),a)try{return t.apply(this,arguments)}catch(e){throw p.emit("fn-err",[arguments,this,"string"==typeof e?new Error(e):e],r),e}finally{p.emit("fn-end",[(0,s.z)()],r)}}}};function x(e,t,r,i){return function(){return(0,o.p)(l.xS,["API/"+t+"/called"],void 0,n.D.metrics,g),i&&(0,o.p)(e+t,[(0,s.z)(),...arguments],r?null:this,i,g),r?void 0:this}}function A(){r.e(439).then(r.bind(r,7438)).then((t=>{let{setAPI:r}=t;r(e),(0,c.L)(e,"api")})).catch((()=>(0,f.Z)("Downloading runtime APIs failed...")))}return["actionText","setName","setAttribute","save","ignore","onEnd","getContext","end","get"].forEach((e=>{w[e]=x(v,e,void 0,n.D.spa)})),h.noticeError=function(e,t){"string"==typeof e&&(e=new Error(e)),(0,o.p)(l.xS,["API/noticeError/called"],void 0,n.D.metrics,g),(0,o.p)("err",[e,(0,s.z)(),!1,t],void 0,n.D.jserrors,g)},d.il?(0,u.b)((()=>A()),!0):A(),h}(e,v);return(0,h.Qy)(e,T,"api"),(0,h.Qy)(e,A,"exposed"),(0,h.EZ)("activatedFeatures",p.T),T}},3325:(e,t,r)=>{r.d(t,{D:()=>n,p:()=>i});const n={ajax:"ajax",jserrors:"jserrors",metrics:"metrics",pageAction:"page_action",pageViewEvent:"page_view_event",pageViewTiming:"page_view_timing",sessionReplay:"session_replay",sessionTrace:"session_trace",spa:"spa"},i={[n.pageViewEvent]:1,[n.pageViewTiming]:2,[n.metrics]:3,[n.jserrors]:4,[n.ajax]:5,[n.sessionTrace]:6,[n.pageAction]:7,[n.spa]:8,[n.sessionReplay]:9}}},n={};function i(e){var t=n[e];if(void 0!==t)return t.exports;var o=n[e]={exports:{}};return r[e](o,o.exports,i),o.exports}i.m=r,i.d=(e,t)=>{for(var r in t)i.o(t,r)&&!i.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,r)=>(i.f[r](e,t),t)),[])),i.u=e=>(({78:"page_action-aggregate",147:"metrics-aggregate",242:"session-manager",317:"jserrors-aggregate",348:"page_view_timing-aggregate",412:"lazy-feature-loader",439:"async-api",538:"recorder",590:"session_replay-aggregate",675:"compressor",733:"session_trace-aggregate",786:"page_view_event-aggregate",873:"spa-aggregate",898:"ajax-aggregate"}[e]||e)+"."+{78:"ac76d497",147:"3dc53903",148:"1a20d5fe",242:"2a64278a",317:"49e41428",348:"bd6de33a",412:"2f55ce66",439:"30bd804e",538:"1b18459f",590:"cf0efb30",675:"ae9f91a8",733:"83105561",786:"06482edd",860:"03a8b7a5",873:"e6b09d52",898:"998ef92b"}[e]+"-1.236.0.min.js"),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},t="NRBA:",i.l=(r,n,o,a)=>{if(e[r])e[r].push(n);else{var s,c;if(void 0!==o)for(var u=document.getElementsByTagName("script"),d=0;d {s.onerror=s.onload=null,clearTimeout(h);var i=e[r];if(delete e[r],s.parentNode&&s.parentNode.removeChild(s),i&&i.forEach((e=>e(n))),t)return t(n)},h=setTimeout(l.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=l.bind(null,s.onerror),s.onload=l.bind(null,s.onload),c&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.j=364,i.p="https://js-agent.newrelic.com/",(()=>{var e={364:0,953:0};i.f.j=(t,r)=>{var n=i.o(e,t)?e[t]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise(((r,i)=>n=e[t]=[r,i]));r.push(n[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(r=>{if(i.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}}),"chunk-"+t,t)}};var t=(t,r)=>{var n,o,[a,s,c]=r,u=0;if(a.some((t=>0!==e[t]))){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(c)c(i)}for(t&&t(r);u {i.r(o);var e=i(3325),t=i(5763);const r=Object.values(e.D);function n(e){const n={};return r.forEach((r=>{n[r]=function(e,r){return!1!==(0,t.Mt)(r,"".concat(e,".enabled"))}(r,e)})),n}var a=i(9144);var s=i(5546),c=i(385),u=i(8e3),d=i(5938),f=i(3960),l=i(50);class h extends d.W{constructor(e,t,r){let n=!(arguments.length>3&&void 0!==arguments[3])||arguments[3];super(e,t,r),this.auto=n,this.abortHandler,this.featAggregate,this.onAggregateImported,n&&(0,u.R)(e,r)}importAggregator(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.featAggregate||!this.auto)return;const r=c.il&&!0===(0,t.Mt)(this.agentIdentifier,"privacy.cookies_enabled");let n;this.onAggregateImported=new Promise((e=>{n=e}));const o=async()=>{let t;try{if(r){const{setupAgentSession:e}=await Promise.all([i.e(860),i.e(242)]).then(i.bind(i,3228));t=e(this.agentIdentifier)}}catch(e){(0,l.Z)("A problem occurred when starting up session manager. This page will not start or extend any session.",e)}try{if(!this.shouldImportAgg(this.featureName,t))return void(0,u.L)(this.agentIdentifier,this.featureName);const{lazyFeatureLoader:r}=await i.e(412).then(i.bind(i,8582)),{Aggregate:o}=await r(this.featureName,"aggregate");this.featAggregate=new o(this.agentIdentifier,this.aggregator,e),n(!0)}catch(e){(0,l.Z)("Downloading and initializing ".concat(this.featureName," failed..."),e),this.abortHandler?.(),n(!1)}};c.il?(0,f.b)((()=>o()),!0):o()}shouldImportAgg(r,n){return r!==e.D.sessionReplay||!1!==(0,t.Mt)(this.agentIdentifier,"session_trace.enabled")&&(!!n?.isNew||!!n?.state.sessionReplay)}}var g=i(7633),p=i(7894);class m extends h{static featureName=g.t9;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];if(super(r,n,g.t9,i),("undefined"==typeof PerformanceNavigationTiming||c.Tt)&&"undefined"!=typeof PerformanceTiming){const n=(0,t.OP)(r);n[g.Dz]=Math.max(Date.now()-n.offset,0),(0,f.K)((()=>n[g.qw]=Math.max((0,p.z)()-n[g.Dz],0))),(0,f.b)((()=>{const t=(0,p.z)();n[g.OJ]=Math.max(t-n[g.Dz],0),(0,s.p)("timing",["load",t],void 0,e.D.pageViewTiming,this.ee)}))}this.importAggregator()}}var v=i(1117),b=i(1284);class y extends v.w{constructor(e){super(e),this.aggregatedData={}}store(e,t,r,n,i){var o=this.getBucket(e,t,r,i);return o.metrics=function(e,t){t||(t={count:0});return t.count+=1,(0,b.D)(e,(function(e,r){t[e]=w(r,t[e])})),t}(n,o.metrics),o}merge(e,t,r,n,i){var o=this.getBucket(e,t,n,i);if(o.metrics){var a=o.metrics;a.count+=r.count,(0,b.D)(r,(function(e,t){if("count"!==e){var n=a[e],i=r[e];i&&!i.c?a[e]=w(i.t,n):a[e]=function(e,t){if(!t)return e;t.c||(t=x(t.t));return t.min=Math.min(e.min,t.min),t.max=Math.max(e.max,t.max),t.t+=e.t,t.sos+=e.sos,t.c+=e.c,t}(i,a[e])}}))}else o.metrics=r}storeMetric(e,t,r,n){var i=this.getBucket(e,t,r);return i.stats=w(n,i.stats),i}getBucket(e,t,r,n){this.aggregatedData[e]||(this.aggregatedData[e]={});var i=this.aggregatedData[e][t];return i||(i=this.aggregatedData[e][t]={params:r||{}},n&&(i.custom=n)),i}get(e,t){return t?this.aggregatedData[e]&&this.aggregatedData[e][t]:this.aggregatedData[e]}take(e){for(var t={},r="",n=!1,i=0;i t.max&&(t.max=e),e 2&&void 0!==arguments[2])||arguments[2];super(e,r,j.t,n),c.il&&((0,t.OP)(e).initHidden=Boolean("hidden"===document.visibilityState),(0,N.N)((()=>(0,s.p)("docHidden",[(0,p.z)()],void 0,j.t,this.ee)),!0),(0,O.bP)("pagehide",(()=>(0,s.p)("winPagehide",[(0,p.z)()],void 0,j.t,this.ee))),this.importAggregator())}}var P=i(3081);class C extends h{static featureName=P.t9;constructor(e,t){let r=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(e,t,P.t9,r),this.importAggregator()}}var R,I=i(2210),k=i(1214),H=i(2177),L={};try{R=localStorage.getItem("__nr_flags").split(","),console&&"function"==typeof console.log&&(L.console=!0,-1!==R.indexOf("dev")&&(L.dev=!0),-1!==R.indexOf("nr_dev")&&(L.nrDev=!0))}catch(e){}function z(e){try{L.console&&z(e)}catch(e){}}L.nrDev&&H.ee.on("internal-error",(function(e){z(e.stack)})),L.dev&&H.ee.on("fn-err",(function(e,t,r){z(r.stack)})),L.dev&&(z("NR AGENT IN DEVELOPMENT MODE"),z("flags: "+(0,b.D)(L,(function(e,t){return e})).join(", ")));var M=i(6660);class B extends h{static featureName=M.t;constructor(r,n){let i=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];super(r,n,M.t,i),this.skipNext=0;try{this.removeOnAbort=new AbortController}catch(e){}const o=this;o.ee.on("fn-start",(function(e,t,r){o.abortHandler&&(o.skipNext+=1)})),o.ee.on("fn-err",(function(t,r,n){o.abortHandler&&!n[M.A]&&((0,I.X)(n,M.A,(function(){return!0})),this.thrown=!0,(0,s.p)("err",[n,(0,p.z)()],void 0,e.D.jserrors,o.ee))})),o.ee.on("fn-end",(function(){o.abortHandler&&!this.thrown&&o.skipNext>0&&(o.skipNext-=1)})),o.ee.on("internal-error",(function(t){(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,o.ee)})),this.origOnerror=c._A.onerror,c._A.onerror=this.onerrorHandler.bind(this),c._A.addEventListener("unhandledrejection",(t=>{const r=function(e){let t="Unhandled Promise Rejection: ";if(e instanceof Error)try{return e.message=t+e.message,e}catch(t){return e}if(void 0===e)return new Error(t);try{return new Error(t+(0,D.P)(e))}catch(e){return new Error(t)}}(t.reason);(0,s.p)("err",[r,(0,p.z)(),!1,{unhandledPromiseRejection:1}],void 0,e.D.jserrors,this.ee)}),(0,O.m$)(!1,this.removeOnAbort?.signal)),(0,k.gy)(this.ee),(0,k.BV)(this.ee),(0,k.em)(this.ee),(0,t.OP)(r).xhrWrappable&&(0,k.Kf)(this.ee),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}onerrorHandler(t,r,n,i,o){"function"==typeof this.origOnerror&&this.origOnerror(...arguments);try{this.skipNext?this.skipNext-=1:(0,s.p)("err",[o||new F(t,r,n),(0,p.z)()],void 0,e.D.jserrors,this.ee)}catch(t){try{(0,s.p)("ierr",[t,(0,p.z)(),!0],void 0,e.D.jserrors,this.ee)}catch(e){}}return!1}}function F(e,t,r){this.message=e||"Uncaught error with no additional information",this.sourceURL=t,this.line=r}let U=1;const q="nr@id";function G(e){const t=typeof e;return!e||"object"!==t&&"function"!==t?-1:e===c._A?0:(0,I.X)(e,q,(function(){return U++}))}function V(e){if("string"==typeof e&&e.length)return e.length;if("object"==typeof e){if("undefined"!=typeof ArrayBuffer&&e instanceof ArrayBuffer&&e.byteLength)return e.byteLength;if("undefined"!=typeof Blob&&e instanceof Blob&&e.size)return e.size;if(!("undefined"!=typeof FormData&&e instanceof FormData))try{return(0,D.P)(e).length}catch(e){return}}}var X=i(7243);class W{constructor(e){this.agentIdentifier=e,this.generateTracePayload=this.generateTracePayload.bind(this),this.shouldGenerateTrace=this.shouldGenerateTrace.bind(this)}generateTracePayload(e){if(!this.shouldGenerateTrace(e))return null;var r=(0,t.DL)(this.agentIdentifier);if(!r)return null;var n=(r.accountID||"").toString()||null,i=(r.agentID||"").toString()||null,o=(r.trustKey||"").toString()||null;if(!n||!i)return null;var a=(0,_.M)(),s=(0,_.Ht)(),c=Date.now(),u={spanId:a,traceId:s,timestamp:c};return(e.sameOrigin||this.isAllowedOrigin(e)&&this.useTraceContextHeadersForCors())&&(u.traceContextParentHeader=this.generateTraceContextParentHeader(a,s),u.traceContextStateHeader=this.generateTraceContextStateHeader(a,c,n,i,o)),(e.sameOrigin&&!this.excludeNewrelicHeader()||!e.sameOrigin&&this.isAllowedOrigin(e)&&this.useNewrelicHeaderForCors())&&(u.newrelicHeader=this.generateTraceHeader(a,s,c,n,i,o)),u}generateTraceContextParentHeader(e,t){return"00-"+t+"-"+e+"-01"}generateTraceContextStateHeader(e,t,r,n,i){return i+"@nr=0-1-"+r+"-"+n+"-"+e+"----"+t}generateTraceHeader(e,t,r,n,i,o){if(!("function"==typeof c._A?.btoa))return null;var a={v:[0,1],d:{ty:"Browser",ac:n,ap:i,id:e,tr:t,ti:r}};return o&&n!==o&&(a.d.tk=o),btoa((0,D.P)(a))}shouldGenerateTrace(e){return this.isDtEnabled()&&this.isAllowedOrigin(e)}isAllowedOrigin(e){var r=!1,n={};if((0,t.Mt)(this.agentIdentifier,"distributed_tracing")&&(n=(0,t.P_)(this.agentIdentifier).distributed_tracing),e.sameOrigin)r=!0;else if(n.allowed_origins instanceof Array)for(var i=0;i 2&&void 0!==arguments[2])||arguments[2];super(r,n,Z.t,i),(0,t.OP)(r).xhrWrappable&&(this.dt=new W(r),this.handler=(e,t,r,n)=>(0,s.p)(e,t,r,n,this.ee),(0,k.u5)(this.ee),(0,k.Kf)(this.ee),function(r,n,i,o){function a(e){var t=this;t.totalCbs=0,t.called=0,t.cbTime=0,t.end=E,t.ended=!1,t.xhrGuids={},t.lastSize=null,t.loadCaptureCalled=!1,t.params=this.params||{},t.metrics=this.metrics||{},e.addEventListener("load",(function(r){_(t,e)}),(0,O.m$)(!1)),c.IF||e.addEventListener("progress",(function(e){t.lastSize=e.loaded}),(0,O.m$)(!1))}function s(e){this.params={method:e[0]},T(this,e[1]),this.metrics={}}function u(e,n){var i=(0,t.DL)(r);i.xpid&&this.sameOrigin&&n.setRequestHeader("X-NewRelic-ID",i.xpid);var a=o.generateTracePayload(this.parsedOrigin);if(a){var s=!1;a.newrelicHeader&&(n.setRequestHeader("newrelic",a.newrelicHeader),s=!0),a.traceContextParentHeader&&(n.setRequestHeader("traceparent",a.traceContextParentHeader),a.traceContextStateHeader&&n.setRequestHeader("tracestate",a.traceContextStateHeader),s=!0),s&&(this.dt=a)}}function d(e,t){var r=this.metrics,i=e[0],o=this;if(r&&i){var a=V(i);a&&(r.txSize=a)}this.startTime=(0,p.z)(),this.listener=function(e){try{"abort"!==e.type||o.loadCaptureCalled||(o.params.aborted=!0),("load"!==e.type||o.called===o.totalCbs&&(o.onloadCalled||"function"!=typeof t.onload)&&"function"==typeof o.end)&&o.end(t)}catch(e){try{n.emit("internal-error",[e])}catch(e){}}};for(var s=0;s 1?e[1]=i:e.push(i)}else e[0]&&e[0].headers&&s(e[0].headers,n)&&(this.dt=n);function s(e,t){var r=!1;return t.newrelicHeader&&(e.set("newrelic",t.newrelicHeader),r=!0),t.traceContextParentHeader&&(e.set("traceparent",t.traceContextParentHeader),t.traceContextStateHeader&&e.set("tracestate",t.traceContextStateHeader),r=!0),r}}function x(e,t){this.params={},this.metrics={},this.startTime=(0,p.z)(),this.dt=t,e.length>=1&&(this.target=e[0]),e.length>=2&&(this.opts=e[1]);var r,n=this.opts||{},i=this.target;"string"==typeof i?r=i:"object"==typeof i&&i instanceof Y?r=i.url:c._A?.URL&&"object"==typeof i&&i instanceof URL&&(r=i.href),T(this,r);var o=(""+(i&&i instanceof Y&&i.method||n.method||"GET")).toUpperCase();this.params.method=o,this.txSize=V(n.body)||0}function A(t,r){var n;this.endTime=(0,p.z)(),this.params||(this.params={}),this.params.status=r?r.status:0,"string"==typeof this.rxSize&&this.rxSize.length>0&&(n=+this.rxSize);var o={txSize:this.txSize,rxSize:n,duration:(0,p.z)()-this.startTime};i("xhr",[this.params,o,this.startTime,this.endTime,"fetch"],this,e.D.ajax)}function E(t){var r=this.params,n=this.metrics;if(!this.ended){this.ended=!0;for(var o=0;o 2&&void 0!==arguments[2])||arguments[2];super(e,t,we.t,r),this.importAggregator()}}new class{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:(0,_.ky)(16);c._A?(this.agentIdentifier=t,this.sharedAggregator=new y({agentIdentifier:this.agentIdentifier}),this.features={},this.desiredFeatures=new Set(e.features||[]),this.desiredFeatures.add(m),Object.assign(this,(0,a.j)(this.agentIdentifier,e,e.loaderType||"agent")),this.start()):(0,l.Z)("Failed to initial the agent. Could not determine the runtime environment.")}get config(){return{info:(0,t.C5)(this.agentIdentifier),init:(0,t.P_)(this.agentIdentifier),loader_config:(0,t.DL)(this.agentIdentifier),runtime:(0,t.OP)(this.agentIdentifier)}}start(){const t="features";try{const r=n(this.agentIdentifier),i=[...this.desiredFeatures];i.sort(((t,r)=>e.p[t.featureName]-e.p[r.featureName])),i.forEach((t=>{if(r[t.featureName]||t.featureName===e.D.pageViewEvent){const n=function(t){switch(t){case e.D.ajax:return[e.D.jserrors];case e.D.sessionTrace:return[e.D.ajax,e.D.pageViewEvent];case e.D.sessionReplay:return[e.D.sessionTrace];case e.D.pageViewTiming:return[e.D.pageViewEvent];default:return[]}}(t.featureName);n.every((e=>r[e]))||(0,l.Z)("".concat(t.featureName," is enabled but one or more dependent features has been disabled (").concat((0,D.P)(n),"). This may cause unintended consequences or missing data...")),this.features[t.featureName]=new t(this.agentIdentifier,this.sharedAggregator)}})),(0,T.Qy)(this.agentIdentifier,this.features,t)}catch(e){(0,l.Z)("Failed to initialize all enabled instrument classes (agent aborted) -",e);for(const e in this.features)this.features[e].abortHandler?.();const r=(0,T.fP)();return delete r.initializedAgents[this.agentIdentifier]?.api,delete r.initializedAgents[this.agentIdentifier]?.[t],delete this.sharedAggregator,r.ee?.abort(),delete r.ee?.get(this.agentIdentifier),!1}}}({features:[J,m,S,class extends h{static featureName=oe;constructor(t,r){if(super(t,r,oe,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;const n=this.ee;let i;(0,k.QU)(n),this.eventsEE=(0,k.em)(n),this.eventsEE.on(se,(function(e,t){this.bstStart=(0,p.z)()})),this.eventsEE.on(ae,(function(t,r){(0,s.p)("bst",[t[0],r,this.bstStart,(0,p.z)()],void 0,e.D.sessionTrace,n)})),n.on(ce+ne,(function(e){this.time=(0,p.z)(),this.startPath=location.pathname+location.hash})),n.on(ce+ie,(function(t){(0,s.p)("bstHist",[location.pathname+location.hash,this.startPath,this.time],void 0,e.D.sessionTrace,n)}));try{i=new PerformanceObserver((t=>{const r=t.getEntries();(0,s.p)(te,[r],void 0,e.D.sessionTrace,n)})),i.observe({type:re,buffered:!0})}catch(e){}this.importAggregator({resourceObserver:i})}},C,xe,B,class extends h{static featureName=de;constructor(e,r){if(super(e,r,de,!(arguments.length>2&&void 0!==arguments[2])||arguments[2]),!c.il)return;if(!(0,t.OP)(e).xhrWrappable)return;try{this.removeOnAbort=new AbortController}catch(e){}let n,i=0;const o=this.ee.get("tracer"),a=(0,k._L)(this.ee),s=(0,k.Lg)(this.ee),u=(0,k.BV)(this.ee),d=(0,k.Kf)(this.ee),f=this.ee.get("events"),l=(0,k.u5)(this.ee),h=(0,k.QU)(this.ee),g=(0,k.Gm)(this.ee);function m(e,t){h.emit("newURL",[""+window.location,t])}function v(){i++,n=window.location.hash,this[ve]=(0,p.z)()}function b(){i--,window.location.hash!==n&&m(0,!0);var e=(0,p.z)();this[pe]=~~this[pe]+e-this[ve],this[ye]=e}function y(e,t){e.on(t,(function(){this[t]=(0,p.z)()}))}this.ee.on(ve,v),s.on(be,v),a.on(be,v),this.ee.on(ye,b),s.on(ge,b),a.on(ge,b),this.ee.buffer([ve,ye,"xhr-resolved"],this.featureName),f.buffer([ve],this.featureName),u.buffer(["setTimeout"+le,"clearTimeout"+fe,ve],this.featureName),d.buffer([ve,"new-xhr","send-xhr"+fe],this.featureName),l.buffer([me+fe,me+"-done",me+he+fe,me+he+le],this.featureName),h.buffer(["newURL"],this.featureName),g.buffer([ve],this.featureName),s.buffer(["propagate",be,ge,"executor-err","resolve"+fe],this.featureName),o.buffer([ve,"no-"+ve],this.featureName),a.buffer(["new-jsonp","cb-start","jsonp-error","jsonp-end"],this.featureName),y(l,me+fe),y(l,me+"-done"),y(a,"new-jsonp"),y(a,"jsonp-end"),y(a,"cb-start"),h.on("pushState-end",m),h.on("replaceState-end",m),window.addEventListener("hashchange",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("load",m,(0,O.m$)(!0,this.removeOnAbort?.signal)),window.addEventListener("popstate",(function(){m(0,i>1)}),(0,O.m$)(!0,this.removeOnAbort?.signal)),this.abortHandler=this.#e,this.importAggregator()}#e(){this.removeOnAbort?.abort(),this.abortHandler=void 0}}],loaderType:"spa"})})(),window.NRBA=o})(); const cookieDomain = window.location.hostname; const tld = buildTLD(); function buildTLD() { const domainParts = cookieDomain.split('.'); while (domainParts.length > 2) { domainParts.shift(); } return domainParts.join('.'); } function deleteCookie(cookieName) { if (!cookieName) { return; } const cookiePath = (cookieName.startsWith('retraction_warning_') || cookieName.startsWith('version_warning_')) ? '/articles/' + cookieName : '/'; // Yes, these three slightly different ways to try and remove cookies are necessary document.cookie = cookieName + '=; path=' + cookiePath + '; domain=' + cookieDomain + '; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; document.cookie = cookieName + '=; path=' + cookiePath + '; domain=.' + tld + '; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; document.cookie = cookieName + '=; path=' + cookiePath + '; expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } function deleteGroupCookies(group) { if (!group) { return; } const domainData = OneTrust.GetDomainData(), cookies = domainData.Groups.filter(cookieGroup => cookieGroup.OptanonGroupId === group)[0].Cookies; cookies.forEach(cookie => deleteCookie(cookie.Name)); } function OptanonWrapper() { const cookieConsentGroups = []; for (group of OneTrust.GetDomainData().Groups) { cookieConsentGroups.push(group.OptanonGroupId); } OneTrust.OnConsentChanged(function(e) { const cookieConsentActiveGroups = OnetrustActiveGroups.split(',').filter(activeGroup => activeGroup); cookieConsentGroups.forEach(group => { if (!cookieConsentActiveGroups.includes(group)) { deleteGroupCookies(group); }; }); }); } window.jQuery || document.write(' ') CKEDITOR_BASEPATH='https://hrbopenresearch.org/js/vendor/ckeditor/' window.reactTheme = 'HRB'; window.MathJax = { CommonHTML: { linebreaks: { automatic: true } }, 'HTML-CSS': { linebreaks: { automatic: true } }, SVG: { linebreaks: { automatic: true } }, AuthorInit: function() { MathJax.Hub.Register.MessageHook('End Process', function () { let timeout = false; // holder for timeout id const delay = 250; // delay after event is "complete" to run callback const reflowMath = function() { const dispFormulas = document.querySelectorAll('.disp-formula.panel'); if (!dispFormulas) { return; } for (const dispFormula of dispFormulas) { const child = dispFormula.querySelector('.MathJax_Preview').nextSibling.firstChild; const isMultiline = MathJax.Hub.getAllJax(dispFormula)[0].root.isMultiline; if (dispFormula.offsetWidth < child.offsetWidth || isMultiline) { MathJax.Hub.Queue(['Rerender', MathJax.Hub, dispFormula]); } } }; window.addEventListener('resize', function() { clearTimeout(timeout); // clear the timeout timeout = setTimeout(reflowMath, delay); // start timing for event "completion" }); }); }, }; if (window.location.hash == '#_=_'){ window.location = window.location.href.split('#')[0] } !function(f,b,e,v,n,t,s){if(f.fbq)return;n=f.fbq=function() {n.callMethod? n.callMethod.apply(n,arguments):n.queue.push(arguments)} ;if(!f._fbq)f._fbq=n; n.push=n;n.loaded=!0;n.version='2.0';n.queue=[];t=b.createElement(e);t.async=!0; t.src=v;s=b.getElementsByTagName(e)[0];s.parentNode.insertBefore(t,s)}(window, document,'script','https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '1641728616063202'); fbq('track', "PixelInitialized", {}); Skip to content HRB Open Research file_upload Submit your research search clear search menu close clear Search Browse Gateways & Collections How to Publish Submit your Research My Submissions Article Guidelines Article Guidelines (New Versions) Data Guidelines Prepublication Checks Production Process Article Processing Charges Finding Article Reviewers About How it Works For Reviewers National Steering Group Policies Glossary FAQs Contact Blog My Account Submissions Content and Tracking Alerts My Details Sign In file_upload Submit your research { "@context": "https://schema.org", "@type": "ScholarlyArticle", "mainEntityOfPage": { "@type": "WebPage", "@id": "https://hrbopenresearch.org/articles/8-82" }, "headline": "Do we need another Osteoporosis risk tool? Making the case for DXA-MAP", "datePublished": "2025-07-21T11:00:20", "dateModified": "2025-07-21T11:00:20", "author": [ { "@type": "Person", "name": "Attracta Brennan" }, { "@type": "Person", "name": "John Carey" }, { "@type": "Person", "name": "E Erjiang" }, { "@type": "Person", "name": "Elena Zoldi" }, { "@type": "Person", "name": "Eléa Thuilier" }, { "@type": "Person", "name": "Lan Yang" } ], "publisher": { "@type": "Organization", "name": "HRB Open Research", "logo": { "@type": "ImageObject", "url": "https://hrbopenresearch.org/img/AMP/HRB_image.png", "height": 566, "width": 60 } }, "image": { "@type": "ImageObject", "url": "https://hrbopenresearch.org/img/AMP/HRB_image.png", "height": 1200, "width": 127 }, "description": " Background Despite Ireland having one of the largest osteoporosis burdens in Europe, it remains without a national programme or a screening strategy. This is contributing to poor quality low value care, and failure to implement accepted clinical standards. For example, although Ireland has a high number of Dual-energy X-ray Absorptiometry (DXA) scans, these remain underused in many high-risk groups, and overused in low-risk groups, further exacerbated by poor scan quality or reporting. This often results in inappropriate prescribing for low risk individuals, while many at-risk individuals remain untested and untreated. Clinicians lack familiarity with risk tools, and how to communicate the importance of osteoporosis screening and fracture risk. Our experience of running osteoporosis services for 20 years in Ireland is that while risk tools exist for identifying those with low bone mass or osteoporosis, or for predicting fracture, their use in clinical practice remains limited. Clear, quick and understandable risk-communication tools are urgently needed. Methods This paper presents summary findings from four larger studies on: (1) retrospective model development and validation (internal and external) using DXA data (n=4,787); (2) audit of all DXA referrals in our centre, since 2021; (3) GP survey (n=26); and (4) public engagement pilot studies to assess usability and impact of the DXA-MAP tool (n=129). Results An audit of more than 10,000 referrals since we published the validity of the OST(Osteoporosis Self-Assessment Tool) tool showed none included the OST tool, while <1% included any other clinical tool such as FRAX®, QRisk® or others. Our novel DXA-MAP model and the OST model show comparable performance in identifying healthy adults with osteoporosis across datasets. A GP survey found nearly 90% self-reported they would use an accessible, validated tool. Public survey polls demonstrate concern about osteoporosis is high osteoporosis, particularly among older women. Results show improvements in understanding and reductions in worry following use of the DXA-MAP tool. Feedback was very positive from members of the public and healthcare professionals for enhancing communication through its multimodal presentation of personalised risk (i.e. quantitatively, qualitatively and visually). Conclusions Although several osteoporosis risk tools are available, they are not in widespread use in Ireland. Availability, interpretation and risk communication are key challenges. A novel DXA-MAP tool can address these challenges through its robust validity for our population and multimodal presentation of risk. Preliminary feedback from members of the public and healthcare professionals suggest it could be a very useful tool and help bridge the osteoporosis care gap in Ireland. " } { "@context": "http://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": "1", "item": { "@id": "https://hrbopenresearch.org/", "name": "Home" } }, { "@type": "ListItem", "position": "2", "item": { "@id": "https://hrbopenresearch.org/browse/articles", "name": "Browse" } }, { "@type": "ListItem", "position": "3", "item": { "@id": "https://hrbopenresearch.org/articles/8-82", "name": "Do we need another Osteoporosis risk tool? Making the case for DXA-MAP" } } ] } Home Browse Do we need another Osteoporosis risk tool? Making the case for DXA-MAP ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Brennan A, Carey J, Erjiang E et al. Do we need another Osteoporosis risk tool? Making the case for DXA-MAP [version 1; peer review: awaiting peer review] . HRB Open Res 2025, 8 :82 ( https://doi.org/10.12688/hrbopenres.14197.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. Close Copy Citation Details Export Export Citation Sciwheel EndNote Ref. Manager Bibtex ProCite Sente EXPORT Select a format first Track Share ▬ ✚ Research Article Do we need another Osteoporosis risk tool? Making the case for DXA-MAP [version 1; peer review: awaiting peer review] Attracta Brennan https://orcid.org/0000-0002-1164-9484 1 , John Carey 2 , E Erjiang 3 , Elena Zoldi 1 , Eléa Thuilier 1 , Lan Yang https://orcid.org/0000-0002-7905-1438 2 Attracta Brennan https://orcid.org/0000-0002-1164-9484 1 , John Carey 2 , [...] E Erjiang 3 , Elena Zoldi 1 , Eléa Thuilier 1 , Lan Yang https://orcid.org/0000-0002-7905-1438 2 PUBLISHED 21 Jul 2025 Author details Author details 1 Computer Science, University of Galway, Galway, County Galway, Ireland 2 School of Medicine, University of Galway, Galway, County Galway, Ireland 3 School of Management, Guangxi Minzu University, Nanning, Guangxi, China Attracta Brennan Roles: Conceptualization, Data Curation, Formal Analysis, Funding Acquisition, Methodology, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing John Carey Roles: Conceptualization, Formal Analysis, Funding Acquisition, Methodology, Supervision, Validation, Writing – Original Draft Preparation, Writing – Review & Editing E Erjiang Roles: Conceptualization, Data Curation, Formal Analysis, Investigation, Software, Validation, Visualization, Writing – Review & Editing Elena Zoldi Roles: Data Curation, Writing – Review & Editing Eléa Thuilier Roles: Data Curation, Writing – Review & Editing Lan Yang Roles: Conceptualization, Data Curation, Formal Analysis, Investigation, Methodology, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing OPEN PEER REVIEW REVIEWER STATUS AWAITING PEER REVIEW This article is included in the Public and Patient Involvement collection. Abstract Background Despite Ireland having one of the largest osteoporosis burdens in Europe, it remains without a national programme or a screening strategy. This is contributing to poor quality low value care, and failure to implement accepted clinical standards. For example, although Ireland has a high number of Dual-energy X-ray Absorptiometry (DXA) scans, these remain underused in many high-risk groups, and overused in low-risk groups, further exacerbated by poor scan quality or reporting. This often results in inappropriate prescribing for low risk individuals, while many at-risk individuals remain untested and untreated. Clinicians lack familiarity with risk tools, and how to communicate the importance of osteoporosis screening and fracture risk. Our experience of running osteoporosis services for 20 years in Ireland is that while risk tools exist for identifying those with low bone mass or osteoporosis, or for predicting fracture, their use in clinical practice remains limited. Clear, quick and understandable risk-communication tools are urgently needed. Methods This paper presents summary findings from four larger studies on: (1) retrospective model development and validation (internal and external) using DXA data (n=4,787); (2) audit of all DXA referrals in our centre, since 2021; (3) GP survey (n=26); and (4) public engagement pilot studies to assess usability and impact of the DXA-MAP tool (n=129). Results An audit of more than 10,000 referrals since we published the validity of the OST(Osteoporosis Self-Assessment Tool) tool showed none included the OST tool, while <1% included any other clinical tool such as FRAX®, QRisk® or others. Our novel DXA-MAP model and the OST model show comparable performance in identifying healthy adults with osteoporosis across datasets. A GP survey found nearly 90% self-reported they would use an accessible, validated tool. Public survey polls demonstrate concern about osteoporosis is high osteoporosis, particularly among older women. Results show improvements in understanding and reductions in worry following use of the DXA-MAP tool. Feedback was very positive from members of the public and healthcare professionals for enhancing communication through its multimodal presentation of personalised risk (i.e. quantitatively, qualitatively and visually). Conclusions Although several osteoporosis risk tools are available, they are not in widespread use in Ireland. Availability, interpretation and risk communication are key challenges. A novel DXA-MAP tool can address these challenges through its robust validity for our population and multimodal presentation of risk. Preliminary feedback from members of the public and healthcare professionals suggest it could be a very useful tool and help bridge the osteoporosis care gap in Ireland. READ ALL READ LESS Keywords osteoporosis, risk tools, patient-clinician communication, personalisation, DXA-MAP Corresponding Author(s) Attracta Brennan ( [email protected] ) Close Corresponding author: Attracta Brennan Competing interests: No competing interests were disclosed. Grant information: Health Research Board [SDAP-2021-001 and HRB-SDAP-2023-010] The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Copyright: © 2025 Brennan A et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. How to cite: Brennan A, Carey J, Erjiang E et al. Do we need another Osteoporosis risk tool? Making the case for DXA-MAP [version 1; peer review: awaiting peer review] . HRB Open Res 2025, 8 :82 ( https://doi.org/10.12688/hrbopenres.14197.1 ) First published: 21 Jul 2025, 8 :82 ( https://doi.org/10.12688/hrbopenres.14197.1 ) Latest published: 21 Jul 2025, 8 :82 ( https://doi.org/10.12688/hrbopenres.14197.1 ) Introduction Osteoporosis is as one of the most prevalent non-communicable diseases globally 1 , 2 , representing a major source of morbidity, mortality, and healthcare expenditure 3 – 6 . Characterised by reduced bone mineral density (BMD) and increased fracture risk 7 – 9 , osteoporosis affects approximately 300,000 to 500,000 Irish people 5 , 10 . Ireland has one of the highest relative burdens of osteoporosis-related disease in Europe 5 . Due to rising life expectancy, this can only worsen, leading to a substantial burden on the Irish healthcare system 7 . Globally, nearly 200 million fractures occurred in 2019, many of which were likely osteoporosis-related especially among aging populations 7 , 11 . Over 4 million osteoporotic fractures were recorded in Europe in the same year, with direct healthcare costs approximating €60 billion 7 . In Ireland, the financial burden is similarly considerable, with hip fractures alone accounting for the majority of osteoporosis-related healthcare spending 7 . Fragility fractures, especially of the hip, vertebrae, and pelvis, are the most serious consequence of untreated osteoporosis, often resulting in chronic pain, reduced quality of life, disability, loss of independence, and higher risk of mortality 3 – 5 , 12 – 15 . In 2019, osteoporotic fractures in Ireland accounted for approximately 2% of total healthcare spending 9 , 15 . However, the true cost is likely much higher, potentially twice that amount, as indirect costs are not taken into account. Audits at Galway university hospital show that <20% of fracture related medical admissions included the terms ‘fracture’ or ‘osteoporosis’ in the hospital discharge diagnoses. Despite the significant economic and social burden of osteoporosis, it remains a low priority for many governments, including the Irish government, which doesn’t recognise the need for, or support a formal osteoporosis programme 16 . The absence of a national screening programme in Ireland has resulted in fragmented and poor quality care in diagnostic and treatment practices 15 , 17 . Although Dual-energy X-ray absorptiometry (DXA) remains the gold standard for measuring bone mineral density (BMD) and diagnosing osteoporosis 2 , 18 – 20 , it is often underused in high-risk groups 21 and overused in low-risk groups,. Meanwhile, the quality of scan acquisition and reporting vary widely in Ireland today 22 – 24 . Current guidelines recommend DXA testing for all men and women with a fragility fracture and those with major risk factors for fractures or those who are deemed at high risk for fracture, or where the results could influence treatment 25 . In a recent study of 3,474 Irish subjects referred for a DXA scan, and 2,090 Irish patients who completed a DXA scan, the majority of patients with osteoporosis or at high risk of fracture did not receive appropriate osteoporosis treatment, while inappropriate prescribing remained substantial (journal paper forthcoming). The undertreatment of those at high-risk and the overtreatment of those at low-risk, undermines the cost-effectiveness and credibility of osteoporosis management programmes 16 . Clinical decision-making is further complicated by the absence of national osteoporosis threshold guidelines and poor agreement between existing criteria. Although current clinical guidelines recommend osteoporosis treatment for those with specific risk factors, many eligible patients remain untreated. A recent study comparing five commonly used treatment criteria in 1,254 adults aged 40–90 years found that while 82% met at least one treatment threshold, only 9 individuals (<1%) met all. Eligibility varied widely depending on the criteria used, with agreement between thresholds being markedly inconsistent. The findings underscore the urgent need for harmonised, evidence-based thresholds to help close the osteoporosis treatment gap (journal paper forthcoming). Despite some debate about who should be screened for osteoporosis by DXA scanning, robust evidence support their use as being clinically and cost effective in primary prevention 2 , 26 – 28 . Several clinical algorithms are available to help clinicians identify those most likely to benefit from DXA scanning or those who are at risk for osteoporosis, with or without incorporating DXA results 2 , 29 . Fracture risk tools such as FRAX®, Garvan, and OSTi (Osteoporosis Self-Assessment Tool index) can be used to calculate individual risk, however each varies in complexity, population applicability, and predictive power. Although several effective screening tools and treatment options exist, their use remains limited in clinical practise 20 . A systematic review concluded that no single tool significantly outperforms others 29 . This conclusion is further supported by clinician studies, which highlight ongoing challenges in the adoption of risk tools; challenges relating to limited familiarity, lack of confidence in interpreting the results and uncertainty in applying said results in clinical decision-making and patient care 30 – 32 . One of our authors, who reviews all DXA requests for DXA scans in our hospital over the past 17 years, noted that <1% of these referrals included the results of any of these algorithms. Empirical evidence from Ireland suggests that clinicians are often unaware of these tools, what they actually mean, or how they should be used in practise. Compounding these challenges, clinician-patient communication remains a significant barrier to effective risk assessment and management. Clear risk communication is considered essential in primary care 31 , 33 , and a critical component of patient-centred osteoporosis management 34 , 35 . The RICO (Risk Communication in Osteoporosis) study demonstrated that patients often struggle to interpret numerical scores or abstract statistics 20 , 34 , preferring visual representations of their risk level 33 . Despite the availability of validated and widely used tools like FRAX®, Garvan, and OSTi, the format and delivery of risk information ‘falls short’. Research shows that the manner in which the information is presented, is just as important as the content itself in ensuring effective patient understanding and informed decision-making 34 . Methods In order to build the case for another osteoporosis risk tool, this paper presents findings from four larger studies that are currently being prepared for publication. They include: (1) an audit of all DXA referrals in our centre, since 2021; (2) retrospective model development and validation of the DXA-MAP tool, (3) a survey of general practitioners (GPs), and (4) a series of public engagement pilot studies. Audit of DXA referrals: DXA scans are performed on patients referred by their general practitioner (GP), hospital consultant (HC), and our osteoporosis service (OS). Referral data are stored electronically and available for audit. GP referrals generally contain additional details such as height, weight, blood pressure, comorbidities and prescribed medications. Since 2021, we have audited more than 10,000 DXA referrals to our centre. Retrospective model development and validation of the DXA-MAP tool. We conducted a cross-sectional study involving men and women who underwent hip DXA (dual-energy X-ray absorptiometry) scans at one of three healthcare centres in the West of Ireland from 1980–2018. The sample included 4,258 women and 529 men, aged 40 to 90 years, with a body mass index (BMI) ≥ 18.5 or < 30 kg/m 2 , and no prior history of fracture or major clinical risk factors for osteoporosis. All individuals had at least one valid DXA scan. They were randomly allocated into two groups: a development cohort (70%) and a validation cohort (30%). Combinations of age, sex, height, and weight were used to generate multiple predictive models; note:the majority of risk tools use age and weight as primary predictors 2 . Osteoporosis was defined according to WHO criteria as a T-score ≤ –2.5 at either the Femoral Neck (FN) or Total Hip (TH). Univariate and logistic regression analyses were used to assess how age, gender, height, and weight could predict DXA-classified osteoporosis. Stepwise selection was applied to refine the models, and established combinations like BMI and the OST index (OSTi) were evaluated. The OST model served as the benchmark model due to its strong validation and performance in relevant populations. The predictive power of 16 models, including OST and the DXA-MAP model (which combines age, gender, weight and height) was evaluated using internal validation. External validation was conducted using a 2019–2024 dataset comprising 868 women and 161 men meeting the same eligibility criteria. Model performance was assessed using AUC, accuracy, sensitivity and specificity. GP survey: A convenience sample of 26 healthcare professionals (<50% of attendees) voluntarily participated in audience questionnaires during Medical Grand Rounds on World Osteoporosis Day to gauge their level of usage of formal risk assessment tools and explore their willingness to adopt a new validated tool. Public engagement pilot studies: Following the development of the DXA-MAP tool in R Studio (version 2023.06.0), a set of pilot evaluations was conducted during public engagement events held on World Osteoporosis Day at University Hospital Galway (UHG). A convenience sample of 129 members of the public and healthcare professionals, participated in the evaluation. In both events, all participants were given a clear explanation of the study aims and procedures. Verbal informed consent was obtained prior to participation and before any data collection began; it was performed purely on a voluntary basis. Written consent was not collected, as no identifiable personal data were recorded posing minimal risk. The GP participants used an online polling tool during Medical Grand Rounds, while participants in the public engagement event completed a structured survey assessing their perception of fracture risk and levels of osteoporosis-related worry. This survey included a mix of Likert-scale, binary, and open-ended items. After demonstrating the DXA-MAP tool, their levels of worry were reassessed, and their perceptions of the usefulness of the DXA-MAP tool were evaluated. Results were disaggregated by gender and role (i.e. members of the public and healthcare professionals). Quantitative data from the pilot study and surveys were analysed using descriptive statistics. Differences between participant groups were explored using appropriate statistical tests, including the Wilcoxon rank-sum test, Chi-squared test, and Fisher’s exact test. Model performance in the development and validation phases was assessed using standard classification metrics (e.g., AUC-ROC curves). All calculations were computed using R (Version 4.4.2). Formal ethical approval was obtained from the Clinical Research Ethics Committee, University of Galway (Reference:C.A. 2019). An amendment for an extension was submitted and granted until May 2024. Ethics was also approved by the Sligo Research Ethics committee (Reference: Application no. 660). Results Both OST and DXA-MAP models demonstrate robust and comparable performance in discriminating between those with and without osteoporosis among the internal and external validation datasets. In internal validation, both models achieved similar AUCs, with balanced sensitivity and specificity. The DXA-MAP model had a slightly higher AUC compared to OST. In external validation, both the OST and DXA-MAP models showed slightly reduced performance, with AUCs in the range of 74.3% – 74.7%, and maintained good sensitivity and specificity. In terms of predictive accuracy, there was no significant difference between the OST and DXA-MAP models on external validation of the lowest site (i.e. the lowest of the FN and TH site for each person as per ISCD criteria), p=0.16, DeLong test. These results reinforce earlier findings from our group on the utility of OST as a simple and effective screening tool 17 . Although OST is widely used globally, and easy to calculate, our clinicians report not knowing about it, when to use it, the need to perform a calculation and difficulty in interpreting the OST score as barriers to its use in practice. Our DXA-MAP tool was developed to not only estimate the probability of osteoporosis, but to address these challenges of use, interpretation and effective communication, while offering comparable predictive performance. During Medical Grand Rounds in our hospital, 26 healthcare professionals voluntarily participated (<50% of attendees) in an online polling tool. They were asked whether they used risk assessment tools to decide whether or not a patient needed a DXA scan. 35% said “sometimes,” 19% said “always” and 15% said “no.” When asked whether they would consider using a risk assessment tool if they knew which one to use, 31% responded “yes.” Finally, when presented with a validated tool based on Irish data that takes less than 30 seconds to use (i.e. the DXA-MAP tool), nearly 90% said they would use it, while 4% were unsure. Results from the public engagement pilot studies indicated that both male and female participants reported high levels of concern about osteoporosis. Among males, worry was more concentrated in the highest worry category, whereas females showed a more evenly distributed pattern across worry levels. However, this difference was not statistically significant (Wilcoxon p = .38). Perceived risk of fracture increased with age, with the most notable rise observed between the 50–59 and 60–69 age groups. Public participants who had previously undergone a DXA scan were generally older and more likely to self-report worry about osteoporosis. Statistically significant differences were found between public participants and healthcare professionals in perceived fracture risk (p = .045) and levels of worry about osteoporosis (p = .005), with the public cohort reporting higher levels in both. Following the piloting of the DXA-MAP tool to members of the public and healthcare professionals, the feedback indicated strong acceptance across both cohorts. Public participants reported that presenting the probability of osteoporosis with a 95% confidence interval improved their understanding of personal risk and provided reassurance, a factor which is considered important for long-term adherence to osteoporosis prevention and treatment plans. These findings align with existing literature advocating for patient-centred approaches to risk communication, particularly in chronic conditions such as osteoporosis, where early intervention is often delayed due to confusion, miscommunication, or system-level barriers 6 . Meanwhile, healthcare professionals noted that the DXA-MAP tool could save time during consultations and reduce confusion in communicating risk. All participants agreed that the DXA-MAP tool held potential for bridging the gap between screening, diagnosis, and actionable patient engagement. The risk communication strategy adopted in the DXA-MAP tool reflects five of the eleven key components of effective communication 33 : presenting risk numerically, conveying uncertainty (through confidence intervals), using visual formats (e.g., charts with arrows), providing evaluative labels (e.g., high risk, medium risk, low risk), and personalising probabilities. Regarding worry about osteoporosis before and after using the DXA-MAP tool, results showed that worry levels decreased significantly, particularly among male participants and members of the public. Gender differences were observed: females were more likely to perceive themselves at risk of fracture and showed a stronger alignment between perceived risk and worry, whereas males frequently reported high levels of worry despite low perceived risk. Members of the public reported higher levels of worry and perceived risk compared to healthcare professionals; however, this difference reduced following use of the DXA-MAP tool. Overall, the DXA-MAP tool was perceived as useful and reassuring across all participants, supporting its potential as a clinician-patient communication aid to reduce anxiety, and enhance understanding of osteoporosis risk. Discussion Ireland has one of the highest rates of osteoporosis in Europe, a rate which is expected to rise as the population ages. However, in contrast to other European countries, Ireland has neither a national policy programme nor formal recognition of professional training or standards to address this massive public health issue. This presents an impending public health challenge that requires a targeted response. While DXA scanning remains the gold standard for diagnosing osteoporosis, low bone mineral density and osteoporosis in people without prior fractures, particularly following the World Health Organisation’s introduction of densitometric criteria (e.g., T-score ≤ –2.5), access to DXA services remains uneven; this has contributed to both under and over treatment. However, in Ireland today, access to quality DXA remains limited, with widespread issues of inappropriate scanning and poor quality DXA reporting. This represents a growing concern for effective osteoporosis diagnosis and management, especially given that many fractures could be prevented through appropriate assessment and treatment, potentially reducing both patient harm and healthcare costs. Some of these savings could be achieved by reducing over-testing and inappropriate testing and treatment among younger, healthier individuals and providing clinicians with a clear, simple, evidence-based tool to help decide who needs a screening DXA scan. While several risk assessment tools are available i.e., FRAX®, Garvan, there is currently no single gold standard. A systematic review concluded that no single tool significantly outperforms others 29 . Furthermore, many tools have not been validated for our population with the exception of the OST index (OST) 17 . Despite OST being validated for the Irish population and being easy to use, it is underutilised in clinical practice. One of the authors reported that among more than 10,000 DXA referrals received since publishing OST validation for the Irish population 17 , not a single referral has included an OST score. Whilst the algorithm is simple (weight-age)*.2, the main obstacles to its use are; (1) clinicians are unaware of it, (2) clinicians are reluctant to perform calculations in practise, (3) clinicians don’t know how to interpret the result i.e. a number without a context and (4) clinicians struggle to interpret and communicate risk scores in a way that is both meaningful and accessible to patients. Studies on clinician-patient communication highlight the need for clearer, more accessible ways of communicating risk, with patients expressing a preference for visual formats and plain language that contextualise risk scores 33 – 36 . From a clinician context, the absence of national guidelines and the under utilisation of existing tools due to challenges in use and in the interpretability of results, has resulted in the limited integration of such risk assessment tools into practice. The DXA-MAP tool was developed in response to all of the afore-mentioned challenges. While internal and external validation demonstrated that the predictive performance of the DXA-MAP model was comparable to OST, the goal was not to replace OST, but to enhance its practical utility. The advantage of the DXA-MAP tool lies in its improved usability and ability to support more effective risk communication, as it was designed with a focus on ease of use, simplicity, accessibility and visual communication. Importantly, it addresses the limitations reported by both clinicians and patients. Results are presented in multiple ways, including quantitatively as a percentage with a 95% confidence interval, visually (e.g., arrows on charts), and with qualitative risk labels (e.g., high risk, medium risk and low risk), reflecting the reality that individuals understand and interpret numbers differently 32 . The numerical presentation of osteoporosis risk aligns with studies which show that patients prefer absolute risk formats (e.g., ‘your probability of osteoporosis is 25%’) over relative risks (e.g., ‘there is a 25% increase in your probability of osteoporosis’) 30 . Pilot data for our DXA-MAP tool from members of the public show it improves their understanding of risk and provides some reassurance. Clinicians note it has potential to save them time and simplify risk discussions during consultations. The value of the DXA-MAP tool was further supported by significant improvements in understanding and decreased levels of worry, especially among the wider public. In summary, current osteoporosis risk tools are rarely used in practice in Ireland because they are not well understood and do not communicate risk in a simple, clear understandable format. Our findings indicate that healthcare professionals and members of the public want a tool that is simple, accessible, easy to use and clear. A novel DXA-MAP tool shows robust scientific validity and preliminary feedback suggests results help explain and understand risk and could greatly improve osteoporosis clinician-patient risk communication. Conclusion Despite the availability of an array of risk tools (some of which are validated for our population), their uptake in clinical practice in Ireland remains limited. One of the primary barriers to their use, as reported by clinicians, is a difficulty in interpreting risk scores and effectively communicating this risk to their patients. At the same time, patients report that they are rarely provided with personalised, easy-to-understand risk information. In response to this gap, we developed the DXA-MAP tool, with the aim of providing not just another algorithm, but a practical solution to improve the interpretation and communication of results. Internal and external validation demonstrate the DXA-MAP model performs comparably to OST, with no statistically significant differences observed across the external validation dataset. However, the main advantage of the DXA-MAP tool lies in its design whereby risk is communicated with contextual relevance through a multi-modal approach i.e. quantitatively, qualitatively and visually. This multi-modal approach appears to enhance clinician and patient confidence and support shared decision-making, and understanding of risk 32 . In summary, there is a compelling case for integrating the DXA-MAP tool into routine clinical workflows, to bridge the gap between evidence and action, and to support effective clinician-patient communication. Ethics approval All study procedures involving human participants were conducted in accordance with the ethical standards as outlined in the Declaration of Helsinki. Formal ethical approval was obtained from the Clinical Research Ethics Committee, University of Galway (Reference:C.A. 2019, Chair: Prof. Peter McCarthy). An amendment for an extension was submitted and granted until May 2024. Ethics was also approved by the Sligo Research Ethics committee (Reference: Application no. 660. Chair: Dr. Miriam Sullivan). Professional and Public engagement events were conducted as part of informal engagement activities for the purposes of understanding: (1) Healthcare concerns about risk tools, and (2) concerns to members of the public and healthcare professionals on osteoporosis risks in addition to feedback on the usability and impact of the DXA-MAP tool. These interactions were not submitted for formal ethical approval, as they did not involve the collection of identifiable personal data, posed minimal risk, and were considered part of routine service evaluation and public involvement. All participants were provided with a clear explanation of the study aims and procedures and gave verbal informed consent prior to voluntary participation. Responses were always fully anonymised. Data availability The data underlying this article cannot currently be shared publicly, as they form part of four larger, unpublished studies that are in preparation for future publication. Public release at this stage could compromise the integrity of those studies. This study was reviewed and approved by the Clinical Research Ethics Committee at Merlin Park Hospital and the Sligo Research Ethics committee, which did not object to the proposed approach to data sharing, provided that participant confidentiality was maintained and data were shared only after appropriate publication of the primary studies. Relevant summary results are reported in this paper. Full datasets may be made available upon reasonable request following publication of the original studies, subject to ethical and institutional approvals. Requests for access should be directed to the corresponding author. Note:We did not submit a data-sharing application for outside institutions when we submitted our clinical research ethics application. However, if required to do so, an application can be submitted. We are in the process of drafting a data-sharing agreement for use with outside applications in the event one is needed. For requests regarding access to the datasets please contact Prof. John Carey at [email protected] Faculty Opinions recommended References 1. Akkawi I, Zmerly H: Osteoporosis: current concepts. Joints. 2018; 6 (2): 122–127. PubMed Abstract | Publisher Full Text | Free Full Text 2. Carey JJ, Wu PCH, Bergin D: Risk assessment tools for osteoporosis and fractures in 2022. Best Pract Res Clin Rheumatol. 2022; 36 (3): 101775. PubMed Abstract | Publisher Full Text 3. Lorentzon M, Johansson H, Harvey NC, et al. : Osteoporosis and fractures in women: the burden of disease. Climacteric. 2022; 25 (1): 4–10. PubMed Abstract | Publisher Full Text 4. Sopina L, Hitz MF, Thygesen LC, et al. : Healthcare and productivity cost of osteoporosis: a Danish register-based quasi-experimental study. Osteoporos Int. 2025; 36 (5): 865–874. PubMed Abstract | Publisher Full Text | Free Full Text 5. Carey JJ, Erjiang E, Wang T, et al. : Prevalence of low bone mass and osteoporosis in Ireland: the Dual-Energy X-Ray Absorptiometry (DXA) Health Informatics Prediction (HIP) project. JBMR Plus. 2023; 7 (10): e10798. PubMed Abstract | Free Full Text 6. Chou L, Shamdasani P, Briggs AM, et al. : Systematic scoping review of patients’ perceived needs of health services for osteoporosis. Osteoporos Int. 2017; 28 (11): 3077–3098. PubMed Abstract | Publisher Full Text 7. Kanis JA, Norton N, Harvey NC, et al. : SCOPE 2021: a new scorecard for osteoporosis in Europe. Arch Osteoporos. 2021; 16 (1): 82. PubMed Abstract | Publisher Full Text | Free Full Text 8. Föger-Samwald U, Dovjak P, Azizi-Semrad U, et al. : Osteoporosis: pathophysiology and therapeutic options. EXCLI J. 2020; 19 : 1017–1037. PubMed Abstract | Publisher Full Text | Free Full Text 9. Slart RHJA, Punda M, Ali DS, et al. : Updated practice guideline for Dual-energy X-ray Absorptiometry (DXA). Eur J Nucl Med Mol Imaging. 2025; 52 (2): 539–563. PubMed Abstract | Publisher Full Text | Free Full Text 10. Travers J, Carey J: Osteoporosis: an up-to-date guide. Reference Source 11. GBD 2019 Fracture Collaborators: Global, regional, and national burden of bone fractures in 204 countries and territories, 1990– 2019: a systematic analysis from the Global Burden of Disease Study 2019. Lancet Healthy Longev. 2021; 2 (9): e580–e592. PubMed Abstract | Publisher Full Text | Free Full Text 12. Chen PE, Chien CW, Tung TH: The relationship between fragility fractures and pain experience: a systematic review. Front Med (Lausanne). 2021; 8 : 609318. PubMed Abstract | Publisher Full Text | Free Full Text 13. Cortet B, Chauvin P, Feron JM, et al. : Fragility fractures in France: epidemiology, characteristics and quality of life (the EPIFRACT study). Arch Osteoporos. 2020; 15 (1): 46. PubMed Abstract | Publisher Full Text 14. Alarkawi D, Bliuc D, Tran T, et al. : Impact of osteoporotic fracture type and subsequent fracture on mortality: the Tromsø Study. Osteoporos Int. 2020; 31 (1): 119–130. PubMed Abstract | Publisher Full Text 15. IOF: Scorecard for Osteoporosis in Europe (SCOPE): epidemiology, burden, and treatment of osteoporosis in Ireland. 2021. Reference Source 16. Harvey NC, McCloskey EV, Rizzoli R, et al. : Osteoporosis: treatment gaps and health economics. Encyclopedia of endocrine diseases, 2nd edn. Academic Press, Oxford, 2019; 4 . : 288–295. Reference Source 17. Erjiang E, Wang T, Yang L, et al. : Utility of osteoporosis self-assessment tool as a screening tool for osteoporosis in Irish men and women: results of the DXA-HIP project. J Clin Densitom. 2021; 24 (4): 516–526. PubMed Abstract | Publisher Full Text 18. Risk, W.S.G.o.A.o.F. and i.A.t.S.f.P. Osteoporosis: Assessment of fracture risk and its application to screening for postmenopausal osteoporosis: report of a WHO study group. World Health Organization, 1994. Reference Source 19. US Preventive Services Task Force, Curry SJ, Krist AH, et al. : Screening for osteoporosis to prevent fractures: US Preventive Services Task Force recommendation statement. JAMA. 2018; 319 (24): 2521–2531. PubMed Abstract | Publisher Full Text 20. McPhee C, Aninye IO, Horan L: Recommendations for improving women's bone health throughout the lifespan. J Womens Health (Larchmt). 2022; 31 (12): 1671–1676. PubMed Abstract | Publisher Full Text | Free Full Text 21. Lewiecki EM, Binkley N, Bilezikian JP: Stop the war on DXA! Ann N Y Acad Sci. 2018; 1433 (1): 12–17. PubMed Abstract | Publisher Full Text 22. Erjiang E, Wang T, Yang L, et al. : The Irish Dual-energy X-ray Absorptiometry (DXA) Health Informatics Prediction (HIP) for osteoporosis project. BMJ Open. 2020; 10 (12): e040488. PubMed Abstract | Publisher Full Text | Free Full Text 23. Amarnath ALD, Franks P, Robbins JA, et al. : Underuse and overuse of osteoporosis screening in a regional health system: a retrospective cohort study. J Gen Intern Med. 2015; 30 (12): 1733–1740. PubMed Abstract | Publisher Full Text | Free Full Text 24. Gillespie CW, Morin PE: Trends and disparities in osteoporosis screening among women in the United States, 2008-2014. Am J Med. 2017; 130 (3): 306–316. PubMed Abstract | Publisher Full Text 25. Khan AA, Slart RHJA, Ali DS, et al. : Osteoporotic fractures: diagnosis, evaluation, and Significance from the International Working Group on DXA Best practices. In: Mayo Clin Proc. Elsevier, 2024; 99 (7): 1127–1141. PubMed Abstract | Publisher Full Text 26. LeBoff MS, Greenspan SL, Insogna KL, et al. : The clinician’s guide to prevention and treatment of osteoporosis. Osteoporos Int. 2022; 33 (10): 2049–2102. PubMed Abstract | Publisher Full Text | Free Full Text 27. Kanis JA, Harvey NC, McCloskey E, et al. : Algorithm for the management of patients at low, high and very high risk of osteoporotic fractures. Osteoporos Int. 2020; 31 (1): 1–12. PubMed Abstract | Publisher Full Text | Free Full Text 28. Petersen TG, Abrahamsen B, Høiberg M, et al. : Ten-year follow-up of fracture risk in a systematic population-based screening program: the Risk-stratified Osteoporosis Strategy Evaluation (ROSE) randomised trial. EClinicalMedicine. 2024; 71 : 102584. PubMed Abstract | Publisher Full Text | Free Full Text 29. Rubin KH, Friis-Holmberg T, Hermann AP, et al. : Risk assessment tools to identify women with increased risk of osteoporotic fracture: complexity or simplicity? A systematic review. J Bone Miner Res. 2013; 28 (8): 1701–1717. PubMed Abstract | Publisher Full Text 30. Cho C, Bak G, Sumpton D, et al. : Perspectives of healthcare providers on osteoporosis, falls and fracture risk: a systematic review and thematic synthesis of qualitative studies. Arch Osteoporos. 2024; 19 (1): 90. PubMed Abstract | Publisher Full Text | Free Full Text 31. Merle B, Haesebaert J, Bedouet A, et al. : Osteoporosis prevention: where are the barriers to improvement in French general practitioners? A qualitative study. PLoS One. 2019; 14 (7): e0219681. PubMed Abstract | Publisher Full Text | Free Full Text 32. Salminen H, Piispanen P, Toth-Pal E: Primary care physicians’ views on osteoporosis management: a qualitative study. Arch Osteoporos. 2019; 14 (1): 48. PubMed Abstract | Publisher Full Text | Free Full Text 33. Beaudart C, Hiligsmann M, Li N, et al. : Effective communication regarding risk of fracture for individuals at risk of fragility fracture: a scoping review. Osteoporosis Int. 2022; 33 (1): 13–26. PubMed Abstract | Publisher Full Text | Free Full Text 34. Beaudart C, Sharma M, Clark P, et al. : Patients’ preferences for fracture risk communication: the Risk Communication in Osteoporosis (RICO) study. Osteoporosis Int. 2024; 35 (3): 451–468. PubMed Abstract | Publisher Full Text | Free Full Text 35. Schrager S: Five ways to communicate risks so that patients understand. Fam Pract Manag. 2018; 25 (6): 28–31. PubMed Abstract 36. Trevena LJ, Zikmund-Fisher BJ, Edwards A, et al. : Presenting quantitative information about decision outcomes: a risk communication primer for patient decision aid developers. BMC Med Inform Decis Mak. 2013; 13 Suppl 2 (Suppl 2): S7. PubMed Abstract | Publisher Full Text | Free Full Text Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 21 Jul 2025 ADD YOUR COMMENT Comment Author details Author details 1 Computer Science, University of Galway, Galway, County Galway, Ireland 2 School of Medicine, University of Galway, Galway, County Galway, Ireland 3 School of Management, Guangxi Minzu University, Nanning, Guangxi, China Attracta Brennan Roles: Conceptualization, Data Curation, Formal Analysis, Funding Acquisition, Methodology, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing John Carey Roles: Conceptualization, Formal Analysis, Funding Acquisition, Methodology, Supervision, Validation, Writing – Original Draft Preparation, Writing – Review & Editing E Erjiang Roles: Conceptualization, Data Curation, Formal Analysis, Investigation, Software, Validation, Visualization, Writing – Review & Editing Elena Zoldi Roles: Data Curation, Writing – Review & Editing Eléa Thuilier Roles: Data Curation, Writing – Review & Editing Lan Yang Roles: Conceptualization, Data Curation, Formal Analysis, Investigation, Methodology, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Competing interests No competing interests were disclosed. Grant information Health Research Board [SDAP-2021-001 and HRB-SDAP-2023-010] The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Article Versions (1) version 1 Published: 21 Jul 2025, 8:82 https://doi.org/10.12688/hrbopenres.14197.1 Copyright © 2025 Brennan A et al . This is an open access article distributed under the terms of the Creative Commons Attribution License , which permits unrestricted use, distribution, and reproduction in any medium, provided the original work is properly cited. Download Export To Sciwheel Bibtex EndNote ProCite Ref. Manager (RIS) Sente metrics VIEWS $counts.viewCount downloads Citations open_in_new 0 open_in_new 0 open_in_new SEE MORE DETAILS CITE how to cite this article Brennan A, Carey J, Erjiang E et al. Do we need another Osteoporosis risk tool? Making the case for DXA-MAP [version 1; peer review: awaiting peer review] . HRB Open Res 2025, 8 :82 ( https://doi.org/10.12688/hrbopenres.14197.1 ) NOTE: If applicable, it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS track receive updates on this article Track an article to receive email alerts on any updates to this article. TRACK THIS ARTICLE Share Open Peer Review Current Reviewer Status: AWAITING PEER REVIEW AWAITING PEER REVIEW ? Key to Reviewer Statuses VIEW HIDE Approved The paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved Fundamental flaws in the paper seriously undermine the findings and conclusions Comments on this article Comments (0) Version 1 VERSION 1 PUBLISHED 21 Jul 2025 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status AWAITING PEER REVIEW Comments on this article All Comments (0) Add a comment Sign up for content alerts Sign Up You are now signed up to receive this alert Alongside their report, reviewers assign a status to the article: Approved - the paper is scientifically sound in its current form and only minor, if any, improvements are suggested Approved with reservations - A number of small changes, sometimes more significant revisions are required to address specific details and improve the papers academic merit. Not approved - fundamental flaws in the paper seriously undermine the findings and conclusions Adjust parameters to alter display View on desktop for interactive features Includes Interactive Elements View on desktop for interactive features Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Stay Updated Sign up for content alerts and receive a weekly or monthly email with all newly published articles Register with HRB Open Research Already registered? Sign in Not now, thanks close PLEASE NOTE If you are an AUTHOR of this article, please check that you signed in with the account associated with this article otherwise we cannot automatically identify your role as an author and your comment will be labelled as a “User Comment”. If you are a REVIEWER of this article, please check that you have signed in with the account associated with this article and then go to your account to submit your report, please do not post your review here. If you do not have access to your original account, please contact us . All commenters must hold a formal affiliation as per our Policies . The information that you give us will be displayed next to your comment. User comments must be in English, comprehensible and relevant to the article under discussion. We reserve the right to remove any comments that we consider to be inappropriate, offensive or otherwise in breach of the User Comment Terms and Conditions . Commenters must not use a comment for personal attacks. When criticisms of the article are based on unpublished data, the data should be made available. I accept the User Comment Terms and Conditions Please confirm that you accept the User Comment Terms and Conditions. Affiliation ✕ refresh Please enter your institution. Note: To add your institution or organisation, start typing the name and then select the correct name from the list. Where applicable, the name will appear in both the original language and in English. Do not paste in the name. If the name does not appear in the drop-down list, we will display the information you have entered. ✕ refresh Country/Region * USA UK Canada China France Germany Afghanistan Aland Islands Albania Algeria American Samoa Andorra Angola Anguilla Antarctica Antigua and Barbuda Argentina Armenia Aruba Australia Austria Azerbaijan Bahamas Bahrain Bangladesh Barbados Belarus Belgium Belize Benin Bermuda Bhutan Bolivia Bosnia and Herzegovina Botswana Bouvet Island Brazil British Indian Ocean Territory British Virgin Islands Brunei Bulgaria Burkina Faso Burundi Cambodia Cameroon Canada Cape Verde Cayman Islands Central African Republic Chad Chile China Christmas Island Cocos (Keeling) Islands Colombia Comoros Congo Cook Islands Costa Rica Cote d'Ivoire Croatia Cuba Cyprus Czech Republic Democratic Republic of the Congo Denmark Djibouti Dominica Dominican Republic Ecuador Egypt El Salvador Equatorial Guinea Eritrea Estonia Ethiopia Falkland Islands Faroe Islands Federated States of Micronesia Fiji Finland France French Guiana French Polynesia French Southern Territories Gabon Georgia Germany Ghana Gibraltar Greece Greenland Grenada Guadeloupe Guam Guatemala Guernsey Guinea Guinea-Bissau Guyana Haiti Heard Island and Mcdonald Islands Holy See (Vatican City State) Honduras Hong Kong Hungary Iceland India Indonesia Iran Iraq Ireland Israel Italy Jamaica Japan Jersey Jordan Kazakhstan Kenya Kiribati Kosovo (Serbia and Montenegro) Kuwait Kyrgyzstan Lao People's Democratic Republic Latvia Lebanon Lesotho Liberia Libya Liechtenstein Lithuania Luxembourg Macao Madagascar Malawi Malaysia Maldives Mali Malta Marshall Islands Martinique Mauritania Mauritius Mayotte Mexico Minor Outlying Islands of the United States Moldova Monaco Mongolia Montenegro Montserrat Morocco Mozambique Myanmar Namibia Nauru Nepal Netherlands Antilles New Caledonia New Zealand Nicaragua Niger Nigeria Niue Norfolk Island North Korea North Macedonia Northern Mariana Islands Norway Oman Pakistan Palau Palestinian Territory Panama Papua New Guinea Paraguay Peru Philippines Pitcairn Poland Portugal Puerto Rico Qatar Reunion Romania Russian Federation Rwanda Saint Helena Saint Kitts and Nevis Saint Lucia Saint Pierre and Miquelon Saint Vincent and the Grenadines Samoa San Marino Sao Tome and Principe Saudi Arabia Senegal Serbia Seychelles Sierra Leone Singapore Slovakia Slovenia Solomon Islands Somalia South Africa South Georgia and the South Sandwich Is South Korea South Sudan Spain Sri Lanka Sudan Suriname Svalbard and Jan Mayen Swaziland Sweden Switzerland Syria Taiwan Tajikistan Tanzania Thailand The Gambia The Netherlands Timor-Leste Togo Tokelau Tonga Trinidad and Tobago Tunisia Turkey Turkmenistan Turks and Caicos Islands Tuvalu UK USA Uganda Ukraine United Arab Emirates United States Virgin Islands Uruguay Uzbekistan Vanuatu Venezuela Vietnam Wallis and Futuna West Bank and Gaza Strip Western Sahara Yemen Zambia Zimbabwe Please select your country/region. You must enter a comment. Competing Interests Please disclose any competing interests that might be construed to influence your judgment of the article's or peer review report's validity or importance. Competing Interests Policy Provide sufficient details of any financial or non-financial competing interests to enable users to assess whether your comments might lead a reasonable person to question your impartiality. Consider the following examples, but note that this is not an exhaustive list: Examples of 'Non-Financial Competing Interests' Within the past 4 years, you have held joint grants, published or collaborated with any of the authors of the selected paper. You have a close personal relationship (e.g. parent, spouse, sibling, or domestic partner) with any of the authors. You are a close professional associate of any of the authors (e.g. scientific mentor, recent student). You work at the same institute as any of the authors. You hope/expect to benefit (e.g. favour or employment) as a result of your submission. You are an Editor for the journal in which the article is published. Examples of 'Financial Competing Interests' You expect to receive, or in the past 4 years have received, any of the following from any commercial organisation that may gain financially from your submission: a salary, fees, funding, reimbursements. You expect to receive, or in the past 4 years have received, shared grant support or other funding with any of the authors. You hold, or are currently applying for, any patents or significant stocks/shares relating to the subject matter of the paper you are commenting on. Please state your competing interests The comment has been saved. An error has occurred. Please try again. Cancel Post var lTitle = "Do we need another Osteoporosis risk tool?...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://hrbopenresearch.org/articles/8-82/v1" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://hrbopenresearch.org/articles/8-82/v1&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://hrbopenresearch.org/articles/8-82/v1" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Brennan A et al.'); var offsetTop = /chrome/i.test( navigator.userAgent ) ? 4 : -10; var addthis_config = { ui_offset_top: offsetTop, services_compact : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_expanded : "facebook,twitter,www.linkedin.com,www.mendeley.com,reddit.com", services_custom : [ { name: "LinkedIn", url: linkedInUrl, icon:"/img/icon/at_linkedin.svg" }, { name: "Mendeley", url: "http://www.mendeley.com/import/?url=https://hrbopenresearch.org/articles/8-82/v1/mendeley", icon:"/img/icon/at_mendeley.svg" }, { name: "Reddit", url: redditUrl, icon:"/img/icon/at_reddit.svg" }, ] }; var addthis_share = { url: "https://hrbopenresearch.org/articles/8-82", templates : { twitter : "Do we need another Osteoporosis risk tool? Making the case for.... Brennan A et al., published by " + "@HRBOpenRes" + ", https://hrbopenresearch.org/articles/8-82/v1" } }; if (typeof(addthis) != "undefined"){ addthis.addEventListener('addthis.ready', checkCount); addthis.addEventListener('addthis.menu.share', checkCount); } $(".f1r-shares-twitter").attr("href", "https://twitter.com/intent/tweet?text=" + addthis_share.templates.twitter); $(".f1r-shares-facebook").attr("href", "https://www.facebook.com/sharer/sharer.php?u=" + addthis_share.url); $(".f1r-shares-linkedin").attr("href", addthis_config.services_custom[0].url); $(".f1r-shares-reddit").attr("href", addthis_config.services_custom[2].url); $(".f1r-shares-mendelay").attr("href", addthis_config.services_custom[1].url); function checkCount(){ setTimeout(function(){ $(".addthis_button_expanded").each(function(){ var count = $(this).text(); if (count !== "" && count != "0") $(this).removeClass("is-hidden"); else $(this).addClass("is-hidden"); }); }, 1000); } close How to cite this report {{reportCitation}} Cancel Copy Citation Details $(function(){R.ui.buttonDropdowns('.dropdown-for-downloads');}); $(function(){R.ui.toolbarDropdowns('.toolbar-dropdown-for-downloads');}); $.get("/articles/acj/14197/15613") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "15613"); $(document).ready(function() { $( "#frame1" ).on('load', function() { var mydiv = $(this).contents().find("div"); var h = mydiv.height(); console.log(h) }); var tooltipLivingFigure = jQuery(".interactive-living-figure-label .icon-more-info"), titleLivingFigure = tooltipLivingFigure.attr("title"); tooltipLivingFigure.simpletip({ fixed: true, position: ["-115", "30"], baseClass: 'small-tooltip', content:titleLivingFigure + " " }); tooltipLivingFigure.removeAttr("title"); $("body").on("click", ".cite-living-figure", function(e) { e.preventDefault(); var ref = $(this).attr("data-ref"); $(this).closest(".living-figure-list-container").find("#" + ref).fadeIn(200); }); $("body").on("click", ".close-cite-living-figure", function(e) { e.preventDefault(); $(this).closest(".popup-window-wrapper").fadeOut(200); }); $(document).on("mouseup", function(e) { var metricsContainer = $(".article-metrics-popover-wrapper"); if (!metricsContainer.is(e.target) && metricsContainer.has(e.target).length === 0) { $(".article-metrics-close-button").click(); } }); var articleId = $('#articleId').val(); if($("#main-article-count-box").attachArticleMetrics) { $("#main-article-count-box").attachArticleMetrics(articleId, { articleMetricsView: true }); } }); var figshareWidget = $(".new_figshare_widget"); if (figshareWidget.length > 0) { window.figshare.load("f1000", function(Widget) { // Select a tag/tags defined in your page. In this tag we will place the widget. _.map(figshareWidget, function(el){ var widget = new Widget({ articleId: $(el).attr("figshare_articleId") //height:300 // this is the height of the viewer part. [Default: 550] }); widget.initialize(); // initialize the widget widget.mount(el); // mount it in a tag that's on your page // this will save the widget on the global scope for later use from // your JS scripts. This line is optional. //window.widget = widget; }); }); } close Error Close Add Reset F1000.MICROSERVICES.AFFILIATION = ''; $(document).ready(function () { $('.js-affiliations-form').each((index, form) => { new AffiliationForm({ formId: form.id, institutionErrorSelector: '.comment-enter-institution', departmentErrorSelector: '.comment-enter-department', placeSelector: '.js-add-comment-place', stateSelector: '.js-add-comment-state', zipCodeSelector: '.js-add-comment-zipcode', countrySelector: '.js-add-comment-country', countryErrorSelector: '.comment-enter-country', }); }); }); $(document).ready(function () { var reportIds = { "49537": 0, "49538": 0, "49539": 0, "49540": 0, "49541": 0, "49542": 0, "49543": 0, "49544": 0, "49545": 0, "49546": 0, "49290": 0, "49291": 0, "49292": 0, "49293": 0, "49294": 0, "49295": 0, "49296": 0, "49297": 0, "49298": 0, "49299": 0, "50709": 0, "50710": 0, "50711": 0, "50712": 0, "50713": 0, "50714": 0, "50715": 0, "50716": 0, "50717": 0, "50718": 0, "48815": 0, "48816": 0, "48817": 0, "48818": 0, "48819": 0, "48820": 0, "48821": 0, "48822": 0, "48823": 0, "48824": 0, "49087": 0, "49088": 0, "49089": 0, "49090": 0, "49091": 0, "49092": 0, "49093": 0, "49094": 0, "49095": 0, "49096": 0, }; $(".referee-response-container,.js-referee-report").each(function(index, el) { var reportId = $(el).attr("data-reportid"), reportCount = reportIds[reportId] || 0; $(el).find(".comments-count-container,.js-referee-report-views").html(reportCount); }); var uuidInput = $("#article_uuid"), oldUUId = uuidInput.val(), newUUId = "4a354c1b-20b9-4f69-a18f-a99d456e9607"; uuidInput.val(newUUId); $("a[href*='article_uuid=']").each(function(index, el) { var newHref = $(el).attr("href").replace(oldUUId, newUUId); $(el).attr("href", newHref); }); }); Are you a HRB-funded researcher? Submission to HRB Open Research is open to all HRB grantholders or people working on a HRB-funded/co-funded grant on or since 1 January 2017. Sign up for information about developments, publishing and publications from HRB Open Research. First Name * You must provide your first name Last Name * You must provide your last name Email * You must provide a valid email address Institution You must provide an institution. Submit Thank you! We'll keep you updated on any major new updates to HRB Open Research HRB Open Research Browse How to Publish About Contact RSS Cookie Notice Privacy Notice Legal Submit Your Research © F1000 Research Limited and its licensors ISSN 2515-4826 | Legal background var F1000platform = new F1000.Platform({ name: "hrb", displayName: "HRB Open Research", hostName: "hrbopenresearch.org", id: "5", editorialEmail: "
[email protected]", infoEmail: "
[email protected]" }); Sign In Remember me Forgotten your password? Sign In Cancel Email or password not correct. Please try again Please wait... $(function(){ // Note: All the setup needs to run against a name attribute and *not* the id due the clonish // nature of facebox... $("a[id=googleSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("GOOGLE"); $("form[id=oAuthForm]").submit(); }); $("a[id=facebookSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("FACEBOOK"); $("form[id=oAuthForm]").submit(); }); $("a[id=orcidSignInButton]").click(function(event){ event.preventDefault(); $("input[id=oAuthSystem]").val("ORCID"); $("form[id=oAuthForm]").submit(); }); }); If you've forgotten your password, please enter your email address below and we'll send you instructions on how to reset your password. The email address should be the one you originally registered with F1000. Email address not valid, please try again You registered with F1000 via Google, so we cannot reset your password. To sign in, please click here . If you still need help with your Google account password, please click here . You registered with F1000 via Facebook, so we cannot reset your password. To sign in, please click here . If you still need help with your Facebook account password, please click here . Code not correct, please try again Reset password Cancel Email us for further assistance. Server error, please try again. If your email address is registered with us, we will email you instructions to reset your password. If you think you should have received this email but it has not arrived, please check your spam filters and/or contact for further assistance. Please wait... Register $(document).ready(function () { signIn.createSignInAsRow($("#sign-in-form-gfb-popup")); $(".target-field").each(function () { var uris = $(this).val().split("/"); if (uris.pop() === "login") { $(this).val(uris.toString().replace(",","/")); } }); }); (function(){function c(){var b=a.contentDocument||a.contentWindow.document;if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'9ff0e75319a38650',t:'MTc3OTMzODQzMg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();
Text is read by the "Ask this paper" AI Q&A widget below.
Extraction quality varies by source — PMC NXML preserves structure
cleanly, OA-HTML may include some navigation residue, and OA-PDF can
have broken hyphenation. The publisher copy
(via DOI)
is the canonical version.