<?xml version="1.0" encoding="UTF-8"?>
<rss  xmlns:atom="http://www.w3.org/2005/Atom" 
      xmlns:media="http://search.yahoo.com/mrss/" 
      xmlns:content="http://purl.org/rss/1.0/modules/content/" 
      xmlns:dc="http://purl.org/dc/elements/1.1/" 
      version="2.0">
<channel>
<title>Brendan O&#39;Leary</title>
<link>https://www.boleary.com/blog/</link>
<atom:link href="https://www.boleary.com/blog/index.xml" rel="self" type="application/rss+xml"/>
<description>Posts from Brendan O&#39;Leary</description>
<generator>quarto-1.8.27</generator>
<lastBuildDate>Mon, 02 Feb 2026 15:00:00 GMT</lastBuildDate>
<item>
  <title>Graphing the FDA’s medical device review performance metrics (FY 2025)</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/mdufa/202601/</link>
  <description><![CDATA[ 




<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>See <a href="../202401/">the first post in this series</a> for historical context. This post builds on that previous work, providing refreshed data and graphs for the 510(k) program, additional historical metrics for IVDs, and a new section on Pre-Submissions.</p>
<p>You can download the resulting datasets below. They include more than 40,500 performance metrics.</p>
<p>The plots in this post are based on the information in the December 10, 2018 MDUFA 3 report, the November 16, 2023 MDUFA 4 report, and the November 20, 2025 MDUFA 5 report. <span class="citation" data-cites="mdufa3report201812">[1]</span> <span class="citation" data-cites="mdufa4report202311">[2]</span> <span class="citation" data-cites="mdufa5report202511">[3]</span></p>
<p>This post provides:</p>
<p><strong>510(k) program metrics</strong></p>
<ul>
<li>Submission volume by review group over time</li>
<li>Which receipt cohorts have final data</li>
<li>How long 510(k)s spend under review at the FDA</li>
<li>On-time performance rates</li>
<li>How long 510(k)s spend on hold while applicants respond</li>
<li>Total review time from receipt to decision</li>
<li>How often the FDA requests additional information</li>
<li>Clearance and not-substantially-equivalent decision rates</li>
</ul>
<p><strong>Pre-Submission program metrics</strong></p>
<ul>
<li>Pre-Submission volume by review group over time</li>
<li>Which receipt cohorts have final data</li>
<li>FDA Days to written feedback</li>
<li>On-time performance for industry meeting minutes</li>
</ul>
<p>Information about various factors that may affect this data and a glossary of MDUFA jargon are also included in this post.</p>
</section>
<section id="downloads" class="level2">
<h2 class="anchored" data-anchor-id="downloads">Downloads</h2>
<p>You can <a href="202601_oleary_mdufa_figures.pdf">download all of the figures in this post as a single PDF</a> that should print well on letter paper. Throughout this post, the captions for each figure include links to CSV files that contain the data used in the figures.</p>
<p>You can access data from the FDA’s MDUFA performance reports in spreadsheet form here:</p>
<ul>
<li>
<a href="data/mdufa2.xlsx">mdufa2.xlsx</a> (File size: 39.9K)
</li>
<li>
<a href="data/mdufa3.xlsx">mdufa3.xlsx</a> (File size: 1012.5K)
</li>
<li>
<a href="data/mdufa4.xlsx">mdufa4.xlsx</a> (File size: 978K)
</li>
<li>
<a href="data/mdufa5.xlsx">mdufa5.xlsx</a> (File size: 1017.8K)
</li>
</ul>
<p>Aside from some spot-checks, the datasets provided here have had limited verification and may include some errors.</p>
<p>In addition, data from some tables in the FDA’s MDUFA performance reports are missing from these datasets.</p>
<p>Use this information at your own risk and verify information using the reports provided directly by the FDA. To facilitate this, each data point provided includes information about its source, including a link to the FDA report from which it came, the relevant page number, and more. If you find a problem in these datasets, <a href="https://github.com/bjoleary/mdufa/issues">please report the problem here</a>.</p>
<p>If you’re familiar with the R programming language, you can also access these datasets using the <a href="https://github.com/bjoleary/mdufa/">mdufa</a> package, which is available on GitHub. You are welcome to use and modify this software, including for commercial purposes, under the <a href="https://opensource.org/license/mit/">MIT license</a>. (In addition, this post is under the CC BY license, which permits sharing and adaptation, including commercially.)</p>
</section>
<section id="context" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="context">Context for these datasets</h2>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>Most of the information in this section is consistent with the information published in the <a href="../202401/#context">first post in this series</a> in 2024. Significant edits and new information are flagged in callouts like this.</p>
<p>Now, in early 2026, this section is inadequate. Significant damage has been inflicted on individual federal workers, on the broader federal workforce, and on the FDA as an institution. I can’t begin to catalog that here. Instead, I’ve focused new content on straightforward topics, like the impacts of shutdowns (which disrupt FDA operations) and predetermined change control plans (which reduce overall submission volume, although they may increase average review complexity).</p>
<p>The previous post already included a discussion about how receipt-cohort MDUFA metrics are “lagging indicators.” In addition, my personal view is that MDUFA metrics are among the last places we should expect to see significant evidence of trouble at the FDA (although we certainly did see that during the COVID-19 Public Health Emergency). First, dedicated career staff recognize the importance of their work at the FDA and are redoubling their efforts despite the circumstances. Second, as the saying goes, “What gets measured gets done.” The FDA’s medical device review programs are measured. Those measures are made public and are regularly analyzed by regulatory professionals and researchers. That makes it more likely that reviews will get done and that they will get done on time.</p>
<p>Will the reviews get done <em>well</em>? Yes, I hope and believe that the FDA’s medical device reviews will continue to be done well, but we won’t be able to determine that from the efficiency metrics shown here.</p>
</div>
</div>
<p>This post includes visualizations of performance metrics related to the “Medical Device User Fee Amendments” or “MDUFA.” Every five years since fiscal year (FY) 2003, Congress has authorized (or re-authorized) the FDA to collect user fees to support the FDA’s regulatory activities related to medical devices. Each of these five-year periods has been named sequentially: MDUFA or MDUFA I (FY 2003 through FY 2007), MDUFA II (FY 2008 through FY 2012), MDUFA III (FY 2013 through FY 2017), MDUFA IV (FY 2018 through FY 2022) and MDUFA V (FY 2023 through FY 2027).</p>
<p>This post will use “MDUFA 1,” “MDUFA 2,” “MDUFA 3,” “MDUFA 4,” and “MDUFA 5” to refer to these periods. The term “MDUFA” will be used to refer to any or all of these periods.</p>
<p>Before each re-authorization, the FDA has negotiated with representatives from the medical device industry, patient representatives, and other members of the public to arrive at a set of commitments that can be kept given the additional resources user fees provide. This results in a “MDUFA Commitment Letter,” a draft of which is provided to Congress in advance of re-authorization.</p>
<p>As a result of these commitments, since at least MDUFA 2, the FDA has published quarterly and annual “MDUFA Reports” that include performance metrics related to the FDA’s medical device regulatory activities with a particular focus on review times for premarket submissions for medical devices.</p>
<section id="definitions" class="level3">
<h3 class="anchored" data-anchor-id="definitions">Definitions</h3>
<p>The definitions below are based on the information in the MDUFA 5 Commitment Letter with some simplifications. <span class="citation" data-cites="mdufa52022">[4]</span></p>
<dl>
<dt>Applicant</dt>
<dd>
The person or organization providing a 510(k) or other submission to the FDA. <span class="citation" data-cites="mdufa52022">[4, p. 32]</span>
</dd>
<dt>FDA Days</dt>
<dd>
The number of calendar days that a submission was “under review” at the FDA, not including:
</dd>
</dl>
<ul>
<li>any time the FDA spent reviewing information that could not be accepted or filed because it was not administratively complete, or</li>
<li>any time the FDA spent waiting for an applicant to respond to a substantive request for additional information. <span class="citation" data-cites="mdufa52022">[4, p. 32]</span></li>
</ul>
<dl>
<dt>Fiscal Year (FY):</dt>
<dd>
A period beginning on October 1 and ending on the following September 30. For example, the period between 2023-10-01 and 2024-09-30 is “FY 2024.”
</dd>
<dt>Industry Days</dt>
<dd>
The number of calendar days an administratively complete submission was “on hold” while the FDA waited for an applicant to respond to a substantive request for additional information.
</dd>
<dt>MDUFA Decision</dt>
<dd>
For 510(k)s, a decision that a device is substantially equivalent (“SE” or “cleared”) and can be marketed in the U.S. or a decision that a device is not substantially equivalent (“NSE” or “not cleared”) and cannot be marketed in the U.S. <span class="citation" data-cites="mdufa52022">[4, pp. 32–33]</span> Throughout this post, this is referred to simply as a “decision.”
</dd>
<dt>MDUFA Performance Report Cutoff Date</dt>
<dd>
The date as of which the performance metrics in a MDUFA performance report were calculated.
</dd>
</dl>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>For the data included in this post, the cutoff dates are 2018-09-30 for MDUFA 3, 2023-09-30 for MDUFA 4, and 2025-09-30 for MDUFA 5. <span class="citation" data-cites="mdufa3report201812">[1, p. 1]</span> <span class="citation" data-cites="mdufa4report202311">[2, p. 1]</span> <span class="citation" data-cites="mdufa5report202511">[3, p. 2]</span></p>
</div>
</div>
<dl>
<dt>Review Cycle</dt>
<dd>
A period of FDA Days during which an accepted submission is “under review” at the FDA that is terminated by either a substantive request for additional information or a decision. For example, a submission that is cleared by the FDA without going “on hold” has one review cycle. A submission that the FDA places “on hold” through a substantive request for additional information, is then supplemented by the applicant with additional information, and then goes “under review” for a second time at the FDA before a final decision is made has two review cycles.<sup>1</sup>
</dd>
<dt>Total Days</dt>
<dd>
The number of calendar days from the FDA’s receipt of an administratively complete submission to a MDUFA Decision. When calculating summary statistics on this metric, the FDA excludes certain outlier submissions. The criteria that determine which outliers should be excluded change from year-to-year. <span class="citation" data-cites="mdufa52022">[4, p. 35]</span>
</dd>
</dl>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctext%7BTotal%20Days%7D%20=%20%5Ctext%7BFDA%20Days%7D%20+%20%5Ctext%7BIndustry%20Days%7D"></p>
</section>
<section id="lagging-indicators" class="level3">
<h3 class="anchored" data-anchor-id="lagging-indicators">Metrics based on receipt cohorts are lagging indicators</h3>
<p>Performance metrics included in the MDUFA reports are calculated across submissions grouped by the fiscal year in which they were received. These groups of submissions are called “receipt cohorts.” Grouping submissions by the fiscal year in which the FDA made a decision on the submissions results in groups of submissions called “decision cohorts.”</p>
<p>As of this writing, the most recent 510(k) receipt cohort includes many submissions for which the FDA has not made a final decision. This means that the receipt cohort is “open.” As review days continue to accumulate for these 510(k)s, the performance metrics that are based on those review times will change as well. Performance metrics calculated across open receipt cohorts continue to change until those cohorts “close,” which happens when each submission in the receipt cohort has received a decision.</p>
<p>Recent receipt cohorts are typically open. This means that performance metrics associated with these receipt cohorts, on their own, do not provide a particularly accurate indicator of final performance on those cohorts. It takes a while for them to stabilize. Before they stabilize, performance metrics associated with open receipt cohorts provide overly optimistic estimates of performance.<sup>2</sup></p>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>In the graphs below, receipt cohorts with more submissions still awaiting decisions are plotted with greater transparency to indicate that their metrics may change.</p>
</div>
</div>
<p>While this post can help you understand how the FDA performed on closed receipt cohorts from past years, <strong>the MDUFA reports and this post will not provide you with much useful information about how things are going at the FDA right now</strong>, and data from open receipt cohorts should be interpreted with caution.</p>
</section>
<section id="reorganizations-impacted-these-datasets" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="reorganizations-impacted-these-datasets">Reorganizations impacted these datasets</h3>
<p>MDUFA 3 data is included for some review groups in the figures below and is not included for others. This is a result of reorganizations at the FDA. A major reorganization occurred <a href="https://public4.pagefreezer.com/browse/FDA/27-02-2023T09:10/https://www.fda.gov/about-fda/center-devices-and-radiological-health/reorganization-center-devices-and-radiological-health">on September 30, 2019</a>, and a subsequent, smaller reorganization occurred later.</p>
<p>In some cases, the reorganizations took premarket review groups that already existed and were included in the MDUFA 3 reports and renamed them.<sup>3</sup> This is essentially the case for OHT2, OHT5, OHT6, and OHT8, meaning that data for those review groups from the MDUFA 5 and MDUFA 4 reports can be aligned with data from the MDUFA 3 reports for corresponding review groups.</p>
<p>In other cases, the reorganizations took review groups that were included in the MDUFA 3 reports and divided up and separated their subgroups. This is essentially the case for OHT1, OHT3, and OHT4, meaning that MDUFA 5 and MDUFA 4 report data for those review groups cannot be aligned with MDUFA 3 report data.</p>
<p>In the case of OHT7, the reorganizations combined several review groups that already existed and were included in the MDUFA 3 reports into one larger group that is referenced in the MDUFA 4 and MDUFA 5 reports. This means that some data, such as the number of submissions received, can be summed across the corresponding groups in the MDUFA 3 reports to align the data with the larger organization that is included in the MDUFA 4 and MDUFA 5 reports. In other cases, aligning the data is more complex. In still other cases, it is not possible to align the data.</p>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>Additional historical metrics for <em>in vitro</em> diagnostic device reviews conducted under MDUFA 3 are included in this post. This required some additional data processing to account for reorganizations and differences in how the FDA’s MDUFA 3 reports and the FDA’s subsequent MDUFA 4 and MDUFA 5 reports break out data. For example, additional metrics based on sums and averages were calculated across the <em>in vitro</em> diagnostic review program from the division-level information included in MDUFA 3 reports. Other types of metrics, such as percentile metrics, can’t be combined in this way and are not included in this post.</p>
</div>
</div>
<p>While I was not able to identify a reference that maps the review groups included in the MDUFA 3 reports to those used in the MDUFA 4 and MDUFA 5 reports, Table&nbsp;1 shows how I mapped the groups for the purposes of this post based on the names of the old review groups and the names of the new review groups.</p>
<div class="cell page-columns page-full">
<div id="tbl-mapping-oht" class="cell quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-tbl figure page-columns page-full">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-mapping-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Mapping of review groups in the MDUFA 3 reports to review groups in the MDUFA 4 and MDUFA 5 reports.
</figcaption>
<div aria-describedby="tbl-mapping-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<div class="cell-output-display column-page-inset">
<div class="table-responsive">
<table class="table table-striped table-hover table-condensed do-not-create-environment cell caption-top table-sm small">
<colgroup>
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;" data-quarto-table-cell-role="th">MDUFA 3 report review group (Old)</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Corresponding MDUFA 4 and MDUFA 5 report review group(s) (New)</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Relationship between old and new review groups</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">MDUFA 3 data available in figures</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><strong>DAGRID</strong>: Division of Anesthesiology, General Hospital, Respiratory, Infection Control, and Dental Devices</td>
<td style="text-align: left;"><strong>OHT1</strong>: Ophthalmic, Anesthesia, Respiratory, ENT, and Dental Devices<br>
<strong>OHT3</strong>: GastroRenal, ObGyn, General Hospital, and Urology Devices<br>
<strong>OHT4</strong>: Surgical and Infection Control Devices</td>
<td style="text-align: left;">Old review group was split and is part of more than one new review group</td>
<td style="text-align: left;">No</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DCD</strong>: Division of Cardiovascular Devices</td>
<td style="text-align: left;"><strong>OHT2</strong>: Cardiovascular Devices</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DCTD</strong>: Division of Chemistry and Toxicology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Most sums and averages are available; percentiles are not available</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DIHD</strong>: Division of Immunology and Hematology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Most sums and averages are available; percentiles are not available</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DMD</strong>: Division of Microbiology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Most sums and averages are available; percentiles are not available</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DMGP</strong>: Division of Molecular Genetics and Pathology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Most sums and averages are available; percentiles are not available</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DNPMD</strong>: Division of Neurological and Physical Medicine Devices</td>
<td style="text-align: left;"><strong>OHT5</strong>: Neurological and Physical Medicine Devices</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DOD</strong>: Division of Orthopedic Devices</td>
<td style="text-align: left;"><strong>OHT6</strong>: Orthopedic Devices</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DOED</strong>: Division of Ophthalmic and Ear, Nose, and Throat Devices</td>
<td style="text-align: left;"><strong>OHT1</strong>: Ophthalmic, Anesthesia, Respiratory, ENT, and Dental Devices</td>
<td style="text-align: left;">Old review group was combined with parts of another old review group to form new review group</td>
<td style="text-align: left;">No</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DRGUD</strong>: Division of Reproductive, Gastro-Renal, and Urological Devices</td>
<td style="text-align: left;"><strong>OHT3</strong>: GastroRenal, ObGyn, General Hospital, and Urology Devices</td>
<td style="text-align: left;">Old review group was combined with part of another old review group to form new review group</td>
<td style="text-align: left;">No</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DRH</strong>: Division of Radiological Health</td>
<td style="text-align: left;"><strong>OHT8</strong>: Radiological Health</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DSD</strong>: Division of Surgical Devices</td>
<td style="text-align: left;"><strong>OHT4</strong>: Surgical and Infection Control Devices</td>
<td style="text-align: left;">Old review group was combined with part of another old review group to form new review group</td>
<td style="text-align: left;">No</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</figure>
</div>
</div>
</section>
<section id="the-covid-19-public-health-emergency-impacted-these-datasets" class="level3">
<h3 class="anchored" data-anchor-id="the-covid-19-public-health-emergency-impacted-these-datasets">The COVID-19 Public Health Emergency impacted these datasets</h3>
<p>A Public Health Emergency (PHE) was declared for COVID-19 beginning on 2020-01-27 (FY 2020 Q2) and was renewed until it expired on 2023-05-11 (FY 2023 Q3). Responding to the PHE had a major impact on the FDA’s work. <a href="https://www.fda.gov/emergency-preparedness-and-response/mcm-legal-regulatory-and-policy-framework/faqs-what-happens-euas-when-public-health-emergency-ends">Other related declarations and determinations also impacted and continue to impact the FDA’s work</a>. To acknowledge the impact of the PHE on the FDA’s work, graphs in this post that plot metrics over time also show the PHE as a shaded region underlaying data points associated with FY 2020 through FY 2023.</p>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>New information about pre-submission impacts is included below.</p>
</div>
</div>
<p>In a series of “FDA Voices” blog posts, FDA leadership described the impact of the pandemic, including the review of thousands of Emergency Use Authorization (EUA) submissions for pandemic-related devices, on FDA’s work. <span class="citation" data-cites="fdavoices202104">[8]</span> <span class="citation" data-cites="fdavoices202112">[9]</span> <span class="citation" data-cites="fdavoices202205">[10]</span></p>
<p>In April 2021, FDA device review leaders noted:</p>
<ul>
<li>“Unless IVD pre-submissions are related to COVID-19, companion diagnostics, a breakthrough designation request, or have a significant public health impact, we have been unable to review them.”</li>
<li>“For the remainder this year, we will be declining other IVD pre-submission requests that don’t fall into these categories for the present time.”</li>
<li>“Non-COVID-19 IVD submissions are experiencing longer-than-typical review timelines and delays in initiation of review.”</li>
<li>“[Divisions reviewing respirators, facemasks, gowns, and gloves] are experiencing longer review timelines for pre-submissions. We anticipate pre-submissions in these divisions to be completed within 120 days, rather than the usual 70 days.”</li>
</ul>
<p>In December 2021, they wrote that for non-IVDs, “During 2022, CDRH expects non-IVD review divisions to be able to transition back to most of the MDUFA review timeframes, although some submissions may experience delays on a case-by-case basis.” For IVDs: “We’re pleased to announce that, as of January 1, 2022, CDRH plans to also accept pre-submissions requesting feedback for IVDs that require or would be likely to require a PMA or De Novo submission. Depending on the course of the pandemic, we hope to be able to accept all IVD pre-submission requests by the late spring or early summer.”</p>
<p>In May 2022, they announced reopening to all pre-submissions: “Starting June 1, CDRH will be accepting pre-submission requests of all types for all product areas. This means we will no longer have any limitations on pre-submission types that we will accept for IVDs.”</p>
<p>Other MDUFA timelines were also impacted.</p>
</section>
<section id="shutdowns" class="level3">
<h3 class="anchored" data-anchor-id="shutdowns">Government shutdowns impacted these datasets</h3>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>This section is new.</p>
</div>
</div>
<p>Government shutdowns may have impacted FDA review timelines. In particular, when a shutdown occurs at the beginning of a fiscal year, as was the case in FY2014 and FY2026, the FDA is unable to accept new user fees. This means that new submissions that require user fees cannot be logged in and reviews cannot begin. <span class="citation" data-cites="fdashutdown2025">[11]</span> When the government reopens, a large number of submissions get logged in all at once: Submissions that may have come in over time in a way that would not have strained the FDA’s capacity arrive all at once and may overwhelm the FDA’s capacity, impacting timeliness. Table&nbsp;2 shows the shutdowns that are relevant to this post.</p>
<div class="cell">
<div id="tbl-gov-shutdowns" class="cell quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-gov-shutdowns-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;2: Significant government shutdowns from MDUFA 3 onward. Asterisks indicate that a shutdown began on October 1, meaning that the FDA was not able to begin new reviews of submissions that require user fees.
</figcaption>
<div aria-describedby="tbl-gov-shutdowns-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<div class="table-responsive">
<table class="table table-striped table-hover table-condensed do-not-create-environment cell caption-top table-sm small">
<thead>
<tr class="header">
<th style="text-align: left;" data-quarto-table-cell-role="th">Fiscal Year</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Start Date</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">End Date</th>
<th style="text-align: right;" data-quarto-table-cell-role="th">Duration (Days)</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">2014*</td>
<td style="text-align: left;">2013-10-01</td>
<td style="text-align: left;">2013-10-17</td>
<td style="text-align: right;">16</td>
</tr>
<tr class="even">
<td style="text-align: left;">2018</td>
<td style="text-align: left;">2018-01-20</td>
<td style="text-align: left;">2018-01-23</td>
<td style="text-align: right;">3</td>
</tr>
<tr class="odd">
<td style="text-align: left;">2019</td>
<td style="text-align: left;">2018-12-22</td>
<td style="text-align: left;">2019-01-25</td>
<td style="text-align: right;">35</td>
</tr>
<tr class="even">
<td style="text-align: left;">2026*</td>
<td style="text-align: left;">2025-10-01</td>
<td style="text-align: left;">2025-11-12</td>
<td style="text-align: right;">43</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</figure>
</div>
</div>
</section>
<section id="exemptions-impacted-these-datasets" class="level3">
<h3 class="anchored" data-anchor-id="exemptions-impacted-these-datasets">Exemptions impacted these datasets</h3>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>Clinical Electronic Thermometers were exempted in 2025. <span class="citation" data-cites="fdaexempt2025">[12]</span></p>
</div>
</div>
<p>The FDA exempts lower-risk and well-characterized types of medical devices from 510(k) review from time to time. Examples include a large round of exemptions that occurred in 2017 and smaller rounds of exemptions in 2018 and 2020. <span class="citation" data-cites="fdaexempt2017">[13]</span> <span class="citation" data-cites="fdaexempt2018">[14]</span> <span class="citation" data-cites="fdaexempt2020">[15]</span> In addition, Clinical Electronic Thermometers were exempted in 2025. <span class="citation" data-cites="fdaexempt2025">[12]</span></p>
<p>Exemptions can decrease the volume of 510(k)s that a review group receives. 510(k)s for medical devices that are not exempted and remain in the 510(k) program may include more complex or less well-characterized technologies that are more challenging to review. The review process for these 510(k)s may take more time on average, and this may affect performance metrics over time.</p>
</section>
<section id="pccp" class="level3">
<h3 class="anchored" data-anchor-id="pccp">Predetermined Change Control Plans impacted these datasets</h3>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>This section is new.</p>
</div>
</div>
<p>Predetermined Change Control Plans (PCCPs) allow manufacturers to pre-specify device modifications and have the FDA review them as part of a premarket submission. <span class="citation" data-cites="fda-pccp-ai-final-2024">[16]</span> <span class="citation" data-cites="fda-pccp-draft-2024">[17]</span> If the FDA authorizes a PCCP, the manufacturer can implement the pre-specified modifications without submitting a new premarket submission, provided the manufacturer follows the validation and verification protocols described in the PCCP. <a href="../../posts/202408-pccp/latest/">I maintain a list of devices with FDA-authorized PCCPs on this site.</a></p>
<p>While PCCPs decrease the FDA’s overall review workload by eliminating the need to review certain device modifications, submissions that include PCCPs may be more complex and may require more work to review. On average, this may serve to increase submission complexity over time, even as overall submission volume decreases or does not grow as much as it otherwise would.</p>
</section>
<section id="these-datasets-focus-on-efficiency-not-quality" class="level3">
<h3 class="anchored" data-anchor-id="these-datasets-focus-on-efficiency-not-quality">These datasets focus on efficiency, not quality</h3>
<p>The performance metrics in the MDUFA reports primarily focus on how long things take. Information about interim and final submission outcomes – such as the rate at which 510(k)s result in requests for additional information and the rate at which 510(k)s result in a medical device being cleared for market in the United States – are also included. More comprehensive information about submission and review quality, meaning how good a job applicants do in preparing submissions and how good a job the FDA does in reviewing them, is not included in the MDUFA reports or this post.</p>
<p>To provide the public with some additional insight into quality and other topics, the MDUFA commitments have included “independent assessments” by a government contractor. The MDUFA 4 assessment resulted in a report published in 2021. <span class="citation" data-cites="bahia2021">[18]</span> Historically, the FDA and the GAO have also performed assessments. <span class="citation" data-cites="fdareviewtimes2011">[19]</span> <span class="citation" data-cites="gaoreviewtime2012">[6]</span></p>
<p><strong>Therefore, efficiency metrics associated with the amount of time submissions spend going through the FDA review process, especially when well-established submission and review quality metrics are not readily available, provide an incomplete picture of the FDA’s medical device review programs. In addition, differences in submission or review quality over time or across product areas may affect these metrics.</strong></p>
</section>
</section>
<section id="k-program-metrics" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="k-program-metrics">510(k) program metrics</h2>
<p>The FDA provides visualizations of many 510(k) program performance metrics for the Center for Devices and Radiological Health (CDRH) as a whole, but the FDA does not provide these for review groups within CDRH. <span class="citation" data-cites="mdufa5report202511">[3, pp. 111–118]</span> This post provides visualizations for OHT1 through OHT8 and CDRH overall.</p>
<div class="callout callout-style-default callout-note callout-titled" title="New">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>New
</div>
</div>
<div class="callout-body-container callout-body">
<p>Plots for CDRH as a whole are now included in addition to plots for OHT1 through OHT8.</p>
</div>
</div>
<section id="pmn-volume" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-volume">510(k) submission volume</h3>
<p>The MDUFA reports include information about submissions received over time. This can be plotted, and future submission volume can be projected. The projections provided here are somewhat naive: They are linear models based on fiscal year and review organization.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-volume-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-volume-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-volume-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;1: 510(k) submission volume for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-volume-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-volume-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: 510(k) submission volume for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-volume-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-volume-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-volume-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-volume-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;2: 510(k) submission volume by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-volume-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-volume-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: 510(k) submission volume by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-volume-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-cohort-status" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-cohort-status">510(k) cohort closure percentage</h3>
<p>See above for a discussion of what it means for a receipt cohort to be open or closed. As expected, Figure&nbsp;3 and Figure&nbsp;4 show that the most recent 510(k) receipt cohort had many open 510(k)s as of the most recent MDUFA performance report, meaning that performance metrics calculated on that cohort and shown in the figures throughout this post are likely to change substantially in future reports.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-cohort-closure-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-cohort-closure-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-cohort-closure-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;3: 510(k) cohort closure percentage for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-cohort-closure-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-cohort-closure-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: 510(k) cohort closure percentage for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-cohort-closure-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-cohort-closure-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-cohort-closure-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-cohort-closure-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;4: 510(k) cohort closure percentage by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-cohort-closure-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-cohort-closure-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: 510(k) cohort closure percentage by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-cohort-closure-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-fdadays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-fdadays">510(k) FDA Days metrics</h3>
<p>The MDUFA performance reports include summary statistics about how long reviews take across the population of 510(k)s received. In particular, the reports provide quintiles (the 20th, 40th, 60th, and 80th percentiles) of FDA Days, Industry Days, and Total Days. Quintiles are an unusual choice for summary statistics about a distribution, and I’m not aware of a standard approach to plotting them. They can’t be plotted with <a href="https://vita.had.co.nz/papers/boxplots.html">boxplots</a>, for example, which use quartiles. The visualizations in this post are inspired by boxplots though: They use line segments to show the percentile metrics and points to show averages.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-fdadays-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-fdadays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-fdadays-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;5: FDA Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-fdadays-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-fdadays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: FDA Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-fdadays-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-fdadays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-fdadays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-fdadays-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;6: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-fdadays-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-fdadays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;6: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-fdadays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>The PHE had a major impact on the data in Figure&nbsp;6 for OHT7. Figure&nbsp;7 shows the same data within 0 through 90 FDA Days, making it easier to see the data associated with OHTs 1-6 and 8.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-fdadays-oht-clipped" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-fdadays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-fdadays-oht-clipped-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;7: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 90 FDA Days are not shown. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-fdadays-oht-clipped-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-fdadays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;7: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 90 FDA Days are not shown. <a href="data/pmn-fdadays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-otp" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-otp">510(k) on-time performance</h3>
<p>The FDA has 90 FDA Days to review a 510(k).<sup>4</sup> The percentage of 510(k)s reviewed within this time frame can be thought of as “on-time performance,” similar to how <a href="https://en.wikipedia.org/wiki/On-time_performance">the metric is used in transportation</a>. The MDUFA reports include on-time performance metrics for the 510(k) program, shown in Figure&nbsp;8 and Figure&nbsp;9.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-otp-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-otp-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-otp-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;8: FDA Days on-time performance for the 510(k) program (CDRH) by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-otp-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-otp-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;8: FDA Days on-time performance for the 510(k) program (CDRH) by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-otp-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-otp-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-otp-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-otp-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;9: FDA Days on-time performance for the 510(k) program by review group and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-otp-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-otp-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;9: FDA Days on-time performance for the 510(k) program by review group and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-otp-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-industrydays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-industrydays">510(k) Industry Days metrics</h3>
<p>By regulation, applicants have 30 days to respond to a request for additional information from the FDA before the FDA may consider a 510(k) to have been “withdrawn” by the applicant.<sup>5</sup> By policy, the FDA allows up to 180 days for an applicant to respond. <span class="citation" data-cites="fdapmnprocedures2022">[20, p. 9]</span> Figure&nbsp;10 and Figure&nbsp;11 provide information about how long these responses have taken by fiscal year and by the FDA review group with which an applicant is interacting.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-industrydays-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-industrydays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-industrydays-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;10: Industry Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-industrydays-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-industrydays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;10: Industry Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-industrydays-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-industrydays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-industrydays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-industrydays-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;11: Industry Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-industrydays-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-industrydays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;11: Industry Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-industrydays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-totaldays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-totaldays">510(k) Total Days metrics</h3>
<p>As described above, the FDA has 90 FDA Days to review a 510(k), and applicants have 180 Industry Days to respond to questions the FDA raises in the course of that review. This means that the total amount of time available for a 510(k) to go through the review process if these activities are completed on time is 270 Total Days. Figure&nbsp;12, Figure&nbsp;13, and Figure&nbsp;14 show how long the process has taken by fiscal year.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-totaldays-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-totaldays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-totaldays-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;12: Total Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-totaldays-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-totaldays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;12: Total Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-totaldays-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-totaldays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-totaldays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-totaldays-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;13: Total Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-totaldays-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-totaldays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;13: Total Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-totaldays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>The PHE had a major impact on the data in Figure&nbsp;13 for OHT7. Figure&nbsp;14 shows the same data within 0 through 270 Total Days, making it easier to see the data associated with OHTs 1-6 and 8.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-totaldays-oht-clipped" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-totaldays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-totaldays-oht-clipped-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;14: Total Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 270 Total Days are not shown. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-totaldays-oht-clipped-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-totaldays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;14: Total Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 270 Total Days are not shown. <a href="data/pmn-totaldays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-cycles" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-cycles">510(k) review cycle metrics</h3>
<p>The FDA reports the average number of review cycles for 510(k)s, which is related to the rate at which the FDA places 510(k)s “on hold” to request additional information from applicants.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-cycles-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-cycles-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-cycles-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;15: Number of review cycles for 510(k)s (CDRH) over time as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-cycles-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-cycles-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;15: Number of review cycles for 510(k)s (CDRH) over time as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-cycles-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-cycles-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-cycles-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-cycles-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;16: Number of review cycles for 510(k)s over time as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-cycles-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-cycles-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;16: Number of review cycles for 510(k)s over time as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-cycles-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>While the FDA occasionally places a single 510(k) on hold more than once, this has been uncommon since at least 2014. <span class="citation" data-cites="fdacommunicationtypes2014">[21, p. 8]</span> It is not quite correct to assume that 510(k)s cannot have more than 2 review cycles, but it is a useful approximation for the purpose of estimating the rate at which the FDA places 510(k)s “on hold” to request additional information. With this assumption, that proportion is the Average Number of Review Cycles minus one.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-ainn-rate-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-ainn-rate-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-ainn-rate-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;17: Estimated rate at which additional information is requested for 510(k)s (CDRH) over time based on the average number of review cycles and an assumption that 510(k)s do not go on hold more than once. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-ainn-rate-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-ainn-rate-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;17: Estimated rate at which additional information is requested for 510(k)s (CDRH) over time based on the average number of review cycles and an assumption that 510(k)s do not go on hold more than once. <a href="data/pmn-cycles-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-ainn-rate-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-ainn-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-ainn-rate-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;18: Estimated rate at which additional information is requested for 510(k)s over time based on the average number of review cycles and an assumption that 510(k)s do not go on hold more than once. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-ainn-rate-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-ainn-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;18: Estimated rate at which additional information is requested for 510(k)s over time based on the average number of review cycles and an assumption that 510(k)s do not go on hold more than once. <a href="data/pmn-cycles-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="pmn-decisions" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="pmn-decisions">510(k) decision metrics</h3>
<p>In the MDUFA performance reports, the rates at which submissions receive an “SE” decision or receive an “NSE” decision are reported as percentages of submissions that receive either an SE or an NSE decision. The rates at which submissions are withdrawn by applicants or deleted by the FDA because an applicant did not respond to a request for additional information in a timely manner are reported as percentages of all accepted submissions. Because two different denominators are used to calculate these percentages in the MDUFA reports, adding the four percentages together results in a total that exceeds 100%.</p>
<p>This makes it difficult to understand what percentage of 510(k)s received by the FDA were cleared for market over time based on the rates in the MDUFA reports. However, the MDUFA reports also include the counts of submissions that received each of these decisions. Figure&nbsp;19 and Figure&nbsp;20 show the rates of cleared and not cleared (including withdrawn and deleted) 510(k)s.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-pmn-decision-rate-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-pmn-decision-rate-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-pmn-decision-rate-cdrh-1.png" class="lightbox" data-gallery="pmn" title="Figure&nbsp;19: The rate at which 510(k)s are cleared or not cleared for market (CDRH) over time as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-decision-rate-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-decision-rate-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;19: The rate at which 510(k)s are cleared or not cleared for market (CDRH) over time as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-decision-rate-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-pmn-decision-rate-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-pmn-decision-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-pmn-decision-rate-oht-1.png" class="lightbox page-columns page-full" data-gallery="pmn" title="Figure&nbsp;20: The rate at which 510(k)s are cleared or not cleared for market over time as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-pmn-decision-rate-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-pmn-decision-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;20: The rate at which 510(k)s are cleared or not cleared for market over time as of the corresponding MDUFA report cutoff dates. <a href="data/pmn-decision-rate-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
</section>
<section id="pre-submission-program-metrics" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="pre-submission-program-metrics">Pre-Submission program metrics</h2>
<p>The plots in this section start with MDUFA 4 because the Pre-Submission metrics changed significantly between MDUFA periods. In MDUFA 3, metrics measured how long it takes for the FDA and industry to meet. <span class="citation" data-cites="mdufa3report201812">[1, pp. 247–262]</span> Meetings might be scheduled or rescheduled for reasons unrelated to FDA preparation time, such as travel arrangements. In MDUFA 4, the metrics were updated to also include how long it takes for the FDA to send written feedback to industry before the meeting, which is a more direct and objective measure of the FDA’s review times for Pre-Submissions. <span class="citation" data-cites="fdam4letter2016">[5, pp. 3–4]</span> In MDUFA 5, metrics related to how long it takes for a meeting to occur were dropped. <span class="citation" data-cites="mdufa52022">[4, pp. 2–5]</span> As a result, there are fewer consistent metrics for this program over time than there are for the 510(k) program. The visualizations here focus on submission volume, a derived measure similar to cohort closure, and time to written feedback.</p>
<section id="presub-volume" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="presub-volume">Pre-Submission volume</h3>
<p>During the COVID-19 Public Health Emergency, CDRH did not accept pre-submissions for all products. In particular, IVD divisions declined most non-COVID pre-submissions from April 2021 through May 2022. See The COVID-19 Public Health Emergency impacted these datasets for details.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-presub-volume-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-presub-volume-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-presub-volume-cdrh-1.png" class="lightbox" data-gallery="presub" title="Figure&nbsp;21: Pre-Submission submission volume for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-volume-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-volume-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;21: Pre-Submission submission volume for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/presub-volume-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-presub-volume-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-presub-volume-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-presub-volume-oht-1.png" class="lightbox page-columns page-full" data-gallery="presub" title="Figure&nbsp;22: Pre-Submission submission volume by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-volume-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-volume-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;22: Pre-Submission submission volume by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/presub-volume-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="presub-cohort-status" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="presub-cohort-status">Pre-Submission cohort closure percentage</h3>
<p>Unlike 510(k) submissions, the FDA’s MDUFA performance reports do not include a pre-calculated cohort closure percentage for Pre-Submissions. The closure percentages shown here are calculated from the available metrics using different formulas for each MDUFA period:</p>
<ul>
<li><strong>MDUFA IV</strong>: Closure = Written Feedback Sent ÷ (Received − Closed Before RTA − Not Accepted)</li>
<li><strong>MDUFA V</strong>: Closure = (Accepted − Non-MDUFA Action − Pending) ÷ (Accepted − Non-MDUFA Action)</li>
</ul>
<p>These formulas approximate the percentage of Pre-Submissions in each fiscal year cohort that have received a final response as of the report date. The approach differs from 510(k) cohort closure, which is reported directly by the FDA and tracks whether submissions have received a decision.</p>
<p>When calculated values exceed 100% due to data inconsistencies, they are capped at 100%. For these visualizations, cohorts are marked as “Closed” and rounded to 100% when they reach 99.5% or higher.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-presub-cohort-closure-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-presub-cohort-closure-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-presub-cohort-closure-cdrh-1.png" class="lightbox" data-gallery="presub" title="Figure&nbsp;23: Pre-Submission cohort closure percentage for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-cohort-closure-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-cohort-closure-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;23: Pre-Submission cohort closure percentage for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/presub-cohort-closure-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-presub-cohort-closure-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-presub-cohort-closure-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-presub-cohort-closure-oht-1.png" class="lightbox page-columns page-full" data-gallery="presub" title="Figure&nbsp;24: Pre-Submission cohort closure percentage by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. The MDUFA 4 performance report lists zero as the value for many Pre-Submission metrics for OHT3 in FY2022; while this may be erroneous, this figure displays the data as provided by the FDA. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-cohort-closure-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-cohort-closure-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;24: Pre-Submission cohort closure percentage by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. The MDUFA 4 performance report lists zero as the value for many Pre-Submission metrics for OHT3 in FY2022; while this may be erroneous, this figure displays the data as provided by the FDA. <a href="data/presub-cohort-closure-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="presub-fdadays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="presub-fdadays">Pre-Submission FDA Days to Written Feedback</h3>
<p>The MDUFA performance reports include summary statistics about how long it takes FDA to send written feedback across the population of Pre-Submissions received. In particular, the reports provide quintiles (the 20th, 40th, 60th, and 80th percentiles) of FDA Days to Written Feedback.</p>
<p>During the COVID-19 Public Health Emergency, pre-submission review timelines were extended. For divisions reviewing certain pandemic-related devices, the FDA anticipated completing pre-submissions in 120 days rather than 70 days. See The COVID-19 Public Health Emergency impacted these datasets for details.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-presub-fdadays-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-presub-fdadays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-presub-fdadays-cdrh-1.png" class="lightbox" data-gallery="presub" title="Figure&nbsp;25: FDA Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-fdadays-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-fdadays-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;25: FDA Days performance metrics for CDRH by fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/presub-fdadays-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-presub-fdadays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-presub-fdadays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-presub-fdadays-oht-1.png" class="lightbox page-columns page-full" data-gallery="presub" title="Figure&nbsp;26: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. The MDUFA 4 performance report lists zero as the value for many Pre-Submission metrics for OHT3 in FY2022; while this may be erroneous, this figure displays the data as provided by the FDA. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-fdadays-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-fdadays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;26: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. The MDUFA 4 performance report lists zero as the value for many Pre-Submission metrics for OHT3 in FY2022; while this may be erroneous, this figure displays the data as provided by the FDA. <a href="data/presub-fdadays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>The PHE had a major impact on the data in Figure&nbsp;26 for OHT7. Figure&nbsp;27 shows the same data within 0 through 90 FDA Days, making it easier to see the data associated with OHTs 1-6 and 8.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-presub-fdadays-oht-clipped" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-presub-fdadays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-presub-fdadays-oht-clipped-1.png" class="lightbox page-columns page-full" data-gallery="presub" title="Figure&nbsp;27: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 90 FDA Days are not shown. The MDUFA 4 performance report lists zero as the value for many Pre-Submission metrics for OHT3 in FY2022; while this may be erroneous, this figure displays the data as provided by the FDA. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-fdadays-oht-clipped-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-fdadays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;27: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 90 FDA Days are not shown. The MDUFA 4 performance report lists zero as the value for many Pre-Submission metrics for OHT3 in FY2022; while this may be erroneous, this figure displays the data as provided by the FDA. <a href="data/presub-fdadays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="presub-industry-otp" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="presub-industry-otp">Pre-Submission Industry Meeting Minutes on-time performance</h3>
<p>Under the MDUFA commitment, industry is expected to provide draft meeting minutes within 15 days of a Pre-Submission meeting. The MDUFA reports track the percentage of meetings for which industry provided minutes within this timeframe.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-presub-industry-otp-cdrh" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-presub-industry-otp-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="index_files/figure-html/fig-presub-industry-otp-cdrh-1.png" class="lightbox" data-gallery="presub" title="Figure&nbsp;28: Industry on-time performance for providing Pre-Submission meeting minutes within 15 days (CDRH) by fiscal year as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-industry-otp-cdrh-1.png" class="img-fluid figure-img" style="width:70.0%"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-industry-otp-cdrh-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;28: Industry on-time performance for providing Pre-Submission meeting minutes within 15 days (CDRH) by fiscal year as of the corresponding MDUFA report cutoff dates. <a href="data/presub-industry-otp-cdrh.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-presub-industry-otp-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-presub-industry-otp-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<a href="index_files/figure-html/fig-presub-industry-otp-oht-1.png" class="lightbox page-columns page-full" data-gallery="presub" title="Figure&nbsp;29: Industry on-time performance for providing Pre-Submission meeting minutes within 15 days by review group and fiscal year as of the corresponding MDUFA report cutoff dates. Raw data."><img src="https://www.boleary.com/blog/mdufa/202601/index_files/figure-html/fig-presub-industry-otp-oht-1.png" class="img-fluid figure-img column-page" width="4125"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-presub-industry-otp-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;29: Industry on-time performance for providing Pre-Submission meeting minutes within 15 days by review group and fiscal year as of the corresponding MDUFA report cutoff dates. <a href="data/presub-industry-otp-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
</section>
<section id="closing-thoughts" class="level2">
<h2 class="anchored" data-anchor-id="closing-thoughts">Closing thoughts</h2>
<p>The objective of this work was to make the information in the MDUFA reports easier to access, analyze, and use. This post provides visualizations of about 2,200 values from the FDA’s 510(k) and Pre-Submission program metrics over time and across review groups. These visualizations are intended to provide a more useful view of the tabular data provided throughout the FDA’s MDUFA reports while still presenting that data dispassionately and with appropriate context.</p>



</section>


<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-mdufa3report201812" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline"><span>“<span>MDUFA III</span> (FY 2013-2017) performance report,”</span> <span>U.S. Food and Drug Administration</span>, Report, Dec. 2018. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-3_2018-12-10_quarterly-report.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-3_2018-12-10_quarterly-report.pdf</a></div>
</div>
<div id="ref-mdufa4report202311" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline"><span>“<span>MDUFA IV</span> (FY 2018-2022) performance report,”</span> <span>U.S. Food and Drug Administration</span>, Report, Nov. 2023. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_2023-11-16_quarterly-report.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_2023-11-16_quarterly-report.pdf</a></div>
</div>
<div id="ref-mdufa5report202511" class="csl-entry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline"><span>“<span>MDUFA V</span> (FY 2023-2027) performance report,”</span> <span>U.S. Food and Drug Administration</span>, Report, Nov. 2025. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_2025-11-20_quarterly-report.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_2025-11-20_quarterly-report.pdf</a></div>
</div>
<div id="ref-mdufa52022" class="csl-entry">
<div class="csl-left-margin">[4] </div><div class="csl-right-inline"><span>“<span>MDUFA</span> performance goals and procedures, fiscal years 2023 through 2027,”</span> <span>U.S. Food and Drug Administration</span>, User Fee Commitment Letter, Mar. 2022. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_goals-and-procedures.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_goals-and-procedures.pdf</a></div>
</div>
<div id="ref-fdam4letter2016" class="csl-entry">
<div class="csl-left-margin">[5] </div><div class="csl-right-inline"><span>“<span>MDUFA</span> performance goals and procedures, fiscal years 2018 through 2022,”</span> <span>U.S. Food and Drug Administration</span>, User Fee Commitment Letter, Dec. 2016. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_goals-and-procedures.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_goals-and-procedures.pdf</a></div>
</div>
<div id="ref-gaoreviewtime2012" class="csl-entry">
<div class="csl-left-margin">[6] </div><div class="csl-right-inline">M. Crosse <em>et al.</em>, <span>“Medical devices: <span>FDA</span> has met most performance goals but device reviews are taking longer,”</span> <span>U.S. Government Accountability Office</span>, Report to Congressional Requesters GAO-12-418, Feb. 2012. Available: <a href="https://www.gao.gov/products/gao-12-418">https://www.gao.gov/products/gao-12-418</a></div>
</div>
<div id="ref-pmnworkinggroup2010" class="csl-entry">
<div class="csl-left-margin">[7] </div><div class="csl-right-inline"><span>“<span>CDRH</span> preliminary internal evaluations – volume <span>I</span>,”</span> <span>U.S. Food and Drug Administration</span>, Report, 2010. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/fda-cdrh-510k-working-group-report-2010.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/fda-cdrh-510k-working-group-report-2010.pdf</a></div>
</div>
<div id="ref-fdavoices202104" class="csl-entry">
<div class="csl-left-margin">[8] </div><div class="csl-right-inline">J. Shuren and W. Maisel, <span>“A year into the pandemic: How the <span>FDA</span>’s center for devices and radiological health is prioritizing its workload and looking ahead,”</span> Apr. 2021. <a href="https://web.archive.org/web/20210415151209/https://www.fda.gov/news-events/fda-voices/year-pandemic-how-fdas-center-devices-and-radiological-health-prioritizing-its-workload-and-looking">https://web.archive.org/web/20210415151209/https://www.fda.gov/news-events/fda-voices/year-pandemic-how-fdas-center-devices-and-radiological-health-prioritizing-its-workload-and-looking</a> (accessed Apr. 15, 2021).</div>
</div>
<div id="ref-fdavoices202112" class="csl-entry">
<div class="csl-left-margin">[9] </div><div class="csl-right-inline">J. Shuren and W. Maisel, <span>“Looking ahead to 2022 as <span>FDA</span>’s center for devices and radiological health manages a sustained increase in workload,”</span> Dec. 2021. <a href="https://web.archive.org/web/20211222195626/https://www.fda.gov/news-events/fda-voices/looking-ahead-2022-fdas-center-devices-and-radiological-health-manages-sustained-increase-workload">https://web.archive.org/web/20211222195626/https://www.fda.gov/news-events/fda-voices/looking-ahead-2022-fdas-center-devices-and-radiological-health-manages-sustained-increase-workload</a> (accessed Dec. 22, 2021).</div>
</div>
<div id="ref-fdavoices202205" class="csl-entry">
<div class="csl-left-margin">[10] </div><div class="csl-right-inline">J. Shuren and W. Maisel, <span>“<span>FDA</span>’s center for devices and radiological health’s continued efforts to return to normal: Reopening for all pre-submissions,”</span> May 2022. <a href="https://web.archive.org/web/20220531154347/https://www.fda.gov/news-events/fda-voices/fdas-center-devices-and-radiological-healths-continued-efforts-return-normal-reopening-all-pre">https://web.archive.org/web/20220531154347/https://www.fda.gov/news-events/fda-voices/fdas-center-devices-and-radiological-healths-continued-efforts-return-normal-reopening-all-pre</a> (accessed May 31, 2022).</div>
</div>
<div id="ref-fdashutdown2025" class="csl-entry">
<div class="csl-left-margin">[11] </div><div class="csl-right-inline">U.S. Food and Drug Administration, <span>“<span>FDA</span> <span>FY</span> 2026 lapse in funding information,”</span> Oct. 01, 2025. <a href="https://web.archive.org/web/20251001131252/https://www.fda.gov/about-fda/fda-fy-2026-lapse-funding-information">https://web.archive.org/web/20251001131252/https://www.fda.gov/about-fda/fda-fy-2026-lapse-funding-information</a> (accessed Oct. 01, 2025).</div>
</div>
<div id="ref-fdaexempt2025" class="csl-entry">
<div class="csl-left-margin">[12] </div><div class="csl-right-inline"><span>“90 FR 25889: Medical devices; exemptions from premarket notification: Class <span>II</span> devices; clinical electronic thermometers,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jun. 2025. Available: <a href="https://www.federalregister.gov/d/2025-11207">https://www.federalregister.gov/d/2025-11207</a></div>
</div>
<div id="ref-fdaexempt2017" class="csl-entry">
<div class="csl-left-margin">[13] </div><div class="csl-right-inline"><span>“82 FR 31976: Medical devices; exemptions from premarket notification: Class <span>II</span> devices,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jul. 2017. Available: <a href="https://www.federalregister.gov/d/2017-14453">https://www.federalregister.gov/d/2017-14453</a></div>
</div>
<div id="ref-fdaexempt2018" class="csl-entry">
<div class="csl-left-margin">[14] </div><div class="csl-right-inline"><span>“83 FR 25910: Medical devices; exemptions from premarket notification: Class <span>II</span> devices,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jun. 2018. Available: <a href="https://www.federalregister.gov/d/2018-11879">https://www.federalregister.gov/d/2018-11879</a></div>
</div>
<div id="ref-fdaexempt2020" class="csl-entry">
<div class="csl-left-margin">[15] </div><div class="csl-right-inline"><span>“85 FR 44186: Medical devices; exemptions from premarket notification: Class <span>II</span> devices,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jul. 2020. Available: <a href="https://www.federalregister.gov/d/2020-15256">https://www.federalregister.gov/d/2020-15256</a></div>
</div>
<div id="ref-fda-pccp-ai-final-2024" class="csl-entry">
<div class="csl-left-margin">[16] </div><div class="csl-right-inline"><span>“Marketing submission recommendations for a predetermined change control plan for artificial intelligence-enabled device software functions,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2022-D-2628, Dec. 2024. Available: <a href="https://www.regulations.gov/document/FDA-2022-D-2628-0036">https://www.regulations.gov/document/FDA-2022-D-2628-0036</a></div>
</div>
<div id="ref-fda-pccp-draft-2024" class="csl-entry">
<div class="csl-left-margin">[17] </div><div class="csl-right-inline"><span>“<span>P</span>redetermined <span>C</span>hange <span>C</span>ontrol <span>P</span>lans for medical devices,”</span> <span>U.S. Food and Drug Administration</span>, Draft Guidance Document. Docket Number FDA-2024-D-2338, Aug. 2024. Available: <a href="https://www.regulations.gov/document/FDA-2024-D-2338-0002">https://www.regulations.gov/document/FDA-2024-D-2338-0002</a></div>
</div>
<div id="ref-bahia2021" class="csl-entry">
<div class="csl-left-margin">[18] </div><div class="csl-right-inline"><span>“<span>MDUFA IV</span> phase 2 independent assessment final report,”</span> <span>U.S. Food and Drug Administration</span>, Report, 2021. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_independent-assessment-2021.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_independent-assessment-2021.pdf</a></div>
</div>
<div id="ref-fdareviewtimes2011" class="csl-entry">
<div class="csl-left-margin">[19] </div><div class="csl-right-inline"><span>“Analysis of premarket review times under the 510(k) program,”</span> <span>U.S. Food and Drug Administration</span>, Report, Sep. 2011. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-data-requests-2011.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-data-requests-2011.pdf</a></div>
</div>
<div id="ref-fdapmnprocedures2022" class="csl-entry">
<div class="csl-left-margin">[20] </div><div class="csl-right-inline"><span>“<span>FDA</span> and industry actions on premarket notification (<span class="nocase">510(k)</span>) submissions: Effect on <span>FDA</span> review clock and goals,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document FDA-2003-D-0033, 2022. Available: <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/fda-and-industry-actions-premarket-notification-510k-submissions-effect-fda-review-clock-and-goals">https://www.fda.gov/regulatory-information/search-fda-guidance-documents/fda-and-industry-actions-premarket-notification-510k-submissions-effect-fda-review-clock-and-goals</a></div>
</div>
<div id="ref-fdacommunicationtypes2014" class="csl-entry">
<div class="csl-left-margin">[21] </div><div class="csl-right-inline"><span>“Types of communication during the review of medical device submissions,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document FDA-2013-D-0147, Apr. 2014. Available: <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/types-communication-during-review-medical-device-submissions">https://www.fda.gov/regulatory-information/search-fda-guidance-documents/types-communication-during-review-medical-device-submissions</a></div>
</div>
</div></section><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>This term is not defined in the MDUFA V Commitment Letter, but this definition is consistent with its use in other documents. <span class="citation" data-cites="fdam4letter2016">[5, p. 28]</span> <span class="citation" data-cites="gaoreviewtime2012">[6, pp. 4, 7]</span> <span class="citation" data-cites="pmnworkinggroup2010">[7, p. 39]</span> While the MDUFA 3 reports are silent on the issue, the MDUFA 4 and MDUFA 5 reports confirm that “review cycle” refers to a substantive review of an “accepted” 510(k). <span class="citation" data-cites="mdufa4report202311">[2, p. 257]</span> <span class="citation" data-cites="mdufa5report202511">[3, p. 268]</span> The FDA’s approach to analyzing requests for additional information suggests that this has been the practice since FY 2013. <span class="citation" data-cites="mdufa5report202511">[3, p. 113]</span>↩︎</p></li>
<li id="fn2"><p>The FDA has used a number of analysis techniques to correct for this and get insights into recent performance based on data from open receipt cohorts. One approach is to look at historical data from when previous receipt cohorts that are now closed were still open. That information is compared to the final calculated performance metrics for the corresponding cohorts and to the receipt cohorts that are currently open to infer whether performance is better or worse now than it was then and to estimate where the final performance metric calculations for open cohorts may converge. The MDUFA reports include several figures based on this approach. <span class="citation" data-cites="mdufa5report202511">[3, pp. 115–117]</span> Best- and worst-case outcomes can also be estimated for some metrics. <br>These complex techniques can be difficult to interpret. I favor looking at recently closed decision cohorts instead. Metrics similar to the Total Days metrics in the MDUFA reports can be calculated for cleared 510(k) receipt and decision cohorts using the FDA’s public 510(k) database. You can access this from R using the <a href="https://github.com/bjoleary/fdadata">fdadata</a> package, and I’ve also built <a href="https://www.fdadays.com">a free web app you can use to explore clearance timeframes using this dataset</a>.↩︎</p></li>
<li id="fn3"><p>The reorganizations had other impacts as well, but this post is focused on their implications for MDUFA performance metric data.↩︎</p></li>
<li id="fn4"><p>In addition to being a MDUFA commitment, this is in <a href="https://uscode.house.gov/view.xhtml?req=(title:21%20section:360%20edition:prelim)%20OR%20(granuleid:USC-prelim-title21-section360)&amp;f=treesort&amp;edition=prelim&amp;num=0&amp;jumpTo=true">21 USC § 360(n)(1)</a>.↩︎</p></li>
<li id="fn5"><p>See <a href="https://www.ecfr.gov/current/title-21/chapter-I/subchapter-H/part-807/subpart-E/section-807.87">21 CFR 807.87(m)</a>.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section></div> ]]></description>
  <category>FDA</category>
  <category>510(k)</category>
  <category>devices</category>
  <category>datasets</category>
  <category>MDUFA</category>
  <guid>https://www.boleary.com/blog/mdufa/202601/</guid>
  <pubDate>Mon, 02 Feb 2026 15:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/mdufa/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>A Perspective on Artificial Intelligence for Molecular Pathologists</title>
  <dc:creator>Timothy J. O&#39;Leary</dc:creator>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <dc:creator>Dianne P. O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202503-ai-for-pathologists/</link>
  <description><![CDATA[ 




<p>Published February 12 in the Journal of Molecular Diagnostics: <a href="https://doi.org/10.1016/j.jmoldx.2025.01.005">A Perspective on Artificial Intelligence for Molecular Pathologists</a>. <span class="citation" data-cites="olearyai2025">[1]</span> (Open access.)</p>
<p><a href="https://doi.org/10.1016/j.jmoldx.2025.01.005"><img src="https://www.boleary.com/blog/posts/202503-ai-for-pathologists/image.webp" class="img-fluid"></a></p>
<p>Authors: <a href="https://www.timothyjolearymd.com/info/">Timothy J. O’Leary</a>, Brendan O’Leary, and <a href="https://www.cs.umd.edu/~oleary/">Dianne P. O’Leary</a>.</p>




<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-olearyai2025" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">T. J. O’Leary, B. J. O’Leary, and D. P. O’Leary, <span>“A perspective on artificial intelligence for molecular pathologists,”</span> <em>The Journal of Molecular Diagnostics</em>, Feb. 2025, doi: <a href="https://doi.org/10.1016/j.jmoldx.2025.01.005">10.1016/j.jmoldx.2025.01.005</a>.</div>
</div>
</div></section></div> ]]></description>
  <category>ai</category>
  <guid>https://www.boleary.com/blog/posts/202503-ai-for-pathologists/</guid>
  <pubDate>Fri, 21 Mar 2025 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202503-ai-for-pathologists/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Data for researchers: Extracted text from FDA decision summaries for in vitro diagnostics</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/</link>
  <description><![CDATA[ 




<section id="introduction" class="level1 page-columns page-full">
<h1>Introduction</h1>
<p>Each year, the FDA authorizes around 500 <em>in vitro</em> diagnostics (IVDs) for use in the United States through the 510(k) program, the De Novo program, and the Premarket Approval (PMA) program.<sup>1</sup> When the FDA authorizes an IVD, the FDA often publishes a “decision summary” or a “summary of safety and effectiveness data” (SSED) on its website, providing valuable insight into its decision-making.</p>
<p>The FDA posts decision summaries and SSEDs for most medical devices that come to the market through the De Novo and PMA programs, and, in addition, the FDA posts decision summaries for most IVDs that come to the market through the 510(k) program. For 510(k) devices that are not IVDs, the FDA usually only posts information written by device developers (not by the FDA), <a href="../202307-pmn/">as described in this post</a>.</p>
<p>The FDA makes this information available in thousands of individual files on the FDA website. This makes it possible to find information about the individual decisions the FDA has made. Using the information for other purposes, such as for gaining insight into how the IVD review program has changed over time or for pre-training Large Language Models (LLMs), has been more difficult.</p>
<p>That work may be easier going forward: Here, you’ll find a dataset with the full text contents of more than 6,000 IVD decision summaries and SSEDs. <!-- ^[Upon initial publication, this dataset included more than 6,000 decision summaries and SSEDs.] --> This includes full embedded and OCR text from over 80,000 pages. <!-- ^[Upon initial publication, this dataset included more than 74,000 pages.]  --> It can be downloaded in CSV format.</p>

<div class="no-row-height column-margin column-container"><div class="">
<script src="https://kit.fontawesome.com/0cc570d2cb.js" crossorigin="anonymous"></script>
<b>FDA Regulatory Expertise</b>: <br> I help technology developers put their best foot forward when they need to interact with the FDA. <br><br>
<div style="text-align: center">
<p><a class="btn btn-outline-primary" href="https://calendly.com/olearybrendan/initial-meeting/" target="_blank"> Schedule a meeting</a></p>
</div>
</div></div><p>As with other datasets offered on this site, check back for updates around once per month, and if you use this dataset, please cite this page.</p>
</section>
<section id="dataset-description" class="level1">
<h1>Dataset description</h1>
<p>This dataset was assembled by downloading decision summaries and SSEDs for 510(k)s, De Novos, and PMAs associated with the following <a href="https://www.fda.gov/medical-devices/classify-your-medical-device/device-classification-panels" target="_blank">IVD review panels</a>: Clinical Chemistry, Clinical Toxicology, Hematology, Immunology, Microbiology, Molecular Genetics, and Pathology. The dataset provides one row per page for each decision summary or SSED and includes the following fields:</p>
<dl>
<dt><code>submission_number</code></dt>
<dd>
The 510(k), De Novo, or PMA number for the submission associated with the document.
</dd>
<dt><code>file_description</code></dt>
<dd>
An indication of whether a document is a “Decision Summary” or a “Summary of Safety and Effectiveness” based on the language used to describe the document on the FDA’s website.
</dd>
<dt><code>date_obtained</code></dt>
<dd>
The date the document was obtained from the FDA website. The date is formatted according to <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a>.
</dd>
<dt><code>page_number</code></dt>
<dd>
The PDF page index from which the text was obtained.
</dd>
<dt><code>text_embedded</code></dt>
<dd>
The contents of any text embedded in the PDF.
</dd>
<dt><code>text_ocr</code></dt>
<dd>
The contents of any text found using optical character recognition (OCR).
</dd>
</dl>
<div class="cell">
<div id="tbl-dates" class="cell quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-dates-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Decision dates associated with the most recent 510(k), De Novo, and PMA decision summary documents in the dataset. <a href="data/decision_dates.csv">Data (CSV)</a>.
</figcaption>
<div aria-describedby="tbl-dates-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<div class="datatables html-widget html-fill-item" id="htmlwidget-0a663603286a4dc8971e" style="width:100%;height:auto;"></div>
<script type="application/json" data-for="htmlwidget-0a663603286a4dc8971e">{"x":{"filter":"none","vertical":false,"data":[["510(k)","De Novo","PMA"],["2026-03-17","2025-12-23","2026-02-11"]],"container":"<table class=\"display\">\n  <thead>\n    <tr>\n      <th>Submission type<\/th>\n      <th>Decision date<\/th>\n    <\/tr>\n  <\/thead>\n<\/table>","options":{"pageLength":3,"dom":"rt","columnDefs":[{"targets":0,"className":"dt-left","width":"11em"},{"targets":1,"className":"dt-right","width":"11em"},{"name":"Submission type","targets":0},{"name":"Decision date","targets":1}],"order":[],"autoWidth":false,"orderClasses":false,"lengthMenu":[3,10,25,50,100]}},"evals":[],"jsHooks":[]}</script>
</div>
</div>
</figure>
</div>
</div>
</section>
<section id="download-the-data" class="level1">
<h1>Download the data</h1>
<div class="callout callout-style-default callout-note callout-titled" title="No warranty">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>No warranty
</div>
</div>
<div class="callout-body-container callout-body">
<p>The information in this dataset is from sources in the public domain. It is provided here “as-is” without warranty of any kind. You may also want to refer to the <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm">FDA’s website</a>.</p>
</div>
</div>
<p>The dataset is available as a gzip-compressed CSV file: <a href="data/ivd_decision_summary_text.csv.gz">ivd_decision_summary_text.csv.gz</a> (Size: 58.4M, MD5: dd7584378ac472f15ca99ed6985efd12)</p>
<div class="callout callout-style-default callout-tip no-icon callout-titled" title="How to get the PDFs">
<div class="callout-header d-flex align-content-center" data-bs-toggle="collapse" data-bs-target=".callout-2-contents" aria-controls="callout-2" aria-expanded="true" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon no-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>How to get the PDFs
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-2" class="callout-2-contents callout-collapse collapse show">
<div class="callout-body-container callout-body">
<p>You can download individual decision summary and SSED PDFs from <a href="https://www.fda.gov/medical-devices/device-advice-comprehensive-regulatory-assistance/medical-device-databases" target="_blank">the FDA’s website</a>. If you want <em>all</em> of the PDFs associated with decision summaries and SSEDs in this dataset, you can download the zip archives below:</p>
<ul>
<li>
<p>
<a href="data/ivd_decision_summaries_1990s.zip">ivd_decision_summaries_1990s.zip</a> (Size: 12.2MB, MD5: 2a08c55c011a3320690c7bc3631930bc)
</p>
</li>
<li>
<p>
<a href="data/ivd_decision_summaries_2000s.zip">ivd_decision_summaries_2000s.zip</a> (Size: 248.2MB, MD5: 4348d57fda29a31c16230e3932af36d3)
</p>
</li>
<li>
<p>
<a href="data/ivd_decision_summaries_2010s.zip">ivd_decision_summaries_2010s.zip</a> (Size: 804MB, MD5: 9d3d2a04022ab3df70ccc07b2e89d0b2)
</p>
</li>
<li>
<p>
<a href="data/ivd_decision_summaries_2020-2024.zip">ivd_decision_summaries_2020-2024.zip</a> (Size: 470.7MB, MD5: b3785fde498db02abeec83d46a9317ec)
</p>
</li>
<li>
<p>
<a href="data/ivd_decision_summaries_2025.zip">ivd_decision_summaries_2025.zip</a> (Size: 106.1MB, MD5: 0b9d5358309966ef40fc8c3dc2e111c2)
</p>
</li>
<li>
<p>
<a href="data/ivd_decision_summaries_2026.zip">ivd_decision_summaries_2026.zip</a> (Size: 39.8MB, MD5: 7dff9c665bcfe4c25fcab97b17622bfb)
</p>
</li>
</ul>
<p>In these archives, decision summaries and SSEDs are grouped by the fiscal years in which decisions were made. The FDA’s fiscal years begin in October and end in September. For example: FY2025 began on 2024-10-01.</p>
<p>These archives are large, and I may not host them here for long. Please don’t rely on them being here in the future.</p>
</div>
</div>
</div>
</section>
<section id="examples-in-the-r-programming-language" class="level1 page-columns page-full">
<h1>Examples in the R programming language</h1>
<section id="download-and-read-the-dataset" class="level2">
<h2 class="anchored" data-anchor-id="download-and-read-the-dataset">Download and read the dataset</h2>
<p>Here is a sample script in R that downloads and reads the dataset:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load libraries -----</span></span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(utils)</span>
<span id="cb1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(readr)</span>
<span id="cb1-4"></span>
<span id="cb1-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Download -----</span></span>
<span id="cb1-6">utils<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">download.file</span>(</span>
<span id="cb1-7">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">url =</span>   </span>
<span id="cb1-8">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb1-9">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/data/"</span>,</span>
<span id="cb1-10">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ivd_decision_summary_text.csv.gz"</span></span>
<span id="cb1-11">  ),</span>
<span id="cb1-12">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">destfile =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ivd_decision_summary_text.csv.gz"</span></span>
<span id="cb1-13">)</span>
<span id="cb1-14"></span>
<span id="cb1-15"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Read -----</span></span>
<span id="cb1-16">decision_summaries <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb1-17">  readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read_delim</span>(</span>
<span id="cb1-18">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">file =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"ivd_decision_summary_text.csv.gz"</span>,</span>
<span id="cb1-19">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">delim =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">";"</span>,</span>
<span id="cb1-20">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col_types =</span> </span>
<span id="cb1-21">      readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cols</span>(</span>
<span id="cb1-22">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">submission_number =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb1-23">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">file_description =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb1-24">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_obtained =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_date</span>(), </span>
<span id="cb1-25">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">page_number =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_integer</span>(),</span>
<span id="cb1-26">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text_embedded =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb1-27">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text_ocr =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>()</span>
<span id="cb1-28">      )</span>
<span id="cb1-29">  )</span></code></pre></div></div>
</div>
</section>
<section id="exploring-the-availability-of-ivd-decision-summaries" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="exploring-the-availability-of-ivd-decision-summaries">Exploring the availability of IVD decision summaries</h2>
<section id="exploring-which-ivd-review-processes-are-associated-with-public-decision-summaries" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="exploring-which-ivd-review-processes-are-associated-with-public-decision-summaries">Exploring which IVD review processes are associated with public decision summaries</h3>
<p>After downloading the data using the code above, we can cross reference it with datasets provided by the FDA to see which IVD review processes are associated with decision summaries and SSEDs.</p>
<div class="cell page-columns page-full">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># First, download and read the data using the code in the previous example</span></span>
<span id="cb2-2"></span>
<span id="cb2-3"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exists</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"decision_summaries"</span>)) {</span>
<span id="cb2-4">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">message</span>(</span>
<span id="cb2-5">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb2-6">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Run the code from the previous example to download and read the "</span>,</span>
<span id="cb2-7">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"decision summary data"</span></span>
<span id="cb2-8">    )</span>
<span id="cb2-9">  )</span>
<span id="cb2-10">}</span>
<span id="cb2-11"></span>
<span id="cb2-12"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load and install additional libraries -----</span></span>
<span id="cb2-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Install the fdadata package from GitHub if it's missing</span></span>
<span id="cb2-14"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">require</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fdadata"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">quietly =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">warn.conflicts =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>)) {</span>
<span id="cb2-15">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">require</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"devtools"</span>)) <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">install.packages</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"devtools"</span>)</span>
<span id="cb2-16">  devtools<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">install_github</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bjoleary/fdadata"</span>)</span>
<span id="cb2-17">}</span>
<span id="cb2-18"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(dplyr, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">quietly =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">warn.conflicts =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>)</span>
<span id="cb2-19"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyr, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">quietly =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">warn.conflicts =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>)</span>
<span id="cb2-20"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(janitor, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">quietly =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">warn.conflicts =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>)</span>
<span id="cb2-21"></span>
<span id="cb2-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Set up -----</span></span>
<span id="cb2-23"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># We will look at a specific date range. </span></span>
<span id="cb2-24">fys_of_interest <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq.int</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">from =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2005</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">to =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2024</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>)</span>
<span id="cb2-25"></span>
<span id="cb2-26"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># We will look at submissions in IVD panels</span></span>
<span id="cb2-27">panels_of_interest <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-28">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb2-29">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Clinical Chemistry"</span>,</span>
<span id="cb2-30">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Hematology"</span>,</span>
<span id="cb2-31">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Immunology"</span>,</span>
<span id="cb2-32">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Microbiology"</span>,</span>
<span id="cb2-33">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Clinical Toxicology"</span>,</span>
<span id="cb2-34">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Pathology"</span>,</span>
<span id="cb2-35">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Molecular Genetics"</span></span>
<span id="cb2-36">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-37">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sort</span>()</span>
<span id="cb2-38"></span>
<span id="cb2-39"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Build a list of IVD submissions of interest</span></span>
<span id="cb2-40">submissions_of_interest <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-41">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Start with the information available in the fdadata package. </span></span>
<span id="cb2-42">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Note: If you adapt this analysis to look at recent submissions, you </span></span>
<span id="cb2-43">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># will need to refresh this data rather than just using the dataset provided </span></span>
<span id="cb2-44">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># in the package. </span></span>
<span id="cb2-45">  fdadata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span>premarket <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-46">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add a column for FY decision</span></span>
<span id="cb2-47">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fy_decision =</span> fdadata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fy</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>date_decision)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-48">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Combine the "track" and "type" columns into one column named </span></span>
<span id="cb2-49">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># "review_process"</span></span>
<span id="cb2-50">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unite</span>(</span>
<span id="cb2-51">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"review_process"</span>,</span>
<span id="cb2-52">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"type"</span>,</span>
<span id="cb2-53">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"track"</span>, </span>
<span id="cb2-54">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">sep =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">": "</span>,</span>
<span id="cb2-55">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">na.rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb2-56">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-57">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">review_process =</span> forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as_factor</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-58">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Filter the dataset down to the submissions of interest based on the </span></span>
<span id="cb2-59">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># panels and FYs we are looking at. </span></span>
<span id="cb2-60">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb2-61">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>panel <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> panels_of_interest,</span>
<span id="cb2-62">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>fy_decision <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> fys_of_interest</span>
<span id="cb2-63">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-64">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add a column named "summary_available" that indicates whether or not there </span></span>
<span id="cb2-65">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># is a decision summary or SSED for the submission in the decision_summaries </span></span>
<span id="cb2-66">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># dataset. </span></span>
<span id="cb2-67">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb2-68">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">summary_available =</span> </span>
<span id="cb2-69">      .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> decision_summaries<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number</span>
<span id="cb2-70">  )</span>
<span id="cb2-71"></span>
<span id="cb2-72"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Filter the decision_summaries dataset down to the submissions of interest </span></span>
<span id="cb2-73"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># identified in the previous steps. </span></span>
<span id="cb2-74">summaries_of_interest <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-75">  decision_summaries <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-76">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb2-77">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> submissions_of_interest<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number</span>
<span id="cb2-78">  )</span>
<span id="cb2-79"></span>
<span id="cb2-80"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Count the number of decision summaries available and not available by </span></span>
<span id="cb2-81"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># review process</span></span>
<span id="cb2-82">summary_availability <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-83">  submissions_of_interest <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-84">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Group and count</span></span>
<span id="cb2-85">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(</span>
<span id="cb2-86">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb2-87">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_available,</span>
<span id="cb2-88">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.drop =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span></span>
<span id="cb2-89">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-90">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tally</span>() </span>
<span id="cb2-91"></span>
<span id="cb2-92"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Calculate percentages of decision summaries available by review process</span></span>
<span id="cb2-93">summary_availability_stats <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-94">  summary_availability <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-95">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pivot_wider</span>(</span>
<span id="cb2-96">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">names_from =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"summary_available"</span>,</span>
<span id="cb2-97">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_from =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"n"</span>,</span>
<span id="cb2-98">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_fill =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>L</span>
<span id="cb2-99">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb2-100">  janitor<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">clean_names</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-101">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb2-102">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">total =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true,</span>
<span id="cb2-103">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">summary_proportion =</span> </span>
<span id="cb2-104">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">case_when</span>(</span>
<span id="cb2-105">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span></span>
<span id="cb2-106">          .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> (.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false),</span>
<span id="cb2-107">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># We also need to deal with processes that were not used for IVDs but </span></span>
<span id="cb2-108">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># are still available, where the proportion will be 0 / 0. We'll set </span></span>
<span id="cb2-109">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># this value to be negative to make it easier to sort them to the </span></span>
<span id="cb2-110">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># bottom. </span></span>
<span id="cb2-111">        <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">Inf</span></span>
<span id="cb2-112">      ),</span>
<span id="cb2-113">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">summary_proportion_string =</span> </span>
<span id="cb2-114">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">case_when</span>(</span>
<span id="cb2-115">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span></span>
<span id="cb2-116">          <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb2-117">            .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" / "</span>, .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" = "</span>,</span>
<span id="cb2-118">            plyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">round_any</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> (.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb2-119">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%"</span></span>
<span id="cb2-120">          ),</span>
<span id="cb2-121">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># We also need to deal with processes that were not used for IVDs but </span></span>
<span id="cb2-122">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># are still available, where the proportion will be 0 / 0: </span></span>
<span id="cb2-123">        <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" / "</span>, .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false)</span>
<span id="cb2-124">      )</span>
<span id="cb2-125">  )</span>
<span id="cb2-126"></span>
<span id="cb2-127"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Sort by review process by frequency of use...</span></span>
<span id="cb2-128">summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span></span>
<span id="cb2-129">  forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fct_reorder</span>(</span>
<span id="cb2-130">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.f =</span> summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb2-131">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.x =</span> summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>total,</span>
<span id="cb2-132">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.na_rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span></span>
<span id="cb2-133">  )</span>
<span id="cb2-134"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ...and then by decision summary availability</span></span>
<span id="cb2-135">summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span></span>
<span id="cb2-136">  forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fct_reorder</span>(</span>
<span id="cb2-137">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.f =</span> summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb2-138">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.x =</span> summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion,</span>
<span id="cb2-139">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.na_rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span></span>
<span id="cb2-140">  )</span>
<span id="cb2-141"></span>
<span id="cb2-142"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot the results</span></span>
<span id="cb2-143">sum_plot <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-144">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb2-145">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> summary_availability_stats,</span>
<span id="cb2-146">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb2-147">      ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb2-148">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb2-149">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion,</span>
<span id="cb2-150">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion_string,</span>
<span id="cb2-151">      )</span>
<span id="cb2-152">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb2-153">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkgray"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb2-154">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add text </span></span>
<span id="cb2-155">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb2-156">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb2-157">      ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb2-158">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span></span>
<span id="cb2-159">      ),</span>
<span id="cb2-160">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"left"</span>,</span>
<span id="cb2-161">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2.5</span></span>
<span id="cb2-162">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-163">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Keep the axis simple</span></span>
<span id="cb2-164">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_continuous</span>(</span>
<span id="cb2-165">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>), </span>
<span id="cb2-166">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">labels =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"100%"</span>),</span>
<span id="cb2-167">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add some padding near 100% so the axis label doesn't get clipped. </span></span>
<span id="cb2-168">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expand =</span> ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expansion</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">add =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>))</span>
<span id="cb2-169">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-170">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add a dashed line to the plot to make it easy to see where 100% is. </span></span>
<span id="cb2-171">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_hline</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">yintercept =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linetype =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dashed"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-172">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Add titles and such. </span></span>
<span id="cb2-173">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb2-174">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Decision summary availability by review process"</span>,</span>
<span id="cb2-175">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> </span>
<span id="cb2-176">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb2-177">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"For FDA IVD decisions made in FY"</span>, </span>
<span id="cb2-178">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">min</span>(fys_of_interest),</span>
<span id="cb2-179">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" through FY"</span>,</span>
<span id="cb2-180">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(fys_of_interest)</span>
<span id="cb2-181">      ),</span>
<span id="cb2-182">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Review Process"</span>,</span>
<span id="cb2-183">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Percent of decisions with decision summaries"</span>,</span>
<span id="cb2-184">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> </span>
<span id="cb2-185">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb2-186">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Treat these results as estimates.</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb2-187">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Includes decision summaries for 510(k) and De Novo decisions and "</span>,</span>
<span id="cb2-188">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SSEDs for PMA decisions."</span></span>
<span id="cb2-189">      )</span>
<span id="cb2-190">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb2-191">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Make the bars horizontal instead of vertical so the category labels and </span></span>
<span id="cb2-192">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># text are easy to read. </span></span>
<span id="cb2-193">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">coord_flip</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb2-194">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_classic</span>()  </span>
<span id="cb2-195"></span>
<span id="cb2-196"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>(sum_plot)</span></code></pre></div></div>
</details>
<div class="cell-output-display page-columns page-full">
<div id="fig-submission-type-graph" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-submission-type-graph-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/index_files/figure-html/fig-submission-type-graph-1.png" class="img-fluid figure-img column-body-outset-right" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-submission-type-graph-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: Availability of decision summaries by review process and fiscal year of decision
</figcaption>
</figure>
</div>
</div>
</div>
<p>For IVDs, the FDA frequently issues decision summaries for original and panel track PMAs, for De Novos, and for 510(k)s.</p>
</section>
<section id="exploring-which-ivd-review-processes-result-in-shorter-and-longer-decision-summaries" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="exploring-which-ivd-review-processes-result-in-shorter-and-longer-decision-summaries">Exploring which IVD review processes result in shorter and longer decision summaries</h3>
<p>The FDA’s regulations and review processes are intended to result in the availability of medical devices that are safe and effective. Some decisions are more difficult to make than others, and different review processes tend to result in different amounts of information being included in decision summaries. One simple related measure is page count, which is readily available in this dataset:</p>
<div class="cell page-columns page-full">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb3" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb3-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Calculate page counts for each summary</span></span>
<span id="cb3-2">summary_page_count <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb3-3">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">left_join</span>(</span>
<span id="cb3-4">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> </span>
<span id="cb3-5">      summaries_of_interest <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb3-6">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(</span>
<span id="cb3-7">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number</span>
<span id="cb3-8">      ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb3-9">      <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Identify the highest page number for each submission</span></span>
<span id="cb3-10">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb3-11">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">page_count =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>page_number)</span>
<span id="cb3-12">      ),</span>
<span id="cb3-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> submissions_of_interest,</span>
<span id="cb3-14">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb3-15">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb3-16">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(</span>
<span id="cb3-17">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb3-18">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>page_count,</span>
<span id="cb3-19">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Remove unused review processes for this analysis. </span></span>
<span id="cb3-20">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.drop =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb3-21">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb3-22">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tally</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb3-23">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Set colors for higher an lower page counts</span></span>
<span id="cb3-24">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb3-25">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill_color =</span> </span>
<span id="cb3-26">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">case_when</span>(</span>
<span id="cb3-27">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>page_count <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;=</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>L <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkred"</span>,</span>
<span id="cb3-28">        <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkgray"</span></span>
<span id="cb3-29">      )</span>
<span id="cb3-30">  )</span>
<span id="cb3-31"></span>
<span id="cb3-32"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># For this plot, sort review processes alphabetically</span></span>
<span id="cb3-33">summary_page_count<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span></span>
<span id="cb3-34">  forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fct_relevel</span>(</span>
<span id="cb3-35">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.f =</span> summary_page_count<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb3-36">    sort</span>
<span id="cb3-37">  )</span>
<span id="cb3-38"></span>
<span id="cb3-39"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot</span></span>
<span id="cb3-40">ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb3-41">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> summary_page_count,</span>
<span id="cb3-42">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb3-43">    ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb3-44">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>page_count,</span>
<span id="cb3-45">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>n,</span>
<span id="cb3-46">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>fill_color</span>
<span id="cb3-47">    )</span>
<span id="cb3-48">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb3-49">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">facet_wrap</span>(</span>
<span id="cb3-50">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># One facet per review process</span></span>
<span id="cb3-51">    <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span>.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process, </span>
<span id="cb3-52">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">ncol =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>L,</span>
<span id="cb3-53">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Let the y-axis vary by review process, but hold the x-axis constant </span></span>
<span id="cb3-54">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># across facets. </span></span>
<span id="cb3-55">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">scales =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"free_y"</span>,</span>
<span id="cb3-56">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">drop =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb3-57">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb3-58">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb3-59">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb3-60">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Number of pages in FDA IVD decision summaries by review process"</span>,</span>
<span id="cb3-61">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> </span>
<span id="cb3-62">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb3-63">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"For summaries of decisions made in FY"</span>, </span>
<span id="cb3-64">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">min</span>(fys_of_interest),</span>
<span id="cb3-65">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" through FY"</span>,</span>
<span id="cb3-66">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(fys_of_interest)</span>
<span id="cb3-67">      ),    </span>
<span id="cb3-68">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Number of pages in decision summary"</span>,</span>
<span id="cb3-69">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Number of decision summaries"</span>,</span>
<span id="cb3-70">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> </span>
<span id="cb3-71">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb3-72">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Page counts that are less than or equal to 2 are highlighted in red."</span>,</span>
<span id="cb3-73">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb3-74">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Treat these results as estimates.</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb3-75">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Includes decision summaries for 510(k) and De Novo decisions and "</span>,</span>
<span id="cb3-76">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SSEDs for PMA decisions."</span></span>
<span id="cb3-77">      )</span>
<span id="cb3-78">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb3-79">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_continuous</span>(</span>
<span id="cb3-80">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Keep the y-axis breaks and labels to a minimum</span></span>
<span id="cb3-81">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> scales<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">extended_breaks</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span>)</span>
<span id="cb3-82">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb3-83">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_fill_manual</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkgray"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"red"</span>)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb3-84">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_classic</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb3-85">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># No legend -- we'll use the figure caption instead. </span></span>
<span id="cb3-86">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">guides</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"none"</span>)</span></code></pre></div></div>
</details>
<div class="cell-output-display page-columns page-full">
<div id="fig-submission-type-pages" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-submission-type-pages-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/index_files/figure-html/fig-submission-type-pages-1.png" class="img-fluid figure-img column-body-outset-right" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-submission-type-pages-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Page counts of decision summaries by review process
</figcaption>
</figure>
</div>
</div>
</div>
<p>The red bars in Figure&nbsp;2 illustrate that decision summaries may only be a page or two long for many submissions that go through the Special and Abbreviated 510(k) review processes and for a significant subset of those that go through the Traditional 510(k) review process.</p>
<p>Special 510(k)s are “for certain well-defined device modifications where a manufacturer modifies its own legally marketed device, and design control procedures produce reliable results that can form, in addition to other 510(k) content requirements, the basis for substantial equivalence (SE).” <span class="citation" data-cites="fda-special-pmn-final-2019">[1, p. 4]</span> Similarly, Abbreviated 510(k) reviews “[rely] on guidance documents, special controls, and/or voluntary consensus standards” <span class="citation" data-cites="fda-abbreviated-pmn-final-2019">[2, p. 3]</span> and on “summary reports” based on these approaches. In both cases, it makes sense that the FDA’s summary of its decision-making may be brief.</p>
<p>For Traditional 510(k)s, single-page decision summaries tend to be associated with the FDA’s “Triage-Quick Review Program,” where the posted decision summary consists of template language that refers users to the 510(k) summary for information about the basis for the FDA’s decision. Triage-Quick Review Program decision summaries also note that “This program represents an internal workload management tool intended to reduce internal FDA review resources for 510(k) applications that are of good quality upon receipt by FDA.”<sup>2</sup> The FDA’s use of this program for Traditional 510(k)s peaked for decisions made in FY2015.</p>
<div class="callout callout-style-default callout-note callout-titled" title="Fiscal Years">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>Fiscal Years
</div>
</div>
<div class="callout-body-container callout-body">
<p>The FDA’s fiscal years begin in October and end in September. For example: FY2025 began on 2024-10-01. For more on fiscal years and decision cohorts, see <a href="../../mdufa/202401/#definitions">this post</a>.</p>
</div>
</div>
<div class="cell page-columns page-full">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb4" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb4-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Identify Traditional 510(k) decisions that may have gone through the </span></span>
<span id="cb4-2"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Triage-Quick Review Program, meaning that their decision summaries are less </span></span>
<span id="cb4-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># than 3 pages long.</span></span>
<span id="cb4-4">triage_quick_review_likely <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb4-5">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">left_join</span>(</span>
<span id="cb4-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> submissions_of_interest,</span>
<span id="cb4-7">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span>   </span>
<span id="cb4-8">      summaries_of_interest <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-9">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-10">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb4-11">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">short_summary =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>page_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span></span>
<span id="cb4-12">      ),</span>
<span id="cb4-13">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb4-14">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-15">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb4-16">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"510(k): Traditional"</span>),</span>
<span id="cb4-17">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>short_summary</span>
<span id="cb4-18">  )</span>
<span id="cb4-19"></span>
<span id="cb4-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Check for the presence of the word "Triage" in the summaries identified in </span></span>
<span id="cb4-21"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># the previous step. </span></span>
<span id="cb4-22">triage_confirmed <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb4-23">  decision_summaries <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-24">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb4-25">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> triage_quick_review_likely<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number</span>
<span id="cb4-26">    ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-27">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Make one text field to search for each submission. </span></span>
<span id="cb4-28">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unite</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_to_search"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_embedded"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_ocr"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-29">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(</span>
<span id="cb4-30">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>,</span>
<span id="cb4-31">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_to_search"</span></span>
<span id="cb4-32">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-33">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-34">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb4-35">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text_to_search =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>text_to_search, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">collapse =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span>)</span>
<span id="cb4-36">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-37">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Check for the word "Triage"</span></span>
<span id="cb4-38">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb4-39">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">triage_confirmed =</span> </span>
<span id="cb4-40">      stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_detect</span>(</span>
<span id="cb4-41">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>text_to_search, </span>
<span id="cb4-42">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fixed</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Triage"</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">ignore_case =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>)</span>
<span id="cb4-43">      )</span>
<span id="cb4-44">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-45">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Join in the submissions of interest dataset. </span></span>
<span id="cb4-46">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">right_join</span>(</span>
<span id="cb4-47">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> submissions_of_interest, </span>
<span id="cb4-48">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb4-49">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-50">    dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb4-51">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"510(k): Traditional"</span>)</span>
<span id="cb4-52">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-53">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Group by fiscal year of decision and count</span></span>
<span id="cb4-54">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>fy_decision) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-55">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb4-56">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">n =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">n</span>(),</span>
<span id="cb4-57">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">triage =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sum</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>triage_confirmed, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">na.rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>)</span>
<span id="cb4-58">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb4-59">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Calculate percentages by year</span></span>
<span id="cb4-60">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb4-61">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">percent =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>triage <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>n,</span>
<span id="cb4-62">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> </span>
<span id="cb4-63">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">case_when</span>(</span>
<span id="cb4-64">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>triage <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span></span>
<span id="cb4-65">          <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb4-66">            .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>triage, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" / "</span>, .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>n, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">("</span>, </span>
<span id="cb4-67">            plyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">round_any</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>triage <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>n <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb4-68">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%)"</span></span>
<span id="cb4-69">          ),</span>
<span id="cb4-70">        <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span></span>
<span id="cb4-71">      )</span>
<span id="cb4-72">  )</span>
<span id="cb4-73"></span>
<span id="cb4-74"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot</span></span>
<span id="cb4-75">ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb4-76">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> triage_confirmed,</span>
<span id="cb4-77">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb4-78">    ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb4-79">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>fy_decision,</span>
<span id="cb4-80">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>percent,</span>
<span id="cb4-81">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>string</span>
<span id="cb4-82">    )</span>
<span id="cb4-83">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb4-84">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkgray"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb4-85">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.75</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">vjust =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">1.25</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb4-86">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_x_continuous</span>(</span>
<span id="cb4-87">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> fys_of_interest[(fys_of_interest <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%%</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>]</span>
<span id="cb4-88">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb4-89">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_continuous</span>(</span>
<span id="cb4-90">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expand =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">NA</span>),</span>
<span id="cb4-91">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Set the y-axis limit to a reasonable, human-friendly value</span></span>
<span id="cb4-92">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">limits =</span> </span>
<span id="cb4-93">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(</span>
<span id="cb4-94">        <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, </span>
<span id="cb4-95">        plyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">round_any</span>(</span>
<span id="cb4-96">          <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(triage_confirmed<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>percent, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">na.rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>), </span>
<span id="cb4-97">          <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">accuracy =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>,</span>
<span id="cb4-98">          <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">f =</span> ceiling</span>
<span id="cb4-99">        )</span>
<span id="cb4-100">      ),</span>
<span id="cb4-101">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">labels =</span> scales<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">label_percent</span>()</span>
<span id="cb4-102">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb4-103">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb4-104">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Estimated use of the Triage-Quick Review Program over time"</span>,</span>
<span id="cb4-105">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> </span>
<span id="cb4-106">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb4-107">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"For IVD Traditional 510(k)s with decisions made in FY"</span>, </span>
<span id="cb4-108">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">min</span>(fys_of_interest),</span>
<span id="cb4-109">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" through FY"</span>,</span>
<span id="cb4-110">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(fys_of_interest)</span>
<span id="cb4-111">      ),    </span>
<span id="cb4-112">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"FY Decision"</span>,</span>
<span id="cb4-113">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Traditional 510(k)s in Triage-Quick Review Program"</span>,</span>
<span id="cb4-114">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> </span>
<span id="cb4-115">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb4-116">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Treat these results as estimates.</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb4-117">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Triage-Quick Review submissions were identified based on the length "</span>,</span>
<span id="cb4-118">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"and content of decision summary documents."</span></span>
<span id="cb4-119">      )</span>
<span id="cb4-120">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb4-121">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_classic</span>() </span></code></pre></div></div>
</details>
<div class="cell-output-display page-columns page-full">
<div id="fig-triage-quick-review" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-triage-quick-review-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/index_files/figure-html/fig-triage-quick-review-1.png" class="img-fluid figure-img column-body-outset-right" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-triage-quick-review-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Use of the “Triage-Quick Review Program” for IVD Traditional 510(k)s over time.
</figcaption>
</figure>
</div>
</div>
</div>
<p>Given that a summary that is only a page or two long may not be as informative or interesting, we can revise Figure&nbsp;1 and visualize the rate at which longer decision summaries are available by review process:</p>
<div class="cell page-columns page-full">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb5" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb5-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Similar to the first plot, but this time, limit it to those with decision </span></span>
<span id="cb5-2"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># summaries longer than 2 pages. </span></span>
<span id="cb5-3">long_summary_availability <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb5-4">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">left_join</span>(</span>
<span id="cb5-5">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> submissions_of_interest,</span>
<span id="cb5-6">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span>   </span>
<span id="cb5-7">      summaries_of_interest <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-8">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-9">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb5-10">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">long_summary =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>page_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">2</span></span>
<span id="cb5-11">      ),</span>
<span id="cb5-12">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb5-13">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-14">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Calculate a composite metric that we can use to say whether or not a </span></span>
<span id="cb5-15">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># decision summary is available and is greater than 2 pages long. </span></span>
<span id="cb5-16">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb5-17">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">long_summary_composite =</span> </span>
<span id="cb5-18">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">case_when</span>(</span>
<span id="cb5-19">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">is.na</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>long_summary) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>,</span>
<span id="cb5-20">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>long_summary <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>,</span>
<span id="cb5-21">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_available <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span>,</span>
<span id="cb5-22">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>long_summary <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span> <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">~</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb5-23">      )</span>
<span id="cb5-24">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-25">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Group and count</span></span>
<span id="cb5-26">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(</span>
<span id="cb5-27">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb5-28">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>long_summary_composite,</span>
<span id="cb5-29">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.drop =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span></span>
<span id="cb5-30">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-31">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tally</span>() </span>
<span id="cb5-32"></span>
<span id="cb5-33"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Calculate percentages</span></span>
<span id="cb5-34">long_summary_availability_stats <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb5-35">  long_summary_availability <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-36">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pivot_wider</span>(</span>
<span id="cb5-37">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">names_from =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"long_summary_composite"</span>,</span>
<span id="cb5-38">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_from =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"n"</span>,</span>
<span id="cb5-39">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_fill =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>L</span>
<span id="cb5-40">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span></span>
<span id="cb5-41">  janitor<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">clean_names</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-42">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb5-43">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">total =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true,</span>
<span id="cb5-44">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">summary_proportion =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> (.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false),</span>
<span id="cb5-45">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">summary_proportion_string =</span> </span>
<span id="cb5-46">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb5-47">        .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" / "</span>, .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" = "</span>,</span>
<span id="cb5-48">        plyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">round_any</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">/</span> (.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>true <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>false) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">*</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>),</span>
<span id="cb5-49">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"%"</span></span>
<span id="cb5-50">      )</span>
<span id="cb5-51">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-52">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrange</span>(</span>
<span id="cb5-53">    dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">desc</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>total)</span>
<span id="cb5-54">  ) </span>
<span id="cb5-55"></span>
<span id="cb5-56"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Sort by review process by frequency of use...</span></span>
<span id="cb5-57">long_summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span></span>
<span id="cb5-58">  forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fct_reorder</span>(</span>
<span id="cb5-59">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.f =</span> long_summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb5-60">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.x =</span> long_summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>total,</span>
<span id="cb5-61">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.na_rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">FALSE</span></span>
<span id="cb5-62">  )</span>
<span id="cb5-63"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># ...and then by decision summary availability</span></span>
<span id="cb5-64">long_summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb5-65">  forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">fct_reorder</span>(</span>
<span id="cb5-66">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.f =</span> long_summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process, </span>
<span id="cb5-67">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.x =</span> long_summary_availability_stats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion,</span>
<span id="cb5-68">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">.na_rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb5-69">  ) </span>
<span id="cb5-70"></span>
<span id="cb5-71"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot</span></span>
<span id="cb5-72">long_sum_plot <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb5-73">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb5-74">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> </span>
<span id="cb5-75">      long_summary_availability_stats <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb5-76">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>),</span>
<span id="cb5-77">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb5-78">      ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb5-79">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>review_process,</span>
<span id="cb5-80">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion,</span>
<span id="cb5-81">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>summary_proportion_string,</span>
<span id="cb5-82">      )</span>
<span id="cb5-83">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb5-84">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"darkgray"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb5-85">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb5-86">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb5-87">      ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb5-88">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.02</span></span>
<span id="cb5-89">      ),</span>
<span id="cb5-90">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"left"</span>,</span>
<span id="cb5-91">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">2.5</span></span>
<span id="cb5-92">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-93">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">scale_y_continuous</span>(</span>
<span id="cb5-94">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">breaks =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>), </span>
<span id="cb5-95">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">labels =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"0"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"100%"</span>),</span>
<span id="cb5-96">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expand =</span> ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expansion</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">add =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>, <span class="fl" style="color: #AD0000;
background-color: null;
font-style: inherit;">0.05</span>))</span>
<span id="cb5-97">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-98">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb5-99">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> </span>
<span id="cb5-100">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb5-101">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Availability of decision summaries longer "</span>,</span>
<span id="cb5-102">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"than 2 pages </span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb5-103">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"by review process"</span></span>
<span id="cb5-104">        ),</span>
<span id="cb5-105">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> </span>
<span id="cb5-106">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb5-107">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"For FDA IVD decisions made in FY"</span>, </span>
<span id="cb5-108">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">min</span>(fys_of_interest),</span>
<span id="cb5-109">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" through FY"</span>,</span>
<span id="cb5-110">        <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">max</span>(fys_of_interest)</span>
<span id="cb5-111">      ),</span>
<span id="cb5-112">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Review Process"</span>,</span>
<span id="cb5-113">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Percent of decisions with decision summaries &gt;2 pages"</span>,</span>
<span id="cb5-114">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> </span>
<span id="cb5-115">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb5-116">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Treat these results as estimates.</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb5-117">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Includes decision summaries for 510(k) and De Novo decisions and "</span>,</span>
<span id="cb5-118">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SSEDs for PMA decisions."</span></span>
<span id="cb5-119">      )</span>
<span id="cb5-120">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-121">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_hline</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">yintercept =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">linetype =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"dashed"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb5-122">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">coord_flip</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb5-123">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_classic</span>() </span>
<span id="cb5-124"></span>
<span id="cb5-125"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">plot</span>(long_sum_plot)</span></code></pre></div></div>
</details>
<div class="cell-output-display page-columns page-full">
<div id="fig-submission-type-graph-revised" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-submission-type-graph-revised-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/index_files/figure-html/fig-submission-type-graph-revised-1.png" class="img-fluid figure-img column-body-outset-right" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-submission-type-graph-revised-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Availability of decision summaries that are longer than 2 pages by review process and fiscal year of decision
</figcaption>
</figure>
</div>
</div>
</div>
<p>Many decision summaries are (appropriately) brief. For example, while the FDA published decision summaries for 791 / 821 = 96% of IVD decisions made through the Special 510(k) process (see Figure&nbsp;1), only 121 / 821 = 15% of IVD Special 510(k) decisions are associated with decision summaries that are longer than 2 pages.</p>
</section>
</section>
<section id="exploring-the-use-of-fda-recognized-clsi-publications" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="exploring-the-use-of-fda-recognized-clsi-publications">Exploring the use of FDA-recognized CLSI publications</h2>
<p>Many IVD reviews rely on the use of standards and guidelines from <a href="https://clsi.org">the Clinical and Laboratory Standards Institute (CLSI)</a>. The FDA “recognizes” many CLSI publications, meaning that the FDA has determined that the approaches described in these documents can help manufacturers meet regulatory requirements. <span class="citation" data-cites="fda-standards-recognition-final-2020">[3, p. 2]</span> The FDA maintains <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfStandards/Search.cfm">a helpful database of FDA-recognized standards</a>, and this database allows one to export a list of FDA-recognized CLSI publications to <a href="data/clsi_standards.csv">a CSV file</a>.</p>
<p>We can use the exported list of FDA-recognized CLSI publications to build search terms, and then we can see how often those terms appear in the FDA’s decision summaries.</p>
<p>We’ll look for each of these terms in decision summaries for decisions made in FY2023.</p>
<div class="cell page-columns page-full">
<details class="code-fold">
<summary>Code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb6" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb6-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Get the file from FDA.gov or download it here:</span></span>
<span id="cb6-2"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># fs::dir_create("data-raw/")</span></span>
<span id="cb6-3"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># utils::download.file(</span></span>
<span id="cb6-4"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#   url = </span></span>
<span id="cb6-5"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#     paste0(</span></span>
<span id="cb6-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#       "https://www.boleary.com/blog/posts/202410-ivd-decision-summaries/",</span></span>
<span id="cb6-7"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#       "data/clsi_standards.csv"</span></span>
<span id="cb6-8"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#     ),</span></span>
<span id="cb6-9"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">#   destfile = "data-raw/clsi_standards.csv"</span></span>
<span id="cb6-10"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># )</span></span>
<span id="cb6-11"></span>
<span id="cb6-12"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exists</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submissions_of_interest"</span>)) {</span>
<span id="cb6-13">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">message</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Run the code from the previous examples first."</span>)</span>
<span id="cb6-14">}</span>
<span id="cb6-15"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">exists</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"decision_summaries"</span>)) {</span>
<span id="cb6-16">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">message</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Run the code from the previous examples first."</span>)</span>
<span id="cb6-17">}</span>
<span id="cb6-18"></span>
<span id="cb6-19"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load additional libraries ----- </span></span>
<span id="cb6-20"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(stringr)</span>
<span id="cb6-21"></span>
<span id="cb6-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Read in the standards data ----- </span></span>
<span id="cb6-23">clsi_standards <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-24">  readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read_delim</span>(</span>
<span id="cb6-25">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Make sure your CLSI standards file is saved at this path: </span></span>
<span id="cb6-26">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">file =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"data-raw/clsi_standards.csv"</span>,</span>
<span id="cb6-27">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col_types =</span> </span>
<span id="cb6-28">      readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cols</span>(</span>
<span id="cb6-29">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Date of Entry</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-30">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Specialty Task Group Area</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-31">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Recognition Number</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-32">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Extent of Recognition</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-33">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Standard Developing Organization</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-34">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Standard Designation Number/Date</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-35">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;"> Title of Standard</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb6-36">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span><span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">Transition Expiration Date</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">`</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>()</span>
<span id="cb6-37">      )</span>
<span id="cb6-38">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-39">  janitor<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">clean_names</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-40">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb6-41">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_of_entry =</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mdy</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>date_of_entry),</span>
<span id="cb6-42">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">transition_expiration_date =</span> </span>
<span id="cb6-43">      lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mdy</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>transition_expiration_date),</span>
<span id="cb6-44">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">standard_name =</span> </span>
<span id="cb6-45">      stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract</span>(</span>
<span id="cb6-46">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>standard_designation_number_date,</span>
<span id="cb6-47">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># This pattern should grab the first "word" that is the main </span></span>
<span id="cb6-48">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># identifier for the standard. </span></span>
<span id="cb6-49">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"^[</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">w/-]*"</span></span>
<span id="cb6-50">      ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-51">      stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_remove</span>(</span>
<span id="cb6-52">        <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># This pattern should remove "-1st", "-2nd", "-3rd", "4th", etc.</span></span>
<span id="cb6-53">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">regex</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"-</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">d*(st|nd|rd|th)"</span>)</span>
<span id="cb6-54">      )</span>
<span id="cb6-55">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-56">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb6-57">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">standard_name_length =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_length</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>standard_name)</span>
<span id="cb6-58">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-59">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(</span>
<span id="cb6-60">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"standard_designation_number_date"</span>,</span>
<span id="cb6-61">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"standard_name"</span>,</span>
<span id="cb6-62">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"standard_name_length"</span>,</span>
<span id="cb6-63">    dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">everything</span>()</span>
<span id="cb6-64">  ) </span>
<span id="cb6-65"></span>
<span id="cb6-66"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Confirm that the number of unique values in "standard_name" is the same as</span></span>
<span id="cb6-67"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># the number of rows in the table. </span></span>
<span id="cb6-68">duplicates <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span>   </span>
<span id="cb6-69">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">length</span>(clsi_standards<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>standard_name) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!=</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">length</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unique</span>(clsi_standards<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>standard_name))</span>
<span id="cb6-70"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (duplicates) {</span>
<span id="cb6-71">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">message</span>(</span>
<span id="cb6-72">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb6-73">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"At least one search term is showing up more than once. "</span>,</span>
<span id="cb6-74">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"As of this writing, both the 5th and 6th edition of CLSI M23 are "</span>,</span>
<span id="cb6-75">      <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"recognized, so this is expected. Consider doing a manual check."</span></span>
<span id="cb6-76">      ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-77">      stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_wrap</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">75</span>)</span>
<span id="cb6-78">  )</span>
<span id="cb6-79">}</span>
<span id="cb6-80"></span>
<span id="cb6-81"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Search -----</span></span>
<span id="cb6-82">search_terms <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-83">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unique</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sort</span>(clsi_standards<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>standard_name))</span>
<span id="cb6-84"></span>
<span id="cb6-85"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Put word boundaries around the search terms and make them case-insensitive</span></span>
<span id="cb6-86">search_terms_regex <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-87">  <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(search_terms, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">b[^-]"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-88">  stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">regex</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">ignore_case =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>)</span>
<span id="cb6-89"></span>
<span id="cb6-90"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Identify IVD decisions made in FY2023</span></span>
<span id="cb6-91">ivd_2023 <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-92">  submissions_of_interest <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-93">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb6-94">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>date_decision <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2022-10-01"</span>),</span>
<span id="cb6-95">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>date_decision <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2023-10-01"</span>)</span>
<span id="cb6-96">  )</span>
<span id="cb6-97"></span>
<span id="cb6-98"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Structure the data to be searched</span></span>
<span id="cb6-99">search_domain <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-100">  decision_summaries <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-101">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">%in%</span> ivd_2023<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-102">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Make one text field for each submission</span></span>
<span id="cb6-103">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unite</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_to_search"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_embedded"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_ocr"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-104">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(</span>
<span id="cb6-105">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>,</span>
<span id="cb6-106">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_to_search"</span></span>
<span id="cb6-107">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-108">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-109">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb6-110">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text_to_search =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>text_to_search, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">collapse =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span>)</span>
<span id="cb6-111">  )</span>
<span id="cb6-112"></span>
<span id="cb6-113"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># For each search term, add a new column with the search results. </span></span>
<span id="cb6-114"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">for</span> (i <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">in</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">seq_along</span>(search_terms)) {</span>
<span id="cb6-115">  column_name <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> search_terms[[i]]</span>
<span id="cb6-116">  search_domain <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-117">    search_domain <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-118">    dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb6-119">      {{ column_name }} <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">:</span><span class="er" style="color: #AD0000;
background-color: null;
font-style: inherit;">=</span></span>
<span id="cb6-120">        stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_detect</span>(</span>
<span id="cb6-121">          <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>text_to_search,</span>
<span id="cb6-122">          <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> search_terms_regex[[i]]</span>
<span id="cb6-123">        )</span>
<span id="cb6-124">    )</span>
<span id="cb6-125">}</span>
<span id="cb6-126"></span>
<span id="cb6-127"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Tally up the search results for each term. </span></span>
<span id="cb6-128">search_results <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb6-129">  search_domain <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-130">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">-</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_to_search"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-131">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">pivot_longer</span>(</span>
<span id="cb6-132">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cols =</span> tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">all_of</span>(search_terms),</span>
<span id="cb6-133">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">names_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"search_term"</span>,</span>
<span id="cb6-134">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">values_to =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"result"</span></span>
<span id="cb6-135">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-136">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>search_term) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-137">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">count =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">sum</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>result)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-138">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>count <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-139">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Sort by frequency</span></span>
<span id="cb6-140">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrange</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>count) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-141">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Join in some metadata about the CLSI documents</span></span>
<span id="cb6-142">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">left_join</span>(</span>
<span id="cb6-143">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> </span>
<span id="cb6-144">      clsi_standards <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-145">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"standard_name"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"title_of_standard"</span>),</span>
<span id="cb6-146">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"search_term"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"standard_name"</span>)</span>
<span id="cb6-147">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-148">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">search_term =</span> forcats<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">as_factor</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>search_term))</span>
<span id="cb6-149"></span>
<span id="cb6-150"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Save the results</span></span>
<span id="cb6-151">readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">write_excel_csv</span>(</span>
<span id="cb6-152">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> search_results,</span>
<span id="cb6-153">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">file =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"data/search_results.csv"</span></span>
<span id="cb6-154">)</span>
<span id="cb6-155"></span>
<span id="cb6-156"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Plot the top 10 results</span></span>
<span id="cb6-157">top_number <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">10</span></span>
<span id="cb6-158">ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ggplot</span>(</span>
<span id="cb6-159">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">data =</span> search_results <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tail</span>(top_number),</span>
<span id="cb6-160">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb6-161">    ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb6-162">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>search_term,</span>
<span id="cb6-163">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>count</span>
<span id="cb6-164">    )</span>
<span id="cb6-165">) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-166">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_col</span>(</span>
<span id="cb6-167">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">color =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"lightgray"</span>,</span>
<span id="cb6-168">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">fill =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"lightgray"</span></span>
<span id="cb6-169">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb6-170">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">geom_text</span>(</span>
<span id="cb6-171">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">mapping =</span> </span>
<span id="cb6-172">      ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">aes</span>(</span>
<span id="cb6-173">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">1</span>,</span>
<span id="cb6-174">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">label =</span> </span>
<span id="cb6-175">          <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb6-176">            .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>title_of_standard <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb6-177">              stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_trunc</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">width =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">100</span>),</span>
<span id="cb6-178">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb6-179">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Referenced in "</span>,</span>
<span id="cb6-180">            .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>count,</span>
<span id="cb6-181">            <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" decision summaries"</span></span>
<span id="cb6-182">          ),</span>
<span id="cb6-183">      ),</span>
<span id="cb6-184">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">hjust =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>,</span>
<span id="cb6-185">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">color =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"black"</span>,</span>
<span id="cb6-186">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">size =</span> <span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">3</span></span>
<span id="cb6-187">  )<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-188">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">labs</span>(</span>
<span id="cb6-189">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">title =</span> </span>
<span id="cb6-190">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb6-191">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Top "</span>, </span>
<span id="cb6-192">        top_number, </span>
<span id="cb6-193">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" CLSI documents referenced in FDA decision summaries"</span></span>
<span id="cb6-194">      ),</span>
<span id="cb6-195">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">subtitle =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"For IVD decisions made in FY2023"</span>,</span>
<span id="cb6-196">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"CLSI document"</span>,</span>
<span id="cb6-197">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Count of FDA decision summaries found to reference the CLSI Document"</span>,</span>
<span id="cb6-198">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">caption =</span> </span>
<span id="cb6-199">      <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste0</span>(</span>
<span id="cb6-200">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Treat these results as estimates.</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\n</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span>,</span>
<span id="cb6-201">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Includes decision summaries for 510(k) and De Novo decisions and "</span>,</span>
<span id="cb6-202">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"SSEDs for PMA decisions."</span></span>
<span id="cb6-203">      )</span>
<span id="cb6-204">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span> </span>
<span id="cb6-205">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">coord_flip</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">+</span></span>
<span id="cb6-206">  ggplot2<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">theme_classic</span>()</span></code></pre></div></div>
</details>
<div class="cell-output-display page-columns page-full">
<div id="fig-search-results" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-search-results-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/index_files/figure-html/fig-search-results-1.png" class="img-fluid figure-img column-body-outset-right" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-search-results-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: CLSI documents referenced in FDA decision summaries. <a href="data/search_results.csv">Raw data (CSV)</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>CLSI’s “EP” documents (evaluation protocols) feature prominently in the <a href="data/search_results.csv">results (CSV)</a>, with protocols for evaluating quantitative tests topping the list.</p>



</section>
</section>


<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-fda-special-pmn-final-2019" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline"><span>“The special 510(k) program,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2018-D-3304, Sep. 2019. Available: <a href="https://www.regulations.gov/document/FDA-2018-D-3304-0018">https://www.regulations.gov/document/FDA-2018-D-3304-0018</a></div>
</div>
<div id="ref-fda-abbreviated-pmn-final-2019" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline"><span>“The abbreviated 510(k) program,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2019-D-4015, Sep. 2019. Available: <a href="https://www.regulations.gov/document/FDA-2019-D-4015-0001">https://www.regulations.gov/document/FDA-2019-D-4015-0001</a></div>
</div>
<div id="ref-fda-standards-recognition-final-2020" class="csl-entry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline"><span>“Recognition and withdrawal of voluntary consensus standards,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2018-D-2936, Sep. 2020. Available: <a href="https://www.regulations.gov/document/FDA-2018-D-2936-0010">https://www.regulations.gov/document/FDA-2018-D-2936-0010</a></div>
</div>
</div></section><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>I’ll use the term “IVD” throughout this post for convenience and readability, and, for the purposes of this post, “IVD” includes anything the FDA has reviewed and authorized under one of its <a href="https://www.fda.gov/medical-devices/classify-your-medical-device/device-classification-panels" target="_blank">IVD review panels</a>: Clinical Chemistry, Clinical Toxicology, Hematology, Immunology, Microbiology, Molecular Genetics, and Pathology. As of publication, the FDA includes laboratory developed tests (LDTs) or laboratory developed procedures (LDPs) in its use of the term “IVD,” and the FDA has authorized some LDTs or LDPs through the premarket programs discussed here.↩︎</p></li>
<li id="fn2"><p>See, for example: <a href="https://www.accessdata.fda.gov/cdrh_docs/reviews/K242540.pdf" class="uri">https://www.accessdata.fda.gov/cdrh_docs/reviews/K242540.pdf</a>.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section></div> ]]></description>
  <category>510(k)</category>
  <category>datasets</category>
  <category>de novo</category>
  <category>FDA</category>
  <category>medical devices</category>
  <category>pma</category>
  <category>R</category>
  <category>regulatory science</category>
  <guid>https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/</guid>
  <pubDate>Thu, 09 Jan 2025 05:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202501-ivd-decision-summaries/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Finding FDA authorized devices with Predetermined Change Control Plans</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202408-pccp/</link>
  <description><![CDATA[ 




<section id="background" class="level2">
<h2 class="anchored" data-anchor-id="background">Background</h2>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>The information in this post is based on sources in the public domain. It is provided here “as-is” without warranty of any kind. You may also want to refer to the <a href="https://www.fda.gov/medical-devices">FDA’s website</a>.</p>
</div>
</div>
<p>Predetermined Change Control Plans (PCCPs) can enable significant modifications to be made to medical devices that have been reviewed by the FDA. When these modifications are made in accordance with a PCCP that the FDA has authorized, the modifications themselves do not require additional review by the FDA.</p>
<p>In December 2022, the Food and Drug Omnibus Reform Act of 2022 provided the FDA with new authority related to the authorization of PCCPs for medical devices.<sup>1</sup> PCCPs are now described in section 515C of the Food, Drug, and Cosmetic Act (FD&amp;C Act). Paraphrased and simplified, this says:</p>
<blockquote class="blockquote">
<p>As a part of a premarket submission, the FDA may authorize PCCPs for “<strong>planned changes that may be made to the device</strong>” as long as “<strong>the device remains safe and effective without any such change</strong>” and, for 510(k) devices, “<strong>the device would remain substantially equivalent to the predicate.</strong>”<sup>2</sup></p>
</blockquote>
<p>Section 515C of the FD&amp;C Act also describes what the FDA may require a PCCP to include.<sup>3</sup> The FDA may require that a PCCP include information about:</p>
<ul>
<li><p><strong>Labeling</strong> required for safe and effective use as the device changes,</p></li>
<li><p><strong>Notification requirements</strong> if the device does not function as intended, and</p></li>
<li><p><strong>Performance requirements</strong> for changes made under the plan.</p></li>
</ul>
<p>In addition, in April 2023, the FDA issued a draft guidance with proposed recommendations related to PCCPs for artificial intelligence and machine learning enabled medical devices.<sup>4</sup> <span class="citation" data-cites="fda-pccp-draft-2023">[1]</span></p>
<div class="callout callout-style-default callout-note callout-titled" title="Updates">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Note</span>Updates
</div>
</div>
<div class="callout-body-container callout-body">
<p>On 2024-12-03, the FDA revised and finalized <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/marketing-submission-recommendations-predetermined-change-control-plan-artificial-intelligence">its guidance on PCCPs for artificial intelligence and machine learning enabled medical devices</a>. <span class="citation" data-cites="fda-pccp-ai-final-2024">[2]</span></p>
<p>On 2024-08-21, the FDA published a new draft guidance on PCCPs for any device (not just AI or ML related devices) on its website: <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/predetermined-change-control-plans-medical-devices">Predetermined Change Control Plans for Medical Devices</a>. <span class="citation" data-cites="fda-pccp-draft-2024">[3]</span></p>
</div>
</div>
<p>Even when a device developer does not plan to establish a PCCP for a medical device under development, the existence of a PCCP for a predicate device can impact the regulatory strategy for a device that will go through the 510(k) pathway. The statute says:</p>
<blockquote class="blockquote">
<p>Only the version of the device cleared or approved, prior to changes made under the predetermined change control plan, may be used by a sponsor as a predicate device.<sup>5</sup></p>
</blockquote>
<p>See the example in Figure&nbsp;1, which shows a potential predicate device that has been cleared by the FDA with a PCCP (Version 1), modified under the PCCP (Version 2), modified again without additional FDA review under the 510(k) modifications policy <span class="citation" data-cites="fda-pmn-mods-2017">[4]</span> (Version 3), cleared again by the FDA (Version 4), and then modified again under the PCCP (Version 5). If a device developer wants to use this device as a predicate device, the developer should compare the new device to either Version 1 or Version 4 because the other versions are not a “version of the device cleared or approved, prior to changes made under the predetermined change control plan”.</p>
<div id="fig-predicate" class="lightbox quarto-float quarto-figure quarto-figure-center anchored" alt="The figure shows an example of valid and invalid predicate devices. A potential predicate device has been cleared by the FDA with a PCCP (Version 1 cleared under K250001), modified under the PCCP (Version 2), modified again without additional FDA review under the 510(k) modifications policy (Version 3), cleared again by the FDA (Version 4 cleared under K260001), and then modified again under the PCCP (Version 5). Only Version 1 and Version 4 of the device may be used as predicates for a new device being proposed under K270001. This is because Section 515C(c) of the FD&amp;C Act says &quot;Only the version of the device cleared or approved, prior to changes made under the predetermined change control plan, may be used by a sponsor as a predicate device.&quot;">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-predicate-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="img/predicate_considerations.webp" class="lightbox" data-gallery="quarto-lightbox-gallery-1" title="Figure&nbsp;1: An example of how PCCPs can impact predicate device selection decisions."><img src="https://www.boleary.com/blog/posts/202408-pccp/img/predicate_considerations.webp" class="img-fluid figure-img" alt="The figure shows an example of valid and invalid predicate devices. A potential predicate device has been cleared by the FDA with a PCCP (Version 1 cleared under K250001), modified under the PCCP (Version 2), modified again without additional FDA review under the 510(k) modifications policy (Version 3), cleared again by the FDA (Version 4 cleared under K260001), and then modified again under the PCCP (Version 5). Only Version 1 and Version 4 of the device may be used as predicates for a new device being proposed under K270001. This is because Section 515C(c) of the FD&amp;C Act says &quot;Only the version of the device cleared or approved, prior to changes made under the predetermined change control plan, may be used by a sponsor as a predicate device.&quot;"></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-predicate-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: An example of how PCCPs can impact predicate device selection decisions.
</figcaption>
</figure>
</div>
<p>It is important for a device developer to know whether a device they are considering using as a predicate has a PCCP.</p>
</section>
<section id="finding-devices-with-pccps-using-a-search-engine" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="finding-devices-with-pccps-using-a-search-engine">Finding devices with PCCPs using a search engine</h2>
<p>One way to identify devices that may include a PCCP is through a site-specific search engine query. An example, showing results from Google as of 2024-04-19, is shown here<sup>6</sup>:</p>
<div id="fig-google" class="quarto-float quarto-figure quarto-figure-center anchored" alt="The figure shows Google search results for devices with PCCPs as of 2024-04-19. 21 results were found using a query for &quot;PCCP OR &quot;predetermined change&quot; site:accessdata.fda.gov/cdrh_docs/&quot;. The first four results are shown, including DEN220063 from Caption Health, a 510(k) from Caption Health, a 510(k) from Apple, and a 510(k) from Medtronic.">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-google-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<a href="https://www.google.com/search?q=PCCP+OR+%22predetermined+change%22+site%3Aaccessdata.fda.gov%2Fcdrh_docs%2F"><img src="https://www.boleary.com/blog/posts/202408-pccp/img/google.webp" class="img-fluid figure-img" alt="The figure shows Google search results for devices with PCCPs as of 2024-04-19. 21 results were found using a query for &quot;PCCP OR &quot;predetermined change&quot; site:accessdata.fda.gov/cdrh_docs/&quot;. The first four results are shown, including DEN220063 from Caption Health, a 510(k) from Caption Health, a 510(k) from Apple, and a 510(k) from Medtronic."></a>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-google-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Google search results for devices with PCCPs as of 2024-04-19.
</figcaption>
</figure>
</div>
<p>This shows that there were 21 documents that included either the term “PCCP” or the term “predetermined change” on the site where the FDA posts submission and review summaries as of 2024-04-19. Some submissions returned multiple documents because, for example, both a submission summary document and a review summary document may be available for De Novos and for <em>in vitro</em> diagnostic 510(k)s. In addition, some of the results may be included because a 510(k) summary discusses a PCCP for a predicate device even if the device that was the subject of the 510(k) did not include a PCCP.</p>

<div class="no-row-height column-margin column-container"><div class="">
<p>The search results show that the FDA authorized a few devices with PCCPs before the law was passed in December 2022. Several of these devices came to market through the De Novo program or in regulations recently established through the De Novo program, and the De Novo authorizations associated with these devices typically also established special controls related to PCCPs.</p>
</div></div><p>The results show that the FDA is including additional language in clearance letters when there is a PCCP. Specifically, many of these letters include the following paragraph:</p>
<blockquote class="blockquote">
<p>FDA’s substantial equivalence determination also included the review and clearance of your Predetermined Change Control Plan (PCCP). Under section 515C(b)(1) of the Act, a new premarket notification is not required for a change to a device cleared under section 510(k) of the Act, if such change is consistent with an established PCCP granted pursuant to section 515C(b)(2) of the Act. Under 21 CFR 807.81(a)(3), a new premarket notification is required if there is a major change or modification in the intended use of a device, or if there is a change or modification in a device that could significantly affect the safety or effectiveness of the device, e.g., a significant change or modification in design, material, chemical composition, energy source, or manufacturing process. Accordingly, if deviations from the established PCCP result in a major change or modification in the intended use of the device, or result in a change or modification in the device that could significantly affect the safety or effectiveness of the device, then a new premarket notification would be required consistent with section 515C(b)(1) of the Act and 21 CFR 807.81(a)(3). Failure to submit such a premarket submission would constitute adulteration and misbranding under sections 501(f)(1)(B) and 502(o) of the Act, respectively. Additional information about changes that may require a new premarket notification are provided in the FDA guidance documents entitled “Deciding When to Submit a 510(k) for a Change to an Existing Device” (<a href="https://www.fda.gov/media/99812/download" class="uri">https://www.fda.gov/media/99812/download</a>) and “Deciding When to Submit a 510(k) for a Software Change to an Existing Device” (<a href="https://www.fda.gov/media/99785/download" class="uri">https://www.fda.gov/media/99785/download</a>).</p>
</blockquote>
<p>This language is informative, and it can also help us find devices that have PCCPs. If the FDA did not include this language in its letters, we would need to rely on the 510(k) summary – which is written by the device developer and is not available for all devices – to determine whether a 510(k) clearance included a PCCP. Still, even though this language is appearing in letters from the FDA, we should not assume perfection: There may be cases where the FDA has included this language in a clearance letter when a PCCP was not part of the submission, and there may also be cases where the FDA did not include this language in a clearance letter when a PCCP was part of the clearance.<sup>7</sup></p>
<p>The FDA also appears to be noting the presence of PCCPs in approval order statements for PMAs.<sup>8</sup></p>
</section>
<section id="pccp-authorizations-over-time-and-by-device-type" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="pccp-authorizations-over-time-and-by-device-type">PCCP authorizations over time and by device type</h2>
<p>Results from the search shown in Figure&nbsp;2, results from searching for the terms “PCCP” and “predetermined change” in the first several pages of publicly available clearance letters and De Novo reclassification orders using <a href="https://www.boleary.com/blog/posts/202307-pmn/">the dataset available here</a>, and results from searching PMA approval order statements are available below.<sup>9</sup> The results of this search suggest that, as of 2024-08-01, there had been about 35 authorizations of devices that included PCCPs.</p>
<p><strong>It is important to treat these results as estimates for the reasons discussed in the previous section.</strong></p>
<p>In addition, foundations for the PCCP framework were laid in earlier decisions that used similar concepts and approaches, but the search techniques shown here are not designed to find these precedents. Most of the search results were recently authorized devices:</p>

<div class="no-row-height column-margin column-container"><div class="">
<p>For example, after authorizing <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P160045" target="_blank">P160045</a> for the Oncomine Dx Target Test from Thermo Fisher Scientific (approved on 2017-06-22), <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN170058" target="_blank">DEN170058</a> for the MSK-IMPACT tumor profiling test from the Memorial Sloan-Kettering Cancer Center (granted on 2017-11-15), and <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P170019" target="_blank">P170019</a> for the FoundationOne CDx from Foundation Medicine (approved on 2017-11-30), the FDA issued a Fact Sheet on how additional cancer mutations with potential clinical significance could be added to tumor profiling tests without further review by the FDA. <span class="citation" data-cites="fda-tumor-fact-2017">[5]</span></p>
</div></div><div class="cell">
<div class="cell-output-display">
<div id="fig-authorizations" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-authorizations-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://www.boleary.com/blog/posts/202408-pccp/index_files/figure-html/fig-authorizations-1.png" class="img-fluid figure-img" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-authorizations-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: Approximate number of submissions authorized by the FDA with a PCCP. <a href="data/pccp_search_results.csv">Raw data (CSV)</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>Many of the artificial intelligence and machine learning enabled devices the FDA has authorized are cardiovascular and radiology devices<sup>10</sup>, and, based on this search, these device areas also appear to have many devices with PCCPs.</p>
<div class="cell">
<div class="cell-output-display">
<div id="fig-panels" class="quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-panels-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<img src="https://www.boleary.com/blog/posts/202408-pccp/index_files/figure-html/fig-panels-1.png" class="img-fluid figure-img" width="672">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-panels-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: Approximate number of submissions authorized by the FDA with a PCCP by panel. <a href="data/pccp_search_results.csv">Raw data (CSV)</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>The modifications permitted under authorized PCCPs can be consequential. They have included ML model retraining, breakpoint and cutoff changes, reporting of additional genetic variants, and more. You can explore the search results below. Notably, some of the types of changes proposed and included in authorized PCCPs may have already been permissible without a PCCP under established modifications policies. There are important tradeoffs device developers should consider before proposing to establish a PCCP for modifications that may already be permissible without review under one of the FDA’s existing policies.</p>

<div class="no-row-height column-margin column-container"><div class="">
<p><strong>FDA Regulatory Expertise</strong>:<br>
I provide digital health and medical device regulatory strategy solutions to technology developers, healthcare organizations, trade and professional associations, and others. <a href="https://calendly.com/olearybrendan/initial-meeting/" target="_blank">Book a meeting</a>.</p>
</div></div></section>
<section id="devices-found-using-this-search" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="devices-found-using-this-search">Devices found using this search</h2>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>This table shows search results as of about 2024-08-01. <a href="https://www.boleary.com/blog/posts/202408-pccp/latest/">Updates will be posted here</a>.</p>
</div>
</div>
<div class="cell page-columns page-full">
<div id="tbl-pccps" class="cell quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-tbl figure page-columns page-full">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-pccps-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Devices found using this search. <a href="data/pccp_search_results.csv">Raw data (CSV)</a>.
</figcaption>
<div aria-describedby="tbl-pccps-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<div class="cell-output-display column-page">
<div class="datatables html-widget html-fill-item" id="htmlwidget-869171e70c01bde0f618" style="width:100%;height:auto;"></div>
<script type="application/json" data-for="htmlwidget-869171e70c01bde0f618">{"x":{"filter":"none","vertical":false,"data":[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35"],["<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN190040\" target=\"_blank\">DEN190040<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K201992\" target=\"_blank\">K201992<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K210484\" target=\"_blank\">K210484<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN220063\" target=\"_blank\">DEN220063<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231173\" target=\"_blank\">K231173<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K223597\" target=\"_blank\">K223597<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232699\" target=\"_blank\">K232699<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232957\" target=\"_blank\">K232957<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233813\" target=\"_blank\">K233813<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233027\" target=\"_blank\">K233027<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231779\" target=\"_blank\">K231779<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233216\" target=\"_blank\">K233216<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P190016S007\" target=\"_blank\">P190016/S007<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233030\" target=\"_blank\">K233030<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233438\" target=\"_blank\">K233438<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233986\" target=\"_blank\">K233986<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231806\" target=\"_blank\">K231806<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K211815\" target=\"_blank\">K211815<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P160026S040\" target=\"_blank\">P160026/S040<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232603\" target=\"_blank\">K232603<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232934\" target=\"_blank\">K232934<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231010\" target=\"_blank\">K231010<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241025\" target=\"_blank\">K241025<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233955\" target=\"_blank\">K233955<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240387\" target=\"_blank\">K240387<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232987\" target=\"_blank\">K232987<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P010032S213\" target=\"_blank\">P010032/S213<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P140009S095\" target=\"_blank\">P140009/S095<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P150004S071\" target=\"_blank\">P150004/S071<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241639\" target=\"_blank\">K241639<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240555\" target=\"_blank\">K240555<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241006\" target=\"_blank\">K241006<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K234009\" target=\"_blank\">K234009<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241060\" target=\"_blank\">K241060<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN230046\" target=\"_blank\">DEN230046<\/a>"],["Bay Labs, Inc.","Caption Health","Medtronic, Inc.","Caption Health, Inc","Apple Inc.","23andMe, Inc.","Anumana, Inc.","Jianerkang Medical Co., Ltd","Merit Medical Systems, Inc.","Hamamatsu Photonics K.K.","Epitel, Inc.","Clew Medical Ltd.","Tusker Medical, Inc.","MRIguidance B.V","Beacon Biosignals, Inc.","Becton, Dickinson and Company","Oxoid Limited (Part of Thermo Fisher Scientific)","Affinity Biosensors","Physio-Control. Inc.","CamDiab Ltd.","Hangzhou Yangshun Medical Technology Co.,Ltd","AliveCor, Inc.","OrbusNeich Medical (Shenzhen) Co., Ltd.","Clarius Mobile Health Corp.","Asahi Intecc Co., Ltd","Asset Medikal Tasarim Sanayi Ve Ticaret A.S.","Abbott Medical","Abbott Medical","Abbott Medical","HUGER Medical Instrument Co., Ltd.","Tyto Care Ltd.","NaturalCycles Nordic AB","Mighty Oak Medical","Hardy Diagnostics","Personal Genome Diagnostics, Inc."],["Caption Guidance","Caption Guidance","LINQ II Insertable Cardiac Monitor, Zelda AI ECG Classification System","Caption Interpretation Automated Ejection Fraction Software","Irregular Rhythm Notification Feature (IRNF)","23andMe Personal Genome Service (PGS) Cancer Predisposition Genetic Health Risk Report for BRCA1/BRCA2 (Selected Variants)","Low Ejection Fraction AI-ECG Algorithm","Sterile and Non-Sterile Ultrasound Gels","Bearing nsPVA Express","NanoZoomer S360MD Slide scanner system","REMI AI Discrete Detection Module","CLEWICU System","Tula System","BoneMRI","SleepStageML","BD Phoenix Automated Microbiology System - GN Ciprofloxacin (0.01564 g/mL)","Thermo Scientific Oxoid Rezafungin Disc (5 g) RZF5","LifeScale Gram Negative Kit (LSGN) with the LifeScale AST System","LIFEPAK 35 Monitor/Defibrillator","CamAPS FX","Sunsphere","Corvair","JADE PLUS PTA Balloon Dilatation Catheter","Clarius OB AI","MINAMO blue; MINAMO viola","FlowArt Valve for Vial Access","Family of SCS IPGs","Family of DBS IPGs","Family of DRG IPGs","Single-use Video Ureterorenoscope (SVU-220US)","Tyto Insights for Crackles Detection","Natural Cycles","Acorn 3D Software (AC-SEG-4009); Acorn 3DP Model (AC-101-XX)","HardyDisk AST Cefiderocol 30g (FDC30)","PGDx elio plasma focus Dx"],["2019-08-27","2020-07-17","2021-02-19","2022-09-28","2023-04-25","2022-12-02","2023-09-05","2023-09-21","2023-11-30","2023-09-25","2023-06-16","2023-09-28","2023-04-05","2023-09-25","2023-10-13","2023-12-18","2023-06-20","2021-06-11","2023-07-18","2023-08-28","2023-09-20","2023-04-07","2024-04-15","2023-12-15","2024-02-08","2023-09-22","2024-03-29","2024-03-29","2024-03-29","2024-06-07","2024-02-28","2024-04-12","2023-12-19","2024-04-18","2023-06-30"],["2020-02-07","2020-09-18","2021-06-11","2023-02-24","2023-07-21","2023-08-31","2023-09-28","2023-12-15","2023-12-21","2023-12-22","2024-01-03","2024-01-13","2024-02-01","2024-03-01","2024-03-08","2024-03-15","2024-03-22","2024-04-02","2024-04-12","2024-05-23","2024-05-30","2024-06-07","2024-06-11","2024-06-14","2024-06-21","2024-06-26","2024-06-26","2024-06-26","2024-06-26","2024-07-01","2024-07-02","2024-07-11","2024-07-12","2024-07-18","2024-08-01"],[164,63,112,149,87,272,23,85,21,88,201,107,302,158,147,88,276,1026,269,269,253,427,57,182,134,278,89,89,89,24,125,90,206,91,398],["<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MXD\" target=\"_blank\">MXD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QVD\" target=\"_blank\">QVD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QDB\" target=\"_blank\">QDB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QAZ\" target=\"_blank\">QAZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QYE\" target=\"_blank\">QYE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MUI\" target=\"_blank\">MUI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NAJ\" target=\"_blank\">NAJ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PSY\" target=\"_blank\">PSY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OMB\" target=\"_blank\">OMB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QNL\" target=\"_blank\">QNL<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJA\" target=\"_blank\">QJA<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OLZ\" target=\"_blank\">OLZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LON\" target=\"_blank\">LON<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SAN\" target=\"_blank\">SAN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MKJ\" target=\"_blank\">MKJ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=KRD\" target=\"_blank\">KRD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MHX\" target=\"_blank\">MHX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LIT\" target=\"_blank\">LIT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=IYN\" target=\"_blank\">IYN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DQX\" target=\"_blank\">DQX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LHI\" target=\"_blank\">LHI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LGW\" target=\"_blank\">LGW<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MHY\" target=\"_blank\">MHY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PMP\" target=\"_blank\">PMP<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=FGB\" target=\"_blank\">FGB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PHZ\" target=\"_blank\">PHZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PYT\" target=\"_blank\">PYT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SBY\" target=\"_blank\">SBY<\/a>"],["Radiology","Radiology","Cardiovascular","Radiology","Cardiovascular","Pathology","Cardiovascular","Radiology","Obstetrics / Gynecology","Pathology","Neurology","Cardiovascular","Ear, Nose, & Throat","Radiology","Neurology","Microbiology","Microbiology","Microbiology","Cardiovascular","Clinical Chemistry","Obstetrics / Gynecology","Cardiovascular","Cardiovascular","Radiology","Cardiovascular","General Hospital","Neurology","Neurology","Neurology","Gastroenterology & Urology","Anesthesiology","Obstetrics / Gynecology","Radiology","Microbiology","Pathology"]],"container":"<table class=\"display\">\n  <thead>\n    <tr>\n      <th> <\/th>\n      <th>Submission number<\/th>\n      <th>Sponsor<\/th>\n      <th>Device<\/th>\n      <th>Date start<\/th>\n      <th>Date decision<\/th>\n      <th>Total days<\/th>\n      <th>Product code<\/th>\n      <th>Panel<\/th>\n    <\/tr>\n  <\/thead>\n<\/table>","options":{"pageLength":35,"dom":"frti","columnDefs":[{"targets":[0,6],"className":"dt-right"},{"targets":1,"className":"dt-left","width":"11em"},{"targets":[2,3],"className":"dt-left","width":"12em"},{"targets":[4,5],"className":"dt-left","width":"15em"},{"targets":7,"className":"dt-left"},{"targets":8,"className":"dt-left","width":"8em"},{"orderable":false,"targets":0},{"name":" ","targets":0},{"name":"submission_number","targets":1},{"name":"sponsor","targets":2},{"name":"device","targets":3},{"name":"date_start","targets":4},{"name":"date_decision","targets":5},{"name":"total_days","targets":6},{"name":"product_code","targets":7},{"name":"panel","targets":8}],"order":[],"autoWidth":false,"orderClasses":false,"lengthMenu":[10,25,35,50,100]}},"evals":[],"jsHooks":[]}</script>
</div>
</div>
</figure>
</div>
</div>



</section>


<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-fda-pccp-draft-2023" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline"><span>“Marketing submission recommendations for a predetermined change control plan for artificial intelligence/machine learning (AI/ML)-enabled device software functions,”</span> <span>U.S. Food and Drug Administration</span>, Draft Guidance Document. Docket Number FDA-2022-D-2628, Apr. 2023. Available: <a href="https://www.regulations.gov/document/FDA-2022-D-2628-0002">https://www.regulations.gov/document/FDA-2022-D-2628-0002</a></div>
</div>
<div id="ref-fda-pccp-ai-final-2024" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline"><span>“Marketing submission recommendations for a predetermined change control plan for artificial intelligence-enabled device software functions,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2022-D-2628, Dec. 2024. Available: <a href="https://www.regulations.gov/document/FDA-2022-D-2628-0036">https://www.regulations.gov/document/FDA-2022-D-2628-0036</a></div>
</div>
<div id="ref-fda-pccp-draft-2024" class="csl-entry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline"><span>“<span>P</span>redetermined <span>C</span>hange <span>C</span>ontrol <span>P</span>lans for medical devices,”</span> <span>U.S. Food and Drug Administration</span>, Draft Guidance Document. Docket Number FDA-2024-D-2338, Aug. 2024. Available: <a href="https://www.regulations.gov/document/FDA-2024-D-2338-0002">https://www.regulations.gov/document/FDA-2024-D-2338-0002</a></div>
</div>
<div id="ref-fda-pmn-mods-2017" class="csl-entry">
<div class="csl-left-margin">[4] </div><div class="csl-right-inline"><span>“Deciding when to submit a 510(k) for a change to an existing device,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2011-D-0453, Oct. 2017. Available: <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/deciding-when-submit-510k-change-existing-device">https://www.fda.gov/regulatory-information/search-fda-guidance-documents/deciding-when-submit-510k-change-existing-device</a></div>
</div>
<div id="ref-fda-tumor-fact-2017" class="csl-entry">
<div class="csl-left-margin">[5] </div><div class="csl-right-inline"><span>“FDA fact sheet: CDRH’s approach to tumor profiling next generation sequencing tests,”</span> <span>U.S. Food and Drug Administration</span>, Fact Sheet, Nov. 2017. Available: <a href="https://www.fda.gov/files/medical%20devices/published/CDRH’s-Approach-to-Tumor-Profiling-Next-Generation-Sequencing-Tests.pdf">https://www.fda.gov/files/medical%20devices/published/CDRH’s-Approach-to-Tumor-Profiling-Next-Generation-Sequencing-Tests.pdf</a></div>
</div>
</div></section><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>See section 3308 of the Food and Drug Omnibus Reform Act of 2022, Title III of Division FF of the Consolidated Appropriations Act, 2023, Pub. L. No.&nbsp;117-328 (“FDORA”), enacted on December 29, 2022 and available at: <a href="https://www.congress.gov/117/plaws/publ328/PLAW-117publ328.pdf" class="uri">https://www.congress.gov/117/plaws/publ328/PLAW-117publ328.pdf</a>, pp.&nbsp;5835-5836.↩︎</p></li>
<li id="fn2"><p>See: FD&amp;C Act Section 515C(a)(2) and (b)(2).↩︎</p></li>
<li id="fn3"><p>See: FD&amp;C Act Section 515C(a)(3) and (b)(3).↩︎</p></li>
<li id="fn4"><p>See: <a href="https://www.fda.gov/medical-devices/medical-devices-news-and-events/cdrh-issues-draft-guidance-predetermined-change-control-plans-artificial-intelligencemachine" class="uri">https://www.fda.gov/medical-devices/medical-devices-news-and-events/cdrh-issues-draft-guidance-predetermined-change-control-plans-artificial-intelligencemachine</a>.↩︎</p></li>
<li id="fn5"><p>See: FD&amp;C Act Section 515C(c).↩︎</p></li>
<li id="fn6"><p>See: <a href="https://www.google.com/search?q=PCCP+OR+%22predetermined+change%22+site%3Aaccessdata.fda.gov%2Fcdrh_docs%2F" class="uri">https://www.google.com/search?q=PCCP+OR+%22predetermined+change%22+site%3Aaccessdata.fda.gov%2Fcdrh_docs%2F</a>.↩︎</p></li>
<li id="fn7"><p>I shared a draft of this post with the FDA before publishing it, and the FDA subsequently issued corrections for some of the clearance letters that had been posted on the FDA’s website. These corrections are accounted for in the results provided here.↩︎</p></li>
<li id="fn8"><p>See for example, <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P190016S007">P190016/S007</a> on 2024-02-01 and <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P160026S040">P160026/S040</a> on 2024-04-12.↩︎</p></li>
<li id="fn9"><p>To search the approval order statements, I used my <code>fdadata</code> package for the R programming language: <a href="https://github.com/bjoleary/fdadata" class="uri">https://github.com/bjoleary/fdadata</a>.↩︎</p></li>
<li id="fn10"><p>See: <a href="https://www.fda.gov/medical-devices/software-medical-device-samd/artificial-intelligence-and-machine-learning-aiml-enabled-medical-devices" class="uri">https://www.fda.gov/medical-devices/software-medical-device-samd/artificial-intelligence-and-machine-learning-aiml-enabled-medical-devices</a>.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{o'leary2024,
  author = {O’Leary, Brendan},
  title = {Finding {FDA} Authorized Devices with {Predetermined}
    {Change} {Control} {Plans}},
  date = {2024-08-20},
  url = {https://www.boleary.com/blog/posts/202408-pccp/},
  langid = {en},
  abstract = {In December 2022, the Food and Drug Omnibus Reform Act of
    2022 provided the FDA with new authority related to the
    authorization of Predetermined Change Control Plans (PCCPs). A PCCP
    can enable significant planned modifications to be made to a medical
    device after the device and the plans to modify the device have been
    reviewed by the FDA. This post provides a summary of the law,
    describes how to find devices that have been authorized with PCCPs,
    lists devices that I found using these approaches, shows the
    approximate rate at which the FDA has authorized these devices over
    time based on the search results, and shows the device areas where
    PCCPs are most commonly used based on the search results.}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-o'leary2024" class="csl-entry quarto-appendix-citeas">
<div class="">B.
O’Leary, <span>“Finding FDA authorized devices with Predetermined Change
Control Plans,”</span> Aug. 20, 2024. <a href="https://www.boleary.com/blog/posts/202408-pccp/">https://www.boleary.com/blog/posts/202408-pccp/</a></div>
</div></div></section></div> ]]></description>
  <category>AI/ML</category>
  <category>datasets</category>
  <category>FDA</category>
  <category>medical devices</category>
  <guid>https://www.boleary.com/blog/posts/202408-pccp/</guid>
  <pubDate>Tue, 20 Aug 2024 15:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202408-pccp/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>List of FDA authorized devices with Predetermined Change Control Plans</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202408-pccp/latest/</link>
  <description><![CDATA[ 




<meta http-equiv="Cache-Control" content="max-age=3600, must-revalidate">
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>The information on this page is based on sources in the public domain. It is provided here “as-is” without warranty of any kind. You may also want to refer to the <a href="https://www.fda.gov/medical-devices">FDA’s website</a>.</p>
<p>In May 2025, the FDA added a PCCP search feature to its <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm">510(k)</a>, <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfPMN/denovo.cfm">De Novo</a>, and <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfPMA/pma.cfm">PMA</a> databases. This page continues to use the search method <a href="../../../posts/202408-pccp/">described here</a> and may not match the FDA’s results.</p>
</div>
</div>
<p>For devices with 510(k)s, this list should include search results as of about <strong>2026-02-27</strong>. For devices with De Novos, this list should include search results as of about <strong>2026-02-11</strong>. For devices with PMAs, this list should include search results as of about <strong>2026-03-20</strong>.</p>
<p><a href="../../../posts/202408-pccp/">As explained in this post</a>, the search results shown here may not include every device with a PCCP, and the search results shown here may include some devices that do not actually have a PCCP. <strong>It’s important to treat these search results, and any analyses based on these search results, as preliminary estimates.</strong> For example, the FDA sometimes sends authorization letters saying PCCPs are present when they aren’t. When the FDA finds these mistakes, they send new letters to correct them. This may lead to devices being removed from the list. You can download a CSV file with details on devices affected by these corrections: <a href="data/pccp_false_positive_corrections.csv">Corrections (CSV)</a>.</p>
<p>You can also download a CSV file with details about the devices on this list: <a href="data/latest_pccp_search_results.csv">Raw data (CSV)</a>.</p>
<div class="cell page-columns page-full">
<div id="tbl-pccp" class="cell quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-tbl figure page-columns page-full">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-pccp-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Search results – List of FDA authorized devices with PCCPs. <a href="data/latest_pccp_search_results.csv">Raw data (CSV)</a>.
</figcaption>
<div aria-describedby="tbl-pccp-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<div class="cell-output-display column-screen-inset-right">
<div id="htmlwidget-1c9735ba7d66b4f25bc3" style="width:1200px;height:auto;" class="datatables html-widget"></div>
<script type="application/json" data-for="htmlwidget-1c9735ba7d66b4f25bc3">{"x":{"filter":"none","vertical":false,"data":[["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96","97","98","99","100","101","102","103","104","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189"],["<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN190040\" target=\"_blank\">DEN190040<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K201992\" target=\"_blank\">K201992<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K210484\" target=\"_blank\">K210484<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN220063\" target=\"_blank\">DEN220063<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231173\" target=\"_blank\">K231173<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K223597\" target=\"_blank\">K223597<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232699\" target=\"_blank\">K232699<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232957\" target=\"_blank\">K232957<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233813\" target=\"_blank\">K233813<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233027\" target=\"_blank\">K233027<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231779\" target=\"_blank\">K231779<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233216\" target=\"_blank\">K233216<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P190016S007\" target=\"_blank\">P190016/S007<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233030\" target=\"_blank\">K233030<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233438\" target=\"_blank\">K233438<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233986\" target=\"_blank\">K233986<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231806\" target=\"_blank\">K231806<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K211815\" target=\"_blank\">K211815<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P160026S040\" target=\"_blank\">P160026/S040<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232603\" target=\"_blank\">K232603<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232934\" target=\"_blank\">K232934<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K231010\" target=\"_blank\">K231010<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241025\" target=\"_blank\">K241025<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233955\" target=\"_blank\">K233955<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240387\" target=\"_blank\">K240387<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K232987\" target=\"_blank\">K232987<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P010032S213\" target=\"_blank\">P010032/S213<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P140009S095\" target=\"_blank\">P140009/S095<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P150004S071\" target=\"_blank\">P150004/S071<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241639\" target=\"_blank\">K241639<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240555\" target=\"_blank\">K240555<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241006\" target=\"_blank\">K241006<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K234009\" target=\"_blank\">K234009<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241060\" target=\"_blank\">K241060<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K233287\" target=\"_blank\">K233287<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN230046\" target=\"_blank\">DEN230046<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240953\" target=\"_blank\">K240953<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241846\" target=\"_blank\">K241846<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241504\" target=\"_blank\">K241504<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240290\" target=\"_blank\">K240290<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241684\" target=\"_blank\">K241684<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K234027\" target=\"_blank\">K234027<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241380\" target=\"_blank\">K241380<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN230081\" target=\"_blank\">DEN230081<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240929\" target=\"_blank\">K240929<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241967\" target=\"_blank\">K241967<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241561\" target=\"_blank\">K241561<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242021\" target=\"_blank\">K242021<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240408\" target=\"_blank\">K240408<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241324\" target=\"_blank\">K241324<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241828\" target=\"_blank\">K241828<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K240417\" target=\"_blank\">K240417<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242094\" target=\"_blank\">K242094<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242657\" target=\"_blank\">K242657<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242653\" target=\"_blank\">K242653<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241073\" target=\"_blank\">K241073<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243169\" target=\"_blank\">K243169<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241350\" target=\"_blank\">K241350<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241891\" target=\"_blank\">K241891<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243527\" target=\"_blank\">K243527<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243065\" target=\"_blank\">K243065<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241368\" target=\"_blank\">K241368<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P240010S001\" target=\"_blank\">P240010/S001<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242905\" target=\"_blank\">K242905<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243201\" target=\"_blank\">K243201<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243250\" target=\"_blank\">K243250<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243738\" target=\"_blank\">K243738<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250079\" target=\"_blank\">K250079<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243987\" target=\"_blank\">K243987<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243999\" target=\"_blank\">K243999<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P010015S558\" target=\"_blank\">P010015/S558<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P010031S884\" target=\"_blank\">P010031/S884<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P030036S151\" target=\"_blank\">P030036/S151<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P060039S118\" target=\"_blank\">P060039/S118<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P080006S190\" target=\"_blank\">P080006/S190<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P090013S336\" target=\"_blank\">P090013/S336<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P120017S038\" target=\"_blank\">P120017/S038<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P150033S201\" target=\"_blank\">P150033/S201<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P220012S043\" target=\"_blank\">P220012/S043<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P820003S144\" target=\"_blank\">P820003/S144<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P830061S230\" target=\"_blank\">P830061/S230<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P850051S085\" target=\"_blank\">P850051/S085<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P850089S171\" target=\"_blank\">P850089/S171<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P890003S475\" target=\"_blank\">P890003/S475<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P900061S175\" target=\"_blank\">P900061/S175<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P920015S297\" target=\"_blank\">P920015/S297<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P930022S020\" target=\"_blank\">P930022/S020<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P930039S270\" target=\"_blank\">P930039/S270<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P950024S114\" target=\"_blank\">P950024/S114<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P970012S101\" target=\"_blank\">P970012/S101<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P980016S918\" target=\"_blank\">P980016/S918<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P980035S807\" target=\"_blank\">P980035/S807<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P980050S145\" target=\"_blank\">P980050/S145<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P990001S123\" target=\"_blank\">P990001/S123<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250705\" target=\"_blank\">K250705<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242551\" target=\"_blank\">K242551<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242807\" target=\"_blank\">K242807<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243567\" target=\"_blank\">K243567<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K241589\" target=\"_blank\">K241589<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243943\" target=\"_blank\">K243943<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243558\" target=\"_blank\">K243558<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242658\" target=\"_blank\">K242658<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243853\" target=\"_blank\">K243853<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250274\" target=\"_blank\">K250274<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243684\" target=\"_blank\">K243684<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250226\" target=\"_blank\">K250226<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250454\" target=\"_blank\">K250454<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250447\" target=\"_blank\">K250447<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250798\" target=\"_blank\">K250798<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242659\" target=\"_blank\">K242659<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251456\" target=\"_blank\">K251456<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242737\" target=\"_blank\">K242737<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243973\" target=\"_blank\">K243973<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250789\" target=\"_blank\">K250789<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250856\" target=\"_blank\">K250856<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K242843\" target=\"_blank\">K242843<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250885\" target=\"_blank\">K250885<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243391\" target=\"_blank\">K243391<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250956\" target=\"_blank\">K250956<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250984\" target=\"_blank\">K250984<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250990\" target=\"_blank\">K250990<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251032\" target=\"_blank\">K251032<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250524\" target=\"_blank\">K250524<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243679\" target=\"_blank\">K243679<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243274\" target=\"_blank\">K243274<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250084\" target=\"_blank\">K250084<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250902\" target=\"_blank\">K250902<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P160035S052\" target=\"_blank\">P160035/S052<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250652\" target=\"_blank\">K250652<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/denovo.cfm?id=DEN240068\" target=\"_blank\">DEN240068<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251713\" target=\"_blank\">K251713<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251879\" target=\"_blank\">K251879<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251519\" target=\"_blank\">K251519<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250036\" target=\"_blank\">K250036<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243804\" target=\"_blank\">K243804<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251580\" target=\"_blank\">K251580<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251579\" target=\"_blank\">K251579<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243685\" target=\"_blank\">K243685<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252014\" target=\"_blank\">K252014<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251217\" target=\"_blank\">K251217<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250753\" target=\"_blank\">K250753<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250575\" target=\"_blank\">K250575<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251682\" target=\"_blank\">K251682<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250507\" target=\"_blank\">K250507<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251368\" target=\"_blank\">K251368<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250237\" target=\"_blank\">K250237<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251902\" target=\"_blank\">K251902<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250369\" target=\"_blank\">K250369<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252062\" target=\"_blank\">K252062<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252072\" target=\"_blank\">K252072<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252114\" target=\"_blank\">K252114<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251866\" target=\"_blank\">K251866<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K253331\" target=\"_blank\">K253331<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252357\" target=\"_blank\">K252357<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251875\" target=\"_blank\">K251875<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K250392\" target=\"_blank\">K250392<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252041\" target=\"_blank\">K252041<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K253105\" target=\"_blank\">K253105<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252070\" target=\"_blank\">K252070<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252366\" target=\"_blank\">K252366<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251337\" target=\"_blank\">K251337<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251657\" target=\"_blank\">K251657<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251936\" target=\"_blank\">K251936<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251416\" target=\"_blank\">K251416<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251562\" target=\"_blank\">K251562<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252235\" target=\"_blank\">K252235<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251152\" target=\"_blank\">K251152<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252284\" target=\"_blank\">K252284<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K243342\" target=\"_blank\">K243342<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K253281\" target=\"_blank\">K253281<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252589\" target=\"_blank\">K252589<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252906\" target=\"_blank\">K252906<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252842\" target=\"_blank\">K252842<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K253585\" target=\"_blank\">K253585<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251934\" target=\"_blank\">K251934<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P160007S058\" target=\"_blank\">P160007/S058<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251306\" target=\"_blank\">K251306<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K253701\" target=\"_blank\">K253701<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252301\" target=\"_blank\">K252301<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P130021S179\" target=\"_blank\">P130021/S179<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P140017S033\" target=\"_blank\">P140017/S033<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P170006S040\" target=\"_blank\">P170006/S040<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P200046S045\" target=\"_blank\">P200046/S045<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P970031S078\" target=\"_blank\">P970031/S078<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P980043S086\" target=\"_blank\">P980043/S086<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpma/pma.cfm?id=P990064S096\" target=\"_blank\">P990064/S096<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K251928\" target=\"_blank\">K251928<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K252972\" target=\"_blank\">K252972<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K260217\" target=\"_blank\">K260217<\/a>"],["Bay Labs, Inc.","Caption Health","Medtronic, Inc.","Caption Health, Inc.","Apple, Inc.","23AndMe, Inc.","Anumana, Inc.","Jianerkang Medical Co., Ltd.","Merit Medical Systems, Inc.","Hamamatsu Photonics K.K.","Epitel, Inc.","Clew Medical , Ltd.","Tusker Medical, Inc.","Mriguidance B.V.","Beacon Biosignals, Inc.","Becton, Dickinson and Company","Oxoid Limited (Part of Thermo Fisher Scientific)","Affinity Biosensors","Physio-Control, Inc.","Camdiab , Ltd.","Hangzhou Yangshun Medical Technology Co.,Ltd","AliveCor, Inc.","OrbusNeich Medical (Shenzhen) Co., Ltd.","Clarius Mobile Health Corp.","Asahi Intecc Co., Ltd.","Asset Medikal Tasarim Sanayi VE Ticaret A.S.","ABBOTT MEDICAL","ABBOTT MEDICAL","ABBOTT MEDICAL","Huger Medical Instrument Co., Ltd.","Tyto Care , Ltd.","Natural Cycles Nordic AB","Mighty Oak Medical","Hardy Diagnostics","Hangzhou Qiantang Longyue Biotechnology Co., Ltd.","Personal Genome Diagnostics, Inc.","Exo Imaging","Evolution Spine","SI-BONE, Inc.","Subtle Medical, Inc.","Overjet, Inc.","Embecta Medical I, LLC","Diagnoly","Apple, Inc.","Apple, Inc.","Thermo Fisher Scientific","Therapixel","Thermo Fisher Scientific","Epitel, Inc.","Affinity Biosensors, LLC","Medtronic, Inc.","Icad, Inc.","Beacon Biosignals, Inc.","Thermo Fisher Scientific","Thermo Fisher Scientific","Shenzhen Dazhou Medical Technology Co., Ltd.","Thermo Fisher Scientific","Ge Medical Systems Israel, Functional Imaging","Imvaria, Inc.","Olympus Medical Systems Corporation","Caption Health, Inc.","Huntleigh Healthcare , Ltd.","Caris Life Sciences","Thermo Fisher Scientific","Thermo Fisher Scientific","Subtle Medical, Inc.","Thermo Fisher Scientific","Penumbra, Inc.","TriMed, Inc.","TriMed, Inc.","Medtronic, Inc.","Medtronic Cardiac Rhythm Disease Management","Medtronic Cardiac Rhythm Disease Management","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic Cardiac Rhythm Disease Management","Medtronic Cardiac Rhythm Disease Management","Medtronic, Inc.","Medtronic Cardiac Rhythm Disease Management","Medtronic, Inc.","Medtronic Cardiac Rhythm Disease Management","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic Cardiac Rhythm Disease Management","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Gynesonics, Inc.","Siemens Healthcare GmbH","Deski","Tyto Care , Ltd.","Ceribell, Inc.","TriMed, Inc.","Cognoa, Inc.","Thermo Fisher Scientific","Clarius Mobile Health Corp.","Biomerieux S.A.","Brightheart","Clarius Mobile Health Corp.","Hardy Diagnostics","Becton, Dickinson and Company","Tandem Diabetes Care, Inc.","Thermo Fisher Scientific","Brightheart","Empatica S.r.l.","Jeil Medical Corporation","Thermo Fisher Scientific (Oxoid Ltd.)","Biom\u001arieux","Thermo Fisher Scientific","Liofilchem, Inc.","PathAI, Inc.","Hardy Diagnostics","Moon Surgical","Thermo Fisher Scientific","Medtronic Minimed, Inc.","Mendaera, Inc.","Therapixel","Centers for Disease Control and Prevention","Beckman Coulter, Inc.","HeartFlow, Inc.","Berlin Heart, Inc.","Anumana, Inc.","Artera, Inc.","Becton, Dickinson and Company","Liofilchem","Appliedvr","Beckman Coulter, Inc.","Beckman Coulter, Inc.","Liofilchem s.r.l.","bioMerieux, Inc.","Therapixel","Thermo Fisher Scientific","Medtronic Minimed, Inc.","Velmeni, Inc.","Thermo Fisher Scientific","Springbok, Inc. (Dba Springbok Analytics)","Apple, Inc.","Diagnoly","Beijing Infervision Healthcare Medical Technology Co., Ltd.","Vitacore Industries, Inc.","Axial Medical Printing Limited","Thermo Fisher Scientific","Centers for Disease Control and Prevention","Liofilchem s.r.l.","Solventum US, LLC","Nexus Spine","Abbott Ireland","Affinity Biosensors, LLC","Zap Surgical Systems, Inc.","Imvaria, Inc.","Hardy Diagnostics","Ceribell, Inc.","A2z Radiology Ai, Inc.","Thermo Fisher Scientific (Oxoid Ltd.)","Resmed Corp","Ceribell, Inc.","Ultrasight , Ltd.","Ovesco Endoscopy AG","Ultrasight , Ltd.","Diabeloop","Csd Labs","Kp Trading Co., Ltd.","Updoc, Inc.","AliveCor, Inc.","Ethicon Endo-Surgery, LLC","Alphatec Spine, Inc.","Medtronic Minimed, Inc.","Qure.Ai Technologies","Medtronic Minimed","Ever Fortune.Ai, Co., Ltd.","Medtronic Minimed","Yadu Medical (Henan) Co., Ltd.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medtronic, Inc.","Medinice S.A.","Biosense Webster, Inc.","Exo Imaging"],["Caption Guidance","Caption Guidance","LINQ II Insertable Cardiac Monitor, Zelda AI ECG Classification System","Caption Interpretation Automated Ejection Fraction Software","Irregular Rhythm Notification Feature (IRNF)","23andMe Personal Genome Service (PGS) Genetic Health Risk Report for BRCA1/BRCA2 (Selected Variants)","Low Ejection Fraction AI-ECG Algorithm","Sterile and Non-Sterile Ultrasound Gels","Bearing nsPVA Express","NanoZoomer S360MD Slide scanner system","REMI AI Discrete Detection Module","CLEWICU System","Tula System","BoneMRI","SleepStageML","BD Phoenix Automated Microbiology System - GN Ciprofloxacin (0.01564 g/mL)","Thermo Scientific Oxoid Rezafungin Disc (5 g) RZF5","LifeScale Gram Negative Kit (LSGN) with the LifeScale AST System","LIFEPAK 35 Monitor/Defibrillator","CamAPS FX","Sunsphere","Corvair","JADE PLUS PTA Balloon Dilatation Catheter","Clarius OB AI","MINAMO blue; MINAMO viola","FlowArt Valve for Vial Access","Family of SCS IPGs","Family of DBS IPGs","Family of DRG IPGs","Single-use Video Ureterorenoscope (SVU-220US)","Tyto Insights for Crackles Detection","Natural Cycles","Acorn 3D Software (AC-SEG-4009); Acorn 3DP Model (AC-101-XX)","HardyDisk AST Cefiderocol 30g (FDC30)","Vent Vial Adapter","PGDx elio plasma focus Dx","AI Platform 2.0 (AIP002)","E3D-C Interbody System","iFuse TORQ TNT Implant System","AiMIFY (1.x)","Overjet Charting Assist","embecta Insulin Delivery System","FETOLY-HEART","Hearing Aid Feature (HAF)","Sleep Apnea Notification Feature (SANF)","The Sensititre 20 - 24 hour Haemophilus influenzae/Streptococcus pneumoniae (HP) MIC or Breakpoint Susceptibility System with ceftriaxone in the dilution range of 0.015 - 2 ug/ml.","MammoScreen BD","The Sensititre 20 - 24 hour Haemophilus influenzae/Streptococcus pneumoniae (HP) MIC or Breakpoint Susceptibility System with Meropenem in the dilution range of 0.015 - 32 ug/ml.","REMI-AI Rapid Detection Module (REMI-AI RDM)","LifeScale Gram Negative Kit (LSGN) with the LifeScale AST system","Affera Integrated Mapping System; Impedance Localization Patch Kit","ProFound Detection (V4.0)","Dreem 3S","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Daptomycin in the dilution range of 0.03-64 ug/mL","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Linezolid in the dilution range of 0.25-32 ug/mL","DZ-Tabone Intervertebral Body Fusion Device","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Ceftobiprole in the dilution range of 0.008-16 ug/mL","Clarify DL","ScreenDx","High Flow Insufflation Unit (UHI-4)","Cardiac Guidance","Sonicaid Team3","MI Cancer Seek","The Sensititre 20-24 hour Haemophilus influenzae/Streptococcus pneumoniae (HP) MIC or Breakpoint Susceptibility System with Linezolid in the dilution range of 0.12-32 ug/mL","The Sensititre 20-24 hour Haemophilus influenzae/Streptococcus pneumoniae (HP) MIC or Breakpoint Susceptibility System with penicillin in the dilution range of 0.015-32 ug/mL","SubtleHD (1.x)","The Sensititre YeastOne Susceptibility System with Micafungin in the dilution range of 0.008-16 g/mL","Ruby XL System","TriMed Elbow and Forearm System","TriMed Ankle Fixation System","Medtronic Insync Biventrical Pacing System","Concerto/Insync Sentry/Insync Maximo Implantable Cardiovascular Defibrillators with Cardiac Resynchicnization","Medtronic Selectsecure Lead Model 3830","Attain Starfix Model 4195 Lead","Medtronic Attain Ability Model 4196 Lead","Revo MRI Surescan IPG and Pacing System","Model 5071 Lead","Medtronic Micra Transcatheter Pacemaker System","Aurora EV-ICD System","Versatrax Model 7000 Universal A-V Pulse Generator","Steroid TIP(TM) Model 4503 & 4003 Transvenous Pacing","Activitrax Models 8400, 8402, 8403","Capsure SP, Capsure, Capsure 2 Leads, Excellence S, Impulse, Impulse II Excellence SS, Leads","Synergyst II Pulse Generator Models 7070 & 7071","Medtronic PCD Tachyarrhythmia Control System","Medtronic(R) Transvene Lead System","Medtronic(R) Legend Plus(TM) Pulse Generator","MEDTRONIC(R) CAPSUREFIX LEAD MODEL 4068,4067,4568","Medtronic (R) CapSure (R) EPI Pacing Lead","Medtronic.Kappa 400 Series Pacemakers","Virtuso/Entrust/Maximo/Intrinsic/Marquis/Implantable Cardiverter Defibrillators","Medtronic Kappa 700/600 Series Pulse Generators and Model 9953 Software","MEDTRONIC(R) JEWEL(R) AF 7250 DUAL CHAMBER IMPLANTABLE CARDIOVERTER DEFIBRILLATOR, MODEL 9961 PROGRAMMER APPLICATION SOF","Diva Platform Implantable Pulse Generators; PRO VIT Application Software","Sonata Transcervical Fibroid Ablation System 2.2","syngo Dynamics (Version VA41D)","HeartFocus (V.1.1.1)","Tyto Insights for Rhonchi Detection","Ceribell Seizure Detection Software","TriMed Compression Screws","Canvas Dx","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Moxifloxacin in the dilution range of 0.008-16 ug/mL","Clarius Prostate AI","ETEST Imipenem/Relebactam P. aeruginosa (IRPA) (0.008/4-128/4 g/mL)","BrightHeart View Classifier","Clarius Median Nerve AI","HardyDisk Aztreonam/Avibactam 30/20g (AZA50)","BD Phoenix Automated Microbiology System - GN Imipenem-relebactam (0.0625/4 - 16/4 g/mL)","Control-IQ+ technology","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Vancomycin in the dilution range of 0.25-128 ug/mL","BrightHeart View Classifier","Empatica Health Monitoring Platform; EmbracePlus; Empatica Care; Care Portal","FIX-L PEEK PLIF and T-PLIF System","Thermo Scientific Oxoid Aztreonam/Avibactam Disc (30/20 g) AZA50","ETEST Aztreonam/Avibactam (AZA) (0.016/4-256/4 g/mL)","The Sensititre 20-24 hour Haemophilus influenzae/Streptococcus pneumoniae (HP) MIC or Breakpoint Susceptibility System with Ceftobiprole in the dilution range of 0.008-16 ug/mL.","Ceftobiprole BPR 5 g Disc","AISight Dx","HardyDisk AST Gepotidacin 10g (GEP10)","Maestro System (REF100)","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Ciprofloxacin in the dilution range of 0.002-64 ug/mL","MiniMed 780G insulin pump","Mendaera Guidance System","MammoScreen (4)","CDC Human Influenza Virus Real-Time RT-PCR Diagnostic Panel: Influenza A/B Typing Kit (VER 2); Influenza A SubTyping Kit (VER 4); Influenza B Genotyping Kit (VER 1.1 and 2); and Influenza A/H5 Subtyping Kit (VER 4)","MicroScan Dried Gram-Negative MIC/Combo Panels with Aztreonam (AZT) (0.5-64 g/mL)","HeartFlow Analysis","EXCOR Pediatric Ventricular Assist Device","ECG-AI Low Ejection Fraction (LEF) 12-Lead algorithm (1010)","ArteraAI Prostate","BD Phoenix Automated Microbiology System - GN Eravacycline (0.125-2 g/mL)","Sulopenem SPM 2 g","RelieVRx (Pico G3)","MicroScan Dried Gram-Positive MIC/Combo Panels with Daptomycin (DAP) (0.06-32 g/mL)","MicroScan Dried Gram-Negative MIC/Combo Panels with Cefepime (CPE) (0.12-64 g/mL) (MicroScan)","MTS Sulbactam-Durlobactam  0.004/4 - 64/4 g/mL (SUD)","VITEK 2 AST-Gram Negative Cefazolin (=<1-=>32 g/mL)","MammoScreen BD","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Amikacin in the dilution range of 0.25-256 ug/mL","SmartGuard technology; Predictive Low Glucose technology","VELMENI for DENTISTS (V4D)","The Sensititre 18 - 24 hour MIC or Breakpoint Susceptibility System with Aztreonam/avibactam in the dilution range of 0.008/4 - 64/4 ug/mL","MuscleView 2.0","Hypertension Notification Feature (HTNF)","FETOLY","InferOperate Suite","Vitaform Procedural Mask - Blue (Vitaform Blue); Vitaform Procedural Mask with Shield (Vitaform-FS)","Axial3D Insight","The Sensititre 18-24 hour MIC or Breakpoint Susceptibility System with Colistin in the dilution range of 0.12-16 ug/mL","Francisella tularensis Real-time PCR assay","MTS Aztreonam-Avibactam 0.016/4 - 256/4 g/mL","Tegaderm Post-Op Transparent Antimicrobial Dressing","PressON Spinal Fixation System","Glucose2","LifeScale Gram Negative Kit (LSGN) with the LifeScale AST system","ZAP-X Radiosurgery System (ZAP-X)","Fibresolve (with PCCP)","HardyDisk AST Cefiderocol 30g (FDC30)","Ceribell Infant Seizure Detection Software","a2z-Unified-Triage","Thermo Scientific Oxoid Gepotidacin Disc (10 g) GEP10","Personalized Therapy Comfort Settings (PTCS)","Ceribell Delirium Monitor System","UltraSight Guidance","OTSCneo System Set (100.03n-14n, 100.27n-31n)","PVAD IQ Software","DBLG2","eMurmur Heart AI","KP Protective Face Mask","UpDoc","Corvair Monza","ECHELON ENDOPATH Staple Line Reinforcement (ECH60R)","SafeOp 3: Neural Informatix System","SmartGuard technology; Predictive Low Glucose technology","qXR-Detect","MiniMed Go app; Simplera sensor","Seg Pro V3 (RT-300)","SmartGuard Technology; Predictive Low Glucose Technology","Henan Yadu Level 4 Surgical Gowns (Reinforced)","Evolut PRO, PRO+, FX, FX+","Melody Transcatheter Pulmonary Valve","Avalus Bioprostheses","Harmony Transcatheter Pulmonary Valve","Freestyle Bioprosthesis","Hancock II Bioprosthesis","Mosaic Bioprosthesis","CoolCryo - Cryoapplicator for cardiac cryoablation (CC01-01); CoolCryo - Control console for cardiac cryoablation with liquid nitrogen reservoir (CC01-21)","CARTO 3 EP Navigation System V8.4","AI Platform 2.2 (AIP002)"],["2019-08-27","2020-07-17","2021-02-19","2022-09-28","2023-04-25","2022-12-02","2023-09-05","2023-09-21","2023-11-30","2023-09-25","2023-06-16","2023-09-28","2023-04-05","2023-09-25","2023-10-13","2023-12-18","2023-06-20","2021-06-11","2023-07-18","2023-08-28","2023-09-20","2023-04-07","2024-04-15","2023-12-15","2024-02-08","2023-09-22","2024-03-29","2024-03-29","2024-03-29","2024-06-07","2024-02-28","2024-04-12","2023-12-19","2024-04-18","2023-09-29","2023-06-30","2024-04-08","2024-06-26","2024-05-28","2024-02-01","2024-06-11","2023-12-20","2024-05-15","2023-12-04","2024-04-04","2024-07-03","2024-05-31","2024-07-11","2024-02-09","2024-05-10","2024-06-24","2024-02-13","2024-07-17","2024-09-04","2024-09-04","2024-04-19","2024-09-30","2024-05-13","2024-06-28","2024-11-14","2024-09-27","2024-05-14","2024-11-08","2024-09-24","2024-10-01","2024-10-15","2024-12-04","2025-01-13","2024-12-23","2024-12-26","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-02-13","2025-03-10","2024-08-27","2024-09-17","2024-11-18","2024-06-03","2024-12-20","2024-11-18","2024-09-04","2024-12-16","2025-01-30","2024-11-29","2025-01-27","2025-02-18","2025-02-18","2025-03-14","2024-09-04","2025-05-12","2024-09-11","2024-12-23","2025-03-14","2025-03-21","2024-09-20","2025-03-25","2024-10-31","2025-03-31","2025-03-31","2025-03-31","2025-04-03","2025-02-21","2024-11-29","2024-10-16","2025-01-13","2025-03-26","2025-06-24","2025-03-04","2024-11-25","2025-06-03","2025-06-18","2025-05-16","2025-01-08","2024-12-11","2025-05-23","2025-05-23","2024-11-29","2025-06-27","2025-04-21","2025-03-12","2025-02-26","2025-05-30","2025-02-21","2025-05-01","2025-01-27","2025-06-20","2025-02-10","2025-07-01","2025-07-01","2025-07-07","2025-06-17","2025-09-30","2025-07-29","2025-06-18","2025-02-12","2025-06-30","2025-09-24","2025-07-01","2025-07-30","2025-04-30","2025-05-30","2025-06-24","2025-05-07","2025-05-22","2025-07-17","2025-04-14","2025-07-22","2024-10-25","2025-09-29","2025-08-15","2025-09-12","2025-09-08","2025-11-17","2025-06-24","2025-11-24","2025-04-28","2025-11-24","2025-07-24","2025-09-29","2025-09-29","2025-09-29","2025-09-29","2025-09-29","2025-09-29","2025-09-29","2025-06-23","2025-09-17","2026-01-23"],["2020-02-07","2020-09-18","2021-06-11","2023-02-24","2023-07-21","2023-08-31","2023-09-28","2023-12-15","2023-12-21","2023-12-22","2024-01-03","2024-01-13","2024-02-01","2024-03-01","2024-03-08","2024-03-15","2024-03-22","2024-04-02","2024-04-12","2024-05-23","2024-05-30","2024-06-07","2024-06-11","2024-06-14","2024-06-21","2024-06-26","2024-06-26","2024-06-26","2024-06-26","2024-07-01","2024-07-02","2024-07-11","2024-07-12","2024-07-18","2024-07-26","2024-08-01","2024-08-05","2024-08-12","2024-08-19","2024-08-21","2024-08-27","2024-08-30","2024-09-11","2024-09-12","2024-09-13","2024-10-01","2024-10-02","2024-10-09","2024-10-17","2024-10-23","2024-11-01","2024-11-08","2024-11-22","2024-11-26","2024-12-05","2024-12-06","2024-12-19","2025-01-03","2025-01-10","2025-01-13","2025-01-15","2025-02-03","2025-02-06","2025-02-10","2025-02-10","2025-02-12","2025-02-27","2025-03-14","2025-03-19","2025-03-19","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-03-20","2025-04-02","2025-04-03","2025-04-04","2025-04-07","2025-04-09","2025-04-10","2025-04-11","2025-04-15","2025-04-16","2025-04-30","2025-05-07","2025-05-08","2025-05-15","2025-05-19","2025-05-21","2025-05-22","2025-06-05","2025-06-06","2025-06-12","2025-06-12","2025-06-12","2025-06-20","2025-06-23","2025-06-26","2025-06-26","2025-06-27","2025-06-30","2025-07-01","2025-07-02","2025-07-03","2025-07-11","2025-07-18","2025-07-18","2025-07-24","2025-07-28","2025-07-31","2025-08-08","2025-08-12","2025-08-13","2025-08-15","2025-08-20","2025-08-20","2025-08-21","2025-08-22","2025-08-28","2025-08-29","2025-09-02","2025-09-05","2025-09-09","2025-09-11","2025-09-12","2025-09-15","2025-09-17","2025-09-18","2025-09-25","2025-09-30","2025-10-02","2025-10-10","2025-10-14","2025-10-24","2025-10-27","2025-11-03","2025-11-07","2025-11-20","2025-11-21","2025-11-24","2025-12-05","2025-12-05","2025-12-08","2025-12-17","2025-12-18","2025-12-18","2025-12-19","2025-12-19","2025-12-22","2025-12-23","2026-01-09","2026-01-09","2026-01-11","2026-01-14","2026-01-16","2026-01-23","2026-01-28","2026-02-03","2026-02-04","2026-02-12","2026-02-12","2026-02-12","2026-02-12","2026-02-12","2026-02-12","2026-02-12","2026-02-13","2026-02-20","2026-02-24"],[164,63,112,149,87,272,23,85,21,88,201,107,302,158,147,88,276,1026,269,269,253,427,57,182,134,278,89,89,89,24,125,90,206,91,301,398,119,47,83,202,77,254,119,283,162,90,124,90,251,166,130,269,128,83,92,231,80,235,196,60,110,265,90,139,132,120,85,60,86,83,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,35,23,219,199,140,310,111,144,223,121,90,159,101,86,90,68,260,24,268,171,90,83,273,90,238,87,88,91,89,131,216,268,186,114,30,146,248,66,55,89,219,252,89,90,266,62,130,174,191,102,202,134,231,89,220,86,91,87,115,14,87,131,264,130,57,143,117,219,189,167,224,210,154,249,150,423,85,147,119,125,58,206,60,275,71,195,136,136,136,136,136,136,136,235,156,32],["<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MXD\" target=\"_blank\">MXD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QVD\" target=\"_blank\">QVD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QDB\" target=\"_blank\">QDB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QAZ\" target=\"_blank\">QAZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QYE\" target=\"_blank\">QYE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MUI\" target=\"_blank\">MUI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NAJ\" target=\"_blank\">NAJ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PSY\" target=\"_blank\">PSY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OMB\" target=\"_blank\">OMB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QNL\" target=\"_blank\">QNL<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJA\" target=\"_blank\">QJA<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OLZ\" target=\"_blank\">OLZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LON\" target=\"_blank\">LON<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SAN\" target=\"_blank\">SAN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MKJ\" target=\"_blank\">MKJ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=KRD\" target=\"_blank\">KRD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MHX\" target=\"_blank\">MHX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LIT\" target=\"_blank\">LIT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=IYN\" target=\"_blank\">IYN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DQX\" target=\"_blank\">DQX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LHI\" target=\"_blank\">LHI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LGW\" target=\"_blank\">LGW<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MHY\" target=\"_blank\">MHY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PMP\" target=\"_blank\">PMP<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=FGB\" target=\"_blank\">FGB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PHZ\" target=\"_blank\">PHZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PYT\" target=\"_blank\">PYT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LHI\" target=\"_blank\">LHI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SBY\" target=\"_blank\">SBY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OVE\" target=\"_blank\">OVE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OUR\" target=\"_blank\">OUR<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LLZ\" target=\"_blank\">LLZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QFG\" target=\"_blank\">QFG<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=IYN\" target=\"_blank\">IYN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SCR\" target=\"_blank\">SCR<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QZW\" target=\"_blank\">QZW<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OMB\" target=\"_blank\">OMB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SAN\" target=\"_blank\">SAN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DQK\" target=\"_blank\">DQK<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QDQ\" target=\"_blank\">QDQ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OLZ\" target=\"_blank\">OLZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MAX\" target=\"_blank\">MAX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LLZ\" target=\"_blank\">LLZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QWO\" target=\"_blank\">QWO<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=HIF\" target=\"_blank\">HIF<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=HGM\" target=\"_blank\">HGM<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PQP\" target=\"_blank\">PQP<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NGZ\" target=\"_blank\">NGZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=KRD\" target=\"_blank\">KRD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=HRS\" target=\"_blank\">HRS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=HRS\" target=\"_blank\">HRS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWP\" target=\"_blank\">LWP<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NIK\" target=\"_blank\">NIK<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVN\" target=\"_blank\">NVN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OJX\" target=\"_blank\">OJX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OJX\" target=\"_blank\">OJX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWP\" target=\"_blank\">LWP<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DTB\" target=\"_blank\">DTB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PNJ\" target=\"_blank\">PNJ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWS\" target=\"_blank\">LWS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWP\" target=\"_blank\">LWP<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVN\" target=\"_blank\">NVN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWO\" target=\"_blank\">LWO<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVN\" target=\"_blank\">NVN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVZ\" target=\"_blank\">NVZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWS\" target=\"_blank\">LWS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVY\" target=\"_blank\">NVY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVZ\" target=\"_blank\">NVZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVN\" target=\"_blank\">NVN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVN\" target=\"_blank\">NVN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVZ\" target=\"_blank\">NVZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWS\" target=\"_blank\">LWS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVZ\" target=\"_blank\">NVZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWS\" target=\"_blank\">LWS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NVZ\" target=\"_blank\">NVZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=KNF\" target=\"_blank\">KNF<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PHZ\" target=\"_blank\">PHZ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OMB\" target=\"_blank\">OMB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=HWC\" target=\"_blank\">HWC<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QPF\" target=\"_blank\">QPF<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LON\" target=\"_blank\">LON<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MWI\" target=\"_blank\">MWI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MAX\" target=\"_blank\">MAX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QKQ\" target=\"_blank\">QKQ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QZB\" target=\"_blank\">QZB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QFG\" target=\"_blank\">QFG<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=ITX\" target=\"_blank\">ITX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QDQ\" target=\"_blank\">QDQ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OZE\" target=\"_blank\">OZE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LTT\" target=\"_blank\">LTT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PJA\" target=\"_blank\">PJA<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DSQ\" target=\"_blank\">DSQ<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QYE\" target=\"_blank\">QYE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SFH\" target=\"_blank\">SFH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LON\" target=\"_blank\">LON<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QRA\" target=\"_blank\">QRA<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LTT\" target=\"_blank\">LTT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LTT\" target=\"_blank\">LTT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LON\" target=\"_blank\">LON<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MYN\" target=\"_blank\">MYN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LNH\" target=\"_blank\">LNH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SFR\" target=\"_blank\">SFR<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=IYN\" target=\"_blank\">IYN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=FXX\" target=\"_blank\">FXX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SGA\" target=\"_blank\">SGA<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JWY\" target=\"_blank\">JWY<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=FRO\" target=\"_blank\">FRO<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NKB\" target=\"_blank\">NKB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=CFR\" target=\"_blank\">CFR<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=SAN\" target=\"_blank\">SAN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=IYE\" target=\"_blank\">IYE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QWO\" target=\"_blank\">QWO<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OMB\" target=\"_blank\">OMB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QAS\" target=\"_blank\">QAS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=JTN\" target=\"_blank\">JTN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=BZD\" target=\"_blank\">BZD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NCG\" target=\"_blank\">NCG<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJU\" target=\"_blank\">QJU<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=PKL\" target=\"_blank\">PKL<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DQD\" target=\"_blank\">DQD<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=FXX\" target=\"_blank\">FXX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NDC\" target=\"_blank\">NDC<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MHX\" target=\"_blank\">MHX<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=OXC\" target=\"_blank\">OXC<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=GWF\" target=\"_blank\">GWF<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MYN\" target=\"_blank\">MYN<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=MDS\" target=\"_blank\">MDS<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QKB\" target=\"_blank\">QKB<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QJI\" target=\"_blank\">QJI<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=FYA\" target=\"_blank\">FYA<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NPT\" target=\"_blank\">NPT<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NPV\" target=\"_blank\">NPV<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWR\" target=\"_blank\">LWR<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=NPV\" target=\"_blank\">NPV<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=LWR\" target=\"_blank\">LWR<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DYE\" target=\"_blank\">DYE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DYE\" target=\"_blank\">DYE<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=GEH\" target=\"_blank\">GEH<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=DQK\" target=\"_blank\">DQK<\/a>","<a href=\"https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpcd/classification.cfm?start_search=1&productcode=QIH\" target=\"_blank\">QIH<\/a>"],["Radiology","Radiology","Cardiovascular","Radiology","Cardiovascular","Pathology","Cardiovascular","Radiology","Obstetrics / Gynecology","Pathology","Neurology","Cardiovascular","Ear, Nose, & Throat","Radiology","Neurology","Microbiology","Microbiology","Microbiology","Cardiovascular","Clinical Chemistry","Obstetrics / Gynecology","Cardiovascular","Cardiovascular","Radiology","Cardiovascular","General Hospital","Neurology","Neurology","Neurology","Gastroenterology & Urology","Anesthesiology","Obstetrics / Gynecology","Radiology","Microbiology","General Hospital","Pathology","Radiology","Orthopedic","Orthopedic","Radiology","Radiology","Clinical Chemistry","Radiology","Ear, Nose, & Throat","Anesthesiology","Microbiology","Radiology","Microbiology","Neurology","Microbiology","Cardiovascular","Radiology","Neurology","Microbiology","Microbiology","Orthopedic","Microbiology","Radiology","Radiology","Obstetrics / Gynecology","Radiology","Obstetrics / Gynecology","Molecular Genetics","Microbiology","Microbiology","Radiology","Microbiology","Cardiovascular","Orthopedic","Orthopedic","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Obstetrics / Gynecology","Radiology","Radiology","Anesthesiology","Neurology","Orthopedic","Neurology","Microbiology","Radiology","Microbiology","Radiology","Radiology","Microbiology","Microbiology","Clinical Chemistry","Microbiology","Radiology","Cardiovascular","Orthopedic","Microbiology","Microbiology","Microbiology","Microbiology","Pathology","Microbiology","General & Plastic Surgery","Microbiology","Clinical Chemistry","Radiology","Radiology","Microbiology","Microbiology","Radiology","Cardiovascular","Cardiovascular","Pathology","Microbiology","Microbiology","Physical Medicine","Microbiology","Microbiology","Microbiology","Microbiology","Radiology","Microbiology","Clinical Chemistry","Radiology","Microbiology","Radiology","Cardiovascular","Radiology","Radiology","General Hospital","Radiology","Microbiology","Microbiology","Microbiology","General & Plastic Surgery","Orthopedic","Clinical Chemistry","Microbiology","Radiology","Radiology","Microbiology","Neurology","Radiology","Microbiology","Anesthesiology","Neurology","Radiology","Gastroenterology & Urology","Radiology","Clinical Chemistry","Cardiovascular","General Hospital","Clinical Chemistry","Cardiovascular","General & Plastic Surgery","Neurology","Clinical Chemistry","Radiology","Clinical Chemistry","Radiology","Clinical Chemistry","General Hospital","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Cardiovascular","Radiology"]],"container":"<table class=\"display\">\n  <thead>\n    <tr>\n      <th> <\/th>\n      <th>Submission number<\/th>\n      <th>Sponsor<\/th>\n      <th>Device<\/th>\n      <th>Date start<\/th>\n      <th>Date decision<\/th>\n      <th>Total days<\/th>\n      <th>Product code<\/th>\n      <th>Panel<\/th>\n    <\/tr>\n  <\/thead>\n<\/table>","options":{"pageLength":189,"dom":"frti","columnDefs":[{"targets":[0,6],"className":"dt-right"},{"targets":"_all","className":"dt-left"},{"orderable":false,"targets":0},{"name":" ","targets":0},{"name":"submission_number","targets":1},{"name":"sponsor","targets":2},{"name":"device","targets":3},{"name":"date_start","targets":4},{"name":"date_decision","targets":5},{"name":"total_days","targets":6},{"name":"product_code","targets":7},{"name":"panel","targets":8}],"order":[],"autoWidth":false,"orderClasses":false,"lengthMenu":[10,25,50,100,189]}},"evals":[],"jsHooks":[]}</script>
</div>
</div>
</figure>
</div>
</div>



<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{o'leary2024,
  author = {O’Leary, Brendan},
  title = {List of {FDA} Authorized Devices with {Predetermined}
    {Change} {Control} {Plans}},
  date = {2024-08-20},
  url = {https://www.boleary.com/blog/posts/202407-pccp/latest/},
  langid = {en},
  abstract = {This page lists medical devices that have FDA authorized
    Predetermined Change Control Plans (PCCPs) based on searches of
    device authorization letters and approval order statements.}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-o'leary2024" class="csl-entry quarto-appendix-citeas">
<div class="">B.
O’Leary, <span>“List of FDA authorized devices with Predetermined Change
Control Plans,”</span> Aug. 20, 2024. <a href="https://www.boleary.com/blog/posts/202407-pccp/latest/">https://www.boleary.com/blog/posts/202407-pccp/latest/</a></div>
</div></div></section></div> ]]></description>
  <category>datasets</category>
  <category>FDA</category>
  <category>medical devices</category>
  <guid>https://www.boleary.com/blog/posts/202408-pccp/latest/</guid>
  <pubDate>Tue, 20 Aug 2024 15:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202408-pccp/latest/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>A transatlantic take on medical device regulation</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202407-rsm-podcast/</link>
  <description><![CDATA[ 




<p>I enjoyed having this conversation with <a href="https://www.linkedin.com/in/dr-annabelle-painter/">Dr.&nbsp;Annabelle Painter</a> and <a href="https://www.linkedin.com/in/johan-ordish/">Johan Ordish</a> about AI and medical device regulation. The <a href="https://podcasters.spotify.com/pod/show/rsmdhcouncil/episodes/Regulation-Tips-from-ex-MHRA--FDA-regulators--With-Johan-Ordish-ex-MHRA-and-Brendan-OLeary-ex-FDA-e2lsclu/a-abe3s1o">RSM Digital Health Section Podcast</a> is always worth a listen, and you should subscribe.</p>
<div style="text-align: center;">
<iframe src="https://podcasters.spotify.com/pod/show/rsmdhcouncil/embed/episodes/Regulation-Tips-from-ex-MHRA--FDA-regulators--With-Johan-Ordish-ex-MHRA-and-Brendan-OLeary-ex-FDA-e2lsclu/a-abe3s1o" height="102px" width="400px" frameborder="0" scrolling="no">
</iframe>
</div>
<p><a href="https://www.linkedin.com/posts/brendanoleary_regulation-tips-from-ex-mhra-fda-regulators-activity-7219026277700116480-WJmx">This post originally appeared on LinkedIn</a>.</p>



 ]]></description>
  <category>digital health</category>
  <category>FDA</category>
  <guid>https://www.boleary.com/blog/posts/202407-rsm-podcast/</guid>
  <pubDate>Tue, 16 Jul 2024 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202407-rsm-podcast/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Listener Effort is a promising digital measure in ALS research</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202406-listener-effort/</link>
  <description><![CDATA[ 




<p><a href="https://www.medrxiv.org/content/10.1101/2024.05.31.24308140v1">This preprint</a> <span class="citation" data-cites="bingham-2024">[1]</span> covers several important advances in the development of new digital-enabled measures of ALS progression:</p>
<ul>
<li><p>ALS symptoms can result in speech that can be difficult to understand (dysarthria)</p></li>
<li><p>“Listener effort” is a well-established measure related to dysarthria in speech-language pathology</p></li>
<li><p>Speech-language pathologists can assess listener effort reliably and rapidly</p></li>
<li><p>Listener effort correlates with well-established measures of ALS progression in individuals who have bulbar symptoms (e.g., symptoms that affect speech and swallowing)</p></li>
<li><p>Speech-language pathologist assessment of listener effort may help measure disease progression in these individuals with more granularity than can be provided by traditional measures alone</p></li>
<li><p>Machine learning models trained to measure listener effort also show promising performance</p></li>
</ul>
<p>A key quote:</p>
<blockquote class="blockquote">
<p>Not only is [listener effort] a reliable, quantitative endpoint of bulbar function, it is also an inherently clinically meaningful endpoint. The effect of dysarthria on communication and, in turn, quality of life, is well accepted in clinical settings. The EFNS-ALS guidelines suggest assessment of communication and treatment with communication support systems. People living with ALS worry about losing the ability to communicate. Decreased speech function on the ALSFRS-R question 1 (speech), is associated with poorer quality of life (QoL) on the ALS-Specific QoL Questionnaire (ALSSQoL). Furthermore, augmentative communication devices stabilize or improve both the quality of life and mood in people with dysarthria due to ALS Similar impacts of progressive dysarthria on quality of life have been demonstrated in Parkinson’s disease and other neurological disorders.<sup>1</sup></p>
</blockquote>
<p>The preprint is worth reading, and the data is available to other researchers through <a href="https://www.everythingals.org/available-data">Everything ALS</a>.</p>
<p><a href="https://www.medrxiv.org/content/10.1101/2024.05.31.24308140v1l"><img src="https://www.boleary.com/blog/posts/202406-listener-effort/image.webp" class="img-fluid"></a></p>
<p><a href="https://www.linkedin.com/posts/brendanoleary_listener-effort-quantifies-clinically-meaningful-activity-7203432923901898752-T92-?utm_source=share&amp;utm_medium=member_desktop">A version of this post originally appeared on LinkedIn</a>.</p>





<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-bingham-2024" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">I. N. Bingham <em>et al.</em>, <span>“Listener effort quantifies clinically meaningful progression of dysarthria in people living with amyotrophic lateral sclerosis,”</span> <em>medRxiv</em>, 2024, doi: <a href="https://doi.org/10.1101/2024.05.31.24308140">10.1101/2024.05.31.24308140</a>.</div>
</div>
</div></section><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>See the preprint for additional context and references.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section></div> ]]></description>
  <category>FDA</category>
  <category>digital health</category>
  <category>AI/ML</category>
  <category>drugs</category>
  <guid>https://www.boleary.com/blog/posts/202406-listener-effort/</guid>
  <pubDate>Mon, 03 Jun 2024 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202406-listener-effort/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>“We don’t have a national active monitoring system for pandemic potential diseases, and it’s kind of crazy…”</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202405-pandemic-potential/</link>
  <description><![CDATA[ 




<p>Steven Roach of the Food Animal Concerns Trust, as quoted in STAT’s article on the <a href="https://www.statnews.com/2024/05/14/bird-flu-dairy-cattle-federal-aid-turf-war-usda-fda/">USDA and FDA turf battles that are hampering responses to outbreaks like H5N1 bird flu</a>:</p>
<blockquote class="blockquote">
<p>I would say the biggest problem is we don’t have a national active monitoring system for pandemic potential diseases, and it’s kind of crazy that we don’t after Covid.</p>
</blockquote>
<p><a href="https://www.statnews.com/2024/05/14/bird-flu-dairy-cattle-federal-aid-turf-war-usda-fda/"><img src="https://www.boleary.com/blog/posts/202405-pandemic-potential/image.webp" class="preview-image img-fluid"></a></p>
<p><a href="https://www.linkedin.com/posts/brendanoleary_usda-fda-turf-battles-hamper-responses-to-activity-7196190817785364480-kq8b">This post originally appeared on LinkedIn</a>.</p>



 ]]></description>
  <category>FDA</category>
  <guid>https://www.boleary.com/blog/posts/202405-pandemic-potential/</guid>
  <pubDate>Tue, 14 May 2024 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202405-pandemic-potential/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>EHRs bury critical information about hearing status</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202403-can-you-hear-me/</link>
  <description><![CDATA[ 




<p>We rely on Electronic Health Records (EHRs) to inform the care team about an individual’s hearing loss or deafness. EHR systems bury this critical information, and care teams need more conspicuous and persistent indicators both within and beyond the EHR. In <a href="https://jamanetwork.com/journals/jamainternalmedicine/article-abstract/2815258">this JAMA Internal Medicine Viewpoint</a>, Dianne O’Leary and Timothy O’Leary highlight the alarming patient safety and health equity implications of the current approach and offer solutions. <span class="citation" data-cites="olearyhearing2024">[1]</span></p>
<p><a href="https://jamanetwork.com/journals/jamainternalmedicine/article-abstract/2815258"><img src="https://www.boleary.com/blog/posts/202403-can-you-hear-me/box.webp" class="img-fluid"></a></p>
<p><a href="https://www.linkedin.com/posts/brendanoleary_communicating-with-patients-with-hearing-activity-7170088383069802498-2VyM">This post originally appeared on LinkedIn</a>.</p>




<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-olearyhearing2024" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">D. P. O’Leary and T. J. O’Leary, <span>“<span class="nocase">Communicating With Patients With Hearing Loss or Deafness—Can You Hear Me?</span>”</span> <em>JAMA Internal Medicine</em>, Feb. 2024, doi: <a href="https://doi.org/10.1001/jamainternmed.2023.8563">10.1001/jamainternmed.2023.8563</a>.</div>
</div>
</div></section></div> ]]></description>
  <category>digital health</category>
  <category>ehr</category>
  <category>health equity</category>
  <guid>https://www.boleary.com/blog/posts/202403-can-you-hear-me/</guid>
  <pubDate>Sun, 03 Mar 2024 05:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202403-can-you-hear-me/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Downloadable spreadsheets and graphs of the FDA’s medical device review performance metrics</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/mdufa/202401/</link>
  <description><![CDATA[ 




<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>Each quarter, the FDA publishes <a href="https://www.fda.gov/industry/medical-device-user-fee-amendments-mdufa/mdufa-reports">public performance reports</a> on regulatory activities associated with the medical device review program. These reports are published as PDFs, which can make it difficult to analyze and use the data. And there’s <em>a lot</em> of data. For example, the most recent MDUFA IV performance report includes more than 14,000 individual performance metrics. When finished, the FDA is on track to publish more than 13,000 individual performance metrics from the MDUFA 5 program. For contrast, the MDUFA 2 program only resulted in about 240 published metrics. To make this information easier to access, analyze, and use, I’ve written software to scrape the PDF reports and extract most of the data.</p>
<p>You can download the resulting datasets below. They include more than 24,600 performance metrics.</p>
<p>This post also provides:</p>
<ul>
<li>A plot of 510(k) volume by review group over time, including projections of future 510(k) volume</li>
<li>A plot of which 510(k) receipt cohorts are associated with final data</li>
<li>Plots that show how long 510(k)s spend “under review” with different review groups at the FDA</li>
<li>A plot that shows how long 510(k)s spend “on hold” while applicants respond to the FDA’s questions by FDA review group</li>
<li>Plots that show how long the 510(k) review process takes overall by FDA review group</li>
<li>Plots that show about how often different FDA review groups make substantive requests for additional information from 510(k) applicants</li>
<li>A plot that shows the rates at which different FDA review groups have cleared 510(k)s over time</li>
</ul>
<p>These plots are based on the information in the December 10, 2018 MDUFA 3 report and the November 16, 2023 MDUFA 4 and MDUFA 5 reports. <span class="citation" data-cites="mdufa3report201812">[1]</span> <span class="citation" data-cites="mdufa4report202311">[2]</span> <span class="citation" data-cites="mdufa5report202311">[3]</span> Information about various factors that may affect this data and a glossary of MDUFA jargon are also included in this post.</p>
</section>
<section id="downloads" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="downloads">Downloads</h2>
<p>You can <a href="202401_oleary_mdufa_figures.pdf">download all of the figures in this post as a single PDF</a> that should print well on letter paper. Throughout this post, the captions for each figure include links to CSV files that contain the data used in the figures.</p>
<div class="page-columns page-full"><p>You can access data from the FDA’s MDUFA performance reports in spreadsheet form here: </p><div class="no-row-height column-margin column-container"><span class="margin-aside"><strong>FDA Regulatory Expertise</strong>:<br>
I provide digital health and medical device regulatory strategy solutions to technology developers, healthcare organizations, trade and professional associations, and others. <a href="https://calendly.com/olearybrendan/mtc-mdufa-202401/" target="_blank">Book a consultation</a>.</span></div></div>
<ul>
<li>
<a href="data/mdufa2.xlsx">mdufa2.xlsx</a> (File size: 39.8K)
</li>
<li>
<a href="data/mdufa3.xlsx">mdufa3.xlsx</a> (File size: 491.5K)
</li>
<li>
<a href="data/mdufa4.xlsx">mdufa4.xlsx</a> (File size: 904.3K)
</li>
<li>
<a href="data/mdufa5.xlsx">mdufa5.xlsx</a> (File size: 795.7K)
</li>
</ul>
<p>Aside from some spot-checks, the datasets provided here have had limited verification and may include some errors.</p>
<p>In addition, data from some tables in the FDA’s MDUFA performance reports are missing from these datasets.</p>
<p>Use this information at your own risk and verify information using the reports provided directly by the FDA. To facilitate this, each data point provided includes information about its source, including a link to the FDA report from which it came, the relevant page number, and more. If you find a problem in these datasets, <a href="https://github.com/bjoleary/mdufa/issues">please report the problem here</a>.</p>
<p>If you’re familiar with the R programming language, you can also access these datasets using the <a href="https://github.com/bjoleary/mdufa/">mdufa</a> package, which is available on GitHub. You are welcome to use and modify this software, including for commercial purposes, under the <a href="https://opensource.org/license/mit/">MIT license</a>. (In addition, this post is under the CC BY license, which permits sharing and adaptation, including commercially.)</p>
</section>
<section id="context" class="level2">
<h2 class="anchored" data-anchor-id="context">Context for these datasets</h2>
<p>This post includes visualizations of performance metrics related to the “Medical Device User Fee Amendments” or “MDUFA.” Every five years since fiscal year (FY) 2003, Congress has authorized (or re-authorized) the FDA to collect user fees to support the FDA’s regulatory activities related to medical devices. Each of these five-year periods has been named sequentially: MDUFA or MDUFA I (FY 2003 through FY 2007), MDUFA II (FY 2008 through FY 2012), MDUFA III (FY 2013 through FY 2017), MDUFA IV (FY 2018 through FY 2022) and MDUFA V (FY 2023 through FY 2027).</p>
<p>This post will use “MDUFA 1,” “MDUFA 2,” “MDUFA 3,” “MDUFA 4,” and “MDUFA 5” to refer to these periods. The term “MDUFA” will be used to refer to any or all of these periods.</p>
<p>Before each re-authorization, the FDA has negotiated with representatives from the medical device industry, patient representatives, and other members of the public to arrive at a set of commitments that can be kept given the additional resources user fees provide. This results in a “MDUFA Commitment Letter,” a draft of which is provided to Congress in advance of re-authorization.</p>
<p>As a result of these commitments, since at least MDUFA 2, the FDA has published quarterly and annual “MDUFA Reports” that include performance metrics related to the FDA’s medical device regulatory activities with a particular focus on review times for premarket submissions for medical devices.</p>
<section id="definitions" class="level3">
<h3 class="anchored" data-anchor-id="definitions">Definitions</h3>
<p>The definitions below are based on the information in the MDUFA 5 Commitment Letter with some simplifications. <span class="citation" data-cites="mdufa52022">[4]</span></p>
<dl>
<dt>Applicant</dt>
<dd>
The person or organization providing a 510(k) or other submission to the FDA. <span class="citation" data-cites="mdufa52022">[4, p. 32]</span>
</dd>
<dt>FDA Days</dt>
<dd>
The number of calendar days that a submission was “under review” at the FDA, not including:
</dd>
</dl>
<ul>
<li>any time the FDA spent reviewing information that could not be accepted or filed because it was not administratively complete, or</li>
<li>any time the FDA spent waiting for an applicant to respond to a substantive request for additional information. <span class="citation" data-cites="mdufa52022">[4, p. 32]</span></li>
</ul>
<dl>
<dt>Fiscal Year (FY):</dt>
<dd>
A period beginning on October 1 and ending on the following September 30. For example, the period between 2023-10-01 and 2024-09-30 is “FY 2024.”
</dd>
<dt>Industry Days</dt>
<dd>
The number of calendar days an administratively complete submission was “on hold” while the FDA waited for an applicant to respond to a substantive request for additional information.
</dd>
<dt>MDUFA Decision</dt>
<dd>
For 510(k)s, a decision that a device is substantially equivalent (“SE” or “cleared”) and can be marketed in the U.S. or a decision that a device is not substantially equivalent (“NSE” or “not cleared”) and cannot be marketed in the U.S. <span class="citation" data-cites="mdufa52022">[4, pp. 32–33]</span> Throughout this post, this is referred to simply as a “decision.”
</dd>
<dt>MDUFA Performance Report Cutoff Date</dt>
<dd>
The date as of which the performance metrics in a MDUFA performance report were calculated. For the data included in this post, those dates are 2018-09-30 for MDUFA 3 and 2023-09-30 for MDUFA 4 and MDUFA 5. <span class="citation" data-cites="mdufa3report201812">[1, p. 1]</span> <span class="citation" data-cites="mdufa4report202311">[2, p. 1]</span> <span class="citation" data-cites="mdufa5report202311">[3, p. 1]</span>
</dd>
<dt>Review Cycle</dt>
<dd>
A period of FDA Days during which an accepted submission is “under review” at the FDA that is terminated by either a substantive request for additional information or a decision. For example, a submission that is cleared by the FDA without going “on hold” has one review cycle. A submission that the FDA places “on hold” through a substantive request for additional information, is then supplemented by the applicant with additional information, and then goes “under review” for a second time at the FDA before a final decision is made has two review cycles.<sup>1</sup> <!--- TODO CHECK REFERENCE --->
</dd>
<dt>Total Days</dt>
<dd>
The number of calendar days from the FDA’s receipt of an administratively complete submission to a MDUFA Decision. When calculating summary statistics on this metric, the FDA excludes certain outlier submissions. The criteria that determine which outliers should be excluded change from year-to-year. <span class="citation" data-cites="mdufa52022">[4, p. 35]</span>
</dd>
</dl>
<p><img src="https://latex.codecogs.com/png.latex?%5Ctext%7BTotal%20Days%7D%20=%20%5Ctext%7BFDA%20Days%7D%20+%20%5Ctext%7BIndustry%20Days%7D"></p>
</section>
<section id="lagging-indicators" class="level3">
<h3 class="anchored" data-anchor-id="lagging-indicators">Metrics based on receipt cohorts are lagging indicators</h3>
<p>Performance metrics included in the MDUFA reports are calculated across submissions grouped by the fiscal year in which they were received. These groups of submissions are called “receipt cohorts.” Grouping submissions by the fiscal year in which the FDA made a decision on the submissions results in groups of submissions called “decision cohorts.”</p>
<p>As of this writing, the FY 2023 510(k) receipt cohort includes many submissions for which the FDA has not made a final decision. This means that the FY 2023 510(k) receipt cohort is “open.” See Figure&nbsp;2, which shows that, as of the most recent MDUFA 5 report, as many as 40% or more of the 510(k)s received in FY 2023 by some of the FDA’s medical device review groups remain under review. As review days continue to accumulate for these 510(k)s, the performance metrics that are based on those review times will change as well. Performance metrics calculated across open receipt cohorts continue to change until those cohorts “close,” which happens when each submission in the receipt cohort has received a decision.</p>
<p>Recent receipt cohorts are typically open. This means that performance metrics associated with these receipt cohorts, on their own, do not provide a particularly accurate indicator of final performance on those cohorts. It takes a while for them to stabilize. Before they stabilize, performance metrics associated with open receipt cohorts provide overly optimistic estimates of performance.<sup>2</sup></p>
<p>While this post can help you understand how the FDA performed on closed receipt cohorts from past years, the MDUFA reports and this post will not provide you with much useful information about how things are going at the FDA right now, and data from open receipt cohorts should be interpreted with caution.</p>
</section>
<section id="reorganizations-impacted-these-datasets" class="level3">
<h3 class="anchored" data-anchor-id="reorganizations-impacted-these-datasets">Reorganizations impacted these datasets</h3>
<p>MDUFA 3 data is included for some review groups in the figures below and is not included for others. This is a result of reorganizations at the FDA. A major reorganization occurred <a href="https://public4.pagefreezer.com/browse/FDA/27-02-2023T09:10/https://www.fda.gov/about-fda/center-devices-and-radiological-health/reorganization-center-devices-and-radiological-health">on September 30, 2019</a>, and a subsequent, smaller reorganization occurred later.</p>
<p>In some cases, the reorganizations took premarket review groups that already existed and were included in the MDUFA 3 reports and renamed them.<sup>3</sup> This is essentially the case for OHT2, OHT5, OHT6, and OHT8, meaning that data for those review groups from the MDUFA 5 and MDUFA 4 reports can be aligned with data from the MDUFA 3 reports for corresponding review groups.</p>
<p>In other cases, the reorganizations took review groups that were included in the MDUFA 3 reports and divided up and separated their subgroups. This is essentially the case for OHT1, OHT3, and OHT4, meaning that MDUFA 5 and MDUFA 4 report data for those review groups cannot be aligned with MDUFA 3 report data.</p>
<p>In the case of OHT7, the reorganizations combined several review groups that already existed and were included in the MDUFA 3 reports into one larger group that is referenced in the MDUFA 4 and MDUFA 5 reports. This means that some data, such as the number of submissions received, can be summed across the corresponding groups in the MDUFA 3 reports to align the data with the larger organization that is included in the MDUFA 4 and MDUFA 5 reports. See, for example, Figure&nbsp;1. In other cases, aligning the data is more complex. In still other cases, it is not possible to align the data. Other than submission volume in Figure&nbsp;1, no additional efforts were made to align OHT7 data in the MDUFA 5 and MDUFA 4 reports to data from the MDUFA 3 reports for this post.</p>
<p>While I was not able to identify a reference that maps the review groups included in the MDUFA 3 reports to those used in the MDUFA 4 and MDUFA 5 reports, Table&nbsp;1 shows how I mapped the groups for the purposes of this post based on the names of the old review groups and the names of the new review groups.</p>
<div class="cell tbl-column-page-inset" data-tbl-column="page-inset">
<div id="tbl-mapping-oht" class="cell tbl-column-page-inset quarto-float quarto-figure quarto-figure-center anchored" data-tbl-column="page-inset">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-mapping-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Mapping of review groups in the MDUFA 3 reports to review groups in the MDUFA 4 and MDUFA 5 reports.
</figcaption>
<div aria-describedby="tbl-mapping-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<div class="table-responsive">
<table class="table table-striped table-hover table-condensed do-not-create-environment cell tbl-column-page-inset caption-top table-sm small">
<colgroup>
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
<col style="width: 25%">
</colgroup>
<thead>
<tr class="header">
<th style="text-align: left;" data-quarto-table-cell-role="th">MDUFA 3 report review group (Old)</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Corresponding MDUFA 4 and MDUFA 5 report review group(s) (New)</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Relationship between old and new review groups</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">MDUFA 3 data available in figures</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;"><strong>DAGRID</strong>: Division of Anesthesiology, General Hospital, Respiratory, Infection Control, and Dental Devices</td>
<td style="text-align: left;"><strong>OHT1</strong>: Ophthalmic, Anesthesia, Respiratory, ENT, and Dental Devices<br>
<strong>OHT3</strong>: GastroRenal, ObGyn, General Hospital, and Urology Devices<br>
<strong>OHT4</strong>: Surgical and Infection Control Devices</td>
<td style="text-align: left;">Old review group was split and is part of more than one new review group</td>
<td style="text-align: left;">No</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DCD</strong>: Division of Cardiovascular Devices</td>
<td style="text-align: left;"><strong>OHT2</strong>: Cardiovascular Devices</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DCTD</strong>: Division of Chemistry and Toxicology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Only in Figure 1</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DIHD</strong>: Division of Immunology and Hematology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Only in Figure 1</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DMD</strong>: Division of Microbiology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Only in Figure 1</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DMGP</strong>: Division of Molecular Genetics and Pathology Devices</td>
<td style="text-align: left;"><strong>OHT7</strong>: In Vitro Diagnostics</td>
<td style="text-align: left;">Old review group is a subset of new review group</td>
<td style="text-align: left;">Only in Figure 1</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DNPMD</strong>: Division of Neurological and Physical Medicine Devices</td>
<td style="text-align: left;"><strong>OHT5</strong>: Neurological and Physical Medicine Devices</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DOD</strong>: Division of Orthopedic Devices</td>
<td style="text-align: left;"><strong>OHT6</strong>: Orthopedic Devices</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DOED</strong>: Division of Ophthalmic and Ear, Nose, and Throat Devices</td>
<td style="text-align: left;"><strong>OHT1</strong>: Ophthalmic, Anesthesia, Respiratory, ENT, and Dental Devices</td>
<td style="text-align: left;">Old review group was combined with parts of another old review group to form new review group</td>
<td style="text-align: left;">No</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DRGUD</strong>: Division of Reproductive, Gastro-Renal, and Urological Devices</td>
<td style="text-align: left;"><strong>OHT3</strong>: GastroRenal, ObGyn, General Hospital, and Urology Devices</td>
<td style="text-align: left;">Old review group was combined with part of another old review group to form new review group</td>
<td style="text-align: left;">No</td>
</tr>
<tr class="odd">
<td style="text-align: left;"><strong>DRH</strong>: Division of Radiological Health</td>
<td style="text-align: left;"><strong>OHT8</strong>: Radiological Health</td>
<td style="text-align: left;">Old review group and new review group are equivalent</td>
<td style="text-align: left;">Yes</td>
</tr>
<tr class="even">
<td style="text-align: left;"><strong>DSD</strong>: Division of Surgical Devices</td>
<td style="text-align: left;"><strong>OHT4</strong>: Surgical and Infection Control Devices</td>
<td style="text-align: left;">Old review group was combined with part of another old review group to form new review group</td>
<td style="text-align: left;">No</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</figure>
</div>
</div>
</section>
<section id="the-covid-19-public-health-emergency-impacted-these-datasets" class="level3">
<h3 class="anchored" data-anchor-id="the-covid-19-public-health-emergency-impacted-these-datasets">The COVID-19 Public Health Emergency impacted these datasets</h3>
<p>A Public Health Emergency (PHE) was declared for COVID-19 beginning on 2020-01-27 (FY 2020 Q2) and was renewed until it expired on 2023-05-11 (FY 2023 Q3). Responding to the PHE had a major impact on the FDA’s work. <a href="https://www.fda.gov/emergency-preparedness-and-response/mcm-legal-regulatory-and-policy-framework/faqs-what-happens-euas-when-public-health-emergency-ends">Other related declarations and determinations also impacted and continue to impact the FDA’s work</a>. To acknowledge the impact of the PHE on the FDA’s work, graphs in this post that plot metrics over time also show the PHE as a shaded region underlaying data points associated with FY 2020 through FY 2023.</p>
</section>
<section id="exemptions-impacted-these-datasets" class="level3">
<h3 class="anchored" data-anchor-id="exemptions-impacted-these-datasets">Exemptions impacted these datasets</h3>
<p>The FDA exempts lower risk and well characterized types of medical devices from 510(k) review from time to time. Examples include a large round of exemptions that occurred in 2017 and smaller rounds of exemptions in 2018 and 2020. <span class="citation" data-cites="fdaexempt2017">[8]</span> <span class="citation" data-cites="fdaexempt2018">[9]</span> <span class="citation" data-cites="fdaexempt2020">[10]</span></p>
<p>Exemptions can decrease the volume of 510(k)s that a review group receives. 510(k)s for medical devices that are not exempted and remain in the 510(k) program may include more complex or less well-characterized technologies that are more challenging to review. The review process for these 510(k)s may take more time on average, and this may affect performance metrics over time.</p>
</section>
<section id="these-datasets-focus-on-efficiency-not-quality" class="level3">
<h3 class="anchored" data-anchor-id="these-datasets-focus-on-efficiency-not-quality">These datasets focus on efficiency, not quality</h3>
<p>The performance metrics in the MDUFA reports primarily focus on how long things take. Information about interim and final submission outcomes – such as the rate at which 510(k)s result in requests for additional information and the rate at which 510(k)s result in a medical device being cleared for market in the United States – are also included. More comprehensive information about submission and review quality, meaning how good a job applicants do in preparing submissions and how good a job the FDA does in reviewing them, is not included in the MDUFA reports or this post.</p>
<p>To provide the public with some additional insight into quality and other topics, the MDUFA commitments have included “independent assessments” by a government contractor. The most recent one resulted in a report published in 2021. <span class="citation" data-cites="bahia2021">[11]</span> Historically, the FDA and the GAO have also performed assessments. <span class="citation" data-cites="fdareviewtimes2011">[12]</span> <span class="citation" data-cites="gaoreviewtime2012">[6]</span></p>
<p><strong>Therefore, efficiency metrics associated with the amount of time submissions spend going through the FDA review process, especially when well-established submission and review quality metrics are not readily available, provide an incomplete picture of the FDA’s medical device review programs. In addition, differences in submission or review quality over time or across product areas may affect these metrics.</strong></p>
</section>
</section>
<section id="k-program-metrics" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="k-program-metrics">510(k) program metrics</h2>
<p>The FDA provides visualizations of many 510(k) program performance metrics for the Center for Devices and Radiological Health (CDRH) as a whole, but the FDA does not provide these for review groups within CDRH. <span class="citation" data-cites="mdufa5report202311">[3, pp. 102–111]</span> This post provides visualizations for OHT1 through OHT8.</p>
<section id="volume" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="volume">Submission volume</h3>
<p>The MDUFA reports include information about submissions received over time. This can be plotted, and future submission volume can be projected. The projections provided here are somewhat naive: They are linear models based on fiscal year and review organization. This means that, for example, the OHT4 projections do not account for any impact that the end of the PHE may have on submission volume, and the OHT7 projections do not account for any impact that the <a href="https://www.fda.gov/news-events/press-announcements/fda-proposes-rule-aimed-helping-ensure-safety-and-effectiveness-laboratory-developed-tests">FDA’s proposed rule on Laboratory Developed Tests</a> or Procedures may have on submission volume.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-volume-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-volume-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-volume-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-volume-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: 510(k) submission volume by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/volume-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="cohort-status" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="cohort-status">Cohort closure percentage</h3>
<p>See this section above for a discussion of what it means for a receipt cohort to be open or closed. As expected, Figure&nbsp;2 shows that the FY 2023 510(k) receipt cohort had many open 510(k)s as of the most recent MDUFA performance report, meaning that performance metrics calculated on that cohort and shown in the figures throughout this post are likely to change substantially in future reports.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-cohort-closure-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-cohort-closure-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-cohort-closure-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cohort-closure-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: 510(k) cohort closure percentage by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/cohort-closure-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="fdadays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="fdadays">FDA Days metrics</h3>
<p>The MDUFA performance reports include summary statistics about how long reviews take across the population of 510(k)s received. In particular, the reports provide quintiles (the 20th, 40th, 60th, and 80th percentiles) of FDA Days, Industry Days, and Total Days. Quintiles are an unusual choice for summary statistics about a distribution, and I’m not aware of a standard approach to plotting them. They can’t be plotted with <a href="https://vita.had.co.nz/papers/boxplots.html">boxplots</a>, for example, which use quartiles. The visualizations in this post are inspired by boxplots though: They use line segments to show the percentile metrics and points to show averages.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-fdadays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-fdadays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-fdadays-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-fdadays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;3: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/fdadays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>The PHE had a major impact on the data in Figure&nbsp;3 for OHT7. Figure&nbsp;4 shows the same data within 0 through 90 FDA Days, making it easier to see the data associated with OHTs 1-6 and 8.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-fdadays-oht-clipped" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-fdadays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-fdadays-oht-clipped-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-fdadays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;4: FDA Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 90 FDA Days are not shown. <a href="data/fdadays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="otp" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="otp">FDA Days on-time performance</h3>
<p>The FDA has 90 FDA Days to review a 510(k).<sup>4</sup> The percentage of 510(k)s reviewed within this time frame can be thought of as “on-time performance,” similar to how <a href="https://en.wikipedia.org/wiki/On-time_performance">the metric is used in transportation</a>. The MDUFA reports include on-time performance metrics for the 510(k) program, shown in Figure&nbsp;5.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-otp-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-otp-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-otp-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-otp-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;5: FDA Days on-time performance for the 510(k) program by review group and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/otp-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="industrydays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="industrydays">Industry Days metrics</h3>
<p>By regulation, applicants have 30 days to respond to a request for additional information from the FDA before the FDA may consider a 510(k) to have been “withdrawn” by the applicant.<sup>5</sup> By policy, the FDA allows up to 180 days for an applicant to respond. <span class="citation" data-cites="fdapmnprocedures2022">[13, p. 9]</span> Figure&nbsp;6 provides information about how long these responses have taken by fiscal year and by the FDA review group with which an applicant is interacting.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-industrydays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-industrydays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-industrydays-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-industrydays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;6: Industry Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/industrydays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="totaldays" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="totaldays">Total Days metrics</h3>
<p>As described above, the FDA has 90 FDA Days to review a 510(k), and applicants have 180 Industry Days to respond to questions the FDA raises in the course of that review. This means that the total amount of time available for a 510(k) to go through the review process if these activities are completed on time is 270 Total Days. Figure&nbsp;7 and Figure&nbsp;8 show how long the process has taken by fiscal year and by FDA review group.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-totaldays-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-totaldays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-totaldays-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-totaldays-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;7: Total Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. <a href="data/totaldays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>The PHE had a major impact on the data in Figure&nbsp;7 for OHT7. Figure&nbsp;8 shows the same data within 0 through 270 Total Days, making it easier to see the data associated with OHTs 1-6 and 8.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-totaldays-oht-clipped" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-totaldays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-totaldays-oht-clipped-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-totaldays-oht-clipped-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;8: Total Days performance metrics by OHT and fiscal year received as of the corresponding MDUFA report cutoff dates. Values above 270 Total Days are not shown. <a href="data/totaldays-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="cycles" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="cycles">Review cycle metrics</h3>
<p>The FDA reports the average number of review cycles for 510(k)s, which is related to the rate at which the FDA places 510(k)s “on hold” to request additional information from applicants.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-cycles-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-cycles-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-cycles-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cycles-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;9: Number of review cycles for 510(k)s over time as of the corresponding MDUFA report cutoff dates. <a href="data/cycles-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
<p>While the FDA occasionally places a single 510(k) on hold more than once, this has been uncommon since at least 2014. <span class="citation" data-cites="fdacommunicationtypes2014">[14, p. 8]</span> It is not quite correct to assume that 510(k)s cannot have more than 2 review cycles, but it is a useful approximation for the purpose of estimating the rate at which the FDA places 510(k)s “on hold” to request additional information. With this assumption, that proportion is the Average Number of Review Cycles minus one.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-ainn-rate-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-ainn-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-ainn-rate-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-ainn-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;10: Estimated rate at which additional information is requested for 510(k)s over time based on the average number of review cycles and an assumption that 510(k)s do not go on hold more than once. <a href="data/cycles-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
<section id="decisions" class="level3 page-columns page-full">
<h3 class="anchored" data-anchor-id="decisions">Decision metrics</h3>
<p>In the MDUFA performance reports, the rates at which submissions receive an “SE” decision or receive an “NSE” decision are reported as percentages of submissions that receive either an SE or an NSE decision. The rates at which submissions are withdrawn by applicants or deleted by the FDA because an applicant did not respond to a request for additional information in a timely manner are reported as percentages of all accepted submissions. Because two different denominators are used to calculate these percentages in the MDUFA reports, adding the four percentages together results in a total that exceeds 100%.</p>
<p>This makes it difficult to understand what percentage of 510(k)s received by the FDA were cleared for market over time based on the rates in the MDUFA reports. However, the MDUFA reports also include the counts of submissions that received each of these decisions. Figure&nbsp;11 shows the rates of cleared and not cleared (including withdrawn and deleted) 510(k)s for each OHT.</p>
<div class="cell page-columns page-full">
<div class="cell-output-display page-columns page-full">
<div id="fig-decision-rate-oht" class="quarto-float quarto-figure quarto-figure-center anchored page-columns page-full">
<figure class="quarto-float quarto-float-fig figure page-columns page-full">
<div aria-describedby="fig-decision-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca" class="page-columns page-full">
<img src="https://www.boleary.com/blog/mdufa/202401/index_files/figure-html/fig-decision-rate-oht-1.png" class="img-fluid figure-img column-page-inset" width="1320">
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-decision-rate-oht-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;11: The rate at which 510(k)s are cleared or not cleared for market over time as of the corresponding MDUFA report cutoff dates. <a href="data/decision-rate-oht.csv">Raw data</a>.
</figcaption>
</figure>
</div>
</div>
</div>
</section>
</section>
<section id="closing-thoughts" class="level2">
<h2 class="anchored" data-anchor-id="closing-thoughts">Closing thoughts</h2>
<p>The objective of this work was to make the information in the MDUFA reports easier to access, analyze, and use. This post provides novel visualizations of about 1,500 values from the FDA’s 510(k) program metrics over time and across review groups. These visualizations are intended to provide a more useful view of the tabular data provided throughout the FDA’s MDUFA reports while still presenting that data dispassionately and with appropriate context.</p>



</section>


<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-mdufa3report201812" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline"><span>“<span>MDUFA III</span> (FY 2013-2017) performance report,”</span> <span>U.S. Food and Drug Administration</span>, Report, Dec. 2018. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-3_2018-12-10_quarterly-report.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-3_2018-12-10_quarterly-report.pdf</a></div>
</div>
<div id="ref-mdufa4report202311" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline"><span>“<span>MDUFA IV</span> (FY 2018-2022) performance report,”</span> <span>U.S. Food and Drug Administration</span>, Report, Nov. 2023. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_2023-11-16_quarterly-report.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_2023-11-16_quarterly-report.pdf</a></div>
</div>
<div id="ref-mdufa5report202311" class="csl-entry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline"><span>“<span>MDUFA V</span> (FY 2023-2027) performance report,”</span> <span>U.S. Food and Drug Administration</span>, Report, Nov. 2023. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_2023-11-16_quarterly-report.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_2023-11-16_quarterly-report.pdf</a></div>
</div>
<div id="ref-mdufa52022" class="csl-entry">
<div class="csl-left-margin">[4] </div><div class="csl-right-inline"><span>“<span>MDUFA</span> performance goals and procedures, fiscal years 2023 through 2027,”</span> <span>U.S. Food and Drug Administration</span>, User Fee Commitment Letter, Mar. 2022. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_goals-and-procedures.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-5_goals-and-procedures.pdf</a></div>
</div>
<div id="ref-fdam4letter2016" class="csl-entry">
<div class="csl-left-margin">[5] </div><div class="csl-right-inline"><span>“<span>MDUFA</span> performance goals and procedures, fiscal years 2018 through 2022,”</span> <span>U.S. Food and Drug Administration</span>, User Fee Commitment Letter, Dec. 2016. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_goals-and-procedures.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_goals-and-procedures.pdf</a></div>
</div>
<div id="ref-gaoreviewtime2012" class="csl-entry">
<div class="csl-left-margin">[6] </div><div class="csl-right-inline">M. Crosse <em>et al.</em>, <span>“Medical devices: <span>FDA</span> has met most performance goals but device reviews are taking longer,”</span> <span>U.S. Government Accountability Office</span>, Report to Congressional Requesters GAO-12-418, Feb. 2012. Available: <a href="https://www.gao.gov/products/gao-12-418">https://www.gao.gov/products/gao-12-418</a></div>
</div>
<div id="ref-pmnworkinggroup2010" class="csl-entry">
<div class="csl-left-margin">[7] </div><div class="csl-right-inline"><span>“<span>CDRH</span> preliminary internal evaluations – volume <span>I</span>,”</span> <span>U.S. Food and Drug Administration</span>, Report, 2010. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/fda-cdrh-510k-working-group-report-2010.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/fda-cdrh-510k-working-group-report-2010.pdf</a></div>
</div>
<div id="ref-fdaexempt2017" class="csl-entry">
<div class="csl-left-margin">[8] </div><div class="csl-right-inline"><span>“82 FR 31976: Medical devices; exemptions from premarket notification: Class <span>II</span> devices,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jul. 2017. Available: <a href="https://www.federalregister.gov/d/2017-14453">https://www.federalregister.gov/d/2017-14453</a></div>
</div>
<div id="ref-fdaexempt2018" class="csl-entry">
<div class="csl-left-margin">[9] </div><div class="csl-right-inline"><span>“83 FR 25910: Medical devices; exemptions from premarket notification: Class <span>II</span> devices,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jun. 2018. Available: <a href="https://www.federalregister.gov/d/2018-11879">https://www.federalregister.gov/d/2018-11879</a></div>
</div>
<div id="ref-fdaexempt2020" class="csl-entry">
<div class="csl-left-margin">[10] </div><div class="csl-right-inline"><span>“85 FR 44186: Medical devices; exemptions from premarket notification: Class <span>II</span> devices,”</span> <span>U.S. Food and Drug Administration</span>, Federal Register Notice, Jul. 2020. Available: <a href="https://www.federalregister.gov/d/2020-15256">https://www.federalregister.gov/d/2020-15256</a></div>
</div>
<div id="ref-bahia2021" class="csl-entry">
<div class="csl-left-margin">[11] </div><div class="csl-right-inline"><span>“<span>MDUFA IV</span> phase 2 independent assessment final report,”</span> <span>U.S. Food and Drug Administration</span>, Report, 2021. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_independent-assessment-2021.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-4_independent-assessment-2021.pdf</a></div>
</div>
<div id="ref-fdareviewtimes2011" class="csl-entry">
<div class="csl-left-margin">[12] </div><div class="csl-right-inline"><span>“Analysis of premarket review times under the 510(k) program,”</span> <span>U.S. Food and Drug Administration</span>, Report, Sep. 2011. Available: <a href="https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-data-requests-2011.pdf">https://boleary-com-blog.s3.us-east-005.dream.io/mdufa-data-requests-2011.pdf</a></div>
</div>
<div id="ref-fdapmnprocedures2022" class="csl-entry">
<div class="csl-left-margin">[13] </div><div class="csl-right-inline"><span>“<span>FDA</span> and industry actions on premarket notification (<span class="nocase">510(k)</span>) submissions: Effect on <span>FDA</span> review clock and goals,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document FDA-2003-D-0033, 2022. Available: <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/fda-and-industry-actions-premarket-notification-510k-submissions-effect-fda-review-clock-and-goals">https://www.fda.gov/regulatory-information/search-fda-guidance-documents/fda-and-industry-actions-premarket-notification-510k-submissions-effect-fda-review-clock-and-goals</a></div>
</div>
<div id="ref-fdacommunicationtypes2014" class="csl-entry">
<div class="csl-left-margin">[14] </div><div class="csl-right-inline"><span>“Types of communication during the review of medical device submissions,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document FDA-2013-D-0147, Apr. 2014. Available: <a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/types-communication-during-review-medical-device-submissions">https://www.fda.gov/regulatory-information/search-fda-guidance-documents/types-communication-during-review-medical-device-submissions</a></div>
</div>
</div></section><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>This term is not defined in the MDUFA V Commitment Letter, but this definition is consistent with its use in other documents. <span class="citation" data-cites="fdam4letter2016">[5, p. 28]</span> <span class="citation" data-cites="gaoreviewtime2012">[6, pp. 4, 7]</span> <span class="citation" data-cites="pmnworkinggroup2010">[7, p. 39]</span> While the MDUFA 3 reports are silent on the issue, the MDUFA 4 and MDUFA 5 reports confirm that “review cycle” refers to a substantive review of an “accepted” 510(k). <span class="citation" data-cites="mdufa4report202311">[2, p. 257]</span> <span class="citation" data-cites="mdufa5report202311">[3, p. 238]</span> The FDA’s approach to analyzing requests for additional information suggests that this has been the practice since FY 2013. <span class="citation" data-cites="mdufa5report202311">[3, p. 103]</span>↩︎</p></li>
<li id="fn2"><p>The FDA has used a number of analysis techniques to correct for this and get insights into recent performance based on data from open receipt cohorts. One approach is to look at historical data from when previous receipt cohorts that are now closed were still open. That information is compared to the final calculated performance metrics for the corresponding cohorts and to the receipt cohorts that are currently open to infer whether performance is better or worse now than it was then and to estimate where the final performance metric calculations for open cohorts may converge. The MDUFA reports include several figures based on this approach. <span class="citation" data-cites="mdufa5report202311">[3, pp. 106–109]</span> Best- and worst-case outcomes can also be estimated for some metrics. <br>These complex techniques can be difficult to interpret. I favor looking at recently closed decision cohorts instead. Metrics similar to the Total Days metrics in the MDUFA reports can be calculated for cleared 510(k) receipt and decision cohorts using the FDA’s public 510(k) database. You can access this from R using the <a href="https://github.com/bjoleary/fdadata">fdadata</a> package, and I’ve also built <a href="https://www.boleary.com/blog/posts/202306-fda-calendar-days/">a free web app you can use to explore clearance timeframes using this dataset</a>.↩︎</p></li>
<li id="fn3"><p>The reorganizations had other impacts as well, but this post is focused on their implications for MDUFA performance metric data.↩︎</p></li>
<li id="fn4"><p>In addition to being a MDUFA commitment, this is in <a href="https://uscode.house.gov/view.xhtml?req=(title:21%20section:360%20edition:prelim)%20OR%20(granuleid:USC-prelim-title21-section360)&amp;f=treesort&amp;edition=prelim&amp;num=0&amp;jumpTo=true">21 USC § 360(n)(1)</a>.↩︎</p></li>
<li id="fn5"><p>See <a href="https://www.ecfr.gov/current/title-21/chapter-I/subchapter-H/part-807/subpart-E/section-807.87">21 CFR 807.87(m)</a>.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{o'leary2024,
  author = {O’Leary, Brendan},
  title = {Downloadable Spreadsheets and Graphs of the {FDA’s} Medical
    Device Review Performance Metrics},
  date = {2024-01-03},
  url = {https://www.boleary.com/blog/mdufa/202401/},
  langid = {en},
  abstract = {The FDA publishes quarterly and annual reports that
    include performance metrics for the medical device review process.
    These reports can include thousands of performance metrics in a
    series of tables, and they are published as PDFs that regularly
    exceed three hundred pages. This post makes many of these metrics
    available for download in spreadsheets and as a data package for the
    R programming language, making the data easier to analyze and use.
    This post also provides novel visualizations of 510(k) program
    performance metrics over time and by review group.}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-o'leary2024" class="csl-entry quarto-appendix-citeas">
<div class="">B.
O’Leary, <span>“Downloadable spreadsheets and graphs of the FDA’s
medical device review performance metrics,”</span> Jan. 03, 2024. <a href="https://www.boleary.com/blog/mdufa/202401/">https://www.boleary.com/blog/mdufa/202401/</a></div>
</div></div></section></div> ]]></description>
  <category>FDA</category>
  <category>510(k)</category>
  <category>devices</category>
  <category>datasets</category>
  <category>MDUFA</category>
  <guid>https://www.boleary.com/blog/mdufa/202401/</guid>
  <pubDate>Wed, 03 Jan 2024 05:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/mdufa/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Regulatory considerations for digital surrogate endpoint response biomarkers</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202311-digital-biomarkers/</link>
  <description><![CDATA[ 




<style>
.img-fluid { 
   border: 1px solid #00000080;
}
.anchored {
  font-size: 0px
}
</style>
<p>On July 24, 2023, I gave a “quick” talk on regulatory considerations at the <a href="https://www.everythingals.org/">EverythingALS</a> Digital Biomarkers Summit. This post is adapted from that talk.</p>
<section id="regulatory-considerations-for-digital-biomarkers" class="level3">
<h3 class="anchored" data-anchor-id="regulatory-considerations-for-digital-biomarkers">Regulatory Considerations for Digital Biomarkers</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/001.webp" title="Slide 1: Regulatory Considerations for Digital Surrogate Endpoint Response Biomarkers" class="img-fluid" alt="Slide 1: Regulatory Considerations for Digital Surrogate Endpoint Response Biomarkers. By Brendan O'Leary"></p>
<p>My name is Brendan O’Leary, and, up until a few months ago, I was a federal regulator. I spent 14 years with the FDA’s Center for Devices and Radiological Health, or CDRH. For about 10 of those years, I worked in the diagnostics office, where my focus was on radiology devices, software, and digital health. Then, I helped launch the FDA’s Digital Health Center of Excellence as its founding deputy director, and I led the Center of Excellence throughout 2022.</p>
<p>My education is in engineering, and, over the years, I helped the FDA make somewhere on the order of a thousand decisions related to digital health, biomarkers, and diagnostics, including decisions on companion diagnostics, complementary diagnostics, and digital biomarkers used with drugs. I’ll approach this topic from that experience today.</p>
<ul>
<li><p>I’ll start by covering definitions for terms like “digital biomarker,” “response biomarker,” and “surrogate endpoint response biomarker.”</p></li>
<li><p>From there, I’ll discuss the differences between a biomarker and a clinical outcome assessment, including clinical outcome assessments enabled by digital health technologies.</p></li>
<li><p>Then, I’ll cover what a useful biomarker or other measure should do.</p></li>
<li><p>And finally, I’ll end with a few thoughts about how to convince the clinical community, payors, and the FDA that your biomarker or other measure is actually useful.</p></li>
</ul>
</section>
<section id="biomarker-the-best-definition" class="level3">
<h3 class="anchored" data-anchor-id="biomarker-the-best-definition">Biomarker: The “Best” Definition</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/002.webp" title="Slide 2: Biomarker: The 'Best' Definition" class="img-fluid" alt="Slide 2: Biomarker: The 'Best' Definition. A defined characteristic that is measured as an indicator of normal biological processes, pathogenic processes, or biological responses to an exposure or intervention, including therapeutic interventions. Biomarkers may include molecular, histologic, radiographic, or physiologic characteristics. A biomarker is not a measure of how an individual feels, functions, or survives. Categories of biomarkers include: susceptibility/risk biomarker, diagnostic biomarker, monitoring biomarker, prognostic biomarker, predictive biomarker, response biomarker, and safety biomarker. Source: BEST Resource."></p>
<p>The most important thing to know about <em>digital biomarkers</em> is that they are <em>biomarkers</em>. “Digital” <em>is not</em> the most important part. “Digital” is a reference to enabling technology. It’s a description of how we measure a biomarker or how we transmit information about a biomarker. That enabling technology is often critical: Sometimes, it’s the only reason it’s possible to measure or use the biomarker at all! But it’s still a means to an end, and it’s the end that’s most important here: <em>From a regulatory perspective, the most important thing about digital biomarkers is that they are biomarkers.</em></p>
<p>So, let’s focus on that for now: What is a biomarker?</p>
<p>Back in 2016, <a href="https://www.ncbi.nlm.nih.gov/books/n/biomarkers/contributors/">some folks from the FDA’s device and drug centers and from the NIH</a> got together to define this and other terms. They published the cleverly-but-perhaps-not-so-humbly-named “BEST Resource,” <span class="citation" data-cites="fda2016best">[1]</span> which you can find at the link in the QR code on this slide. The document is about 60 pages, and it’s an important read if you ever want to communicate clearly with the FDA on this topic.</p>
<p>Among other things, the BEST Resource defines the terms <em>biomarker</em> and <em>digital health technology</em>.</p>
<p>And, based on this, according to the FDA, a biomarker, including a digital biomarker, is a characteristic measured as an <em>indicator of a biological process</em>, whether that process is normal or affected by a disease.</p>
<p>Equally important is what a biomarker <em>is not</em>. A biomarker <em>is not</em> a measure of how someone <em>feels, functions, or survives</em>. We often call measures of how someone feels, functions, or survives “<em>outcomes</em>,” and I’ll say more about these in a few moments. But the thing to keep in mind is that a biomarker is not itself an outcome.</p>
<p>The BEST Resource lays out several categories of biomarkers. There are two important things to know about these categories:</p>
<ul>
<li><p>First, the categories are defined based on their context of use – which is very similar to “intended use” if you’re familiar with that term in regulatory contexts – and,</p></li>
<li><p>Second, the categories are not mutually exclusive: a biomarker can be both a prognostic biomarker and a predictive biomarker, for example.</p></li>
</ul>
<p>On that first point, when I say that the biomarker categories are defined based on the context of use of the biomarker, that means that the categories are more about <em>how</em> a biomarker is used than about <em>what</em> a biomarker is measuring. That’s why the same biomarker can belong in more than one category depending on how it is being used. For example, hemoglobin A1c (HbA1c) can be used as a <em>diagnostic biomarker</em> to identify patients with Type 2 diabetes. It can be measured repeatedly over time as a <em>monitoring biomarker</em> to assess disease progression. And, it can be used as a <em>response biomarker</em> to evaluate diabetes control following treatment with a drug. You are measuring the same thing in each case, but it is <em>how</em> you are using the information that drives what words you should use to describe the biomarker.</p>
<p>These different contexts of use for a biomarker are all relevant in medical product development, but today, we’ll focus on the use of biomarkers as response biomarkers in particular. This use has well-defined regulatory considerations laid out in the BEST Resource.</p>
</section>
<section id="response-biomarker" class="level3">
<h3 class="anchored" data-anchor-id="response-biomarker">Response Biomarker</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/003.webp" title="Slide 3: Response Biomarker" class="img-fluid" alt="Slide 3: Response Biomarker: A biomarker used to show that a biological response, potentially beneficial or harmful, has occurred in an individual who has been exposed to a medical product or an environmental agent. Pharmacodynamic response biomarker: indicates biologic activity of a medical product without necessarily drawing conclusions about efficacy or disease outcome or necessarily linking this activity to an established mechanism of action. Useful for: establishing proof-of-concept, assisting in dose selection, and as potential secondary endpoints in clinical trials. Surrogate endpoint response biomarker: An endpoint used in clinical trials as a substitute for a direct measure of how a patient feels, functions, or survives. Does not measure the clinical benefit of primary interest in and of itself, but rather is expected to predict that clinical benefit or harm. Source: BEST Resource."></p>
<p>When we use a biomarker as a response biomarker, we’re using it to measure a response. Typically, we’re measuring a response to a drug or other medical product. If we’re only looking for evidence of biological activity and are not trying to use the biomarker to assess a disease outcome, we’re probably using the biomarker as a <em>pharmacodynamic response biomarker</em>. In contrast, when we use a biomarker as a measure of whether we can expect that a therapeutic is providing a clinical benefit, like whether a therapeutic is likely to have a positive impact on how a patient <em>feels, functions, or survives</em>, we’re using the biomarker as a <em>surrogate endpoint response biomarker</em>. Surrogate endpoint response biomarkers are not direct measures of the expected clinical benefit itself. They are measures that we hope or expect to correlate with that benefit.</p>
</section>
<section id="surrogate-endpoint-response-biomarkers" class="level3">
<h3 class="anchored" data-anchor-id="surrogate-endpoint-response-biomarkers">Surrogate Endpoint Response Biomarkers</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/004.webp" title="Slide 4: Surrogate Endpoint Response Biomarkers" class="img-fluid" alt="Slide 4: Surrogate Endpoint Response Biomarkers are characterized by the level of clinical validation. This slide shows that within the hierarchy of 'Biomarker', we have 'Response Biomarker.' Within that, we have 'Surrogate Endpoint Response Biomarker'. Within that, a pyramid graphic shows three levels, starting with 'Validated Surrogate Endpoint' at the top, 'Reasonably Likely Surrogate Endpoint' in the middle, and 'Candidate Surrogate Endpoint' at the base. Source: BEST Resource."></p>
<p>We’ve covered biomarkers and digital biomarkers. Within that category, we’ve covered a number of types of biomarkers and have focused on response biomarkers in particular. From there, we zoomed in on surrogate endpoint response biomarkers. And now, within that sub-sub-category, we’ll cover three different types of surrogate endpoint response biomarkers.</p>
<p>Surrogate endpoint response biomarkers are characterized by the level of clinical validation. At the top, with the most evidence, we have “Validated Surrogate Endpoints.” Moving down from there, we have “Reasonably Likely Surrogate Endpoints” and “Candidate Surrogate Endpoints.” Each is associated with different levels of evidence for their validity, and that has implications for using them in clinical studies to support FDA authorizations of therapeutic products.</p>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/005.webp" title="Slide 5: Surrogate Endpoint Response Biomarkers - Validated Surrogate Endpoint" class="img-fluid" alt="Slide 5: Surrogate Endpoint Response Biomarkers are characterized by the level of clinical validation. The pyramid graphic appears again, with 'Validated Surrogate Endpoint' highlighted. A Validated Surrogate Endpoint has a clear mechanistic rationale, clinical data providing strong evidence that an effect on the endpoint predicts a specific clinical benefit, and can support marketing authorizations for therapeutics without additional studies to demonstrate clinical benefit directly. Source: BEST Resource."></p>
<p>Let’s start with validated surrogate endpoints. The BEST Resource identifies two characteristics of these surrogate endpoints.</p>
<p>First, we have a clear mechanistic rationale for validated surrogate endpoint response biomarkers. That means that we understand the link between the biomarker and the mechanisms of the disease that we’re studying. The link is known, and it’s clear.</p>
<p>Second, clinical data shows that an effect on a validated surrogate endpoint response biomarker predicts a clinical benefit, and we know from the clinical data what that clinical benefit will be.</p>
<p>If you have these two things, you have everything you need. A validated surrogate endpoint response biomarker can support FDA marketing authorizations for therapeutics without additional studies. Seeing an effect on a validated surrogate endpoint response biomarker is enough, and if you have that, you don’t need additional pre- or postmarket studies that directly demonstrate that the therapeutic has a clinical benefit.</p>
<p>This is the mountaintop. This is what we want to attain.</p>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/006.webp" title="Slide 6: Surrogate Endpoint Response Biomarkers - Reasonably Likely Surrogate Endpoint" class="img-fluid" alt="Slide 6: Surrogate Endpoint Response Biomarkers are characterized by the level of clinical validation. The pyramid graphic appears again, with 'Validated Surrogate Endpoint' highlighted. A 'tracked changes' style is used to compare and contrast Reasonably Likely Surrogate Endpoints with Validated Surrogate Endpoints. A Reasonably Likely Surrogate Endpoint has a strong mechanistic rationale (as opposed to a clear mechanistic rationale for Validated Surrogate Endpoints), an effect on the endpoint is expected to correlate with a specific clinical benefit (as opposed to an expectation that it will predict that endpoint based on clinical data that provides strong evidence for Validated Surrogate Endpoints), and can support accelerated approval for therapeutics, often with postmarketing confirmatory trials (as opposed to supporting marketing authorizations without additional studies to demonstrate clinical benefit directly for Validated Surrogate Endpoints). Source: BEST Resource."></p>
<p>It’s a long journey to get to a validated surrogate endpoint response biomarker, and on the way there, you can find yourself with some really good indications that you have a good biomarker on your hands, but without all of the evidence you would need to say that it’s validated. This is called a “reasonably likely surrogate endpoint response biomarker,” and it’s easiest to introduce these by highlighting how they differ from validated surrogate endpoint response biomarkers.</p>
<p>First, while for a validated surrogate endpoint response biomarker we have a clear understanding of the link between the biomarker and the mechanisms of the disease, for a reasonably likely surrogate endpoint response biomarker, we only have a strong rationale: We have a really good, really plausible theory, but not enough to convince a regulator.</p>
<p>Second, instead of having clinical data that shows that an effect on the surrogate endpoint response biomarker predicts a specific clinical benefit, for reasonably likely surrogate endpoint response biomarkers, we only have an expectation that the biomarker will correlate with a specific clinical benefit. Notably though, based on the strong mechanistic rationale, we should still have a specific expectation for how a specific clinical benefit will correlate with the biomarker.</p>
<p>As a result of the increased uncertainty associated with reasonably likely surrogate endpoint response biomarkers, they alone can’t support full FDA marketing authorizations for therapeutics without additional studies. But they are still incredibly powerful, and they can support accelerated approval of therapeutics, often with postmarketing confirmatory trials.</p>
<p>And, if you plan things right, and if the science works out the way you hope it will, those confirmatory trials can validate the surrogate endpoint response biomarker at the same time as they validate the therapeutic.</p>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/007.webp" title="Slide 7: Surrogate Endpoint Response Biomarkers - Candidate Surrogate Endpoint" class="img-fluid" alt="Slide 7: Surrogate Endpoint Response Biomarkers are characterized by the level of clinical validation. The pyramid graphic appears again, with 'Candidate Surrogate Endpoint' highlighted. A 'Candidate Surrogate Endpoint' is an endpoint still under evaluation for its ability to predict clinical benefit."></p>
<p>Finally, we have candidate surrogate endpoint response biomarkers. These are all of the things that we’re working to develop and hope will work, but for which we don’t yet have the data.</p>
</section>
<section id="clinical-outcome-assessment-coa" class="level3">
<h3 class="anchored" data-anchor-id="clinical-outcome-assessment-coa">Clinical Outcome Assessment (COA)</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/008.webp" title="Slide 8: Clinical Outcome Assessment (COA)" class="img-fluid" alt="Slide 8: Clinical Outcome Assessment (COA). This slide shows a table from a paper about clinical outcome assessments. The table illustrates how similar measurement technologies can be grouped into different 'types of measures' based on the 'concept being measured'."></p>
<p>At the beginning of this post, I said that part of understanding what a biomarker is involves understanding what it is not. A biomarker is an indicator of a biological process. A biomarker is not a measure of how someone <em>feels, functions, or survives</em>. How someone feels, functions, or survives is an <em>outcome</em>, and one way to measure an outcome is to use a <em>Clinical Outcome Assessment</em>, or COA.</p>
<p>Clinical Outcome Assessments are performance-based assessments or assessments made by a clinician, a patient, or another observer. Depending on who is doing the assessment, a COA may be a patient-reported outcome (PRO), a clinician-reported outcome, or an observer-reported outcome. Sometimes, like with biomarkers, COAs may be enabled or facilitated by digital technologies. When people want to emphasize this, they sometimes stick the word “electronic” to the front of the term, and that’s where you get acronyms like “ePRO.” It just keeps going: There is no shortage of more and more specific jargon and acronyms for all of these concepts.</p>
<p>But, for our purposes, just know that an outcome is not a biomarker, and so a digitally facilitated outcome assessment is not a digital biomarker. Some of my colleagues at the FDA put together a nice paper describing this and showing how, based on the context of use and the concept being measured, very similar measurement technologies can fall into many different categories. <span class="citation" data-cites="vasudevan2022digital">[2]</span></p>
</section>
<section id="related-fda-programs" class="level3">
<h3 class="anchored" data-anchor-id="related-fda-programs">Related FDA programs</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/009.webp" title="Slide 9: So many related terms and programs..." class="img-fluid" alt="Slide 9: So many related terms and programs... This slide shows screenshots of the FDA website, including webpages related to Biomarkers, Clinical Outcome Assessments, Drug Development Tools, Medical Device Development Tools, Digital Health Technologies for Drug Development, and Regulatory Science Tools to Help Assess New Medical Devices. Each webpage shown on this slide is linked in the text below."></p>
<p>There is a <em>lot</em> of jargon around these technologies, and it can seem like the FDA has a separate, independent program for each new term. The FDA has qualification programs for</p>
<ul>
<li><p><a href="https://www.fda.gov/drugs/biomarker-qualification-program/about-biomarkers-and-qualification">Biomarkers</a>,</p></li>
<li><p><a href="https://www.fda.gov/drugs/drug-development-tool-ddt-qualification-programs/clinical-outcome-assessment-coa-qualification-program">Clinical Outcome Assessments</a>,</p></li>
<li><p><a href="https://www.fda.gov/drugs/development-approval-process-drugs/drug-development-tool-ddt-qualification-programs">Drug Development Tools (DDTs)</a>, and</p></li>
<li><p><a href="https://www.fda.gov/regulatory-information/search-fda-guidance-documents/qualification-medical-device-development-tools">Medical Device Development Tools (MDDTs)</a>.</p></li>
</ul>
<p>Some of these are sub-programs of the others, and that’s not even all of them.</p>
<p>Aside from qualification programs, the FDA also has separate efforts for:</p>
<ul>
<li><p><a href="https://www.fda.gov/science-research/science-and-research-special-topics/digital-health-technologies-dhts-drug-development">Digital Health Technologies (DHTs) for Drug Development</a> and</p></li>
<li><p><a href="https://www.fda.gov/medical-devices/science-and-research-medical-devices/catalog-regulatory-science-tools-help-assess-new-medical-devices">Regulatory Science Tools to Help Assess New Medical Devices</a>.</p></li>
</ul>
<p>There’s more, but that’s enough to give you the idea. The FDA is certainly working to support innovation in trial design and medical product development, and part of that is assigning folks to figure out how new technologies can be assessed and qualified.</p>
<p>It’s honestly hard to keep track of it all.</p>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/010.webp" title="Slide 10: ...with the same Regulatory Considerations" class="img-fluid" alt="Slide 10: ...with the same Regulatory Considerations. Is the product we are talking about effective? Is the product we are talking about safe? How sure can we be about those two things?"></p>
<p>But the truth is, you don’t really <em>need</em> to keep track of it all. That’s because the big picture regulatory considerations across all of these categories are pretty consistent and pretty stable.</p>
<p>Fundamentally, whenever you are interacting with one of the FDA’s medical product centers about a drug, a biologic, or a medical device you’re making, you’re having a conversation about three things: One – Is it effective? Two – Is it safe? And Three – How sure can we be about One and Two?</p>
<p>That’s it.</p>
<p>When you’re focusing on a digital biomarker or a clinical outcome assessment or a drug development tool or whatever else you can think of or want to call it, just remember that you are still having a conversation with the FDA about how certain one can be about whether a medical product is effective and safe for its intended use.</p>
<p>And that’s the kicker: <strong>The utility of a response biomarker or any similar measure is inextricably linked to the product you are using it to assess and to the intended use of that product</strong>.</p>
<p>The FDA qualification programs help you understand how the FDA thinks, but the bottom line is that medical product authorizations can come down to more specific considerations than a broad qualification program might cover. You can get your biomarker qualified for <em>something</em> through one of the qualification programs. You can even get your biomarker measurement technology cleared or approved as a medical device. But the question of whether a biomarker is relevant in a clinical study for a therapeutic product is going to come down to the intended use and characteristics of that therapeutic product. It’s going to come down to understanding what the particular uncertainties are around that product and how those particular uncertainties can be best addressed.</p>
<p>So don’t get distracted by the qualification programs or the broader hype around these technologies. Focus on the disease, focus on the needs of the people who are afflicted with that disease, and focus on the therapeutic products that are being developed for that disease. And then…</p>
</section>
<section id="step-1-find-something-meaningful" class="level3">
<h3 class="anchored" data-anchor-id="step-1-find-something-meaningful">Step 1: Find something meaningful</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/011.webp" title="Slide 11: Step 1 - Find something meaningful" class="img-fluid" alt="Slide 11: Step 1: Find something meaningful: 'Do I need mortality, do I want to live longer and suffer longer? No,' Fernandes said patients told the company’s researchers. 'Do I want to improve my six-minute walk? No, I don’t want six minutes, I cannot even walk a minute. Let me at least be able to get up and brush my teeth or climb the stairs, get to the bedroom, get to the bathroom, do something simple.' -Peter Fernandes, CEO of Bellerophon Therapeutics, as quoted by M. Aguilar in STAT. Source: https://www.statnews.com/2023/05/17/clinical-trials-digital-biomarkers-fda-pharma-bellerophon/."></p>
<p><strong>Find something meaningful to measure.</strong></p>
<p>Identify the gaps between the measures we have today and the needs of patients, trial participants, clinicians, and therapeutic product developers. Find ways to fill those gaps.</p>
<p>Peter Fernandes put it well here. <span class="citation" data-cites="aguilar2023">[3]</span> He was talking about what he was hearing from people with pulmonary fibrosis. And the bottom line is, our traditional measures aren’t cutting it. We’ve absolutely got to do better.</p>
<p>There are legacy measures that have been used for a long time, like the six-minute walk test in this example or the ALS-FRS. But Fernandes points out the shortcomings of those measures from a patient perspective. And, to be blunt, <a href="https://boleary.com/blog/posts/202308-bad-measures/">those measures are a hot mess</a> from a scientific and regulatory perspective as well. There is just so much noise in them. Any researcher who has used them will tell you their limitations, which are numerous and extensive. But we still use them.</p>
<p>And, as awful as these measures are, we have good reason to keep using them: In part, it’s because decades of experience have given us such a good sense for the particular limitations of these measures. We know a lot about their strengths and their weaknesses.</p>
<p>So, as you look for something new and more meaningful to measure, keep in mind that there is a lot to be said for planning to measure it alongside the measures that we’re already familiar with, at least for a while. Doing that is part of the process of confirming that the new measures we’re crafting really are meaningful and really are better.</p>
<p>Which brings us to Step 2.</p>
</section>
<section id="step-2-measure-it" class="level3">
<h3 class="anchored" data-anchor-id="step-2-measure-it">Step 2: Measure it</h3>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/012.webp" title="Slide 12: Step 2 - Measure it" class="img-fluid" alt="Slide 12: Step 2: Measure it: A definition of measurement: An 'Information Theory' version. Measurement: A quantitatively expressed reduction of uncertainty based on one or more observations. Source: Hubbard, Douglas W. How to Measure Anything: Finding the Value of Intangibles in Business. John Wiley &amp; Sons, Inc., 2014."></p>
<p><strong>Measure it</strong>.</p>
<p>This is the part of the post where I make the “big reveal” and tell you that you don’t really need to know that much about digital biomarkers, clinical outcome assessments, or any of the rest of this. The bottom line is that they are all things you measure or measurements. So, let’s ignore the BEST Resource and all of its biomedical jargon and definitions and just focus on what a measurement is.</p>
<p>This definition comes from the field of information theory and is in a book by Douglas Hubbard. <span class="citation" data-cites="hubbard2014">[4]</span> The definition identifies three key features of a measurement:</p>
<p>First, a measurement is a reduction of uncertainty. This isn’t about knowing “for sure.” Few if any of our existing measures get us there, and our new measures don’t need to get us to certainty either. They just need to meaningfully reduce our uncertainty.</p>
<p>Second, a measurement is based on one or more observations. I don’t have much to say about this. It’s what science is all about. It’s empiricism in a nutshell.</p>
<p>Finally, with a measurement, we can <em>quantitatively express</em> the reduction in uncertainty that these observations provide. For example, both qualitative and quantitative measurements may produce confidence intervals that can be expressed quantitatively. Regulators <em>love</em> confidence intervals, and regulators <em>especially love</em> to see a confidence interval shrink.</p>
<hr>
<p><img src="https://www.boleary.com/blog/posts/202311-digital-biomarkers/img/013.webp" title="Slide 13: Conclusion" class="img-fluid" alt="Slide 13: Conclusion: If you can find something meaningful, if you can reduce the uncertainty around that meaningful something, and if you can express that reduction quantitatively, you’ve made progress."></p>
<p>So that’s the real message. Digital biomarkers are exciting. Digital Health Technologies that enable new Clinical Outcome Assessments are too. It’s all good stuff. But don’t get too caught up in all of that. At the end of the day, the real key here is to <strong>measure something meaningful</strong>.</p>
<p>If you can find something meaningful, if you can reduce the uncertainty around that meaningful something, and if you can express that reduction quantitatively, you’ve made progress.</p>
<p>And if you can do all of that, then you’ve got a good case to make to the FDA and others.</p>
<div style="page-break-after: always;"></div>



</section>

<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-fda2016best" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">Food and Drug Administration, National Institutes of Health, <em>et al.</em>, <span>“BEST (<span class="nocase">Biomarkers, EndpointS, and other Tools</span>) resource,”</span> <em>Silver Spring, MD: FDA-NIH Biomarker Working Group</em>, 2016, Available: <a href="https://www.ncbi.nlm.nih.gov/books/NBK338449/">https://www.ncbi.nlm.nih.gov/books/NBK338449/</a></div>
</div>
<div id="ref-vasudevan2022digital" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">S. Vasudevan, A. Saha, M. E. Tarver, and B. Patel, <span>“Digital biomarkers: Convergence of digital health technologies and biomarkers,”</span> <em>NPJ digital medicine</em>, vol. 5, no. 1, p. 36, 2022, Available: <a href="https://doi.org/10.1038/s41746-022-00583-z">https://doi.org/10.1038/s41746-022-00583-z</a></div>
</div>
<div id="ref-aguilar2023" class="csl-entry">
<div class="csl-left-margin">[3] </div><div class="csl-right-inline">M. Aguilar, <span>“Biotech and pharma execs wrestle with the <span>‘nightmare’</span> of developing digital biomarkers,”</span> <em>STAT</em>, May 2023, Accessed: Nov. 10, 2023. [Online]. Available: <a href="https://www.statnews.com/2023/05/17/clinical-trials-digital-biomarkers-fda-pharma-bellerophon/">https://www.statnews.com/2023/05/17/clinical-trials-digital-biomarkers-fda-pharma-bellerophon/</a></div>
</div>
<div id="ref-hubbard2014" class="csl-entry">
<div class="csl-left-margin">[4] </div><div class="csl-right-inline">D. W. Hubbard, <em>How to measure anything: Finding the value of intangibles in business</em>. Wiley; 3rd edition, 2014. Available: <a href="https://www.amazon.com/How-Measure-Anything-Intangibles-Business/dp/1118539273">https://www.amazon.com/How-Measure-Anything-Intangibles-Business/dp/1118539273</a></div>
</div>
</div></section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{o'leary2023,
  author = {O’Leary, Brendan},
  title = {Regulatory Considerations for Digital Surrogate Endpoint
    Response Biomarkers},
  date = {2023-11-14},
  url = {https://www.boleary.com/blog/posts/202311-digital-biomarkers/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-o'leary2023" class="csl-entry quarto-appendix-citeas">
<div class="">B.
O’Leary, <span>“Regulatory considerations for digital surrogate endpoint
response biomarkers,”</span> Nov. 14, 2023. <a href="https://www.boleary.com/blog/posts/202311-digital-biomarkers/">https://www.boleary.com/blog/posts/202311-digital-biomarkers/</a></div>
</div></div></section></div> ]]></description>
  <category>FDA</category>
  <category>digital health</category>
  <category>biomarkers</category>
  <guid>https://www.boleary.com/blog/posts/202311-digital-biomarkers/</guid>
  <pubDate>Tue, 14 Nov 2023 05:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202311-digital-biomarkers/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Taxpayers should demand better</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202309-shutdowns/</link>
  <description><![CDATA[ 




<p>Shutdowns are among the biggest causes of government waste that I observed in my fourteen years as a federal employee. Shutdowns inflict irreparable harm on the federal government’s reputation as a good and stable employer, directly impacting the government’s ability to recruit and retain top talent. Shutdowns are an entirely avoidable self-inflicted scourge on the US federal government. Taxpayers should demand better.</p>
<p><a href="https://www.linkedin.com/posts/brendanoleary_shutdowns-are-among-the-biggest-causes-of-activity-7113543287122063361-dENI">This post originally appeared on LinkedIn</a>.</p>



 ]]></description>
  <guid>https://www.boleary.com/blog/posts/202309-shutdowns/</guid>
  <pubDate>Fri, 29 Sep 2023 04:00:00 GMT</pubDate>
</item>
<item>
  <title>“We are making critical clinical trial decisions on measures that we know are bad”</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202308-bad-measures/</link>
  <description><![CDATA[ 




<p><a href="https://www.linkedin.com/in/ACoAAALvRloBuurYYAJw_Dn8runsDYpZAxDrm98?lipi=urn%3Ali%3Apage%3Ad_flagship3_detail_base%3Bs2UTPVqMTxS%2B9kold%2FxZPQ%3D%3D">Christine Cong Guo</a> of ActiGraph hit the nail on the head in a discussion with STAT’s <a href="https://www.linkedin.com/in/ACoAAAdjNzcB4S5au_unR5vpz1hEG-qVGj7xmCk?lipi=urn%3Ali%3Apage%3Ad_flagship3_detail_base%3Bs2UTPVqMTxS%2B9kold%2FxZPQ%3D%3D">Mario Aguilar</a>:</p>
<blockquote class="blockquote">
<p>In my mind, we are making critical clinical trial decisions on measures that we know are bad. It just shouldn’t be the state of the art for our industry. You know, we are continuing to rely on these measures that have been developed more than 50 years ago as the gold standard today. If it happened in any other industry, it would sound like a joke. So I think the wearable and digital measures, the fact that it is measuring patients directly in their home environment about something they’re doing in their everyday environment, this is completely aligned with what FDA wants you to do — to measure a patient’s function in their daily activity, in their daily life.</p>
</blockquote>
<p><a href="https://www.statnews.com/2023/08/17/actigraph-leap-drug-digital-endpoint/"><img src="https://www.boleary.com/blog/posts/202308-bad-measures/image.webp" class="preview-image img-fluid"></a></p>
<p><a href="https://www.linkedin.com/posts/brendanoleary_actigraph-executives-on-why-getting-digital-activity-7098043685887451136-V-kJ">This post originally appeared on LinkedIn</a>.</p>



 ]]></description>
  <category>news</category>
  <category>FDA</category>
  <category>digital health</category>
  <category>biomarkers</category>
  <category>drugs</category>
  <guid>https://www.boleary.com/blog/posts/202308-bad-measures/</guid>
  <pubDate>Thu, 17 Aug 2023 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202308-bad-measures/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Data for researchers: Extracted text from more than 89,000 FDA medical device 510(k) clearance packages</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202307-pmn/</link>
  <description><![CDATA[ 




<div class="callout callout-style-default callout-important callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Important
</div>
</div>
<div class="callout-body-container callout-body">
<p>510(k) summaries are written by device manufacturers, not the FDA. When the FDA requests edits to a 510(k) summary, it may be as a final step, under time pressure, when the FDA is ready to clear the device but has not yet issued its final decision. The quality and quantity of information varies widely, and even the best 510(k) summaries are <em>summaries</em>: They are not comprehensive.</p>
<p>Therefore, it is easy to draw the wrong conclusions when analyzing 510(k) summaries. For example, <strong>510(k) summaries alone cannot be used to provide reliable estimates of the proportion of 510(k)s that included clinical data, a subgroup analysis, or other types of evidence</strong>. For those types of analyses, <a href="../202501-ivd-decision-summaries/">decision summaries</a> are a better option when they are available, and other sources should also be included, such as device labeling, <a href="https://www.clinicaltrials.gov">ClinicalTrials.gov</a>, and scientific publications. Even if you use all of the best available public data, your estimates may be far from the truth.</p>
</div>
</div>
<section id="introduction" class="level2">
<h2 class="anchored" data-anchor-id="introduction">Introduction</h2>
<p>Every year, the FDA clears around 3,000 medical devices to enter the U.S. market through a review pathway known as the 510(k) program. Descriptions of the data and information that formed the basis for many of these decisions is available in 510(k) summaries, which are posted as PDFs on the FDA’s website after a decision is made. This makes it possible to find information about individual 510(k) clearance decisions, but analyzing the information across the 510(k) program over time has been more difficult because it is only made publicly available through tens of thousands of individual files – until now. Here, you’ll find a dataset with the full text contents of more than 91,000 510(k) clearance packages.<sup>1</sup> This includes full embedded and OCR text from over 620,000 pages.<sup>2</sup> It can be downloaded in CSV format.</p>
<p>If you use this, please cite this page.</p>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>The information in this dataset is from sources in the public domain. It is provided here “as-is” without warranty of any kind. You may also want to refer to the <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm">FDA’s website</a>.</p>
</div>
</div>
</section>
<section id="dataset-description" class="level2">
<h2 class="anchored" data-anchor-id="dataset-description">Dataset description</h2>
<div class="callout callout-style-default callout-note callout-titled">
<div class="callout-header d-flex align-content-center">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
Note
</div>
</div>
<div class="callout-body-container callout-body">
<p>When originally published, this dataset focused on 510(k) summaries. It now also includes clearance packages for many submissions where a 510(k) statement was used instead of a 510(k) summary. For these submissions, the clearance letter and indications for use are included in this dataset.</p>
<p>I changed the OCR approach in October 2025 to improve quality. OCR text for clearance packages with a <code>date_obtained</code> of October 2025 or later should be a bit better as a result. I’m slowly refreshing the dataset and am prioritizing clearance packages that may have been missed in earlier versions of this dataset and clearance packages where no embedded text was available in earlier versions of this dataset.</p>
</div>
</div>
<p>Most 510(k) clearance packages include:</p>
<ul>
<li><p>A clearance letter from the FDA</p></li>
<li><p>An “indications for use” form</p></li>
<li><p>A 510(k) summary</p></li>
</ul>
<p>For submissions where a “510(k) Statement” is used, only the clearance letter and the indications for use form are present.<sup>3</sup></p>
<p>This dataset provides one row per page for each 510(k) clearance package and includes the following fields:</p>
<dl>
<dt><code>submission_number</code></dt>
<dd>
The 510(k) or De Novo number for the submission associated with the 510(k) clearance package.
</dd>
<dt><code>date_obtained</code></dt>
<dd>
The date the 510(k) clearance package was obtained from the FDA website. The date is formatted according to <a href="https://en.wikipedia.org/wiki/ISO_8601">ISO 8601</a>.
</dd>
<dt><code>page_number</code></dt>
<dd>
The PDF page index from which the text was obtained.
</dd>
<dt><code>text_embedded</code></dt>
<dd>
The contents of any text embedded in the PDF. This is obtained using <a href="https://docs.ropensci.org/pdftools/reference/pdftools.html"><code>pdftools::pdf_text</code></a>.
</dd>
<dt><code>text_ocr</code></dt>
<dd>
The contents of any text found using optical character recognition (OCR). This is from <a href="https://github.com/tesseract-ocr/tesseract">Tesseract`</a>.
</dd>
</dl>
</section>
<section id="download-the-data" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="download-the-data">Download the data</h2>
<div class="callout callout-style-default callout-tip callout-titled">
<div class="callout-header d-flex align-content-center collapsed" data-bs-toggle="collapse" data-bs-target=".callout-4-contents" aria-controls="callout-4" aria-expanded="false" aria-label="Toggle callout">
<div class="callout-icon-container">
<i class="callout-icon"></i>
</div>
<div class="callout-title-container flex-fill">
<span class="screen-reader-only">Tip</span>Click here if you just want to find a predicate device
</div>
<div class="callout-btn-toggle d-inline-block border-0 py-1 ps-1 pe-0 float-end"><i class="callout-toggle"></i></div>
</div>
<div id="callout-4" class="callout-4-contents callout-collapse collapse">
<div class="callout-body-container callout-body">
<p>For finding predicate devices, a site-specific search will probably serve you better than this dataset will. For example, if you are looking for tumor segmentation algorithms:</p>
<ul>
<li><p>Google: <a href="https://www.google.com/search?q=site%3Aaccessdata.fda.gov%2Fcdrh_docs%2F+%22tumor+segmentation%22">site:accessdata.fda.gov/cdrh_docs/ “tumor segmentation”</a></p></li>
<li><p>DuckDuckGo: <a href="https://duckduckgo.com/?q=site%3Aaccessdata.fda.gov%2Fcdrh_docs%2F+tumor+segmentation">site:accessdata.fda.gov/cdrh_docs/ tumor segmentation</a></p></li>
<li><p>Bing: <a href="https://www.bing.com/search?q=site%3Aaccessdata.fda.gov%2Fcdrh_docs%2F+tumor+segmentation">site:accessdata.fda.gov/cdrh_docs/ tumor segmentation</a></p></li>
</ul>
<p></p>
</div>
</div>
</div>
<div class="no-row-height column-margin column-container"><span class="margin-aside callout-4-contents callout-collapse collapse callout-margin-content"><strong>FDA Regulatory Expertise</strong>:<br>
I provide digital health and medical device regulatory strategy solutions to technology developers, healthcare organizations, trade and professional associations, and others. <a href="https://calendly.com/olearybrendan/initial-meeting/" target="_blank">Book a meeting</a>.</span></div><p>The dataset is available as a gzip-compressed CSV file: <a href="data/pmn_summary_text.csv.gz">pmn_summary_text.csv.gz</a> (Size: 285M, MD5: 0930763803888184ab407b24cc0dd009)</p>
</section>
<section id="example-of-how-to-access-and-use-the-dataset-with-the-r-programming-language" class="level2">
<h2 class="anchored" data-anchor-id="example-of-how-to-access-and-use-the-dataset-with-the-r-programming-language">Example of how to access and use the dataset with the R programming language</h2>
<p>Here is a sample script in R that downloads and reads the dataset:</p>
<div class="cell">
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb1" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb1-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load libraries -----</span></span>
<span id="cb1-2"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(fs)</span>
<span id="cb1-3"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(readr)</span>
<span id="cb1-4"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(utils)</span>
<span id="cb1-5"></span>
<span id="cb1-6"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Set up URLs and paths -----</span></span>
<span id="cb1-7">url_download <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb1-8">  <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"https://www.boleary.com/blog/posts/202307-pmn/data/pmn_summary_text.csv.gz"</span></span>
<span id="cb1-9">path_download <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> fs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">dir_create</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"data-raw"</span>)</span>
<span id="cb1-10">filename_download <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"pmn_summary_text.csv.gz"</span></span>
<span id="cb1-11">filepath_download <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb1-12">  fs<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">path_expand</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste</span>(path_download, filename_download, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">sep =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"/"</span>))</span>
<span id="cb1-13"></span>
<span id="cb1-14"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Download the data -----</span></span>
<span id="cb1-15">utils<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">download.file</span>(</span>
<span id="cb1-16">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">url =</span> url_download,</span>
<span id="cb1-17">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">destfile =</span> filepath_download</span>
<span id="cb1-18">)</span>
<span id="cb1-19"></span>
<span id="cb1-20"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Read in the data -----</span></span>
<span id="cb1-21"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Naming this "pmn_summaries" because "premarket notification (PMN)" is </span></span>
<span id="cb1-22"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># another name for 510(k)s that's a bit easier to use in code. </span></span>
<span id="cb1-23">pmn_summaries <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb1-24">  readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">read_delim</span>(</span>
<span id="cb1-25">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">file =</span> filepath_download,</span>
<span id="cb1-26">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">delim =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">";"</span>,</span>
<span id="cb1-27">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col_types =</span> </span>
<span id="cb1-28">      readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">cols</span>(</span>
<span id="cb1-29">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">submission_number =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb1-30">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">date_obtained =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_date</span>(),</span>
<span id="cb1-31">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">page_number =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_integer</span>(),</span>
<span id="cb1-32">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text_embedded =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>(),</span>
<span id="cb1-33">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text_ocr =</span> readr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">col_character</span>()</span>
<span id="cb1-34">      )</span>
<span id="cb1-35">  )</span></code></pre></div></div>
</div>
<p>Expand the code block below for a sample script in R that identifies the 510(k)s that were referenced in the most 510(k) summaries for radiological image processing devices cleared between calendar years 2008 and 2018.</p>
<div class="cell">
<details class="code-fold">
<summary>Show the code</summary>
<div class="code-copy-outer-scaffold"><div class="sourceCode cell-code" id="cb2" style="background: #f1f3f5;"><pre class="sourceCode r code-with-copy"><code class="sourceCode r"><span id="cb2-1"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load and install additional libraries -----</span></span>
<span id="cb2-2"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Install the fdadata package from GitHub if it's missing</span></span>
<span id="cb2-3"><span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">require</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"fdadata"</span>)) {</span>
<span id="cb2-4">  <span class="cf" style="color: #003B4F;
background-color: null;
font-weight: bold;
font-style: inherit;">if</span> (<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">require</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"devtools"</span>)) <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">install.packages</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"devtools"</span>)</span>
<span id="cb2-5">  devtools<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">install_github</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"bjoleary/fdadata"</span>)</span>
<span id="cb2-6">}</span>
<span id="cb2-7"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(dplyr)</span>
<span id="cb2-8"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(lubridate)</span>
<span id="cb2-9"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(stringr)</span>
<span id="cb2-10"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(testthat)</span>
<span id="cb2-11"><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">library</span>(tidyr)</span>
<span id="cb2-12"></span>
<span id="cb2-13"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Load 510(k) submission metadata and filter to image processing devices -----</span></span>
<span id="cb2-14">submissions_of_interest <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-15">  fdadata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span>pmn <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-16">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(</span>
<span id="cb2-17">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Looking for submissions in product code LLZ for "System, Image </span></span>
<span id="cb2-18">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Processing, Radiological"</span></span>
<span id="cb2-19">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>product_code <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">==</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"LLZ"</span>,</span>
<span id="cb2-20">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Looking for submissions with a decision date on or after 2008-01-01: </span></span>
<span id="cb2-21">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>date_decision <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&gt;=</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2008-01-01"</span>),</span>
<span id="cb2-22">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Looking for submissions with a decision date before 2019-01-01: </span></span>
<span id="cb2-23">    .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>date_decision <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">&lt;</span> lubridate<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">ymd</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"2019-01-01"</span>),</span>
<span id="cb2-24">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-25">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Just keep the submission_number field for this analysis</span></span>
<span id="cb2-26">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb2-27"></span>
<span id="cb2-28"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Filter the pmn_summaries data by joining the submissions_of_interest -----</span></span>
<span id="cb2-29">summaries_to_search <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-30">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">inner_join</span>(</span>
<span id="cb2-31">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">x =</span> submissions_of_interest, </span>
<span id="cb2-32">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> pmn_summaries, </span>
<span id="cb2-33">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb2-34">  )</span>
<span id="cb2-35"></span>
<span id="cb2-36"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Set up a search term -----</span></span>
<span id="cb2-37">submission_number_pattern <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-38">  stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">regex</span>(</span>
<span id="cb2-39">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Match the letter "K" followed by exactly 6 numeric digits</span></span>
<span id="cb2-40">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K[0-9]{6}"</span>,</span>
<span id="cb2-41">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># If, instead, you wanted to find both 510(k)s and De Novos, you might </span></span>
<span id="cb2-42">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># start with a pattern like this: "(K|DEN)[0-9]{6}"</span></span>
<span id="cb2-43">    <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Accept either upper- or lower-case "K"s</span></span>
<span id="cb2-44">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">ignore_case =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb2-45">  )</span>
<span id="cb2-46"></span>
<span id="cb2-47"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Double check that the regular expression search term is behaving as expected</span></span>
<span id="cb2-48">testthat<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expect_equal</span>(</span>
<span id="cb2-49">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">object =</span> </span>
<span id="cb2-50">    stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract_all</span>(</span>
<span id="cb2-51">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"Can we find the submission number for K000000?"</span>,</span>
<span id="cb2-52">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> submission_number_pattern</span>
<span id="cb2-53">    ),</span>
<span id="cb2-54">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expected =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K000000"</span>))</span>
<span id="cb2-55">)</span>
<span id="cb2-56">testthat<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expect_equal</span>(</span>
<span id="cb2-57">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">object =</span> </span>
<span id="cb2-58">    stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract_all</span>(</span>
<span id="cb2-59">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"What if we include a supplement number? K123456/S001"</span>,</span>
<span id="cb2-60">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> submission_number_pattern</span>
<span id="cb2-61">    ),</span>
<span id="cb2-62">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expected =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K123456"</span>))</span>
<span id="cb2-63">)</span>
<span id="cb2-64">testthat<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expect_equal</span>(</span>
<span id="cb2-65">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">object =</span> </span>
<span id="cb2-66">    stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract_all</span>(</span>
<span id="cb2-67">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"And if it's a lower case K? k180001"</span>,</span>
<span id="cb2-68">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> submission_number_pattern</span>
<span id="cb2-69">    ),</span>
<span id="cb2-70">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expected =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"k180001"</span>))</span>
<span id="cb2-71">)</span>
<span id="cb2-72">testthat<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expect_equal</span>(</span>
<span id="cb2-73">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">object =</span> </span>
<span id="cb2-74">    stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract_all</span>(</span>
<span id="cb2-75">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"This time we will want to see both K123456 and k180001"</span>,</span>
<span id="cb2-76">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> submission_number_pattern</span>
<span id="cb2-77">    ),</span>
<span id="cb2-78">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expected =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"K123456"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"k180001"</span>))</span>
<span id="cb2-79">)</span>
<span id="cb2-80">testthat<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">expect_equal</span>(</span>
<span id="cb2-81">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">object =</span> </span>
<span id="cb2-82">    stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract_all</span>(</span>
<span id="cb2-83">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"We don't expect it to match a q-submission number like Q123456"</span>,</span>
<span id="cb2-84">      <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> submission_number_pattern</span>
<span id="cb2-85">    ),</span>
<span id="cb2-86">  <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">expected =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">list</span>(<span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">character</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">0</span>L))</span>
<span id="cb2-87">)</span>
<span id="cb2-88"></span>
<span id="cb2-89"><span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Search for submission numbers</span></span>
<span id="cb2-90">search_results <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">&lt;-</span> </span>
<span id="cb2-91">  summaries_to_search <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-92">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># For each page, concatenate the embedded and OCR text so we can create one </span></span>
<span id="cb2-93">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># string where we have the best chance of finding submission numbers </span></span>
<span id="cb2-94">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># (we'll de-duplicate the numbers we find later)</span></span>
<span id="cb2-95">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unite</span>(</span>
<span id="cb2-96">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">col =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"combined_text"</span>,</span>
<span id="cb2-97">    <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_embedded"</span>, <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"text_ocr"</span>),</span>
<span id="cb2-98">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">sep =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">" "</span>,</span>
<span id="cb2-99">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">remove =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span>,</span>
<span id="cb2-100">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">na.rm =</span> <span class="cn" style="color: #8f5902;
background-color: null;
font-style: inherit;">TRUE</span></span>
<span id="cb2-101">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-102">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Combine all clearance package pages from each submission into a single string</span></span>
<span id="cb2-103">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-104">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">summarise</span>(</span>
<span id="cb2-105">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">text =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">paste</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>combined_text, <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">collapse =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"</span><span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">\\</span><span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">n"</span>)</span>
<span id="cb2-106">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-107">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Extract 510(k) submission numbers</span></span>
<span id="cb2-108">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb2-109">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">submission_referenced =</span></span>
<span id="cb2-110">      stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_extract_all</span>(</span>
<span id="cb2-111">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">string =</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>text,</span>
<span id="cb2-112">        <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">pattern =</span> submission_number_pattern</span>
<span id="cb2-113">      ) </span>
<span id="cb2-114">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-115">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Keep only submission number and results</span></span>
<span id="cb2-116">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(</span>
<span id="cb2-117">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>,</span>
<span id="cb2-118">    <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_referenced"</span></span>
<span id="cb2-119">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-120">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Make 1 row for each reference found</span></span>
<span id="cb2-121">  tidyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">unnest</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">cols =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(submission_referenced)) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-122">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Make sure they are all upper case</span></span>
<span id="cb2-123">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">mutate</span>(</span>
<span id="cb2-124">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">submission_referenced =</span> stringr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">str_to_upper</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_referenced)</span>
<span id="cb2-125">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-126">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Remove results where the reference found is the same as the submission </span></span>
<span id="cb2-127">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># it was found in</span></span>
<span id="cb2-128">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">filter</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_number <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">!=</span> .data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_referenced) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-129">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Don't double count a reference just because it may have been mentioned </span></span>
<span id="cb2-130">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># more than once</span></span>
<span id="cb2-131">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">distinct</span>() <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-132">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Tally it up</span></span>
<span id="cb2-133">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">group_by</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_referenced) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-134">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">tally</span>(<span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">name =</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"references"</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-135">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Put in order of frequency of appearance followed by submission number, </span></span>
<span id="cb2-136">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># placing more recent submission numbers first</span></span>
<span id="cb2-137">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">arrange</span>(</span>
<span id="cb2-138">    dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">desc</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>references), </span>
<span id="cb2-139">    dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">desc</span>(.data<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">$</span>submission_referenced)</span>
<span id="cb2-140">  ) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-141">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Limit to the first five rows</span></span>
<span id="cb2-142">  utils<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">head</span>(<span class="dv" style="color: #AD0000;
background-color: null;
font-style: inherit;">5</span>) <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-143">  <span class="co" style="color: #5E5E5E;
background-color: null;
font-style: inherit;"># Join in some metadata</span></span>
<span id="cb2-144">  dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">left_join</span>(</span>
<span id="cb2-145">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">y =</span> </span>
<span id="cb2-146">      fdadata<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span>pmn <span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">|&gt;</span> </span>
<span id="cb2-147">      dplyr<span class="sc" style="color: #5E5E5E;
background-color: null;
font-style: inherit;">::</span><span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">select</span>(</span>
<span id="cb2-148">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>,</span>
<span id="cb2-149">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"date_decision"</span>,</span>
<span id="cb2-150">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"sponsor"</span>,</span>
<span id="cb2-151">        <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"device"</span></span>
<span id="cb2-152">      ),</span>
<span id="cb2-153">    <span class="at" style="color: #657422;
background-color: null;
font-style: inherit;">by =</span> <span class="fu" style="color: #4758AB;
background-color: null;
font-style: inherit;">c</span>(<span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_referenced"</span> <span class="ot" style="color: #003B4F;
background-color: null;
font-style: inherit;">=</span> <span class="st" style="color: #20794D;
background-color: null;
font-style: inherit;">"submission_number"</span>)</span>
<span id="cb2-154">  ) </span></code></pre></div></div>
</details>
</div>
<p>This produces Table&nbsp;1.</p>
<div class="cell">
<div id="tbl-results" class="cell quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-tbl figure">
<figcaption class="quarto-float-caption-top quarto-float-caption quarto-float-tbl" id="tbl-results-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Table&nbsp;1: Five submissions frequently referenced in 510(k) summaries for image processing devices cleared from 2008 - 2018
</figcaption>
<div aria-describedby="tbl-results-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="cell-output-display">
<table class="do-not-create-environment cell caption-top table table-sm table-striped small">
<thead>
<tr class="header">
<th style="text-align: left;" data-quarto-table-cell-role="th"></th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Submission Referenced</th>
<th style="text-align: right;" data-quarto-table-cell-role="th">References</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Date Decision</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Sponsor</th>
<th style="text-align: left;" data-quarto-table-cell-role="th">Device</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left; width: 2em;">1</td>
<td style="text-align: left; width: 8em;"><a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K071331">K071331</a></td>
<td style="text-align: right;">14</td>
<td style="text-align: left; width: 10em;">2007-05-25</td>
<td style="text-align: left;">Vital Images, Inc.</td>
<td style="text-align: left;">VITREA VERSION 4.0</td>
</tr>
<tr class="even">
<td style="text-align: left; width: 2em;">2</td>
<td style="text-align: left; width: 8em;"><a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K120361">K120361</a></td>
<td style="text-align: right;">12</td>
<td style="text-align: left; width: 10em;">2012-04-06</td>
<td style="text-align: left;">Fujifilm Medical Systems U.S.A, Inc.</td>
<td style="text-align: left;">SYNAPSE 3D BASE TOOLS</td>
</tr>
<tr class="odd">
<td style="text-align: left; width: 2em;">3</td>
<td style="text-align: left; width: 8em;"><a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K150843">K150843</a></td>
<td style="text-align: right;">11</td>
<td style="text-align: left; width: 10em;">2015-04-24</td>
<td style="text-align: left;">Siemens AG</td>
<td style="text-align: left;">syngo.via (version VB10A)</td>
</tr>
<tr class="even">
<td style="text-align: left; width: 2em;">4</td>
<td style="text-align: left; width: 8em;"><a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K110300">K110300</a></td>
<td style="text-align: right;">11</td>
<td style="text-align: left; width: 10em;">2011-07-01</td>
<td style="text-align: left;">Materialise Dental NV</td>
<td style="text-align: left;">SIMPLANT 2011</td>
</tr>
<tr class="odd">
<td style="text-align: left; width: 2em;">5</td>
<td style="text-align: left; width: 8em;"><a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfpmn/pmn.cfm?ID=K073714">K073714</a></td>
<td style="text-align: right;">11</td>
<td style="text-align: left; width: 10em;">2008-03-19</td>
<td style="text-align: left;">Orthocrat, Ltd.</td>
<td style="text-align: left;">TRAUMACAD VERSION 2.0</td>
</tr>
</tbody>
</table>
</div>
</div>
</figure>
</div>
</div>
</section>
<section id="additional-considerations" class="level2 page-columns page-full">
<h2 class="anchored" data-anchor-id="additional-considerations">Additional considerations</h2>
<ul>
<li><p><strong>PDF Portfolios are not included</strong>. A small number of 510(k) summaries are posted as <a href="https://pdfa.org/pdf-portfolios-and-how-to-use-them/">PDF portfolios</a> and may not have been processed correctly or included in this dataset. Based on manual spot-checks, I believe that problems are particularly common when a PDF portfolio includes a fillable version of the indications for use form.</p></li>
<li><p><strong>Many 510(k) summaries do not include embedded text</strong>. Embedded text is not present in many of the 510(k) clearance packages, particularly for decisions made many years ago. Both embedded text, when available, and text from OCR should be included for each page in this dataset. Which you choose to use and when may depend on your specific use-case.</p></li>
<li><p><strong>Many 510(k)s have a 510(k) statement instead of a summary</strong>. Not all cleared 510(k)s have 510(k) clearance packages on the FDA website. Some manufacturers use a 510(k) statement in lieu of a 510(k) summary, which means they promise to provide safety and effectiveness information within 30 days of a request from any person.<sup>4</sup> In addition, the 510(k) Summary/Statement requirement did not exist until the 1990s, so earlier submissions do not have 510(k) clearance packages.<sup>5</sup></p></li>
<li><p><strong>510(k) summaries are not written by the FDA</strong>. A 510(k) summary is written by the manufacturer of the device, not by the FDA. Sometimes, the FDA provides considerable input. Other times, the FDA may conduct only a cursory review of a 510(k) summary. Practice has varied over the decades. Sometimes, the manufacturer and the FDA may forget to update the contents of a 510(k) summary at the end of a review after additional information has been provided, and a 510(k) summary may only reflect what was initially provided to the FDA before all questions were resolved. Be cautious about drawing firm conclusions about what was included – or absent – from a 510(k) on the basis of a 510(k) summary.</p></li>
</ul>

<div class="no-row-height column-margin column-container"><div class="">
<script src="https://kit.fontawesome.com/0cc570d2cb.js" crossorigin="anonymous"></script>
<b>FDA Regulatory Expertise</b>: <br> I help technology developers put their best foot forward when they need to interact with the FDA. <br><br>
<div style="text-align: center">
<p><a class="btn btn-outline-primary" href="https://calendly.com/olearybrendan/initial-meeting/" target="_blank"> Schedule a meeting</a></p>
</div>
</div></div></section>
<section id="availability-of-clearance-packages-and-summaries-in-this-dataset" class="level2">
<h2 class="anchored" data-anchor-id="availability-of-clearance-packages-and-summaries-in-this-dataset">Availability of clearance packages and summaries in this dataset</h2>
<p>As noted above, the 510(k) summary regulation came into effect in the 1990s. While I believe this dataset includes all or nearly all of the 510(k) summaries the FDA has made available on its website, there are notable gaps. Figure&nbsp;1 shows the percentage of expected 510(k) summaries that are available in this dataset by the fiscal year of decision.</p>
<div class="cell">
<div id="fig-summary-availability" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-summary-availability-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-747f2623605b02be2359" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-747f2623605b02be2359">{"x":{"visdat":{"f50663dd29f0":["function () ","plotlyVisDat"]},"cur_data":"f50663dd29f0","attrs":{"f50663dd29f0":{"x":{},"y":{},"text":{},"textposition":"none","hovertemplate":"%{text}<extra><\/extra>","alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":25,"r":10},"title":"510(k) Summary Availability by Fiscal Year of Decision","xaxis":{"domain":[0,1],"automargin":true,"title":"Fiscal Year of Decision","fixedrange":true},"yaxis":{"domain":[0,1],"automargin":true,"title":"510(k) Summary Availability","ticksuffix":"%","fixedrange":true},"hovermode":"x unified","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displayModeBar":false},"data":[{"x":[1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026],"y":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.79681274900398402,0.58708414872798431,1.4522821576763485,1.1910013233348038,1.8161601186063752,82.682926829268283,98.044377585558479,99.605678233438482,99.630996309963109,32.365633581796786,44.216417910447767,97.478705281090299,99.361928394186464,99.172661870503603,98.93303899926417,99.237170596393895,98.445020362828586,98.922413793103445,99.151291512915122,96.784313725490208,98.167991704113376,98.657487091222023,99.223438051535467,99.130434782608702,99.297012302284713,99.638728323699425,99.698895951823346,99.895760945100761,99.890390938984282,100,99.96487530734106,98.745460548035652,99.523355576739746,98.500851788756393,99.545749513303051,67.692307692307693],"text":["1976: None expected.","1977: None expected.","1978: None expected.","1979: None expected.","1980: None expected.","1981: None expected.","1982: None expected.","1983: None expected.","1984: None expected.","1985: None expected.","1986: None expected.","1987: None expected.","1988: None expected.","1989: None expected.","1990: None expected.","2 / 251 = 1%","6 / 1022 = 1%","21 / 1446 = 1%","27 / 2267 = 1%","49 / 2698 = 2%","2034 / 2460 = 83%","2607 / 2659 = 98%","2526 / 2536 = 100%","2430 / 2439 = 100%","825 / 2549 = 32%","1185 / 2680 = 44%","2861 / 2935 = 97%","2803 / 2821 = 99%","2757 / 2780 = 99%","2689 / 2718 = 99%","2862 / 2884 = 99%","2659 / 2701 = 98%","2754 / 2784 = 99%","2687 / 2710 = 99%","2468 / 2550 = 97%","2840 / 2893 = 98%","2866 / 2905 = 99%","2811 / 2833 = 99%","2964 / 2990 = 99%","2825 / 2845 = 99%","2758 / 2768 = 100%","2980 / 2989 = 100%","2875 / 2878 = 100%","2734 / 2737 = 100%","2758 / 2758 = 100%","2846 / 2847 = 100%","2991 / 3029 = 99%","3132 / 3147 = 100%","2891 / 2935 = 99%","3068 / 3082 = 100%","440 / 650 = 68%"],"textposition":["none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none"],"hovertemplate":["%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>"],"type":"bar","marker":{"color":"rgba(31,119,180,1)","line":{"color":"rgba(31,119,180,1)"}},"error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-summary-availability-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;1: 510(k) summary availability by fiscal year of decision. <a href="data/available_by_year.csv">Data</a>.
</figcaption>
</figure>
</div>
</div>
<p>Clearance packages that include decision letters and indications for use statements may also be posted when a 510(k) statement is used, and correction letters may be posted for historical submissions when the FDA changes how it describes, identifies, groups, and tracks devices with product codes <span class="citation" data-cites="fda-procode-final-2013">[1]</span> or when the FDA makes other changes. Figure&nbsp;2 shows the percentage of clearance packages that are available in this dataset based on the total number of clearances in each fiscal year.</p>
<div class="cell">
<div id="fig-cp-avail" class="cell-output-display quarto-float quarto-figure quarto-figure-center anchored">
<figure class="quarto-float quarto-float-fig figure">
<div aria-describedby="fig-cp-avail-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
<div class="plotly html-widget html-fill-item" id="htmlwidget-6009784956a5dbfdb991" style="width:100%;height:464px;"></div>
<script type="application/json" data-for="htmlwidget-6009784956a5dbfdb991">{"x":{"visdat":{"f5064aaf8f1":["function () ","plotlyVisDat"]},"cur_data":"f5064aaf8f1","attrs":{"f5064aaf8f1":{"x":{},"y":{},"text":{},"textposition":"none","hovertemplate":"%{text}<extra><\/extra>","alpha_stroke":1,"sizes":[10,100],"spans":[1,20],"type":"bar"}},"layout":{"margin":{"b":40,"l":60,"t":25,"r":10},"title":"Clearance Package Availability by Fiscal Year of Decision","xaxis":{"domain":[0,1],"automargin":true,"title":"Fiscal Year of Decision","fixedrange":true},"yaxis":{"domain":[0,1],"automargin":true,"title":"Clearance Package Availability","ticksuffix":"%","fixedrange":true},"hovermode":"x unified","showlegend":false},"source":"A","config":{"modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false,"displayModeBar":false},"data":[{"x":[1976,1977,1978,1979,1980,1981,1982,1983,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026],"y":[0.18433179723502305,0.33112582781456956,0.15189873417721519,0.32867707477403452,0.2450122506125306,0.27380590203833283,0.32276995305164319,0.33670033670033667,0.22742779167614283,0.24537140307829577,0.25304807913503569,0.4086538461538462,0.34891835310537334,0.27833001988071571,0.44482101249735223,1.2042502951593861,0.76398362892223737,0.88792896568274537,1.1801457827143353,1.330417350100237,49.103698661220783,84.497563239730795,99.576158940397349,99.549803038829481,32.435563278308713,43.531768746422436,97.394843962008139,99.374288964732642,99.021642454788022,98.891001267427129,99.253963319863232,97.087378640776706,97.641663937111034,97.772606382978722,96.722479515496971,98.079999999999998,98.628389154704948,99.049803407601573,98.782391507961293,99.239417989417987,99.661705006765899,99.656357388316152,99.869366427171784,99.897189856065793,100,99.966920277869662,98.630136986301366,99.521959964147001,98.465963566634713,99.534883720930239,67.86248131539611],"text":["2 / 1085 = 0%","7 / 2114 = 0%","3 / 1975 = 0%","8 / 2434 = 0%","7 / 2857 = 0%","9 / 3287 = 0%","11 / 3408 = 0%","12 / 3564 = 0%","10 / 4397 = 0%","11 / 4483 = 0%","11 / 4347 = 0%","17 / 4160 = 0%","15 / 4299 = 0%","14 / 5030 = 0%","21 / 4721 = 0%","51 / 4235 = 1%","28 / 3665 = 1%","37 / 4167 = 1%","68 / 5762 = 1%","73 / 5487 = 1%","2164 / 4407 = 49%","3641 / 4309 = 84%","3759 / 3775 = 100%","3538 / 3554 = 100%","1120 / 3453 = 32%","1521 / 3494 = 44%","3589 / 3685 = 97%","3494 / 3516 = 99%","3340 / 3373 = 99%","3121 / 3156 = 99%","3193 / 3217 = 99%","2900 / 2987 = 97%","2981 / 3053 = 98%","2941 / 3008 = 98%","2715 / 2807 = 97%","3065 / 3125 = 98%","3092 / 3135 = 99%","3023 / 3052 = 99%","3164 / 3203 = 99%","3001 / 3024 = 99%","2946 / 2956 = 100%","3190 / 3201 = 100%","3058 / 3062 = 100%","2915 / 2918 = 100%","2925 / 2925 = 100%","3022 / 3023 = 100%","3168 / 3212 = 99%","3331 / 3347 = 100%","3081 / 3129 = 98%","3210 / 3225 = 100%","454 / 669 = 68%"],"textposition":["none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none","none"],"hovertemplate":["%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>","%{text}<extra><\/extra>"],"type":"bar","marker":{"color":"rgba(31,119,180,1)","line":{"color":"rgba(31,119,180,1)"}},"error_y":{"color":"rgba(31,119,180,1)"},"error_x":{"color":"rgba(31,119,180,1)"},"xaxis":"x","yaxis":"y","frame":null}],"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.20000000000000001,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<figcaption class="quarto-float-caption-bottom quarto-float-caption quarto-float-fig" id="fig-cp-avail-caption-0ceaefa1-69ba-4598-a22c-09a6ac19f8ca">
Figure&nbsp;2: Clearance package availability by fiscal year of decision. <a href="data/available_by_year.csv">Data</a>.
</figcaption>
</figure>
</div>
</div>
<p>I don’t know why the availability of clearance packages in this dataset falls off so dramatically in 2000 and 2001, but I’m looking into it.</p>
<p>In addition, 27 submissions associated with clearance packages in this dataset no longer appear in the FDA’s database: <a href="data/K110981.pdf">K110981</a>, <a href="data/K112204.pdf">K112204</a>, <a href="data/K112294.pdf">K112294</a>, <a href="data/K131823.pdf">K131823</a>, <a href="data/K131831.pdf">K131831</a>, <a href="data/K152517.pdf">K152517</a>, <a href="data/K170014.pdf">K170014</a>, <a href="data/K170024.pdf">K170024</a>, <a href="data/K170025.pdf">K170025</a>, <a href="data/K170027.pdf">K170027</a>, <a href="data/K180177.pdf">K180177</a>, <a href="data/K180178.pdf">K180178</a>, <a href="data/K182156.pdf">K182156</a>, <a href="data/K192179.pdf">K192179</a>, <a href="data/K201601.pdf">K201601</a>, <a href="data/K201706.pdf">K201706</a>, <a href="data/K201929.pdf">K201929</a>, <a href="data/K210496.pdf">K210496</a>, <a href="data/K211351.pdf">K211351</a>, <a href="data/K211727.pdf">K211727</a>, <a href="data/K212972.pdf">K212972</a>, <a href="data/K220183.pdf">K220183</a>, <a href="data/K220185.pdf">K220185</a>, <a href="data/K221416.pdf">K221416</a>, <a href="data/K222647.pdf">K222647</a>, <a href="data/K230447.pdf">K230447</a>, and <a href="data/K230999.pdf">K230999</a>.</p>
<p>Some of these submissions appear to be for Powdered Surgeon’s Gloves, Powdered Patient Examination Gloves, and Absorbable Powder for Lubricating a Surgeon’s Glove, which were banned under a regulation issued in 2016. <span class="citation" data-cites="fda-latex-2016">[2]</span> The FDA also issued several <a href="https://www.fda.gov/medical-devices/industry-medical-devices/notifications-data-integrity-medical-devices">notifications on data integrity</a>, and this may account for some of these submissions. The FDA does not appear to have published information on its criteria or process for removing submissions from its databases after a clearance decision. Other submissions may have been removed before I was able to access them and add them to this dataset.</p>
</section>
<section id="changelog" class="level2">
<h2 class="anchored" data-anchor-id="changelog">Changelog</h2>
<ul>
<li><strong>2026-03-24</strong>:
<ul>
<li>Added 220 additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2026-02-23</strong>:
<ul>
<li>Added 244 additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2026-01-13</strong>:
<ul>
<li>Added 283 additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-12-16</strong>:
<ul>
<li>Added 255 additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-11-19</strong>:
<ul>
<li>Added 326 additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-10-22</strong>:
<ul>
<li>Added 673 additional 510(k) clearance packages.</li>
<li>Added new note about the limitations of this dataset at the top of the post.</li>
<li>Added new section on the availability of clearance packages and summaries in this dataset.</li>
<li>Updated post title and graphic.</li>
<li>I changed the OCR approach in October 2025 to improve quality. OCR text for clearance packages with a <code>date_obtained</code> of October 2025 or later should be a bit better as a result. I’m slowly refreshing the dataset, prioritizing clearance packages that may have been missed in earlier versions of this dataset as well as those where no embedded text is available.</li>
</ul></li>
<li><strong>2025-09-10</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-08-03</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
<li>Revised disclaimer.</li>
</ul></li>
<li><strong>2025-06-10</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-05-22</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-05-14</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-04-15</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-03-16</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-02-15</strong>:
<ul>
<li>Removed “Known Issues” because I have not been keeping it up-to-date.</li>
<li>Updated ad.</li>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-01-22</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2025-01-04</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-12-18</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-11-07</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-10-17</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-10-08</strong>:
<ul>
<li>Removed parquet file format option.</li>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-09-03</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-08-19</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-08-12</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-08-06</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-07-22</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-07-08</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
<li>Changed parquet compression from gzip to snappy.</li>
</ul></li>
<li><strong>2024-06-27</strong>:
<ul>
<li>Added additional 510(k) clearance packages.</li>
</ul></li>
<li><strong>2024-06-05</strong>:
<ul>
<li>Added clearance packages for 510(k)s with 510(k) Statements instead of summaries. These include the clearance letter and the indications for use and do not include a 510(k) summary.</li>
</ul></li>
<li><strong>2024-05-10</strong>:
<ul>
<li>Added additional 510(k) summaries.</li>
</ul></li>
<li><strong>2024-02-29</strong>:
<ul>
<li>Added additional 510(k) summaries.</li>
</ul></li>
<li><strong>2023-12-23</strong>:
<ul>
<li>Added additional 510(k) summaries.</li>
</ul></li>
<li><strong>2023-10-25</strong>:
<ul>
<li>Added additional 510(k) summaries.</li>
</ul></li>
<li><strong>2023-08-14</strong>:
<ul>
<li>Fixed an error in the sample script in R that identifies the 510(k)s that were referenced in the most 510(k) summaries for radiological image processing devices cleared between calendar years 2008 and 2018. After submission numbers are extracted, they are now all made upper case using <code>stringr::str_to_upper()</code> before they are counted. Before, for example, “K100001” and “k100001” would have been counted as different submissions because of the difference in case for the “K”. This fix did not change the results presented in Table 1.</li>
<li>Fixed a spelling mistake in a footnote.</li>
<li>Added Known issues section.</li>
<li>Clarified that De Novo reclassification orders are treated as 510(k) summaries for the purposes of this dataset.</li>
<li>Added new submissions recently posted to the FDA website.</li>
<li>Added old submissions that were previously missing from the dataset. I believe the dataset is now comprehensive as of 2023-08-14.</li>
</ul></li>
<li><strong>2023-07-17</strong>: Initial publication.</li>
</ul>



</section>


<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-fda-procode-final-2013" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline"><span>“Medical device classification product codes,”</span> <span>U.S. Food and Drug Administration</span>, Final Guidance Document. Docket Number FDA-2011-D-0916, Apr. 2013. Available: <a href="https://www.regulations.gov/document/FDA-2011-D-0916-0009">https://www.regulations.gov/document/FDA-2011-D-0916-0009</a></div>
</div>
<div id="ref-fda-latex-2016" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline"><span>“81 <span>FR</span> 91722: Banned devices; powdered surgeon’s gloves, powdered patient examination gloves, and absorbable powder for lubricating a surgeon’s glove,”</span> <span>U.S. Food and Drug Administration</span>, Final Rule. Federal Register Notice 81 <span>FR</span> 91722, Dec. 2016. Available: <a href="https://www.federalregister.gov/d/2016-30382">https://www.federalregister.gov/d/2016-30382</a></div>
</div>
</div></section><section id="footnotes" class="footnotes footnotes-end-of-document"><h2 class="anchored quarto-appendix-heading">Footnotes</h2>

<ol>
<li id="fn1"><p>Upon initial publication, this dataset included more than 72,000 510(k) summary packages. This includes De Novos, where the reclassification order was used as the summary. Earlier versions of this dataset did not include clearance packages for 510(k)s where a 510(k) Statement was used.↩︎</p></li>
<li id="fn2"><p>Upon initial publication, this dataset included more than 494,000 pages.↩︎</p></li>
<li id="fn3"><p>See: <a href="https://www.fda.gov/medical-devices/premarket-notification-510k/content-510k#link_7" class="uri">https://www.fda.gov/medical-devices/premarket-notification-510k/content-510k#link_7</a>.↩︎</p></li>
<li id="fn4"><p>See the FDA’s description of the necessary <a href="https://www.fda.gov/medical-devices/premarket-notification-510k/content-510k#link_7">Content of a 510(k)</a>, which describes this in more depth.↩︎</p></li>
<li id="fn5"><p>The requirement for a 510(k) summary or a 510(k) statement is from the <a href="https://www.congress.gov/bill/101st-congress/house-bill/3095/text">Safe Medical Devices Act (SMDA) of 1990</a>. The regulation, <a href="https://www.accessdata.fda.gov/scripts/cdrh/cfdocs/cfCFR/CFRSearch.cfm?FR=807.92">21 CFR 807.92</a>, was established through an interim rule with <a href="https://www.federalregister.gov/citation/57-FR-18066">57 FR 18066</a> on April 28, 1992 and was finalized with <a href="https://www.federalregister.gov/citation/59-FR-64295">59 FR 64295</a> on December 14, 1994.↩︎</p></li>
</ol>
</section><section class="quarto-appendix-contents" id="quarto-reuse"><h2 class="anchored quarto-appendix-heading">Reuse</h2><div class="quarto-appendix-contents"><div><a rel="license" href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a></div></div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{o'leary,
  author = {O’Leary, Brendan},
  title = {Data for Researchers: {Extracted} Text from More Than 89,000
    {FDA} Medical Device 510(k) Clearance Packages},
  date = {},
  url = {https://www.boleary.com/blog/posts/202307-pmn/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-o'leary" class="csl-entry quarto-appendix-citeas">
<div class="">B.
O’Leary, <span>“Data for researchers: Extracted text from more than
89,000 FDA medical device 510(k) clearance packages.”</span> <a href="https://www.boleary.com/blog/posts/202307-pmn/">https://www.boleary.com/blog/posts/202307-pmn/</a></div>
</div></div></section></div> ]]></description>
  <category>510(k)</category>
  <category>datasets</category>
  <category>FDA</category>
  <category>medical devices</category>
  <category>R</category>
  <category>regulatory science</category>
  <guid>https://www.boleary.com/blog/posts/202307-pmn/</guid>
  <pubDate>Mon, 17 Jul 2023 17:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202307-pmn/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Plots for MDUFA wonks</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202306-fda-calendar-days/</link>
  <description><![CDATA[ 




<p>Plots for MDUFA wonks, with the caveat that efficiency/speed metrics only tell part of the story, especially when quality metrics are not readily available: <a href="https://www.fdadays.com/">https://www.fdadays.com/</a></p>
<p><a href="https://www.fdadays.com"><img src="https://www.boleary.com/blog/posts/202306-fda-calendar-days/image.webp" class="preview-image img-fluid"></a></p>
<p>These are based on the FDA’s publicly posted databases for cleared 510(k)s and granted De Novos, so they only represent the submissions that made it through.</p>



<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{o'leary2023,
  author = {O’Leary, Brendan},
  title = {Plots for {MDUFA} Wonks},
  date = {2023-06-25},
  url = {https://www.boleary.com/blog/posts/202306-fda-calendar-days/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-o'leary2023" class="csl-entry quarto-appendix-citeas">
<div class="">B.
O’Leary, <span>“Plots for MDUFA wonks,”</span> Jun. 25, 2023. <a href="https://www.boleary.com/blog/posts/202306-fda-calendar-days/">https://www.boleary.com/blog/posts/202306-fda-calendar-days/</a></div>
</div></div></section></div> ]]></description>
  <category>510(k)</category>
  <category>De Novo</category>
  <category>FDA</category>
  <category>Medical Devices</category>
  <guid>https://www.boleary.com/blog/posts/202306-fda-calendar-days/</guid>
  <pubDate>Sun, 25 Jun 2023 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202306-fda-calendar-days/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>A promise that should not have been made</title>
  <dc:creator>Brendan O&#39;Leary</dc:creator>
  <link>https://www.boleary.com/blog/posts/202306-stat-data-integrity/</link>
  <description><![CDATA[ 




<p>A good read from Allison DeAngelis at STAT: <a href="https://www.statnews.com/2023/06/12/laronde-data-integrity-issues-biotech/">The inside story of how data integrity issues roiled a biotech seen as ‘Moderna 2.0’</a></p>
<p><a href="https://www.statnews.com/2023/06/12/laronde-data-integrity-issues-biotech/"><img src="https://www.boleary.com/blog/posts/202306-stat-data-integrity/image.webp" class="preview-image img-fluid"></a></p>
<p>Some years back, a mentor encouraged me to read a similar article about the Volkswagen emissions defeat device scandal (<a href="https://www.theatlantic.com/magazine/archive/2016/01/what-was-volkswagen-thinking/419127/">What Was Volkswagen Thinking?</a>), and a sentence from that article has been ringing in my ears ever since: “It started, as Volkswagen’s problems apparently did, with a promise that should not have been made.”</p>



 ]]></description>
  <category>news</category>
  <guid>https://www.boleary.com/blog/posts/202306-stat-data-integrity/</guid>
  <pubDate>Mon, 12 Jun 2023 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202306-stat-data-integrity/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>AIM-HI: Supporting prospective evaluations of diagnostic AI/ML tools in real-world clinical settings</title>
  <link>https://www.boleary.com/blog/posts/202305-aim-hi-announcement/</link>
  <description><![CDATA[ 




<p><a href="https://divisionofresearch.kaiserpermanente.org/projects/aim-hi">AIM-HI</a>: “…an effort to stimulate the generation of higher quality evidence of clinical AI safety, effectiveness and fairness.” Sign me up! I’m honored to join the <a href="https://divisionofresearch.kaiserpermanente.org/projects/aim-hi/Pages/program-organization.aspx">National Advisory Committee</a> for this effort, and I’m excited to support the work the Gordon and Betty Moore Foundation and Kaiser Permanente are doing to advance the science around the implementation of AI/ML diagnostic decision support tools. Don’t miss this opportunity and be sure to check out the <a href="https://divisionofresearch.kaiserpermanente.org/projects/aim-hi/Pages/request-for-proposals.aspx">Virtual Information Session on May 22</a>!</p>
<iframe src="https://www.linkedin.com/embed/feed/update/urn:li:share:7060498887559565312" allowfullscreen="" title="Embedded post" width="800" height="1200" frameborder="0">
</iframe>



 ]]></description>
  <category>digital health</category>
  <category>AI/ML</category>
  <category>funding</category>
  <guid>https://www.boleary.com/blog/posts/202305-aim-hi-announcement/</guid>
  <pubDate>Thu, 11 May 2023 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202305-aim-hi-announcement/image.webp" medium="image" type="image/webp"/>
</item>
<item>
  <title>Four things to know about the FDA’s new discussion paper on AI/ML in drug development</title>
  <link>https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/</link>
  <description><![CDATA[ 




<p>First, a big congratulations to the great folks at the FDA who got this out the door! Here are four key points from the FDA’s discussion paper on Using AI &amp; ML in the Development of Drug &amp; Biological Products <span class="citation" data-cites="aimldrug2023">[1]</span>:</p>
<p><a href="https://www.fda.gov/science-research/science-and-research-special-topics/artificial-intelligence-and-machine-learning-aiml-drug-development"><img src="https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/image.webp" class="preview-image img-fluid"></a></p>
<ol type="1">
<li><p><strong>The FDA is working across centers</strong>. The paper was authored by the FDA’s drug center (CDER) in collaboration with the biologics center (CBER) and the medical device center’s Digital Health Center of Excellence (CDRH/DHCoE). Scientists talking to scientists across the FDA is a good thing: It promotes more holistic, consistent, and efficient approaches agency wide. Reinforcing this, don’t miss footnote 4 on page 1, which talks about how the principles in this document can apply&nbsp;to combination products, companion devices, and complementary devices.</p></li>
<li><p><strong>The FDA is pulling back the curtain on how its own experts talk about AI/ML in drug development</strong>. Take section II.C, for example, where the FDA breaks down the use of AI/ML in clinical research into 8 broad categories. If you’re putting together a study that involves AI/ML, show the FDA that you’re a pro and <em>describe your proposed study using the same categories the FDA’s own experts used here</em>. And don’t miss the glossary!&nbsp; Use these terms when you communicate with the FDA and reference the discussion paper when you do.</p></li>
<li><p><strong>The FDA wants more decentralized clinical trials</strong>. There are other documents out there about this right now, and the early mention on page 5 of this paper is notable. This topic just keeps coming up. It’s definitely a “tailwind topic” at the agency right now: <em>If you have an opportunity to frame your next proposal to FDA in the context of driving towards the future of decentralized clinical trials, that could help push you ahead</em>.</p></li>
<li><p>And finally, the Big Takeaway: <strong>The FDA is inviting you to help drive a larger effort</strong>. This paper is generating a dialog before the FDA gets too far down the path of deciding whether or not to put formal policy language together. Yeah, a discussion paper is not guidance, but, at least in my experience, the FDA doesn’t go to this much trouble unless they’re testing the waters and seriously considering putting something like a guidance together down the road. If you have policy ideas you want to see the FDA implement in the future, <em>This Is Your Chance</em>. Get your comments into the <a href="https://www.federalregister.gov/public-inspection/2023-09985/using-artificial-intelligence-and-machine-learning-in-the-development-of-drug-and-biological">Federal Register</a> so the FDA can use them!</p></li>
</ol>
<p>Oh – and don’t miss this tidbit from the announcement: “In 2021, more than 100 drug and biologic applications submitted to the FDA included AI/ML components.” <span class="citation" data-cites="cavazzoniaiml2023">[2]</span></p>




<div id="quarto-appendix" class="default"><section class="quarto-appendix-contents" id="quarto-bibliography"><h2 class="anchored quarto-appendix-heading">References</h2><div id="refs" class="references csl-bib-body" data-entry-spacing="0">
<div id="ref-aimldrug2023" class="csl-entry">
<div class="csl-left-margin">[1] </div><div class="csl-right-inline">U.S. Food and Drug Administration, <span>“Using artificial intelligence and machine learning in the development of drug and biological products,”</span> May 10, 2023. <a href="https://www.fda.gov/media/167973/download">https://www.fda.gov/media/167973/download</a> (accessed May 10, 2023).</div>
</div>
<div id="ref-cavazzoniaiml2023" class="csl-entry">
<div class="csl-left-margin">[2] </div><div class="csl-right-inline">P. Cavazzoni, <span>“FDA releases two discussion papers to spur conversation about artificial intelligence and machine learning in drug development and manufacturing,”</span> May 10, 2023. <a href="https://www.fda.gov/news-events/fda-voices/fda-releases-two-discussion-papers-spur-conversation-about-artificial-intelligence-and-machine">https://www.fda.gov/news-events/fda-voices/fda-releases-two-discussion-papers-spur-conversation-about-artificial-intelligence-and-machine</a> (accessed May 10, 2023).</div>
</div>
</div></section><section class="quarto-appendix-contents" id="quarto-citation"><h2 class="anchored quarto-appendix-heading">Citation</h2><div><div class="quarto-appendix-secondary-label">BibTeX citation:</div><pre class="sourceCode code-with-copy quarto-appendix-bibtex"><code class="sourceCode bibtex">@online{2023,
  author = {},
  title = {Four Things to Know about the {FDA’s} New Discussion Paper on
    {AI/ML} in Drug Development},
  date = {2023-05-10},
  url = {https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/},
  langid = {en}
}
</code></pre><div class="quarto-appendix-secondary-label">For attribution, please cite this work as:</div><div id="ref-2023" class="csl-entry quarto-appendix-citeas">
<div class=""><span>“Four things to know about the FDA’s new
discussion paper on AI/ML in drug development,”</span> May 10, 2023. <a href="https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/">https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/</a></div>
</div></div></section></div> ]]></description>
  <category>FDA</category>
  <category>digital health</category>
  <category>AI/ML</category>
  <category>drugs</category>
  <guid>https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/</guid>
  <pubDate>Wed, 10 May 2023 04:00:00 GMT</pubDate>
  <media:content url="https://www.boleary.com/blog/posts/202305-aiml-in-drug-development/image.webp" medium="image" type="image/webp"/>
</item>
</channel>
</rss>
