diff --git a/redfish-core/lib/cpudimm.hpp b/redfish-core/lib/cpudimm.hpp
index a4d8822..5f6baa3 100644
--- a/redfish-core/lib/cpudimm.hpp
+++ b/redfish-core/lib/cpudimm.hpp
@@ -15,6 +15,8 @@
 */
 #pragma once
 
+#include "health.hpp"
+
 #include <boost/container/flat_map.hpp>
 #include <node.hpp>
 #include <utils/json_utils.hpp>
@@ -379,6 +381,10 @@
                           const std::string &dimmId, const std::string &service,
                           const std::string &objPath)
 {
+    auto health = std::make_shared<HealthPopulate>(aResp);
+    health->selfPath = objPath;
+    health->populate();
+
     BMCWEB_LOG_DEBUG << "Get available system components.";
     crow::connections::systemBus->async_method_call(
         [dimmId, aResp{std::move(aResp)}](
diff --git a/redfish-core/lib/health.hpp b/redfish-core/lib/health.hpp
index fe65ebf..b9f2e38 100644
--- a/redfish-core/lib/health.hpp
+++ b/redfish-core/lib/health.hpp
@@ -56,9 +56,11 @@
         for (const auto &[path, interfaces] : statuses)
         {
             bool isChild = false;
+            bool isSelf =
+                selfPath ? boost::starts_with(path.str, *selfPath) : false;
 
             // managers inventory is all the inventory, don't skip any
-            if (!isManagersHealth)
+            if (!isManagersHealth && !isSelf)
             {
 
                 // We only want to look at this association if either the path
@@ -133,6 +135,11 @@
             else if (boost::ends_with(path.str, "critical"))
             {
                 rollup = "Critical";
+                if (isSelf)
+                {
+                    health = "Critical";
+                    return;
+                }
             }
             else if (boost::ends_with(path.str, "warning"))
             {
@@ -140,6 +147,11 @@
                 {
                     rollup = "Warning";
                 }
+
+                if (isSelf)
+                {
+                    health = "Warning";
+                }
             }
         }
     }
@@ -211,6 +223,10 @@
     // destroyed last, and they need not call populate()
     std::vector<std::shared_ptr<HealthPopulate>> children;
 
+    // self is used if health is for an individual items status, as this is the
+    // 'lowest most' item, the rollup will equal the health
+    std::optional<std::string> selfPath;
+
     std::vector<std::string> inventory;
     bool isManagersHealth = false;
     dbus::utility::ManagedObjectType statuses;
