I am pretty sure that the bulk of the orphans are this message class:

Class AH.AHLIB.Custom.NextGate.Message.Patient Extends (Ens.Request, %Persistent, %JSON.Adaptor, %XML.Adaptor)

{

Parameter %JSONIGNOREINVALIDFIELD = 1;

Property header As AH.AHLIB.Custom.NextGate.Message.Patient.Header;

Property event As AH.AHLIB.Custom.NextGate.Message.Patient.Event;

Property entity As list Of AH.AHLIB.Custom.NextGate.Message.Patient.Entity;

Property additionalReferences As AH.AHLIB.Custom.NextGate.Message.Patient.AdditonalReferences;

Storage Default

{

<Data name="PatientDefaultData">

<Subscript>"Patient"</Subscript>

<Value name="1">

<Value>header</Value>

</Value>

<Value name="2">

<Value>event</Value>

</Value>

<Value name="3">

<Value>entity</Value>

</Value>

<Value name="4">

<Value>additionalReferences</Value>

</Value>

</Data>

<DefaultData>PatientDefaultData</DefaultData>

<Type>%Storage.Persistent</Type>

}

}

Thank you for the answers! I have a follow up question.

I have been deleting suspended messages already. So how do I go about cleaning up the orphans I've created? 

For instance, in one namespace where I know I deleted some suspended messages (and where all messages older than 7 days are supposed to have been purged), I ran this query:

select * from Ens.MessageHeader nolock
where timecreated < '2025-02-11 00:00:00.000'
order by timecreated 

I get 18298 messages - under four distinct session ids. 

How can I mark these so that will be purged? Or is there some other method of purging these orphans since I deleted their message header? 

Note: These are the settings on our Purge task:

Thank you for the answers! I have a follow up question.

I have been deleting suspended messages already. So how do I go about cleaning up the orphans I've created? 

For instance, in one namespace where I know I deleted some suspended messages (and where all messages older than 7 days are supposed to have been purged), I ran this query:

select * from Ens.MessageHeader nolock
where timecreated < '2025-02-11 00:00:00.000'
order by timecreated 

I get 18298 messages - under four distinct session ids. 

How can I mark these so that will be purged? Or is there some other method of purging these orphans since I deleted their message header? 

Note: These are the settings on our Purge task:

We just took an upgrade (to 2023.1.4) and are assembling our own issues with the Business Rule Editor to report to Intersystems before we revert back to the old version. 

Some problems we have found so far in addition to what Scott has already reported:

  1. Another wrinkle with the "send" action:  You cannot edit it manually. This is a problem when the GUI forces you to make choices that are incorrect for your logic  - such as its forced ordering of "chained" transform names (multiple DTLs in one "send") in alphabetical order rather than the order they actually need to be in. 
  2. Constraints are also no longer manually editable, which is inconvenient when you have a long list of message types (e.g. ADTs).
  3. Rules are no longer numbered, and there is a lot more whitespace. This, with the added problem of the commands appearing at the bottom (and Scott's already reported issue with not being able to Ctrl+F)  makes it difficult to analyze, navigate and program the rule.
  4. Autocompletion of the HL7 fields no longer works. --> HL7.{ 
    1.  
  5. There is no longer a "Save As" button . You can accomplish this by using Edit, but it's obfuscated.
  6. There is longer a "search" box in the "Open" dialog, forcing you to click through all the package levels. Additionally, there are no longer alternate (more efficient) "view" options.
  7. Pop-ups are no longer resizable
  8. Breadcrumbs (back to Interoperability etc) are no longer available at the top of the page.
  9. The URL still at times reflects a different namespace/rule than is shown on the page. It's thus difficult to be certain one is saving the rule in the expected location. (i.e. It seems it doesn't update the URL for the current component, if you have changed component from within the editor using the open/new buttons.)