<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ready4 – Framework - foundation (modularity)</title>
    <link>/tags/framework-foundation-modularity/</link>
    <description>Recent content in Framework - foundation (modularity) on ready4</description>
    <generator>Hugo -- gohugo.io</generator>
    <lastBuildDate>Wed, 28 Jan 2026 00:00:00 +0000</lastBuildDate>
    
	  <atom:link href="/tags/framework-foundation-modularity/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Template module</title>
      <link>/docs/tutorials/develop-models/modularity/</link>
      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>/docs/tutorials/develop-models/modularity/</guid>
      <description>
        
        
        

&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This below section renders a vignette article from the ready4 library. You can use the following links to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://ready4-dev.github.io/ready4/articles/V_01.html&#34;&gt;view the vignette on the library website (adds useful hyperlinks to code blocks)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ready4-dev/ready4/blob/main/vignettes/V_01.Rmd&#34;&gt;view the source file&lt;/a&gt; from that article, and;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ready4-dev/ready4/edit/main/vignettes/V_01.Rmd&#34;&gt;edit its contents&lt;/a&gt; (requires a GitHub account).&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;div class=&#34;highlight&#34;&gt;
&lt;/div&gt;
&lt;div class=&#34;highlight&#34;&gt;
&lt;pre class=&#39;chroma&#39;&gt;&lt;code class=&#39;language-r&#39; data-lang=&#39;r&#39;&gt;&lt;span&gt;&lt;span class=&#39;kr&#39;&gt;&lt;a href=&#39;https://rdrr.io/r/base/library.html&#39;&gt;library&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;nv&#39;&gt;&lt;a href=&#39;https://ready4-dev.github.io/ready4/&#39;&gt;ready4&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;)&lt;/span&gt; &lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div class=&#34;highlight&#34;&gt;
&lt;/div&gt;
&lt;h2 id=&#34;motivation&#34;&gt;Motivation&lt;/h2&gt;
&lt;p&gt;A potentially attractive approach to modelling complex health systems is to begin with a relatively simple computational model and to progressively extend its scope and sophistication. Such an approach could be described as &amp;ldquo;modular&amp;rdquo; if it is possible to readily combine multiple discrete modelling projects (potentially developed by different modelling teams) that each independently describe distinct aspects of the system being modelled.&lt;/p&gt;
&lt;h2 id=&#34;implementation&#34;&gt;Implementation&lt;/h2&gt;
&lt;p&gt;The &lt;code&gt;ready4&lt;/code&gt; facilitates modular model development by supplying a template module that enables model developers to avail of the &lt;a href=&#34;https://www.ready4-dev.com/docs/framework/implementation/paradigm/object-oriented/&#34;&gt;encapsulation and inheritance features of Object Oriented Programming (OOP)&lt;/a&gt;. The &lt;a href=&#34;https://www.ready4-dev.com/&#34;&gt;ready4 framework&lt;/a&gt; uses two of R&amp;rsquo;s systems for implementing OOP - S3 and S4. An in-depth explanation of R&amp;rsquo;s different class system is beyond the scope of this article, but is explored in &lt;a href=&#34;https://adv-r.hadley.nz/oo.html&#34;&gt;Hadley Wickham&amp;rsquo;s Advanced R handbook&lt;/a&gt;. However, it is useful to know some very high level information about S3 and S4 classes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;S4 classes are frequently said to be &amp;ldquo;formal&amp;rdquo;, &amp;ldquo;strict&amp;rdquo; or &amp;ldquo;rigorous&amp;rdquo;. The elements of an S4 class are called slots and the type of data that each slot is allowed to contain is specified in the class definition. An S4 class can be comprised of slots that contain different types of data (e.g. a slot that contains a character vector and another slot that contains tabular data).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;S3 classes are often described as &amp;ldquo;simple&amp;rdquo;, &amp;ldquo;informal&amp;rdquo; and &amp;ldquo;flexible&amp;rdquo;. S3 objects attach an attribute label to base type objects (e.g. a character vector, a data.frame, a list), which in turn is used to work out what methods should be applied to the class.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;use&#34;&gt;Use&lt;/h2&gt;
&lt;h3 id=&#34;ready4-model-modules&#34;&gt;ready4 Model Modules&lt;/h3&gt;
&lt;p&gt;As we use the term, a &amp;ldquo;model module&amp;rdquo; is comprised of both a data-structure (an S4 class) and the algorithms (or &amp;ldquo;methods&amp;rdquo;) that are associated with that data-structure. Model modules can be created from a template - the &lt;code&gt;ready4&lt;/code&gt; package&amp;rsquo;s &lt;code&gt;Ready4Module&lt;/code&gt; class.&lt;/p&gt;
&lt;p&gt;We can create an object (&lt;code&gt;X&lt;/code&gt;) from the &lt;code&gt;Ready4Module&lt;/code&gt; template using the following command.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;
&lt;pre class=&#39;chroma&#39;&gt;&lt;code class=&#39;language-r&#39; data-lang=&#39;r&#39;&gt;&lt;span&gt;&lt;span class=&#39;nv&#39;&gt;X&lt;/span&gt; &lt;span class=&#39;o&#39;&gt;&amp;lt;-&lt;/span&gt; &lt;span class=&#39;nf&#39;&gt;&lt;a href=&#39;https://ready4-dev.github.io/ready4/reference/Ready4Module-class.html&#39;&gt;Ready4Module&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;However, if we inspect &lt;code&gt;X&lt;/code&gt; we can see it is of limited use as it contains no data other than an empty element called &lt;code&gt;dissemination_1L_chr&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;
&lt;pre class=&#39;chroma&#39;&gt;&lt;code class=&#39;language-r&#39; data-lang=&#39;r&#39;&gt;&lt;span&gt;&lt;span class=&#39;nf&#39;&gt;&lt;a href=&#39;https://rdrr.io/r/utils/str.html&#39;&gt;str&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;nv&#39;&gt;X&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;)&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span class=&#39;c&#39;&gt;#&amp;gt; Formal class &#39;Ready4Module&#39; [package &#34;ready4&#34;] with 1 slot&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;span class=&#39;c&#39;&gt;#&amp;gt;   ..@ dissemination_1L_chr: chr NA&lt;/span&gt;&lt;/span&gt;
&lt;span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The &lt;code&gt;Ready4Module&lt;/code&gt; class is therefore not intended to be called directly. Instead, the purpose of &lt;code&gt;Ready4Module&lt;/code&gt; is to be the parent class of other model modules. Prototype tools for authoring modules from this template are described &lt;a href=&#34;https://www.ready4-dev.com/docs/tutorials/develop-models/authoring-modules/&#34;&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;div class=&#34;card border-primary mb-3&#34; style=&#34;max-width: 20rem;&#34;&gt;
&lt;div class=&#34;card-header&#34;&gt;
&lt;p&gt;&lt;strong&gt;ready4 Concept&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;card-body&#34;&gt;
&lt;div class=&#34;card-title&#34;&gt;
&lt;h4 id=&#34;module&#34;&gt;Module&lt;/h4&gt;
&lt;/div&gt;
&lt;p&gt;An instance of &lt;code&gt;Ready4Module&lt;/code&gt; (or classes that inherit from &lt;code&gt;Ready4Module&lt;/code&gt;) and its associated methods.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 id=&#34;ready4-model-sub-modules&#34;&gt;ready4 Model Sub-modules&lt;/h3&gt;
&lt;p&gt;In ready4, S3 classes are principally used to help define the structural properties of slots (elements) of model modules and the methods that can be applied to these slots. S3 classes created for these purposes are called &lt;strong&gt;sub-modules&lt;/strong&gt;.&lt;/p&gt;
&lt;div class=&#34;card border-primary mb-3&#34; style=&#34;max-width: 20rem;&#34;&gt;
&lt;div class=&#34;card-header&#34;&gt;
&lt;p&gt;&lt;strong&gt;ready4 Concept&lt;/strong&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class=&#34;card-body&#34;&gt;
&lt;div class=&#34;card-title&#34;&gt;
&lt;h4 id=&#34;sub-module&#34;&gt;Sub-Module&lt;/h4&gt;
&lt;/div&gt;
&lt;p&gt;An instance of an informal (S3) class and its associated methods that describes, validates and applies algorithms to a slot of a Module.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Why ready4 is object oriented</title>
      <link>/docs/getting-started/implementation/paradigm/object-oriented/</link>
      <pubDate>Wed, 28 Jan 2026 00:00:00 +0000</pubDate>
      
      <guid>/docs/getting-started/implementation/paradigm/object-oriented/</guid>
      <description>
        
        
        

&lt;div class=&#34;pageinfo pageinfo-primary&#34;&gt;
&lt;p&gt;This below section renders a vignette article from the ready4 library. You can use the following links to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://ready4-dev.github.io/ready4/articles/V_03.html&#34;&gt;view the vignette on the library website (adds useful hyperlinks to code blocks)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ready4-dev/ready4/blob/main/vignettes/V_03.Rmd&#34;&gt;view the source file&lt;/a&gt; from that article, and;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://github.com/ready4-dev/ready4/edit/main/vignettes/V_03.Rmd&#34;&gt;edit its contents&lt;/a&gt; (requires a GitHub account).&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;div class=&#34;highlight&#34;&gt;
&lt;/div&gt;
&lt;div class=&#34;highlight&#34;&gt;
&lt;pre class=&#39;chroma&#39;&gt;&lt;code class=&#39;language-r&#39; data-lang=&#39;r&#39;&gt;&lt;span&gt;&lt;span class=&#39;kr&#39;&gt;&lt;a href=&#39;https://rdrr.io/r/base/library.html&#39;&gt;library&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;(&lt;/span&gt;&lt;span class=&#39;nv&#39;&gt;&lt;a href=&#39;https://ready4-dev.github.io/ready4/&#39;&gt;ready4&lt;/a&gt;&lt;/span&gt;&lt;span class=&#39;o&#39;&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 id=&#34;motivation&#34;&gt;Motivation&lt;/h2&gt;
&lt;p&gt;The practical utility and ease of use of computational health economic models are in part shaped by the choice of programming paradigm used to develop them. ready4 adopts an object oriented programming (OOP) paradigm which in practice means that the framework principally consists of classes (representations of data structures useful for modelling health systems) and methods (algorithms that can be applied to these data-structures to generate insight useful for policy-making). Adopting an OOP approach is particular useful for helping to make models &lt;a href=&#34;https://www.ready4-dev.com/docs/getting-started/motivation/&#34;&gt;transparent, reusable and updatable&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;implementation&#34;&gt;Implementation&lt;/h2&gt;
&lt;h3 id=&#34;modular-computational-models&#34;&gt;Modular Computational Models&lt;/h3&gt;
&lt;p&gt;Two commonly noted features of OOP - encapsulation and inheritance are particularly useful when developing &lt;a href=&#34;https://www.ready4-dev.com/docs/tutorials/develop-models/modularity/&#34;&gt;modular computational health economic models&lt;/a&gt;.&lt;/p&gt;
&lt;h4 id=&#34;encapsulation&#34;&gt;Encapsulation&lt;/h4&gt;
&lt;p&gt;Encapsulation allows us to define the data structures (&amp;ldquo;classes&amp;rdquo;) used in computational modelling projects in a manner that allows them to be safely combined. For example, assume there are two computational health economic models, one (&lt;strong&gt;A&lt;/strong&gt;) focused on predicting the types and intensity of services used by individuals that present to health services and the other (&lt;strong&gt;B&lt;/strong&gt;) that &lt;a href=&#34;https://ready4-dev.github.io/youthu/articles/Prediction_With_Mdls.html&#34;&gt;predicts outcomes for recipients of these services&lt;/a&gt;. It may be desirable to develop a new model (&lt;strong&gt;C&lt;/strong&gt;) that combines &lt;strong&gt;A&lt;/strong&gt; and &lt;strong&gt;B&lt;/strong&gt; to model both service use and outcomes. Using encapsulated code allows all of the features and functionality of &lt;strong&gt;A&lt;/strong&gt; to be made available to &lt;strong&gt;B&lt;/strong&gt; in a manner that protects the integrity of &lt;strong&gt;A&lt;/strong&gt;. Specifically, &lt;strong&gt;B&lt;/strong&gt; can only interact with &lt;strong&gt;A&lt;/strong&gt; using the algorithms (&amp;ldquo;methods&amp;rdquo;) that have been already defined for &lt;strong&gt;A&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Furthermore, if appropriately implemented, methods associated with a class will work with any combination of input values that can be encapsulated by that class - making computational models more &lt;a href=&#34;https://www.ready4-dev.com/docs/getting-started/concepts/transferable/&#34;&gt;transferable&lt;/a&gt;. For example, imagine a class (&lt;strong&gt;X&lt;/strong&gt;) that is used to structure summary data relevant to health systems. Methods associated with &lt;strong&gt;X&lt;/strong&gt; (e.g. a method to derive an unmet need statistic) can then applied to two instances of &lt;strong&gt;X&lt;/strong&gt; - one containing data relevant to the Australian context and one with data from the UK context.&lt;/p&gt;
&lt;h4 id=&#34;inheritence&#34;&gt;Inheritence&lt;/h4&gt;
&lt;p&gt;The examples highlighted in the previous section have some potential limitations. What if the developers of &lt;strong&gt;A&lt;/strong&gt; didn&amp;rsquo;t define methods that would allow &lt;strong&gt;B&lt;/strong&gt; to interact with it in the desired way? Or what if there are a number of differences between the Australian and UK system that need to be accounted for when transferring a method from the former to the latter? These types of issues can be addressed by another key feature of OOP - inheritance. Inheritance allows for a &amp;ldquo;child&amp;rdquo; class to be created from a &amp;ldquo;parent&amp;rdquo; class. By default, the &amp;ldquo;child&amp;rdquo; inherits all of the features of the &amp;ldquo;parent&amp;rdquo; including all methods associated with the &amp;ldquo;parent&amp;rdquo; class. Importantly however, alternative or additional features can also be specified for the &amp;ldquo;child&amp;rdquo; to allow it to implement different methods where necessary. For example, when developing our new computational model &lt;strong&gt;C&lt;/strong&gt; we could create a number of new classes that are children of the classes defined in &lt;strong&gt;A&lt;/strong&gt;. We can then define any additional/alternative methods for these classes that overcome any integration issues between the classes and methods of &lt;strong&gt;A&lt;/strong&gt; and &lt;strong&gt;B&lt;/strong&gt;. In this way, we can enjoy the best of both worlds - leveraging all relevant algorithms from &lt;strong&gt;A&lt;/strong&gt; and &lt;strong&gt;B&lt;/strong&gt; (as there is no need to re-invent the wheel), while ensuring that we transparently develop the additional code required for &lt;strong&gt;C&lt;/strong&gt;. This approach also ensures that the respective contributions of the (potentially different) authorship teams behind &lt;strong&gt;A&lt;/strong&gt;, &lt;strong&gt;B&lt;/strong&gt; and &lt;strong&gt;C&lt;/strong&gt; is clearer.&lt;/p&gt;
&lt;p&gt;Similarly, inheritance would allow re-use of much of the code from a model of the Australian health system when exploring similar topics within the UK context, while making it straightforward to develop additional code that addresses relevant divergence in features between the two jurisdictions. In practical terms, this would mean developing two child classes of &lt;strong&gt;X&lt;/strong&gt; - class &lt;strong&gt;Y&lt;/strong&gt; for use with Australian data and class &lt;strong&gt;Z&lt;/strong&gt; for use in the UK system. All methods that are not specific to a particular jurisdiction are defined for &lt;strong&gt;X&lt;/strong&gt; and inherited by &lt;strong&gt;Y&lt;/strong&gt; and &lt;strong&gt;Z&lt;/strong&gt;. Methods that are only appropriate for use in the Australian context are defined for &lt;strong&gt;Y&lt;/strong&gt;, while UK specific methods are defined for &lt;strong&gt;Z&lt;/strong&gt;.&lt;/p&gt;
&lt;h3 id=&#34;transparent-computational-models&#34;&gt;Transparent Computational Models&lt;/h3&gt;
&lt;p&gt;To make modelling analysis programs more readily understood, the &lt;code&gt;ready4&lt;/code&gt; package provides a &lt;a href=&#34;https://www.ready4-dev.com/docs/framework/implementation/syntax/&#34;&gt;simple and consistent syntax&lt;/a&gt;. Such simplified approaches are facilitated by two other commonly noted features of OOP - polymorphism and abstraction.&lt;/p&gt;
&lt;h4 id=&#34;polymorphism&#34;&gt;Polymorphism&lt;/h4&gt;
&lt;p&gt;Polymorphism allows for similar concepts to be represented using consistent syntax. The same top level code can therefore be generalised to multiple model implementations, making algorithms simpler to understand and easier to re-use.&lt;/p&gt;
&lt;p&gt;Returning to a previous example, the exact same command (e.g. a call to the method &lt;a href=&#34;https://ready4-dev.github.io/ready4/reference/exhibit-methods.html&#34;&gt;exhibit&lt;/a&gt;) can be applied to both &lt;strong&gt;Y&lt;/strong&gt; (used for Australian data) and &lt;strong&gt;Z&lt;/strong&gt; (used for UK data). However, the algorithm implemented by that command can vary based on the class that each method is applied to (ie a different algorithm is applied when the data is specified as being from the UK compared to being specified as Australian).&lt;/p&gt;
&lt;h4 id=&#34;abstraction&#34;&gt;Abstraction&lt;/h4&gt;
&lt;p&gt;The simplicity enabled by polymorphism is enhanced by Abstraction, which basically means that only the briefest and easiest to comprehend parts of the code are exposed by default to potential users. Once an instance of a model module template class is created, the entire program to ingest model data, analyse it and produce a scientific summary can be represented in a few brief lines of code, readily comprehensible to non-coders. When using open source languages, the elegance and simplicity of abstraction &lt;a href=&#34;https://www.ready4-dev.com/docs/framework/use/authoring-modules/authoring-algorithms/&#34;&gt;does not restrict the ability of more technically minded users exploring the detailed workings of the underpinning code&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: ready4 PharmacoEconomics article</title>
      <link>/blog/2024/05/21/ready4-pharmacoeconomics-article/</link>
      <pubDate>Tue, 21 May 2024 00:00:00 +0000</pubDate>
      
      <guid>/blog/2024/05/21/ready4-pharmacoeconomics-article/</guid>
      <description>
        
        
        
        <![CDATA[<img src="/blog/2024/05/21/ready4-pharmacoeconomics-article/featured-ready4-get_hu14c90c690a9a1ff4a222a795ddca7c16_43702_640x0_resize_catmullrom_3.png" width="640" height="263"/>]]>
        
        &lt;p&gt;&lt;strong&gt;The ready4 framework has achieved another milestone with the publication of the first peer-reviewed article relating to its development and application.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first peer-reviewed publication describing the ready4 software framework is now &lt;a href=&#34;https://doi.org/10.1007/s40273-024-01378-8&#34;&gt;available in PharmacoEconomics&lt;/a&gt;. Thank you to the co-authors, advisers and peer-reviewers who helped achieve this outcome.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: ready4 is now on CRAN</title>
      <link>/blog/2024/04/17/ready4-is-now-on-cran/</link>
      <pubDate>Wed, 17 Apr 2024 00:00:00 +0000</pubDate>
      
      <guid>/blog/2024/04/17/ready4-is-now-on-cran/</guid>
      <description>
        
        
        
        <![CDATA[<img src="/blog/2024/04/17/ready4-is-now-on-cran/featured-ready4-get_hu14c90c690a9a1ff4a222a795ddca7c16_43702_640x0_resize_catmullrom_3.png" width="640" height="263"/>]]>
        
        &lt;p&gt;&lt;strong&gt;The ready4 framework has reached a major milestone with the inclusion on CRAN of the ready4 foundation library.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The first of the six libraries that comprise the ready4 software framework is now &lt;a href=&#34;https://cran.r-project.org/web/packages/ready4/index.html&#34;&gt;available on CRAN&lt;/a&gt;. Thank you to the volunteer peer-reviewers who took the time to review our submissions and help ensure that the library was compliant with all required CRAN policies.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Blog: Introducing ready4 framework modules and syntax</title>
      <link>/blog/2022/01/14/introducing-ready4-framework-modules-and-syntax/</link>
      <pubDate>Fri, 14 Jan 2022 00:00:00 +0000</pubDate>
      
      <guid>/blog/2022/01/14/introducing-ready4-framework-modules-and-syntax/</guid>
      <description>
        
        
        
        <![CDATA[<img src="/blog/2022/01/14/introducing-ready4-framework-modules-and-syntax/featured-ready4-get_hu14c90c690a9a1ff4a222a795ddca7c16_43702_640x0_resize_catmullrom_3.png" width="640" height="263"/>]]>
        
        &lt;p&gt;&lt;strong&gt;The ready4 framework has reached a major milestone with the launch of tools to implement modular models that use a simple and consistent syntax.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Development version software to implement and extend the ready4 framework has been publicly available for over a year now. However, the way that this code was limited has limited its potential utility as a toolkit for developing transparent and modular mental health systems models. The latest release of the ready4 R package addresses these limitations with two important innovations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;introducing the concept of modules, to facilitate consistent application of an &lt;a href=&#34;https://ready4-dev.github.io/ready4/articles/V_03.html&#34;&gt;Object Oriented Programming&lt;/a&gt; approach throughout the ready4 software suite;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;codifying a simple and consistent syntax for use in all programs that implement configurations of models developed with the ready4 framework.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;To view or cite the archive copy of the version of the ready4 package which introduced these innovations use &lt;a href=&#34;https://doi.org/10.5281/zenodo.5847544&#34;&gt;https://doi.org/10.5281/zenodo.5847544&lt;/a&gt;. To view or cite the most recently archived copy of the ready4 package use &lt;a href=&#34;https://doi.org/10.5281/ZENODO.5606250&#34;&gt;https://doi.org/10.5281/ZENODO.5606250&lt;/a&gt;. The latest documentation for the package is available at &lt;a href=&#34;https://ready4-dev.github.io/ready4/&#34;&gt;https://ready4-dev.github.io/ready4/&lt;/a&gt;&lt;/p&gt;

      </description>
    </item>
    
  </channel>
</rss>
