Purpose Statement
The Data Source Configuration tab allows users to select which data sources an Ad-Hoc Report will query and define how those data sources relate to one another.
This tab establishes the foundation of the report by determining what information will be pulled from the database and how connected data sets should be included. It acts as the blueprint for the report before columns, criteria, sorting, grouping, or scheduling are configured.
Background Information
Data Source Configuration is the second step in creating an Ad-Hoc Report, after the Basic Information tab.
This is one of the most important steps in the report-building process because every later configuration tab depends on the selected data sources. The choices made here determine which fields are available for columns, criteria, sorting, grouping, and summary calculations.
The Data Source Configuration tab answers two key questions:
-
What data should the report use?
This is determined by selecting the parent data source and any needed child data sources.
-
How does the selected data relate to other data?
This is determined by creating parent/child relationships and selecting whether those relationships are inclusive or exclusive.
A report uses one parent data source as the primary foundation. Child data sources can then be added to pull in related information. For example, an Incident Report parent data source may connect to child data sources such as Apparatus, Personnel, EMS, or Occupancy records.
Understanding this tab helps prevent common reporting issues such as missing data, unexpected duplicate rows, incorrect counts, and report timeouts.
View the Data Sources Directory to see the field options associated with each Data Source prior to building your report.
Required Permissions
Users must have access to the Reports module and Ad-Hoc Reporting functionality.
Additional permissions may be required depending on the data sources selected. Please refer to Report Module Setup for information about limiting data sources by role.
If a user cannot access a specific data source, contact a system administrator to verify the user’s Reports permissions, Ad-Hoc Reporting permissions, and module-specific access.
Video
Step-by-Step Guide
-
Navigate to Data Source Configuration
Navigate to Reports > Ad-Hoc Reports.
Click Create Report.
Complete the Basic Information tab.
Click Next to open the Data Source Configuration tab.
-
Select the Parent Data Source
Select the main parent data source from the available dropdown.
The parent data source is the primary table the report is built around. It determines the main record structure of the report.
Common parent data sources may include:
- Incident Report
- Incident Report NERIS
- ePCR Reports
- Personnel
- Apparatus
- Work Orders
- Scheduling / All Assignments
Start with the broadest applicable data source. You can narrow the report later using Criteria and Filters.
-
Add Child Data Sources
Click Add Child next to the parent data source.
Select the child data source from the available options.
A gray connecting line will appear to show the relationship between the parent and child data sources.
Child data sources pull in related information connected to the parent. For example, an incident may have multiple apparatus records or multiple personnel records associated with it.
-
Choose the Relationship Type
For each child data source, select either Inclusive or Exclusive.
Relationship Type Description Result Inclusive Keeps all parent records, even if matching child data does not exist Parent records without child data still appear, with blank child fields Exclusive Keeps only parent records that have matching child data Parent records without child data are removed from results When unsure, use Inclusive. This keeps all parent records and allows you to filter results later using Criteria.
-
Build Multi-Level Relationships, If Needed
To create deeper data relationships, click Add Child next to an existing child data source.
This creates a child of a child, also known as a grandchild relationship.
Example hierarchy:
Incident Report ├── Apparatus │ └── Personnel ├── NERIS EMS └── OccupancyWhere a child data source is attached matters. For example, Incident Report Personnel attached to Apparatus will show personnel assigned to each apparatus, while Personnel attached directly to Incident Report, will only show the two people directly documented with an incident - the Report Author (Created By) and the Officer in Charge.
-
Review the Relationship Lines
Review the gray connecting lines to confirm each data source is connected in the correct location.
The lines show exactly how the parent, child, and grandchild data sources are related.
-
Confirm Inclusive or Exclusive Settings
Review each child relationship and confirm the correct relationship type is selected.
Use Inclusive when the report should keep all parent records.
Use Exclusive only when the report should include records that have matching child data.
-
Proceed to the Next Tab
Click Next to proceed to the next report configuration tab.
Click Previous if changes are needed on the Basic Information tab.
Understanding Parent and Child Relationships
Parent and child relationships define how data sources connect to one another.
The parent data source represents the main record type. Child data sources represent related data that can have multiple records connected to a single parent record.
For example:
| Configuration | Result |
|---|---|
| Incident Report only | One row per incident |
| Incident Report > Apparatus | One row per apparatus per incident |
| Incident Report > Apparatus > Personnel | One row per person per apparatus per incident |
Adding child data sources can multiply rows in the report. This is expected behavior, but it is important to understand when reviewing counts, totals, and summaries.
Inclusive vs. Exclusive Relationships
Inclusive and Exclusive relationships determine whether parent records remain in the report when matching child data does or does not exist.
Inclusive Example
If the parent data source is Incident Report and the child data source is NERIS EMS, an Inclusive relationship keeps all incidents in the report. Incidents without EMS data still appear, but EMS-related fields are blank.
Exclusive Example
If the same relationship is set to Exclusive, only incidents that have an EMS record appear. Incidents without EMS data are removed from the results.
Use Inclusive when:
- You want a complete list of parent records.
- You are unsure which relationship type to use.
- You need accurate parent-level counts.
- You plan to filter the report later using Criteria.
Use Exclusive when:
- You only want records that have matching child data.
- You intentionally want to reduce the dataset.
- You need a report limited to records with complete related data.
Inclusive vs. Exclusive Relationships
Choose how child data should affect the parent records included in your Ad-Hoc Report.
When in doubt, choose Inclusive. You can always filter data out later using Criteria, but Exclusive may remove records before you realize they are missing.
Key Behaviors & Features
One Parent Data Source
Each report has one parent data source that acts as the foundation for the report.
Multiple Child Data Sources
Multiple child data sources can be added when related data is needed.
Multi-Level Hierarchies
Child data sources can have their own child data sources, creating deeper report structures.
Gray Relationship Lines
The gray lines in the Data Source Configuration tab show how each data source is connected.
Row Multiplication
Adding child or grandchild data sources can increase the number of rows in the report.
Inclusive Relationships Preserve Parent Records
Inclusive relationships keep parent records even when matching child data does not exist.
Exclusive Relationships Filter Parent Records
Exclusive relationships remove parent records that do not have matching child data.
Best Practices
- Start with the broadest appropriate parent data source.
- Use Criteria filters later to narrow the report results.
- Default to Inclusive unless you specifically need to exclude parent records without matching child data.
- Plan the data source hierarchy before building complex reports.
- Watch for row multiplication when adding child and grandchild data sources.
- Pay close attention to where child data sources are attached.
- Use the gray relationship lines to verify connections.
- Test complex reports with a small date range before running them against large datasets.
- Limit deep hierarchies when possible to reduce the risk of slow report performance or timeouts.
- Document relationship choices for complex reports so future report editors understand the configuration.
Troubleshooting & FAQs
Why does my report show blank fields for some records?
This is expected when using an Inclusive relationship. The parent record exists, but there is no matching child data for that field. You can exclude blank fields using an "is not null" operator in Criteria.
Why is my incident count lower than expected?
Check whether any child relationships are set to Exclusive. Exclusive relationships remove parent records that do not have matching child data.
Why does my report have more rows than expected?
This is usually caused by row multiplication from child relationships. For example, if one incident has four apparatus records, the incident may appear four times when Apparatus is added as a child data source.
Can I change Inclusive or Exclusive after building columns and criteria?
Yes. You can return to the Data Source Configuration tab and change the relationship type. Review your report output afterward to confirm the results still match the report’s purpose.
How many child levels can I create?
The system supports multiple levels, but deeper hierarchies can impact performance. Two to three levels are typically easier to manage and review.
Why don’t I see a certain data source in the child options?
Child options are limited to data sources with defined relationships to the selected parent or child. The user may also need additional module permissions to access certain data sources.
What is the difference between adding a child to the parent and adding it to another child?
It changes what the child data is related to. For example, Personnel added to Apparatus may show personnel assigned to each apparatus. Personnel added directly to Incident Report, if available, may show all personnel associated with the incident.
Why is my report timing out?
The report may include too many data sources, deep relationship levels, broad date ranges, or large datasets. Try narrowing Criteria filters, reducing the date range, or simplifying the data source hierarchy.
Use Case Examples
Simple Incident Overview
Parent Data Source: Incident Report
Children: None
This creates one row per incident using incident-level fields only.
Incidents with Apparatus
Parent Data Source: Incident Report
Child Data Source: Incident Report Apparatus
Relationship Type: Inclusive
This creates one row per apparatus per incident while still including incidents that may not have apparatus data.
Full Response Detail
Parent Data Source: Incident Report
Child Data Source: Incident Report Apparatus
Grandchild Data Source: Incident Report Personnel
Relationship Type: Inclusive
This creates one row per person per apparatus per incident.
Only Incidents with Patient Care
Parent Data Source: Incident Report
Child Data Source: NERIS EMS
Relationship Type: Exclusive
This includes only incidents that have an associated patient care report.
Mixed Relationship Report
Parent Data Source: Incident Report
Child Data Source 1: Incident Report Apparatus, Inclusive
Child Data Source 2: Apparatus, Exclusive
This includes only incidents with Apparatus records while also displaying apparatus information when available.