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 Glenn Elliott
Created on Jun 16, 2026

Consistent method to store and fetch metadata associated with a message

Have a consistent method to store and retrieve metadata that follows the message lifecycle. It should allow storing objects and variables in a simple way regardless of message type (HL7, SDA, FHIR, etc). It should be accessible across DTLs and BPs (and regardless of DTL context).


Example syntax could be:

MessageMetaData.put("key", "value to store")
MessageMetaData.get("key")

Simple example: during HL7 processing store activeEncounter which maybe used in downstream FHIR DTLs.

Set eventType = pHL7.GetValueAt("MSH:9.2")
Set dischargeDate = pHL7.GetValueAt("PV1:45")
if ((dischargeDate '= "") || (eventType = "A11") || (eventType = "A38")) {
Set tActiveEncounter = 0
} else {
Set tActiveEncounter = 1
}
/// Store variable into metadata
MessageMetaData.put("activeEncounter", tActiveEncounter)


Within a DTL allow for ease of access:

If (MessageMetaData.get("activeEncounter")) {
/// active encounter logic
}


While there are ways of either adding metadata to the message itself or customising IRIS with persisitent classes it would be great to have a standard method available that provides the following benefits:

  1. Safe by design, using persistent classes require manual keying with the message/session.

  2. Avoids polluting the message payload by not adding metadata to the message itself.

  3. Built in lifecycle management that tracks the message lifecycle.

  • ADMIN RESPONSE
    Jun 17, 2026

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

    Stay tuned!