function allRunStatus = getRunStatus()
    %% GETRUNSTATUS function queries data layer for run status of all the runs

    % Copyright 2018-2020 The MathWorks, Inc.

    % Get FPT Instance
    fpt = fxptui.FixedPointTool.getExistingInstance;

    dataLayer = fxptds.DataLayerInterface.getInstance();
    
    model = fpt.getModel();
    
    currentWorkflow = dataLayer.getCurrentWorkflow(model);

    % Get all Actions registered from the TopModel
    % In the future, it is possible to remove the type constraint and get
    % all reports from a container (Setup, Prepare, Baseline, fxp_16, etc)
    % include 'exclude' 'none' so that the run browser can get the updated
    % status of invalidated runs
    % TODO remove fxpoptInFPT keyword
    facade = dataLayer.getWorkflowTopologyFacade(model);
    if fixed.internal.utility.featuremanager.FeatureManager.getStatus('fxpoptInFPT') == 15
        currentWorkflowIntent = currentWorkflow.WorkflowIntent;
        currentWorkflowID = currentWorkflow.ID;
        allRawReports = facade.query(model, 'type', 'Action', 'property', 'Report', 'sortDirection', 'ascend', 'containerID', currentWorkflow.ID);
    else
        currentWorkflowIntent = fxptui.internal.WorkflowIntent.IterativeConversion;
        currentWorkflowID = '';
        allRawReports = facade.query(model, 'type', 'Action', 'property', 'Report', 'sortDirection', 'ascend', 'exclude', 'none');
    end

    strategy = fxptui.internal.runstatus.RunStatusStrategyFactory.getStrategy(currentWorkflowIntent);
    strategy.setCurrentWorkflowID(currentWorkflowID);
    allRunStatus = strategy.getAllRunStatus(allRawReports);
end