Skip to Main Content
InterSystems Ideas

Have an idea, suggestion, or something that doesn’t work as expected in InterSystems products or services? Share it here on the InterSystems Ideas Portal.

The Ideas Portal is where community members can propose improvements, report bugs, and help influence the product roadmap across InterSystems products and the overall developer experience. 22% of submitted ideas are implemented by InterSystems or members of the Developer Community.

💡 Ideas and bugs are both welcome, no matter how big or small. You can submit feature requests, usability improvements, workflow suggestions, and bug reports. Whether you’re an experienced expert or just getting started, your fresh perspective is valuable.

🛠️ About bugs and fixes. If you have access to InterSystems WRC, please submit bugs there for immediate action. Bug reports submitted through the Ideas Portal are reviewed and tracked, but do not guarantee immediate resolution.

Start by sharing what could be better - the community and our teams will help take it from there.

Status Needs review
Created by Ashok Kumar T
Created on Jun 23, 2025

recursive search in Abstract Set Query

1️⃣ Description of the Idea
Introduce recursive search capability in InterSystems Abstract Set Query (ASQ) to efficiently navigate and retrieve data from complex %DynamicObject and %DynamicArray structures. This enhancement enables querying deeply nested JSON data without manually traversing each level.

2️⃣ Who is the Target Audience?
Primarily developers who work with dynamic JSON structures in InterSystems IRIS or similar environments.

3️⃣ What Problem Does It Solve?

Data retrieval from deeply nested JSON objects and arrays. Instead of writing extensive loop logic(%GetIterator() ), developers can perform targeted searches (e.g., retrieve all occurrences of a specific key) using a single ASQ expression.

4️⃣ How Does This Impact the Efficiency, Stability, Reliability, etc., of the Product?

  • Efficiency: Reduces the complexity and lines of code required for JSON parsing and querying.

  • Stability: Minimizes human error by removing the need for custom recursive logic.

  • Reliability: Ensures consistent and predictable query behavior across varied data structures.

5️⃣ Use Case Example

case 1: Consider a FHIR Bundle resource that contains multiple nested Observation entries, each with various components including valueQuantity fields with a value key. To extract all numeric values from valueQuantity across the entire bundle, regardless of nesting depth, you can use the recursive ASQ query:

code: Set results = DAO.Apply("$..valueQuantity.value")

case 2: Suppose a JSON object contains nested product information and you need to extract all the price values regardless of their depth. With recursive search in ASQ, this can be achieved effortlessly:
code: Write DAO.apply("$..price")

This expression recursively searches the entire JSON structure and returns all values associated with the price key, simplifying what would otherwise be a complex parsing task.

  • ADMIN RESPONSE
    Aug 4, 2025

    Thank you for submitting the idea. The status has been changed to "Needs review".

    Stay tuned!