RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland

preprint OA: closed CC-BY-4.0

Abstract

Background: The Health Service Executive (HSE) in Ireland releases monthly reports on prescription dispensing claims and payments relating to community drug schemes. This paper describes the implementation of an R-based Shiny application that facilitates interactive visualisation and analysis of trends in medication prescribing and improves the data’s practical value, and presents use cases focused on drug utilisation and medication policy questions. Methods Using Primary Care Reimbursement Service (PCRS) data provided by the HSE relating to the means-tested General Medical Services (GMS) scheme covering approximately one-third of the population, an R-based Shiny application was developed. This application uses monthly prescribing and cost data from 2016 up to the most recent data available (currently October 2024) relating to the 100 most commonly prescribed medications (by frequency and cost) and all therapeutic groups. The application leverages a range of R packages to enable users to select medications, therapeutic groups, and physiological systems to explore and compare prescribing and cost trends over time. Results The RxTrends Shiny application effectively integrates PCRS data, providing multiple functionalities that allow for visualisation of dispensing trends of multiple medications, therapeutic groups and physiological systems. Graphs are available across multiple prescribing frequency and cost metrics and can be restricted to a selected time period. The ‘compare’ function visualises the proportion of prescribing/cost a selected medication or therapeutic group accounts for within a therapeutic group or physiological system. Use cases relating to Ireland’s Preferred Drug Initiative, availability of generic products and reference pricing, and seasonality of drug utilisation are presented. Conclusion The application provides an interactive interface for stakeholders to visualise and monitor prescribing patterns using data from monthly PCRS reports. The application increases access to and usability of PCRS data for various audiences for whom it may be of interest, including researchers, healthcare professionals, policymakers and the general public.
Full text 186,826 characters · extracted from preprint-html · click to expand
RxTrends: An R-based Shiny Application for... | 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-36" }, "headline": "RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland", "datePublished": "2025-02-26T12:07:18", "dateModified": "2025-05-27T08:48:51", "author": [ { "@type": "Person", "name": "Ahmed Hassan Ali" }, { "@type": "Person", "name": "Michelle Flood" }, { "@type": "Person", "name": "Ciara Kirke" }, { "@type": "Person", "name": "Molly Mattsson" }, { "@type": "Person", "name": "Mary E. Walsh" }, { "@type": "Person", "name": "Emma Wallace" }, { "@type": "Person", "name": "Derek Corrigan" }, { "@type": "Person", "name": "Tom Fahey" }, { "@type": "Person", "name": "Fiona Boland" }, { "@type": "Person", "name": "Frank Moriarty" } ], "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 The Health Service Executive (HSE) in Ireland releases monthly reports on prescription dispensing claims and payments relating to community drug schemes. This paper describes the implementation of an R-based Shiny application that facilitates interactive visualisation and analysis of trends in medication prescribing and improves the data’s practical value, and presents use cases focused on drug utilisation and medication policy questions. Methods Using Primary Care Reimbursement Service (PCRS) data provided by the HSE relating to the means-tested General Medical Services (GMS) scheme covering approximately one-third of the population, an R-based Shiny application was developed. This application uses monthly prescribing and cost data from 2016 up to the most recent data available (currently October 2024) relating to the 100 most commonly prescribed medications (by frequency and cost) and all therapeutic groups. The application leverages a range of R packages to enable users to select medications, therapeutic groups, and physiological systems to explore and compare prescribing and cost trends over time. Results The RxTrends Shiny application effectively integrates PCRS data, providing multiple functionalities that allow for visualisation of dispensing trends of multiple medications, therapeutic groups and physiological systems. Graphs are available across multiple prescribing frequency and cost metrics and can be restricted to a selected time period. The ‘compare’ function visualises the proportion of prescribing/cost a selected medication or therapeutic group accounts for within a therapeutic group or physiological system. Use cases relating to Ireland’s Preferred Drug Initiative, availability of generic products and reference pricing, and seasonality of drug utilisation are presented. Conclusion The application provides an interactive interface for stakeholders to visualise and monitor prescribing patterns using data from monthly PCRS reports. The application increases access to and usability of PCRS data for various audiences for whom it may be of interest, including researchers, healthcare professionals, policymakers and the general public. " } { "@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-36/v2", "name": "RxTrends: An R-based Shiny Application for Visualising Open Data on..." } } ] } Home Browse RxTrends: An R-based Shiny Application for Visualising Open Data on... ALL Metrics - Views Downloads Get PDF Get XML Cite How to cite this article Hassan Ali A, Flood M, Kirke C et al. RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.12688/hrbopenres.14080.2 ) 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 ▬ ✚ Software Tool Article Revised RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] Ahmed Hassan Ali https://orcid.org/0000-0001-7462-9766 1 , Michelle Flood https://orcid.org/0000-0002-8284-1780 1 , Ciara Kirke https://orcid.org/0000-0001-5402-9018 2 , [...] Molly Mattsson https://orcid.org/0000-0002-7208-3613 1 , Mary E. Walsh 1 , Emma Wallace 3 , Derek Corrigan 4 , Tom Fahey https://orcid.org/0000-0002-5896-5783 5 , Fiona Boland https://orcid.org/0000-0003-3228-0046 6 , Frank Moriarty https://orcid.org/0000-0001-9838-3625 1 Ahmed Hassan Ali https://orcid.org/0000-0001-7462-9766 1 , Michelle Flood https://orcid.org/0000-0002-8284-1780 1 , [...] Ciara Kirke https://orcid.org/0000-0001-5402-9018 2 , Molly Mattsson https://orcid.org/0000-0002-7208-3613 1 , Mary E. Walsh 1 , Emma Wallace 3 , Derek Corrigan 4 , Tom Fahey https://orcid.org/0000-0002-5896-5783 5 , Fiona Boland https://orcid.org/0000-0003-3228-0046 6 , Frank Moriarty https://orcid.org/0000-0001-9838-3625 1 PUBLISHED 27 May 2025 Author details Author details 1 School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Leinster, Ireland 2 National Medication Safety Programme, HSE National Quality and Patient Safety Directorate, Dublin, Dublin, Ireland 3 Department of General Practice, University College Cork, Cork, County Cork, Ireland 4 Health Technology Assessment Directorate, Health Information and Quality Authority, Dublin, Leinster, Ireland 5 Department of General Practice, RCSI University of Medicine and Health Sciences, Dublin, Ireland 6 Data Science Centre, RCSI University of Medicine and Health Sciences, Dublin, Ireland Ahmed Hassan Ali Roles: Conceptualization, Data Curation, Formal Analysis, Investigation, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Michelle Flood Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Ciara Kirke Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Molly Mattsson Roles: Conceptualization, Data Curation, Validation, Writing – Review & Editing Mary E. Walsh Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Emma Wallace Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Derek Corrigan Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Tom Fahey Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Fiona Boland Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Frank Moriarty Roles: Conceptualization, Data Curation, Funding Acquisition, Investigation, Project Administration, Supervision, Validation, Visualization, Writing – Review & Editing OPEN PEER REVIEW DETAILS REVIEWER STATUS Abstract Background The Health Service Executive (HSE) in Ireland releases monthly reports on prescription dispensing claims and payments relating to community drug schemes. This paper describes the implementation of an R-based Shiny application that facilitates interactive visualisation and analysis of trends in medication prescribing and improves the data’s practical value, and presents use cases focused on drug utilisation and medication policy questions. Methods Using Primary Care Reimbursement Service (PCRS) data provided by the HSE relating to the means-tested General Medical Services (GMS) scheme covering approximately one-third of the population, an R-based Shiny application was developed. This application uses monthly prescribing and cost data from 2016 up to the most recent data available (currently October 2024) relating to the 100 most commonly prescribed medications (by frequency and cost) and all therapeutic groups. The application leverages a range of R packages to enable users to select medications, therapeutic groups, and physiological systems to explore and compare prescribing and cost trends over time. Results The RxTrends Shiny application effectively integrates PCRS data, providing multiple functionalities that allow for visualisation of dispensing trends of multiple medications, therapeutic groups and physiological systems. Graphs are available across multiple prescribing frequency and cost metrics and can be restricted to a selected time period. The ‘compare’ function visualises the proportion of prescribing/cost a selected medication or therapeutic group accounts for within a therapeutic group or physiological system. Use cases relating to Ireland’s Preferred Drug Initiative, availability of generic products and reference pricing, and seasonality of drug utilisation are presented. Conclusion The application provides an interactive interface for stakeholders to visualise and monitor prescribing patterns using data from monthly PCRS reports. The application increases access to and usability of PCRS data for various audiences for whom it may be of interest, including researchers, healthcare professionals, policymakers and the general public. READ ALL READ LESS Keywords General Medical Services (GMS), Prescribing Pattern, Data Visualisation, Shiny application Corresponding Author(s) Frank Moriarty ( [email protected] ) Close Corresponding author: Frank Moriarty Competing interests: No competing interests were disclosed. Grant information: Health Research Board [SDAP-2019-023 and ECSA-2020-002]. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Copyright: © 2025 Hassan Ali 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: Hassan Ali A, Flood M, Kirke C et al. RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.12688/hrbopenres.14080.2 ) First published: 26 Feb 2025, 8 :36 ( https://doi.org/10.12688/hrbopenres.14080.1 ) Latest published: 27 May 2025, 8 :36 ( https://doi.org/10.12688/hrbopenres.14080.2 ) Revised Amendments from Version 1 Introduction: The Introduction section was updated to add some details at the end describing the rationale for developing the application, highlighting limitations in the utility of raw PCRS data, the absence of existing visualisation tools for these datasets, the identified needs of knowledge users, and insights drawn from reviewing functionality of similar tools such as OpenPrescribing.net. Data source and preparation: A sentence was added to report that the application had been expanded to incorporate data from other schemes following its launch, but that this paper remains focused only on the GMS scheme data where eligibility figures are reliable. Implementation section: 1- To improve transparency and support data interpretation, a description of the downloadable CSV format was added, clarifying that it includes monthly data per selected medication, therapeutic group, and/or physiological system. A contextual help feature was also embedded in the expanded version of the application to explain output formats. 2- A section was added to describe the iterative development process, which involved two refinement cycles based on feedback from a multidisciplinary team covering clinical, epidemiological, and data science perspectives. The team evaluated a prototype application and providing feedback on features, functionality, and presentation. Discussion: The discussion now includes a clear acknowledgment of the lack of formal user testing. While internal feedback from team members informed interface improvements, formal testing with external users would be beneficial for future evaluations of usability and tool enhancement. Throughout Manuscript: Revised language to remove references to user-friendliness, replacing them with objective descriptions of features and functionality. Introduction: The Introduction section was updated to add some details at the end describing the rationale for developing the application, highlighting limitations in the utility of raw PCRS data, the absence of existing visualisation tools for these datasets, the identified needs of knowledge users, and insights drawn from reviewing functionality of similar tools such as OpenPrescribing.net. Data source and preparation: A sentence was added to report that the application had been expanded to incorporate data from other schemes following its launch, but that this paper remains focused only on the GMS scheme data where eligibility figures are reliable. Implementation section: 1- To improve transparency and support data interpretation, a description of the downloadable CSV format was added, clarifying that it includes monthly data per selected medication, therapeutic group, and/or physiological system. A contextual help feature was also embedded in the expanded version of the application to explain output formats. 2- A section was added to describe the iterative development process, which involved two refinement cycles based on feedback from a multidisciplinary team covering clinical, epidemiological, and data science perspectives. The team evaluated a prototype application and providing feedback on features, functionality, and presentation. Discussion: The discussion now includes a clear acknowledgment of the lack of formal user testing. While internal feedback from team members informed interface improvements, formal testing with external users would be beneficial for future evaluations of usability and tool enhancement. Throughout Manuscript: Revised language to remove references to user-friendliness, replacing them with objective descriptions of features and functionality. See the authors' detailed response to the review by Marion Bennie, Barry Melia and Amanj Kurdi See the authors' detailed response to the review by Heike Vornhagen READ REVIEWER RESPONSES Introduction The Primary Care Reimbursement Service (PCRS) is a division of the Health Service Executive (HSE, the provider of public health and social care services in Ireland). The PCRS processes payments to primary care health professionals, who offer specified health services to the general public 1 . The PCRS facilitates payments for community services through a wide range of administrative schemes and payment arrangements. In the area of medications, this includes the General Medical Services (GMS) scheme (which accounts for the highest volume of dispensing claims), Drugs Payment Scheme (DPS) and Long-Term Illness (LTI) scheme 1 , 2 . GMS scheme eligibility is assessed based on income, expenses, age, marital status, and dependents, and provides benefits in terms of health cover to those who meet the criteria 1 , 3 . Eligible persons under the GMS scheme are entitled to receive free or reduced cost medical and surgical services and most prescribed medications and appliances from pharmacists 1 . In 2016, 35.5% of the Irish population was covered by the GMS scheme, which decreased to 30.4% by 2022 4 , 5 . The GMS scheme over-represents females, older persons and individuals with a reduced socioeconomic status. For instance, over 70% of the population age 70 years or older were GMS scheme-eligible in 2022 4 . In 2022, the PCRS processed 19.4 million GMS prescription forms for payment, covering over 65.25 million prescription items which accounted for 71% of all items paid for by the PCRS 2 . These dispensed items accounted for over 60% (€1,015,607,700) of the cost of all payments to pharmacists (mostly reimbursed ingredient costs, as well as dispensing fees and VAT where applicable) 2 . This corresponds to an average expense of €15.47 for each dispensed item (excluding items dispensed for use in GP practices, such as dressings), with an average ingredient cost of €10.18 2 . Moreover, 87% of GMS scheme-eligible persons were dispensed prescription items, with an average annual expenditure of €740.91 per individual 2 . In 2022, medications for the nervous system, alimentary tract and metabolism, and cardiovascular system had the highest prescribing frequency and cost expenditure 2 . Several countries regularly release open ( i.e. publicly available) data on prescribing, for example, the National Health Service (NHS) Scotland Open Data 6 , NHS English Prescribing Dataset 7 and Netherlands' Medicines and Resources Information Project 8 . These datasets represent potentially valuable resources for researchers, healthcare providers, and policymakers. However, identifying meaningful patterns in raw data can be challenging without effective visualisation tools. OpenPrescribing is an example of how this challenge can be addressed by both aggregating prescribing data and providing interactive, easily interpretable visualisation of the data 9 . OpenPrescribing was first launched in 2016 to facilitate analysis of NHS England primary care prescribing data 10 . Through the development of the OpenPrescribing.net dashboards, users can easily navigate complex datasets, e.g. to explore specific medication trends both at the national level and across local Clinical Commissioning Groups (CCGs) 9 , 10 . OpenPrescribing supported researchers in assessing variation in clinical practice in the NHS, including prescribing trends and associated geographical variation 11 . Additionally, NHS Digital datasets aggregated by OpenPrescribing have also been used in research evaluating behaviour changes in clinical practice, such as prescribers’ response to new guidelines and policies 12 . In Ireland, the PCRS also releases open data through monthly reports on prescriptions, claims, and payments, including structured tables listing the top 100 prescribed medications and all therapeutic groups ordered by prescribing frequency and cost. However, the utility of this data is limited by the lack of any platform or application that enables interactive visualisation and analysis. This paper describes an R-based Shiny application implementation to visualise trends in prescribing data from the GMS scheme reported by the PCRS in Ireland, offering dynamic and interactive exploration. It also provides several use cases which illustrate how this application can be used in practice. The rationale for developing this application was limitations identified in the utility of the raw PCRS data and lack of identified visualisation tools for these datasets, and was informed by the needs of knowledge users and reviewing functionality of similar tools such as OpenPrescribing.net. Method Data source and preparation The HSE PCRS pharmacy claims data for Ireland was accessed via the PCRS’s Reporting and Open Data platform (available at https://www.sspcrs.ie/portal/annual-reporting/ ). We used their reports of monthly figures for the top 100 prescribed medications, ordered by their prescribing frequency or ingredient cost, as well as equivalent figures for total prescribing by therapeutic group, for the GMS scheme. We also used their reports on monthly numbers of eligible people for the GMS scheme. The current RxTrends application uses monthly prescribing data from January 2016 to October 2024 for the subset of the population who were eligible for the GMS scheme. GMS scheme data captures dispensing information for all reimbursed items for all eligible persons. We used this drug scheme for the initial development of this application, as for the Drugs Payment Scheme, data for any month only includes dispensings where household prescription medication expenditure exceeds a certain threshold. Additionally, Long Term Illness scheme data includes only medications that are related to specified health conditions, and only overall scheme eligibility is reported rather than by individual condition. Based on feedback following application launch, we also incorporated data from other drug schemes, however this paper focuses only on GMS scheme data where eligibility figures are reliable. Downloading of data from the PCRS open data platform and initial processing were performed using JupyterLab, a web-based interactive computing environment for Python ( https://jupyter.org ). All code and packages utilised are available in the Data Availability section. The monthly data are structured in a tabular format, detailing the medication or therapeutic group name, total monthly frequency of their prescriptions, their percentage share of total GMS prescriptions for the selected month, the overall ingredient cost of these prescriptions in euros, and their percentage share of total GMS prescription cost. Data on monthly GMS scheme eligibility for 2017–2024 were also accessed through the PCRS’s Reporting and Open Data platform. Eligibility figures for 2016 were directly requested via email correspondence with the PCRS’s Reporting and Open Data team. The eligibility data detail the number of eligible persons in each Community Health Organisation and Local Health Office area, broken-down by gender and age groups. This application utilises the total eligible number in all areas for each month. The prescriptions data categorised under therapeutic groups and physiological systems are coded according to the World Health Organization (WHO) Anatomical Therapeutic Chemical (ATC) Classification System 13 . Additionally, ATC codes for medications were added to enhance the utility of the individual medications data. Therefore, this coding facilitates comparisons of related ATC codes at different levels. Certain medication groups under the "Various" physiological system (V) were reported as pharmacological subgroups ( i.e. 3rd level ATC) within both the top 100 medications data and the therapeutic groups data ( i.e. 2nd level ATC). These groups, such as urinary requisites, diagnostic agents, and needles, were excluded from the list of individual medications, and were only included in the application as part of the therapeutic group data. This was the more appropriate categorisation of these groups (as they were not individual medications), and the therapeutic group figures appear to provide a more comprehensive representation of the dispensing of these items. Prescribing rates and cost rates were derived by divided values of prescribing frequency or cost of each medication, therapeutic group or physiological system by the total number of GMS scheme-eligible persons for the same month, and presented in rates per 1,000 eligible persons. The ingredient costs and related rate figures were also adjusted for inflation using the monthly Consumer Price Index (CPI), normalised to the most recent month in the data ( i.e. October 2024). The monthly CPI figures, which track the average price change of consumer goods and services purchased by private households, were sourced from the Central Statistics Office (CSO) of Ireland 14 . In May 2021, A cyberattack on the health service of the Republic of Ireland resulted in transmission issues for pharmacy claims for that month 15 . As a result, there was a notable fall in the apparent dispensing for that month and an increase for June 2021, as most data for dispensing in May were transmitted in June 15 . The weighted mean of the metrics value ( e.g. prescribing, cost) for the two months was calculated for each month. If a record was only available for one month ( i.e . a medication was not part of the top 100 for one of the months), its value was utilised for that specific month and was not modified and applied to the other. Shiny application development Implementation An interactive web-based Shiny application was developed to enable dynamic visualisation and provide descriptive analysis of prescribing patterns using data sourced from the HSE-PCRS. The application leverages a variety of R packages, including Shiny for the web framework, ggplot2 and plotly for graphical representations, and dplyr for data manipulation. The application’s architecture is divided into two main components: the user interface (UI) and server-side logic. The UI provides various interactive elements such as dropdown menus with search function for selecting medications, therapeutic groups, and physiological systems, and a choice of slider or dropdown menu for selecting date ranges. The server-side logic processes the PCRS data which is initially fed from an Excel file using the readxl package. Upon application launch, the UI dynamically populates selection choices based on the data. Users can select specific criteria to filter the data, which are then visualised through a series of tabbed panels displaying prescribing frequencies, costs, and rates (see Table 1 ) using plotly-enhanced ggplot2 charts. Each plot visualises trends over time, and users can interact with the data points for more detailed information. Additionally, the application includes custom JavaScript via shinyjs to enhance the UI elements like date range sliders, improving the user experience by formatting dates and updating labels dynamically. Table 1. Description of the output tab panels in the RxTrends Shiny application. Tab Panel Description Prescribing Frequency It visualises the number of times a medication was dispensed per month and corresponds to the variable “Prescribing Frequency” in the source data. Cost It visualises the total ingredient cost of dispensings of a medication in euro per month and corresponds to the variable “Ingredient Cost” in the source data. Cost per Prescribing It visualises the mean ingredient cost per dispensing of a medication per month and is derived by dividing the “Ingredient Cost” variable by the “Prescribing Frequency” variable in the source data. Prescribing Rate and Cost Rate It visualises the number of dispensings/ingredient cost per month of a medication per 1,000 GMS eligible persons. They are derived by dividing the “Prescribing Frequency” or “Ingredient Cost” variables by the number of GMS eligible persons and multiplying by 1,000. The RxTrends application's capabilities were extended by allowing users to select an unlimited number of entities across multiple categories, including medications, therapeutic groups, and physiological systems. The "Compare Selected" button in the application enables users to compare frequencies, costs, or rates over time when two distinct entities are selected. This feature allows the application's server-side logic to compute for the selected metric ( e.g. prescribing frequency, cost of the medication/therapeutic group) the proportion of higher-level entity in the WHO ATC classification hierarchy ( i.e. therapeutic group or physiological system) made up of the lower-level entity ( i.e. medication or therapeutic group). These comparisons are dynamically visualised in the interactive plots powered by ggplot2 and plotly. The application also features a download button allowing users to download data containing the selected inputs currently displayed for further analysis or use. Downloadable data is provided in Comma-separated values (CSV) format, including columns for the metrics listed in Table 1 and one row per month per selected medication, therapeutic group, and/or physiological system. A contextual help and documentation feature has also been embedded within the application, which describes output data format in detail. During the development of RxTrends, the application underwent two refinement cycles, with team members (from clinical, epidemiology, and data science backgrounds) evaluating a prototype application and providing feedback on features, functionality, and presentation. Operation This RxTrends Shiny application was developed using R programming, version 4.3.3 ( www.r-project.org ) for Microsoft Windows 10 x64, with the following attached base packages: stats, graphics, grDevices utils, datasets, methods, and base. Other attached packages were dplyr (1.1.4), lubridate (1.9.3), DT (0.33), plotly (4.10.4), ggplot2 (3.5.1), openxlsx (4.2.5.2), readxl (1.4.3), readr (2.1.5), shinyjs (2.1.0), htmltools (0.5.8.1), and shiny (1.8.1.1). This Shiny application is available online on shinyapps.io ( https://frankmoriarty.shinyapps.io/RxTrends-RShiny/ ) and on the webpage for the project this work relates to ( https://cdrx-project.eu/?page_id=90 ) to enable users to run it embedded within the website. Additionally, users can run this application locally in RStudio either by downloading the code underlying application and associated data (see Data Availability section), or by running it directly from GitHub using the following R command: shiny::runGitHub(repo = 'RxTrends-RShiny', username = 'moriarty-pharmacoepi', ref = "master") Use cases The RxTrends application can be used by those interested in exploring drug utilisation patterns, and potentially to facilitate drug utilisation research on questions across a range of domains. We present use cases to illustrate the potential for the application to explore questions relating to utilisation and costs. Prescribing frequency of preferred drugs in Ireland The Preferred Drugs Initiative in Ireland aims to identify a certain drug within a therapeutic drug class as the preferred choice 16 . This initiative offers prescribers clear guidelines on how to select, prescribe, and monitor the preferred drug for specific medical conditions 16 . The selection of the drug is based on a comprehensive assessment of several aspects including clinical effectiveness, dosage, drug interactions, adverse effects, cost, national prescription patterns, and clinical recommendations 16 . The HSE Medicines Management Programme has evaluated ten therapeutic classes and chosen a preferred drug within each, for example pantoprazole being the preferred proton pump inhibitor (PPI) 16 . This application can be used to visualise the different medications within a therapeutic class, and evaluate trends in use of the HSE preferred drugs over time relative to other agents within the class. Users have the ability to choose various medications from a therapeutic group in order to observe the prescribing trend for each medication and the overall therapeutic group. Examining PPIs as one of the most commonly prescribed therapeutic classes, Figure 1 shows that esomeprazole is the most frequently prescribed PPI, ranging from 55.38 to 103.61 prescription dispensings per 1,000 eligible persons per month, with an increasing trend over time. Pantoprazole, the HSE preferred drug, was the third most frequently dispensed PPI at the start of the period of data coverage (a prescription rate of 32.82 per 1,000 in January 2016), however the rate of prescribing has increased and surpassed lansoprazole since 2021 to reach 60. 26 per 1,000 in October 2024. Esomeprazole is increasing as a proportion of prescribing within drugs for acid-related disorders (from 0.298 in January 2016 to 0.397 in October 2024, Figure 2 ), while pantoprazole ( Figure 3 ) increased from 0.177 to 0.231. This indicates improved alignment with the preferred drug initiative recommendation for PPIs, but significant potential for further improvement. Figure 1. Prescribing rates of individual Proton Pump Inhibitors (PPIs) and drugs for acid related disorders. Figure 2. The proportion of prescribing of esomeprazole with all drugs for acid related disorders. Figure 3. The proportion of prescribing of pantoprazole with all drugs for acid related disorders. Cost implications of patent expiry and policy change The expiry of patent protection and the availability of generic versions of off-patent medications can substantially affect medication expenditure. In Ireland, the Health (Pricing and Supply of Medical Goods) Act 2013 allows pharmacists to substitute medications which have been deemed as interchangeable by the Health Products Regulatory Authority (HPRA) 17 . ‘Interchangeable products’ are those medications that are judged to be suitable for substitution with another medication in the same group if they have the same qualitative and quantitative composition in each of their active substances, are in the same pharmaceutical form, have the same route of administration, and have no more than two active substances 17 . Subsequent to the introduction of interchangeable products, the HSE introduced a policy of reference pricing, which involves establishing a common reimbursement price, or reference price, for a group of interchangeable medications 17 . This is the price the HSE will reimburse each time a product from this group is dispensed; when products are priced at or below this reference price, patients do not face any additional expenses, however dispensing a more expensive product may result in patients having to pay the difference in price 17 . In December 2019, the HPRA published an updated list that included interchangeable pregabalin and gabapentin medications for the first time 18 . The HSE than set reference prices effective from 1 st April 2020 for the groups of interchangeable pregabalin products 19 , and from 1 st May 2020 for gabapentin products 20 , in both cases representing a substantial price reduction compared to the previous prices. Figure 4 illustrates the impact of allowing interchangeability between brands and then reference pricing for gabapentinoids. Following these changes, the ingredient cost per dispensing of prescribed pregabalin and gabapentin experienced a considerable decrease. Specifically, the cost for pregabalin dropped from €32.49 per prescription in March 2020 to €10.14 per prescription in April 2020, and the cost for gabapentin dropped from €21.98 per prescription in April 2020 to €11.95 per prescription in May 2020 ( Figure 4 ). Figure 4. Cost per prescribed unit of gabapentin and pregabalin. As another measure to manage pharmaceutical costs, the HSE introduced a change to the reimbursement of lidocaine plasters, due to a level of use that far exceeded approved indications, indicating off-label prescribing for conditions other than post-herpetic neuralgia (PHN) 21 . This was implemented in two stages, the initial stage was implemented in September 2017 for new patients, necessitating approval for each patient diagnosed with PHN to be reimbursed under the GMS scheme for lidocaine plaster dispensing. This requirement was subsequently extended to pre-existing patients who had been receiving the drug prior to September 2017 21 . As shown in Figure 5 , the monthly rate of lidocaine plaster dispensings per 1,000 eligible persons reduced from a high of 15.6 in August 2017 to 10.2 and 8.7 in September and October 2017 following the introduction of the first stage of the policy change. Data are not reported for lidocaine plasters for the period November 2017–April 2018, as it was not among the top 100 medications by frequency or cost, though from May 2018 it is again included in the top 100 by cost. Previous research has shown prescribing frequency decreased further in December 2017 with the introduction of the second stage of the policy change and has remained low since 22 . Figure 5. Prescribing rate of lidocaine products (including lidocaine plasters). Seasonal variation in medication prescribing The RxTrends application provides a graphical analysis of prescription trends, presenting monthly data over the course of years, which allows potential seasonality in medication use to be evaluated. Figure 6 and Figure 7 clearly show a considerable increase in prescription rates of antibacterials for systemic use and drugs for chronic obstructive lung disease over the winter months, reaching a peak between December and January of each year. This spike is likely associated with the greater occurrence of infections and respiratory diseases during the colder months (as a possible trigger), requiring higher usage of these medications. The sharp seasonal peaks are less pronounced or absent for the winters of 2020/2021 and 2021/2022, likely due to social distancing and other measures to reduce transmission of COVID-19 during the initial phases of the pandemic 23 . These measures also reduced circulation of other respiratory infections 23 . Figure 6. Prescribing rate of the systemic antibacterials therapeutic group. Figure 7. Prescribing rate of the drugs for obstructive airway diseases therapeutic group. Similar to data from OpenPrescribing in England, the current application shows a spike in the prescription rate of drugs for chronic obstructive airway diseases (R03) in March-April 2020, coinciding with the onset of the COVID-19 pandemic in Ireland 24 . This may be attributed to increased patient stockpiling, and improved adherence to inhalers during the initial months of the pandemic due to public health messaging that people with respiratory conditions may be at high risk of complications of COVID-19 24 . Discussion The development of the RxTrends application that visualises the patterns of prescribing of medications on the GMS scheme in Ireland provides a useful tool for health data analytics for a range of stakeholders. This application makes use of existing open data that is available on a tabular basis by month, and provides a simple means of interactive visualisation of trends in drug utilisation. The application allows for analysis at multiple levels (individual medication, therapeutic group, or physiological system) and includes a variety of metrics on prescribing frequency, cost, and rates. This provides an advantage over the status quo, where collating and analysing data on a single medication requires downloading and managing a substantial number of monthly files to extract the necessary data, and knowledge and skills to do so. Thus, the RxTrends application increases access to and usability of PCRS data for various audiences it may be of interest to, including researchers, healthcare professionals, policymakers and the general public. As illustrated in the use cases, it has various potential uses, including general assessment of drug utilisation patterns, exploring how utilisation and expenditure vary following policy or other changes, and may provide a means of preliminary evaluation of such policies and scoping potential research questions to generate hypotheses. OpenPrescribing is another example of interactive data visualisation tool in England that uses data from the English Prescribing dataset (EPD) and the Prescription Cost Analysis (PCA) 25 . Similar to RxTrends, it allows users to analyse monthly data and time trends in prescribing and costs for individual medications or a group of drugs, as well as the relative metrics of individual medications within therapeutic groups 25 . Unlike RxTrends, OpenPrescribing includes region-, area- and GP practice-level prescribing and cost data, allowing for analysis across different practices, primary care networks, integrated care boards, or NHS England regions 25 . Data are reported at the product level, allowing analysis of prescribing by product strength, brand, and formulation. OpenPrescribing also offers additional dashboards for visual insights into over 70 different prescribing measures, such as items which should not be routinely prescribed in primary care, high dose PPIs, and high dose opioids 25 . Unlike RxTrends that only processes data from 2016 onwards, OpenPrescribing processes an extensive dataset of over 700 million records to visualise long-term trends of annual data for all medications dispensed in community settings in England, extending back to 1998 25 . Researchers have utilised OpenPrescribing data for a variety of studies, for example, to investigate the potential cost reductions by optimising the price-per-unit of drugs and doses within general practices across NHS England 26 . According to their analysis, it was estimated that a theoretical maximum of £410 million could be saved within a period of 12 months, with half of these potential savings considered practically achievable 26 . Subsequently, they directly investigated the impact of utilising OpenPrescribing on alterations in prescribing behaviour 27 and showed that the platform's price-per-unit tool led to substantial cost savings 27 . The "price-per-unit" function of OpenPrescribing saved £243,000 at the practice level and £1.47 million at the CCG level over the first three months (August to November 2017) for practices that viewed the feature 27 . Extrapolating these savings to all practices could yield a national annual NHS saving of £26.8 million 27 . Outputs from both OpenPrescribing and RxTrends could be combined to facilitate cross-country comparative research, however only for the medications or therapeutic groups included in the latter. The RxTrends application’s functionality is limited by deficiencies in the source data available. The utilised data encompasses only the top 100 medications by frequency and cost and therapeutic groups prescribed each month. This limits the potential to evaluate prescribing trends of all medications, and prevents evaluation of more granular, specific chemical subgroups (e.g. proton pump inhibitors, ATC A02BC) compared to the available therapeutic groups (e.g. drugs for acid-related disorders, ATC A02). This can also lead to an incomplete time series for specific medications in cases where they drop out of the top 100 medications in particular months during the study period. Furthermore, more detailed information on prescribing of particular products e.g. brands, strengths, or formulations, or prescribing by region or GP practice is not included in the data, as is the case in other jurisdictions. This would allow for more extensive analysis, as is illustrated by OpenPrescribing, and increase the relevance and utility of the application for individual healthcare professionals. While the open data published by the PCRS has facilitated the RxTrends application to be developed, the availability of further data on all prescribed medications, and potentially by product and region/GP practice, would further increase the potential and value of this application and the data in general for informing healthcare research, policy, and practice in Ireland. While the application's final interface reflected iterative improvements based on feedback from research team members who represent the target audiences, this internal process does not constitute formal user testing. Formal usability testing with external and representative sample of users, including healthcare professionals and other relevant audiencias, would be of benefit to evaluate the user-friendliness of the application and inform improvements in the future. Notwithstanding these limitations, RxTrends represents the first tool to facilitate visualisation and analysis of open prescribing data in Ireland. While we provide some illustrative use cases, making more extensive data available to be used in the application would enable extensive use for quality improvement initiatives. In particular, availability of practice level data would provide substantial opportunities for clinical audit and feedback, which could result in benefits in prescribing safety, appropriateness, and cost effectiveness. Expanding to include such data has the potential to result in a more effective tool that can play a role in healthcare policy, practice, and research in Ireland, advancing the strategic utilisation of data in supporting high-quality healthcare and patient safety. Ethics and consent Ethical approval and consent were not required. Data availability Underlying data Original data obtained for use in this application is available from the PCRS Reporting and Open Data area: https://www.sspcrs.ie/portal/annual-reporting/ . Processed data used in this application is available as follows: Zenodo: Data associated with "RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland", https://doi.org/10.5281/zenodo.14726923 28 . Data are available under the terms of the Creative Commons Attribution 4.0 International license (CC-BY 4.0). Software availability Source codes available from: https://github.com/moriarty-pharmacoepi/RxTrends-RShiny Archived software available from: https://doi.org/10.5281/zenodo.14726890 29 License: Available under the terms of the Creative Commons Zero "No rights reserved" data waiver (CC0 1.0 Public domain dedication). Faculty Opinions recommended References 1. Health Service Executive (HSE): HSE Primary Care Eligibility & Reimbursement Service (PCERS); information and administrative arrangements for pharmacists. Accessed June 25, 2024. Reference Source 2. Health Service Executive: Primary Care Reimbursement Service: statistical analysis of claims and payments 2022. Accessed June 25, 2024. Reference Source 3. Vaughan M, Lucey S, Sahm LJ: Prevalence and cost of antipsychotic prescribing, within the context of psycholeptic prescribing, in the Irish setting. Healthcare (Basel). 2024; 12 (3): 338. PubMed Abstract | Publisher Full Text | Free Full Text 4. Department of Health: Health in Ireland key trends 2023. Accessed June 25, 2024. Reference Source 5. Mattsson M, Flood M, Wallace E, et al. : Eligibility rates and representativeness of the General Medical Services scheme population in Ireland 2016-2021: a methodological report [version 2; peer review: 2 approved]. HRB Open Res. 2023; 5 : 67. PubMed Abstract | Publisher Full Text | Free Full Text 6. National Health Service (NHS) Scotland: OpenData: prescriptions in the community. Accessed July 15, 2024. Reference Source 7. National Health Service Business Services Authority (NHSBSA): Open data portal: English Prescribing Dataset (EPD). Accessed July 15, 2018. Reference Source 8. Dutch Healthcare Institute: Open data pharmacy and resources. Accessed July 15 2024. Reference Source 9. Curtis HJ, Goldacre B: OpenPrescribing: normalised data and software tool to research trends in English NHS primary care prescribing 1998–2016. BMJ Open. 2018; 8 (2): e019921. PubMed Abstract | Publisher Full Text | Free Full Text 10. Ogden J: Simplifying prescribing data: OpenPrescribing two years on. Prescriber. 2018; 29 (10): 31–34. Publisher Full Text 11. Curtis HJ, Walker AJ, Mahtani KR, et al. : Time trends and geographical variation in prescribing of antibiotics in England 1998–2017. J Antimicrob Chemother. 2018; 74 (1): 242–250. PubMed Abstract | Publisher Full Text 12. Curtis HJ, Walker AJ, Goldacre B: Impact of NICE guidance on tamoxifen prescribing in England 2011–2017: an interrupted time series analysis. Br J Cancer. 2018; 118 (9): 1268–1275. PubMed Abstract | Publisher Full Text | Free Full Text 13. World Health Organization: WHO Collaborating Centre for Drug Statistics Methodology, ATC classification index with DDDs, 2024. Oslo, Norway, 2024; Accessed July 2024. 14. Central Statistics Office (CSO): Consumer prices monthly series: CPM02 - Consumer price index. Reference Source 15. Mattsson M, Hong JA, Frazer JS, et al. : Trends in medication use at the onset of and during the COVID-19 pandemic in the Republic of Ireland: an interrupted time series study. Basic Clin Pharmacol Toxicol. 2024; 134 (2): 231–240. PubMed Abstract | Publisher Full Text 16. Medicines Management Programme: Preferred drugs. Accessed July 28 2024. Reference Source 17. Health Products Regulatory Authority (HPRA): Guide to interchangeable medicines. Accessed July 28, 2024. Reference Source 18. Health Products Regulatory Authority (HPRA): Generic and interchangeable medicines. Accessed June 25, 2024. Reference Source 19. Health Service Executive PCRS: Pharmacy circular 006/20. Accessed July 15 2024. Reference Source 20. Health Service Executive PCRS: Pharmacy circular 011/20. Accessed July 15 2024. Reference Source 21. Medicines Management Programme: Lidocaine 700 mg medicated plaster (Versatis ® ): prescribing and cost guidance. Accessed July 28, 2024. Reference Source 22. Mattsson M, Boland F, Kirke C, et al. : The impact of lidocaine plaster prescribing reduction strategies: a comparison of two national health services in Europe. Br J Clin Pharmacol. 2023; 89 (8): 2349–2358. PubMed Abstract | Publisher Full Text 23. Dadras O, Alinaghi SAS, Karimi A, et al. : Effects of COVID-19 prevention procedures on other common infections: a systematic review. Eur J Med Res. 2021; 26 (1): 67. PubMed Abstract | Publisher Full Text | Free Full Text 24. Robinson J: Salbutamol inhaler prescribing jumped 60% at start of COVID-19 pandemic. Pharm J. 2020. Publisher Full Text 25. OpenPrescribing.net. Bennett Institute for Applied Data Science, University of Oxford, 2024. Reference Source 26. Croker R, Walker AJ, Bacon S, et al. : New mechanism to identify cost savings in English NHS prescribing: minimising ‘price per unit’, a cross-sectional study. BMJ Open. 2018; 8 (2): e019643. PubMed Abstract | Publisher Full Text | Free Full Text 27. Walker AJ, Curtis HJ, Croker R, et al. : Measuring the impact of an open web-based prescribing data analysis service on clinical practice: cohort study on NHS England data. J Med Internet Res. 2019; 21 (1): e10929. PubMed Abstract | Publisher Full Text | Free Full Text 28. Hassan Ali A, Moriarty F: Data from: data associated with "RxTrends: an R-based shiny application for visualising open data on prescribed medications in Ireland". 2025. http://www.doi.org/10.5281/zenodo.14726923 29. Hassan Ali A, Moriarty F: Data from: RxTrends: an R-based shiny application for visualising open data on prescribed medications in Ireland. 2025. http://www.doi.org/10.5281/zenodo.14726890 Comments on this article Comments (0) Version 2 VERSION 2 PUBLISHED 26 Feb 2025 ADD YOUR COMMENT Comment Author details Author details 1 School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Leinster, Ireland 2 National Medication Safety Programme, HSE National Quality and Patient Safety Directorate, Dublin, Dublin, Ireland 3 Department of General Practice, University College Cork, Cork, County Cork, Ireland 4 Health Technology Assessment Directorate, Health Information and Quality Authority, Dublin, Leinster, Ireland 5 Department of General Practice, RCSI University of Medicine and Health Sciences, Dublin, Ireland 6 Data Science Centre, RCSI University of Medicine and Health Sciences, Dublin, Ireland Ahmed Hassan Ali Roles: Conceptualization, Data Curation, Formal Analysis, Investigation, Project Administration, Software, Validation, Visualization, Writing – Original Draft Preparation, Writing – Review & Editing Michelle Flood Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Ciara Kirke Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Molly Mattsson Roles: Conceptualization, Data Curation, Validation, Writing – Review & Editing Mary E. Walsh Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Emma Wallace Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Derek Corrigan Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Tom Fahey Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Fiona Boland Roles: Conceptualization, Funding Acquisition, Validation, Writing – Review & Editing Frank Moriarty Roles: Conceptualization, Data Curation, Funding Acquisition, Investigation, Project Administration, Supervision, Validation, Visualization, Writing – Review & Editing Competing interests No competing interests were disclosed. Grant information Health Research Board [SDAP-2019-023 and ECSA-2020-002]. The funders had no role in study design, data collection and analysis, decision to publish, or preparation of the manuscript. Article Versions (2) version 2 Revised Published: 27 May 2025, 8:36 https://doi.org/10.12688/hrbopenres.14080.2 version 1 Published: 26 Feb 2025, 8:36 https://doi.org/10.12688/hrbopenres.14080.1 Copyright © 2025 Hassan Ali 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 Hassan Ali A, Flood M, Kirke C et al. RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.12688/hrbopenres.14080.2 ) 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: ? 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 Version 2 VERSION 2 PUBLISHED 27 May 2025 Revised Views 0 Cite How to cite this report: Svensson S. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15556.r47489 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v2#referee-response-47489 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 03 Sep 2025 Staffan Svensson , University of Gothenburg, Gothenburg, Sweden Approved VIEWS 0 https://doi.org/10.21956/hrbopenres.15556.r47489 Summary This paper describes the background to and development of an R package and application called RxTrends. The intention of the authors is for this to facilitate interpretation of prescription data released monthly by the Irish Health Service Executive. ... Continue reading READ ALL Summary This paper describes the background to and development of an R package and application called RxTrends. The intention of the authors is for this to facilitate interpretation of prescription data released monthly by the Irish Health Service Executive. Some examples of its use are given. In general the application works well and is visually pleasant. There are some minor quirks that I outline below. The limitations of RxTrends are mainly secondary to the limitations of its source data, as the "top 100" publishing policy of the Irish authority curbs many attempts to follow prescribing trends. The source data also precludes regional comparisons. By making this evident, RxTrends constitutes an impetus for the Irish authority to start releasing full monthly data. In the following I make some comments on the sections of the manuscript. Introduction For an outsider, it is a bit difficult to digest the information on the PCRS, GMS, DPS, LTI, CCGs, etc. The background on how the Irish system works is necessary, particularly the information about population coverage, but could it be explained in a simpler way? Also, I was looking for a figure along the lines of "These statistics cover X% of all prescriptions filled by the entire Irish population". Perhaps this is deducible from 30.4% × 87% but it would in that case help to have it spelled out. The content that is more specific for this article starts with the section "Several countries...". Could the sections be shuffled so this appears earlier? The "ingredient cost" as I understand it refers to the price of the actual drug, the rest being costs added by pharmacies. This could be explained. Method The description of the application's development is easy to follow. The authors have added data that was not directly available online: eligibility figures for 2016, and ATC codes for individual medications, thus extending the dataset and not merely re-presenting it. It could be made clear that the starting month of January 2016 is due to the PCRS making data available from this time. The most recent data in RxTrends are from December 2024 (writing this in August 2025), while on the PCRS website, data from April 2025 are available. A comment on the updating policy (automatic or manual?) would be in place. Use cases The use cases are interesting and well written. Having no experience of looking at Irish prescription data, however, I decided to make my own use cases and compare the function of the PCRS website and the RxTrends application with a source that I am familiar with, the Swedish National Prescribed Drug Register: https://sdb.socialstyrelsen.se/if_lak/val.aspx in order to investigate two topics: 1) use of anastrozole among men, and 2) regional differences in prescription of GLP1-analogues. Topic 1) is due a recent case where a male patient in my clinic explained that he got anastrozole for impotence, from an urologist. Such use of anastrozole is off-label as this drug is normally used to treat breast cancer, and I was interested in knowing how often this is prescribed to men. As for topic 2, the use of GLP1-analogues has boomed and there are clear regional differences in their use in Sweden. Would this be the case also in Ireland? Using the Swedish Register, I entered "Monthly numbers" and anastrozole's ATC code "L02BG03", "Nationwide", "Men" and "Number of patients", "All years" and "All months". This gives me a table and graph of the number of men filling anastrozole prescriptions medication since 2006. It seems the number was <20 per month until 2017, then increased to a maximum of 86 in October 2020, then returning to 20--40 monthly prescriptions from 2023 onwards. As for the regional comparison of GLP1-analogues, I entered the ATC codes A10BJ01 to 06 as well as A10BX16 for tirzepatide, and with the appropriate settings got a series of graphs showing an explosive development, most notably since 2019 for semaglutide. For this drug, the range of filled prescriptions per 1000 inhabitants in 2024 ranges from 52 in the Västerbotten region, to 149 in the Jämtland region. Turning to the PRCR's website https://www.sspcrs.ie/portal/annual-reporting/report/pharmacy I find a page listing the 100 most commonly prescribed products by frequency and cost (anastrozole predictably not being among them) and there is a menu allowing me to add months starting from 2016-01 through 2025-04, but there is no way to see development over time and no regional information. Now, starting the RxTrends application in R, after some initial complaints about missing packages, I get a local instance of the Shiny app in my browser. As for the anastrozole question, the nearest I get is data from its second-level ATC group L02 (Endocrine therapy), which is of little use. Regarding the GLP1-analogues, it is possible to see the development over time for semaglutide, liraglutide and dulaglutide on a nation-wide basis, thus clearly improving on the PRCR experience (regional data is obviously still missing). It is shown that semaglutide peaked in late 2022, then decreased, only to rebound in 2024. The program when run from R is fast and responsive when I add more comparators. It's easy to switch between the five tabs and the overall impression is neat. A stress test of the web version (selecting all available medications) made it crash, however. The downloading of data works well. When I reproduce the use case of pregabalin and gabapentin, data for both appear to end abruptly in late 2022, but this turns out to be an ATC relabeling issue as these drugs were moved from N03AX (Other antiepileptics) to N02BF (Gabapentinoids) around that time. Playing around with the program, gaps in the time curves are often seen, an artefact due to the "top 100" publishing policy of the PCRS. For example, looking at sodium valproate, data ends in June 2021 although https://www.hpra.ie reports its continued use. The patchy availability of data is somewhat frustrating. When looking at seasonality in use of antihistamines, cetirizine and fexofenadine show a clear pattern of increase in summer. On the other hand, desloratadine and levocetirizine only make it into the top 100 some summers, and the resulting curve with scattered points and lines extrapolated in between give an impression of higher-than-actual use. The "compare" function has a potential flaw. It requires the user to choose a drug, say the PPI A02BC05 (esomeprazole) and its corresponding second-level ATC code (A02), and then hitting the "compare" button to get the proportion of A02BC05 within A02. But there is nothing to prevent the user from picking an irrelevant comparator, say L04 instead of A02, thereby generating nonsensical data. It would be an improvement if the application could generate an error message whenever the ATCs do not match, or pick the comparator automatically. Discussion The discussion is well written, although the parts that concern OpenPrescribing are unnecessarily long and detailed (mostly the third paragraph starting "Researchers have utilised..."). The point here is to compare RxTrends and OpenPrescribing, and to give some evidence to the usefulness of RxTrends. That could be done in fewer words, perhaps instead using that space to discuss visualisation tools available in other countries. Application details At the "Cost" tabs there is reference in the tool tip to a "toggle button above", but this button is actually situated to the left. In the comparison of a medication to its therapeutic group (also commented above), the y axis is reported as "Proportion of a Medication's with a Therapeutic Group's Metrics". Here a word, presumably "prescription", is missing. Anyhow, I suggest this label is changed to "Proportion of a medication's prescribing within its therapeutic group". Manuscript style This sentence and its use of "extended" reminds me of sales language: "The RxTrends application’s capabilities were extended by allowing users to select an unlimited number of entities across multiple categories, including medications, therapeutic groups, and physiological systems.". Why not write something more neutral like "users can select any combination of medications, therapeutic groups and physiological systems." Lidocaine, mentioned in a use case, is listed as "lignocaine" in the database. Both are correct but this could be confusing. Typos In May 2021, A cyberattack => a cyberattack relevant audiencias => audiences Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests: No competing interests were disclosed. Reviewer Expertise: Clinical pharmacology, General practice/family medicine I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Svensson S. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15556.r47489 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v2#referee-response-47489 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Views 0 Cite How to cite this report: Vornhagen H. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15556.r47433 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v2#referee-response-47433 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 02 Jun 2025 Heike Vornhagen , University of Galway, Galway, Ireland Approved VIEWS 0 https://doi.org/10.21956/hrbopenres.15556.r47433 I appreciate the changes made in relation to ... Continue reading READ ALL I appreciate the changes made in relation to references relating to user-friendliness and have no further comments. Competing Interests: No competing interests were disclosed. Reviewer Expertise: User focused design, data dashboards, data visualisation, user interface design I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Vornhagen H. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15556.r47433 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v2#referee-response-47433 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Respond or Comment COMMENT ON THIS REPORT Version 1 VERSION 1 PUBLISHED 26 Feb 2025 Views 0 Cite How to cite this report: Vornhagen H. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15467.r46473 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v1#referee-response-46473 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 18 Apr 2025 Heike Vornhagen , University of Galway, Galway, Ireland Approved with Reservations VIEWS 0 https://doi.org/10.21956/hrbopenres.15467.r46473 This paper describes the development of RxTrends , an interactive RShiny application designed to visualise and explore trends in prescription data under Ireland’s General Medical Services (GMS) scheme. Drawing from publicly available monthly datasets published by the Health Service Executive's Primary Care ... Continue reading READ ALL This paper describes the development of RxTrends , an interactive RShiny application designed to visualise and explore trends in prescription data under Ireland’s General Medical Services (GMS) scheme. Drawing from publicly available monthly datasets published by the Health Service Executive's Primary Care Reimbursement Service (HSE-PCRS), the tool enables dynamic analysis of prescribing patterns, including frequency, cost, and population-adjusted rates, from 2016 to 2024. The data were cleaned and structured using Python in JupyterLab and integrated into the app using R and various packages like ggplot2, plotly, and shinyjs. The application allows users to compare trends across medications, therapeutic groups, and physiological systems using the WHO’s Anatomical Therapeutic Chemical (ATC) classification. RxTrends aims to address a major limitation of the Irish prescribing data—lack of user-friendly access to visualisations—and provides functionality similar to tools like OpenPrescribing in the UK. Use cases illustrated include monitoring adherence to the HSE Preferred Drugs Initiative and evaluating the financial impact of policy changes such as reference pricing and generic substitution. Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Sufficient information is provided to understand the general nature of the outputs generated by the tool, such as candidate match scores and ranked lists. However, the paper lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Including output specifications would improve transparency and reproducibility. Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? While the paper provides a technical description of the tool and demonstrates its capabilities through examples, the conclusions about its usability and user-friendliness are not sufficiently supported by evidence. There is no mention of user testing or evaluation with end-users, nor is there any indication of user research conducted prior to development to establish need or inform design choices. Without this, it is difficult to assess whether the tool effectively meets user requirements or delivers on its claims of intuitiveness and practicality. Recommendation: Approve with Reservations The tool presents a promising approach to visualising healthcare data, with a well-executed implementation and clear presentation of results. However, I have significant reservations regarding the tool's user-centric design and its lack of clear user research. While the authors mention the tool is ‘user-friendly,’ there is little to no evidence presented of user testing or engagement that would support such claims. Additionally, there is no indication of a structured process to assess user needs prior to development, which raises concerns about how well the tool truly aligns with its intended audience’s requirements. Further, the conclusions about the tool’s performance and usability seem premature without substantial user feedback. To strengthen this work, I recommend more thorough user testing and a detailed explanation of the methodology behind understanding user needs, which would support the tool’s claims of being intuitive and effective. If these areas are addressed, this tool has the potential to be a valuable resource. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? No Competing Interests: No competing interests were disclosed. Reviewer Expertise: User focused design, data dashboards, data visualisation, user interface design I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Vornhagen H. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15467.r46473 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v1#referee-response-46473 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Author Response 03 Jul 2025 Ahmed Hassan Ali , School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Ireland 03 Jul 2025 Author Response Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks ... Continue reading Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Reply: We thank the reviewer for identifying this gap. We have expanded the description of dataset outputs both in a new Help and documentation section of the application, and within the manuscript itself: “Downloadable data is provided in Comma-separated values (CSV) format, including columns for the metrics listed in Table 1 and one row per month per selected medication, therapeutic group, and/or physiological system. A contextual help and documentation feature has also been embedded within the application, which describes output data format in detail.” Reviewer Point 2.2 – Lack of evidence for usability and user-friendliness claims and lack of indication of user research conducted prior to development to establish need or inform design choices, or evaluation with end-users Reply: We acknowledge this is a valid concern. We have revised the manuscript to remove references to user-friendliness as this has not been formally assessed. While formal user testing was not conducted, the development process did involve testing and feedback on prototypes by the inter-disciplinary research team, which we now describe in the manuscript as follows: “During the development of RxTrends, the application underwent two refinement cycles, with team members (from clinical, epidemiology, and data science backgrounds) evaluating a prototype application and providing feedback on features, functionality, and presentation.” Lastly, we have noted lack of formal usability testing as a limitation and something beneficial for further development of the application: “While the application's final interface reflected iterative improvements based on feedback from research team members who represent the target audiences, this internal process does not constitute formal user testing. Formal usability testing with external and representative sample of users, including healthcare professionals and other relevant audiences, would be of benefit to evaluate the user-friendliness of the application and inform improvements in the future.” Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Reply: We thank the reviewer for identifying this gap. We have expanded the description of dataset outputs both in a new Help and documentation section of the application, and within the manuscript itself: “Downloadable data is provided in Comma-separated values (CSV) format, including columns for the metrics listed in Table 1 and one row per month per selected medication, therapeutic group, and/or physiological system. A contextual help and documentation feature has also been embedded within the application, which describes output data format in detail.” Reviewer Point 2.2 – Lack of evidence for usability and user-friendliness claims and lack of indication of user research conducted prior to development to establish need or inform design choices, or evaluation with end-users Reply: We acknowledge this is a valid concern. We have revised the manuscript to remove references to user-friendliness as this has not been formally assessed. While formal user testing was not conducted, the development process did involve testing and feedback on prototypes by the inter-disciplinary research team, which we now describe in the manuscript as follows: “During the development of RxTrends, the application underwent two refinement cycles, with team members (from clinical, epidemiology, and data science backgrounds) evaluating a prototype application and providing feedback on features, functionality, and presentation.” Lastly, we have noted lack of formal usability testing as a limitation and something beneficial for further development of the application: “While the application's final interface reflected iterative improvements based on feedback from research team members who represent the target audiences, this internal process does not constitute formal user testing. Formal usability testing with external and representative sample of users, including healthcare professionals and other relevant audiences, would be of benefit to evaluate the user-friendliness of the application and inform improvements in the future.” Competing Interests: No competing interests were disclosed. Close Report a concern Respond or Comment COMMENTS ON THIS REPORT Author Response 03 Jul 2025 Ahmed Hassan Ali , School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Ireland 03 Jul 2025 Author Response Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks ... Continue reading Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Reply: We thank the reviewer for identifying this gap. We have expanded the description of dataset outputs both in a new Help and documentation section of the application, and within the manuscript itself: “Downloadable data is provided in Comma-separated values (CSV) format, including columns for the metrics listed in Table 1 and one row per month per selected medication, therapeutic group, and/or physiological system. A contextual help and documentation feature has also been embedded within the application, which describes output data format in detail.” Reviewer Point 2.2 – Lack of evidence for usability and user-friendliness claims and lack of indication of user research conducted prior to development to establish need or inform design choices, or evaluation with end-users Reply: We acknowledge this is a valid concern. We have revised the manuscript to remove references to user-friendliness as this has not been formally assessed. While formal user testing was not conducted, the development process did involve testing and feedback on prototypes by the inter-disciplinary research team, which we now describe in the manuscript as follows: “During the development of RxTrends, the application underwent two refinement cycles, with team members (from clinical, epidemiology, and data science backgrounds) evaluating a prototype application and providing feedback on features, functionality, and presentation.” Lastly, we have noted lack of formal usability testing as a limitation and something beneficial for further development of the application: “While the application's final interface reflected iterative improvements based on feedback from research team members who represent the target audiences, this internal process does not constitute formal user testing. Formal usability testing with external and representative sample of users, including healthcare professionals and other relevant audiences, would be of benefit to evaluate the user-friendliness of the application and inform improvements in the future.” Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Reply: We thank the reviewer for identifying this gap. We have expanded the description of dataset outputs both in a new Help and documentation section of the application, and within the manuscript itself: “Downloadable data is provided in Comma-separated values (CSV) format, including columns for the metrics listed in Table 1 and one row per month per selected medication, therapeutic group, and/or physiological system. A contextual help and documentation feature has also been embedded within the application, which describes output data format in detail.” Reviewer Point 2.2 – Lack of evidence for usability and user-friendliness claims and lack of indication of user research conducted prior to development to establish need or inform design choices, or evaluation with end-users Reply: We acknowledge this is a valid concern. We have revised the manuscript to remove references to user-friendliness as this has not been formally assessed. While formal user testing was not conducted, the development process did involve testing and feedback on prototypes by the inter-disciplinary research team, which we now describe in the manuscript as follows: “During the development of RxTrends, the application underwent two refinement cycles, with team members (from clinical, epidemiology, and data science backgrounds) evaluating a prototype application and providing feedback on features, functionality, and presentation.” Lastly, we have noted lack of formal usability testing as a limitation and something beneficial for further development of the application: “While the application's final interface reflected iterative improvements based on feedback from research team members who represent the target audiences, this internal process does not constitute formal user testing. Formal usability testing with external and representative sample of users, including healthcare professionals and other relevant audiences, would be of benefit to evaluate the user-friendliness of the application and inform improvements in the future.” Competing Interests: No competing interests were disclosed. Close Report a concern COMMENT ON THIS REPORT Views 0 Cite How to cite this report: Bennie M, Melia B and Kurdi A. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15467.r46472 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v1#referee-response-46472 NOTE: it is important to ensure the information in square brackets after the title is included in this citation. Close Copy Citation Details Reviewer Report 10 Apr 2025 Marion Bennie , University of Strathclyde, Glasgow, UK Barry Melia , Public Health Scotland, Scotland, UK Amanj Kurdi , Public Health Scotland, Scotland, UK Approved VIEWS 0 https://doi.org/10.21956/hrbopenres.15467.r46472 This article outlines how standard R packages, by importing a limited number of data rows, can be utilised to provide medicines utilisation intelligence. As highlighted in the article, this is limited to the top 100 lines in the GMS scheme ... Continue reading READ ALL This article outlines how standard R packages, by importing a limited number of data rows, can be utilised to provide medicines utilisation intelligence. As highlighted in the article, this is limited to the top 100 lines in the GMS scheme alone. I agree that this limits the functionality significantly (whilst DPS information may not be comprehensive, it would be good to present and caveat as these patients might be considered as high-cost families). I agree that future functionality, broken down geographically/organisationally would enhance the offering. I would also suggest that some quality prescribing metrics beyond the preferred drugs list would add a medicines safety aspect which would allow benchmarking and quality improvement. However, as a first exploration, this is good start. I would recommend a discussion with colleagues in England and Scotland to further explore the “art of the possible”. Thank you and well done! Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Yes Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests: No competing interests were disclosed. We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. Close READ LESS CITE CITE HOW TO CITE THIS REPORT Bennie M, Melia B and Kurdi A. Reviewer Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15467.r46472 ) The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v1#referee-response-46472 NOTE: it is important to ensure the information in square brackets after the title is included in all citations of this article. COPY CITATION DETAILS Report a concern Author Response 03 Jun 2025 Ahmed Hassan Ali , School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Ireland 03 Jun 2025 Author Response We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 ... Continue reading We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 – Limitation to top 100 lines in GMS scheme and suggestion to include DPS information Reply: We appreciate the reviewer highlighting this limitation. In response, we have expanded our data coverage to include DPS (Drugs Payment Scheme) and other scheme information with appropriate caveats noting that does not capture comprehensive data. These additional data are now integrated into an expanded version of the application. However, this expanded version does not show interactive graphs for prescribing/cost rates, as the denominators (i.e. eligible numbers) are inconsistent for schemes other than the GMS scheme. Reviewer Point 1.2 – Geographic/organizational breakdown would enhance the offering and quality prescribing metrics beyond the preferred drugs list Reply: We agree that geographic and organisational breakdowns would significantly enhance the utility of the tool. We have noted this as a priority for inclusion in future iterations of RxTrends, once relevant data is available. The reviewers also make an excellent suggestion regarding quality prescribing metrics. Based on the currently available data, only metrics relating to the volume of prescribing can be generated; however, availability of more detailed data on individual products and strengths prescribed may allow expansion to other quality metrics in the future. Reviewer Point 1.3 – Discussion with colleagues in England and Scotland Reply: Thank you for the suggestion. We have already discussed this with colleagues in England and we hope to discuss further with other colleagues once more data becomes available allowing expansion of the functionality. We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 – Limitation to top 100 lines in GMS scheme and suggestion to include DPS information Reply: We appreciate the reviewer highlighting this limitation. In response, we have expanded our data coverage to include DPS (Drugs Payment Scheme) and other scheme information with appropriate caveats noting that does not capture comprehensive data. These additional data are now integrated into an expanded version of the application. However, this expanded version does not show interactive graphs for prescribing/cost rates, as the denominators (i.e. eligible numbers) are inconsistent for schemes other than the GMS scheme. Reviewer Point 1.2 – Geographic/organizational breakdown would enhance the offering and quality prescribing metrics beyond the preferred drugs list Reply: We agree that geographic and organisational breakdowns would significantly enhance the utility of the tool. We have noted this as a priority for inclusion in future iterations of RxTrends, once relevant data is available. The reviewers also make an excellent suggestion regarding quality prescribing metrics. Based on the currently available data, only metrics relating to the volume of prescribing can be generated; however, availability of more detailed data on individual products and strengths prescribed may allow expansion to other quality metrics in the future. Reviewer Point 1.3 – Discussion with colleagues in England and Scotland Reply: Thank you for the suggestion. We have already discussed this with colleagues in England and we hope to discuss further with other colleagues once more data becomes available allowing expansion of the functionality. Competing Interests: No competing interests were disclosed. Close Report a concern Respond or Comment COMMENTS ON THIS REPORT Author Response 03 Jun 2025 Ahmed Hassan Ali , School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Ireland 03 Jun 2025 Author Response We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 ... Continue reading We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 – Limitation to top 100 lines in GMS scheme and suggestion to include DPS information Reply: We appreciate the reviewer highlighting this limitation. In response, we have expanded our data coverage to include DPS (Drugs Payment Scheme) and other scheme information with appropriate caveats noting that does not capture comprehensive data. These additional data are now integrated into an expanded version of the application. However, this expanded version does not show interactive graphs for prescribing/cost rates, as the denominators (i.e. eligible numbers) are inconsistent for schemes other than the GMS scheme. Reviewer Point 1.2 – Geographic/organizational breakdown would enhance the offering and quality prescribing metrics beyond the preferred drugs list Reply: We agree that geographic and organisational breakdowns would significantly enhance the utility of the tool. We have noted this as a priority for inclusion in future iterations of RxTrends, once relevant data is available. The reviewers also make an excellent suggestion regarding quality prescribing metrics. Based on the currently available data, only metrics relating to the volume of prescribing can be generated; however, availability of more detailed data on individual products and strengths prescribed may allow expansion to other quality metrics in the future. Reviewer Point 1.3 – Discussion with colleagues in England and Scotland Reply: Thank you for the suggestion. We have already discussed this with colleagues in England and we hope to discuss further with other colleagues once more data becomes available allowing expansion of the functionality. We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 – Limitation to top 100 lines in GMS scheme and suggestion to include DPS information Reply: We appreciate the reviewer highlighting this limitation. In response, we have expanded our data coverage to include DPS (Drugs Payment Scheme) and other scheme information with appropriate caveats noting that does not capture comprehensive data. These additional data are now integrated into an expanded version of the application. However, this expanded version does not show interactive graphs for prescribing/cost rates, as the denominators (i.e. eligible numbers) are inconsistent for schemes other than the GMS scheme. Reviewer Point 1.2 – Geographic/organizational breakdown would enhance the offering and quality prescribing metrics beyond the preferred drugs list Reply: We agree that geographic and organisational breakdowns would significantly enhance the utility of the tool. We have noted this as a priority for inclusion in future iterations of RxTrends, once relevant data is available. The reviewers also make an excellent suggestion regarding quality prescribing metrics. Based on the currently available data, only metrics relating to the volume of prescribing can be generated; however, availability of more detailed data on individual products and strengths prescribed may allow expansion to other quality metrics in the future. Reviewer Point 1.3 – Discussion with colleagues in England and Scotland Reply: Thank you for the suggestion. We have already discussed this with colleagues in England and we hope to discuss further with other colleagues once more data becomes available allowing expansion of the functionality. Competing Interests: No competing interests were disclosed. Close Report a concern COMMENT ON THIS REPORT Comments on this article Comments (0) Version 2 VERSION 2 PUBLISHED 26 Feb 2025 ADD YOUR COMMENT Comment keyboard_arrow_left keyboard_arrow_right Open Peer Review Reviewer Status info_outline 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 Reviewer Reports Invited Reviewers 1 2 3 Version 2 (revision) 27 May 25 read read Version 1 26 Feb 25 read read Marion Bennie , University of Strathclyde, Glasgow, UK Barry Melia , Public Health Scotland, Scotland, UK Amanj Kurdi , Public Health Scotland, Scotland, UK Heike Vornhagen , University of Galway, Galway, Ireland Staffan Svensson , University of Gothenburg, Gothenburg, Sweden 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 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2025 Svensson S. This is an open access peer review report 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. 03 Sep 2025 | for Version 2 Staffan Svensson , University of Gothenburg, Gothenburg, Sweden 0 Views copyright © 2025 Svensson S. This is an open access peer review report 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. format_quote Cite this report speaker_notes Responses (0) Approved info_outline 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 Summary This paper describes the background to and development of an R package and application called RxTrends. The intention of the authors is for this to facilitate interpretation of prescription data released monthly by the Irish Health Service Executive. Some examples of its use are given. In general the application works well and is visually pleasant. There are some minor quirks that I outline below. The limitations of RxTrends are mainly secondary to the limitations of its source data, as the "top 100" publishing policy of the Irish authority curbs many attempts to follow prescribing trends. The source data also precludes regional comparisons. By making this evident, RxTrends constitutes an impetus for the Irish authority to start releasing full monthly data. In the following I make some comments on the sections of the manuscript. Introduction For an outsider, it is a bit difficult to digest the information on the PCRS, GMS, DPS, LTI, CCGs, etc. The background on how the Irish system works is necessary, particularly the information about population coverage, but could it be explained in a simpler way? Also, I was looking for a figure along the lines of "These statistics cover X% of all prescriptions filled by the entire Irish population". Perhaps this is deducible from 30.4% × 87% but it would in that case help to have it spelled out. The content that is more specific for this article starts with the section "Several countries...". Could the sections be shuffled so this appears earlier? The "ingredient cost" as I understand it refers to the price of the actual drug, the rest being costs added by pharmacies. This could be explained. Method The description of the application's development is easy to follow. The authors have added data that was not directly available online: eligibility figures for 2016, and ATC codes for individual medications, thus extending the dataset and not merely re-presenting it. It could be made clear that the starting month of January 2016 is due to the PCRS making data available from this time. The most recent data in RxTrends are from December 2024 (writing this in August 2025), while on the PCRS website, data from April 2025 are available. A comment on the updating policy (automatic or manual?) would be in place. Use cases The use cases are interesting and well written. Having no experience of looking at Irish prescription data, however, I decided to make my own use cases and compare the function of the PCRS website and the RxTrends application with a source that I am familiar with, the Swedish National Prescribed Drug Register: https://sdb.socialstyrelsen.se/if_lak/val.aspx in order to investigate two topics: 1) use of anastrozole among men, and 2) regional differences in prescription of GLP1-analogues. Topic 1) is due a recent case where a male patient in my clinic explained that he got anastrozole for impotence, from an urologist. Such use of anastrozole is off-label as this drug is normally used to treat breast cancer, and I was interested in knowing how often this is prescribed to men. As for topic 2, the use of GLP1-analogues has boomed and there are clear regional differences in their use in Sweden. Would this be the case also in Ireland? Using the Swedish Register, I entered "Monthly numbers" and anastrozole's ATC code "L02BG03", "Nationwide", "Men" and "Number of patients", "All years" and "All months". This gives me a table and graph of the number of men filling anastrozole prescriptions medication since 2006. It seems the number was <20 per month until 2017, then increased to a maximum of 86 in October 2020, then returning to 20--40 monthly prescriptions from 2023 onwards. As for the regional comparison of GLP1-analogues, I entered the ATC codes A10BJ01 to 06 as well as A10BX16 for tirzepatide, and with the appropriate settings got a series of graphs showing an explosive development, most notably since 2019 for semaglutide. For this drug, the range of filled prescriptions per 1000 inhabitants in 2024 ranges from 52 in the Västerbotten region, to 149 in the Jämtland region. Turning to the PRCR's website https://www.sspcrs.ie/portal/annual-reporting/report/pharmacy I find a page listing the 100 most commonly prescribed products by frequency and cost (anastrozole predictably not being among them) and there is a menu allowing me to add months starting from 2016-01 through 2025-04, but there is no way to see development over time and no regional information. Now, starting the RxTrends application in R, after some initial complaints about missing packages, I get a local instance of the Shiny app in my browser. As for the anastrozole question, the nearest I get is data from its second-level ATC group L02 (Endocrine therapy), which is of little use. Regarding the GLP1-analogues, it is possible to see the development over time for semaglutide, liraglutide and dulaglutide on a nation-wide basis, thus clearly improving on the PRCR experience (regional data is obviously still missing). It is shown that semaglutide peaked in late 2022, then decreased, only to rebound in 2024. The program when run from R is fast and responsive when I add more comparators. It's easy to switch between the five tabs and the overall impression is neat. A stress test of the web version (selecting all available medications) made it crash, however. The downloading of data works well. When I reproduce the use case of pregabalin and gabapentin, data for both appear to end abruptly in late 2022, but this turns out to be an ATC relabeling issue as these drugs were moved from N03AX (Other antiepileptics) to N02BF (Gabapentinoids) around that time. Playing around with the program, gaps in the time curves are often seen, an artefact due to the "top 100" publishing policy of the PCRS. For example, looking at sodium valproate, data ends in June 2021 although https://www.hpra.ie reports its continued use. The patchy availability of data is somewhat frustrating. When looking at seasonality in use of antihistamines, cetirizine and fexofenadine show a clear pattern of increase in summer. On the other hand, desloratadine and levocetirizine only make it into the top 100 some summers, and the resulting curve with scattered points and lines extrapolated in between give an impression of higher-than-actual use. The "compare" function has a potential flaw. It requires the user to choose a drug, say the PPI A02BC05 (esomeprazole) and its corresponding second-level ATC code (A02), and then hitting the "compare" button to get the proportion of A02BC05 within A02. But there is nothing to prevent the user from picking an irrelevant comparator, say L04 instead of A02, thereby generating nonsensical data. It would be an improvement if the application could generate an error message whenever the ATCs do not match, or pick the comparator automatically. Discussion The discussion is well written, although the parts that concern OpenPrescribing are unnecessarily long and detailed (mostly the third paragraph starting "Researchers have utilised..."). The point here is to compare RxTrends and OpenPrescribing, and to give some evidence to the usefulness of RxTrends. That could be done in fewer words, perhaps instead using that space to discuss visualisation tools available in other countries. Application details At the "Cost" tabs there is reference in the tool tip to a "toggle button above", but this button is actually situated to the left. In the comparison of a medication to its therapeutic group (also commented above), the y axis is reported as "Proportion of a Medication's with a Therapeutic Group's Metrics". Here a word, presumably "prescription", is missing. Anyhow, I suggest this label is changed to "Proportion of a medication's prescribing within its therapeutic group". Manuscript style This sentence and its use of "extended" reminds me of sales language: "The RxTrends application’s capabilities were extended by allowing users to select an unlimited number of entities across multiple categories, including medications, therapeutic groups, and physiological systems.". Why not write something more neutral like "users can select any combination of medications, therapeutic groups and physiological systems." Lidocaine, mentioned in a use case, is listed as "lignocaine" in the database. Both are correct but this could be confusing. Typos In May 2021, A cyberattack => a cyberattack relevant audiencias => audiences Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests No competing interests were disclosed. Reviewer Expertise Clinical pharmacology, General practice/family medicine I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. reply Respond to this report Responses (0) Svensson S. Peer Review Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15556.r47489) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v2#referee-response-47489 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2025 Vornhagen H. This is an open access peer review report 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. 02 Jun 2025 | for Version 2 Heike Vornhagen , University of Galway, Galway, Ireland 0 Views copyright © 2025 Vornhagen H. This is an open access peer review report 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. format_quote Cite this report speaker_notes Responses (0) Approved info_outline 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 I appreciate the changes made in relation to references relating to user-friendliness and have no further comments. Competing Interests No competing interests were disclosed. Reviewer Expertise User focused design, data dashboards, data visualisation, user interface design I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. reply Respond to this report Responses (0) Vornhagen H. Peer Review Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15556.r47433) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v2#referee-response-47433 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2025 Vornhagen H. This is an open access peer review report 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. 18 Apr 2025 | for Version 1 Heike Vornhagen , University of Galway, Galway, Ireland 0 Views copyright © 2025 Vornhagen H. This is an open access peer review report 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. format_quote Cite this report speaker_notes Responses (1) Approved With Reservations info_outline 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 This paper describes the development of RxTrends , an interactive RShiny application designed to visualise and explore trends in prescription data under Ireland’s General Medical Services (GMS) scheme. Drawing from publicly available monthly datasets published by the Health Service Executive's Primary Care Reimbursement Service (HSE-PCRS), the tool enables dynamic analysis of prescribing patterns, including frequency, cost, and population-adjusted rates, from 2016 to 2024. The data were cleaned and structured using Python in JupyterLab and integrated into the app using R and various packages like ggplot2, plotly, and shinyjs. The application allows users to compare trends across medications, therapeutic groups, and physiological systems using the WHO’s Anatomical Therapeutic Chemical (ATC) classification. RxTrends aims to address a major limitation of the Irish prescribing data—lack of user-friendly access to visualisations—and provides functionality similar to tools like OpenPrescribing in the UK. Use cases illustrated include monitoring adherence to the HSE Preferred Drugs Initiative and evaluating the financial impact of policy changes such as reference pricing and generic substitution. Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Sufficient information is provided to understand the general nature of the outputs generated by the tool, such as candidate match scores and ranked lists. However, the paper lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Including output specifications would improve transparency and reproducibility. Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? While the paper provides a technical description of the tool and demonstrates its capabilities through examples, the conclusions about its usability and user-friendliness are not sufficiently supported by evidence. There is no mention of user testing or evaluation with end-users, nor is there any indication of user research conducted prior to development to establish need or inform design choices. Without this, it is difficult to assess whether the tool effectively meets user requirements or delivers on its claims of intuitiveness and practicality. Recommendation: Approve with Reservations The tool presents a promising approach to visualising healthcare data, with a well-executed implementation and clear presentation of results. However, I have significant reservations regarding the tool's user-centric design and its lack of clear user research. While the authors mention the tool is ‘user-friendly,’ there is little to no evidence presented of user testing or engagement that would support such claims. Additionally, there is no indication of a structured process to assess user needs prior to development, which raises concerns about how well the tool truly aligns with its intended audience’s requirements. Further, the conclusions about the tool’s performance and usability seem premature without substantial user feedback. To strengthen this work, I recommend more thorough user testing and a detailed explanation of the methodology behind understanding user needs, which would support the tool’s claims of being intuitive and effective. If these areas are addressed, this tool has the potential to be a valuable resource. Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Partly Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? No Competing Interests No competing interests were disclosed. Reviewer Expertise User focused design, data dashboards, data visualisation, user interface design I confirm that I have read this submission and believe that I have an appropriate level of expertise to confirm that it is of an acceptable scientific standard, however I have significant reservations, as outlined above. reply Respond to this report Responses (1) Author Response 03 Jul 2025 Ahmed Hassan Ali, School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Ireland Thank you for your thoughtful and constructive feedback. We have carefully considered each of your comments and revised the manuscript accordingly, as detailed below. Reviewer Point 2.1 – lacks detail on the exact structure, format, or schema of these output datasets, which may limit a reader’s ability to fully interpret or reuse the results. Reply: We thank the reviewer for identifying this gap. We have expanded the description of dataset outputs both in a new Help and documentation section of the application, and within the manuscript itself: “Downloadable data is provided in Comma-separated values (CSV) format, including columns for the metrics listed in Table 1 and one row per month per selected medication, therapeutic group, and/or physiological system. A contextual help and documentation feature has also been embedded within the application, which describes output data format in detail.” Reviewer Point 2.2 – Lack of evidence for usability and user-friendliness claims and lack of indication of user research conducted prior to development to establish need or inform design choices, or evaluation with end-users Reply: We acknowledge this is a valid concern. We have revised the manuscript to remove references to user-friendliness as this has not been formally assessed. While formal user testing was not conducted, the development process did involve testing and feedback on prototypes by the inter-disciplinary research team, which we now describe in the manuscript as follows: “During the development of RxTrends, the application underwent two refinement cycles, with team members (from clinical, epidemiology, and data science backgrounds) evaluating a prototype application and providing feedback on features, functionality, and presentation.” Lastly, we have noted lack of formal usability testing as a limitation and something beneficial for further development of the application: “While the application's final interface reflected iterative improvements based on feedback from research team members who represent the target audiences, this internal process does not constitute formal user testing. Formal usability testing with external and representative sample of users, including healthcare professionals and other relevant audiences, would be of benefit to evaluate the user-friendliness of the application and inform improvements in the future.” View more View less Competing Interests No competing interests were disclosed. reply Respond Report a concern Vornhagen H. Peer Review Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15467.r46473) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v1#referee-response-46473 keyboard_arrow_left Back to all reports Reviewer Report 0 Views copyright © 2025 Bennie M et al. This is an open access peer review report 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. 10 Apr 2025 | for Version 1 Marion Bennie , University of Strathclyde, Glasgow, UK Barry Melia , Public Health Scotland, Scotland, UK Amanj Kurdi , Public Health Scotland, Scotland, UK 0 Views copyright © 2025 Bennie M et al. This is an open access peer review report 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. format_quote Cite this report speaker_notes Responses (1) Approved info_outline 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 This article outlines how standard R packages, by importing a limited number of data rows, can be utilised to provide medicines utilisation intelligence. As highlighted in the article, this is limited to the top 100 lines in the GMS scheme alone. I agree that this limits the functionality significantly (whilst DPS information may not be comprehensive, it would be good to present and caveat as these patients might be considered as high-cost families). I agree that future functionality, broken down geographically/organisationally would enhance the offering. I would also suggest that some quality prescribing metrics beyond the preferred drugs list would add a medicines safety aspect which would allow benchmarking and quality improvement. However, as a first exploration, this is good start. I would recommend a discussion with colleagues in England and Scotland to further explore the “art of the possible”. Thank you and well done! Is the rationale for developing the new software tool clearly explained? Yes Is the description of the software tool technically sound? Yes Are sufficient details of the code, methods and analysis (if applicable) provided to allow replication of the software development and its use by others? Yes Is sufficient information provided to allow interpretation of the expected output datasets and any results generated using the tool? Yes Are the conclusions about the tool and its performance adequately supported by the findings presented in the article? Yes Competing Interests No competing interests were disclosed. We confirm that we have read this submission and believe that we have an appropriate level of expertise to confirm that it is of an acceptable scientific standard. reply Respond to this report Responses (1) Author Response 03 Jun 2025 Ahmed Hassan Ali, School of Pharmacy and Biomolecular Sciences, Royal College of Surgeons in Ireland (RCSI) University of Medicine and Health Sciences, Dublin, Ireland We thank reviewers for their thoughtful feedback on our manuscript. Below, we address each of their comments and outline the amendments made to strengthen our paper. Reviewer Point 1.1 – Limitation to top 100 lines in GMS scheme and suggestion to include DPS information Reply: We appreciate the reviewer highlighting this limitation. In response, we have expanded our data coverage to include DPS (Drugs Payment Scheme) and other scheme information with appropriate caveats noting that does not capture comprehensive data. These additional data are now integrated into an expanded version of the application. However, this expanded version does not show interactive graphs for prescribing/cost rates, as the denominators (i.e. eligible numbers) are inconsistent for schemes other than the GMS scheme. Reviewer Point 1.2 – Geographic/organizational breakdown would enhance the offering and quality prescribing metrics beyond the preferred drugs list Reply: We agree that geographic and organisational breakdowns would significantly enhance the utility of the tool. We have noted this as a priority for inclusion in future iterations of RxTrends, once relevant data is available. The reviewers also make an excellent suggestion regarding quality prescribing metrics. Based on the currently available data, only metrics relating to the volume of prescribing can be generated; however, availability of more detailed data on individual products and strengths prescribed may allow expansion to other quality metrics in the future. Reviewer Point 1.3 – Discussion with colleagues in England and Scotland Reply: Thank you for the suggestion. We have already discussed this with colleagues in England and we hope to discuss further with other colleagues once more data becomes available allowing expansion of the functionality. View more View less Competing Interests No competing interests were disclosed. reply Respond Report a concern Bennie M, Melia B and Kurdi A. Peer Review Report For: RxTrends: An R-based Shiny Application for Visualising Open Data on Prescribed Medications in Ireland [version 2; peer review: 3 approved] . HRB Open Res 2025, 8 :36 ( https://doi.org/10.21956/hrbopenres.15467.r46472) NOTE: it is important to ensure the information in square brackets after the title is included in this citation. The direct URL for this report is: https://hrbopenresearch.org/articles/8-36/v1#referee-response-46472 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 = "RxTrends: An R-based Shiny Application for...".replace("'", ''); var linkedInUrl = "http://www.linkedin.com/shareArticle?url=https://hrbopenresearch.org/articles/8-36/v2" + "&title=" + encodeURIComponent(lTitle) + "&summary=" + encodeURIComponent('Read the article by '); var deliciousUrl = "https://del.icio.us/post?url=https://hrbopenresearch.org/articles/8-36/v2&title=" + encodeURIComponent(lTitle); var redditUrl = "http://reddit.com/submit?url=https://hrbopenresearch.org/articles/8-36/v2" + "&title=" + encodeURIComponent(lTitle); linkedInUrl += encodeURIComponent('Hassan Ali 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-36/v2/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-36", templates : { twitter : "RxTrends: An R-based Shiny Application for Visualising Open Data.... Hassan Ali A et al., published by " + "@HRBOpenRes" + ", https://hrbopenresearch.org/articles/8-36/v2" } }; 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/14080/15556") new F1000.Clipboard(); new F1000.ThesaurusTermsDisplay("articles", "article", "15556"); $(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 = { "47488": 0, "47489": 12, "47490": 0, "46467": 0, "47491": 0, "46468": 0, "47492": 0, "46469": 0, "47493": 0, "46470": 0, "47494": 0, "46471": 0, "47495": 0, "46472": 30, "46473": 30, "46474": 0, "46475": 0, "46476": 0, "48156": 0, "46376": 0, "46632": 0, "46377": 0, "46633": 0, "46378": 0, "46634": 0, "46379": 0, "46635": 0, "46636": 0, "46380": 0, "46381": 0, "46637": 0, "46382": 0, "46638": 0, "46383": 0, "46639": 0, "46384": 0, "46640": 0, "46385": 0, "46641": 0, "47433": 11, "47434": 0, "46169": 0, "46170": 0, "46171": 0, "46172": 0, "46173": 0, "46174": 0, "46175": 0, "46176": 0, "46177": 0, "46178": 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 = "b1dfdf27-cf0c-4217-9e16-859d7b8203be"; 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:'9fe951fd3bf7aa64',t:'MTc3OTI1ODkxNQ=='};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.

My notes (saved in your browser only)

Ask this paper AI returns verbatim quotes from the full text · source: preprint-html

Answers must be backed by verbatim quotes from this paper's full text. Hallucinated quotes are dropped automatically; if no verbatim passage answers the question, we say so. How this works

Citation neighborhood (no data yet)

We don't have any in-corpus citations linked to this paper yet. This is a recent paper (2025) — citers typically take a year or two to land, and the OpenAlex reference graph may still be filling in.

Source provenance

europepmc
last seen: 2026-05-20T01:45:00.602351+00:00
unpaywall
last seen: 2026-05-26T02:00:01.498150+00:00
License: CC-BY-4.0