The best place to start is to look at the HS.Sync.Operations business operation in the Registry. Look at the Interoperability/Ensemble Event Log and the Interoperability/Ensemble traces for the messages. Note that errors that occur on the non-Registry instance when loading the sync file are passed back to the HS.Sync.Operations in the Registry, but not put in the Interoperability/Ensemble Event Log. However, they should appear in the Interoperability/Ensemble trace in a message sent to the HS.Util.Trace.Operations component, assuming the TraceOperations setting of the HS.Sync.Operations component is not blank (it is *ERRORSONLY* by default). If TraceOperations is off, then you can look at the SendStatus property of the HS.Message.Sync response.

https://docs.intersystems.com/hs20222/csp/docbook/DocBook.UI.Page.cls?KE...

"19. Beginning in version 2022.2, HealthShare offers stream compression for your Edge Gateways, and provides a conversion utility to compress existing streams in the ECR database at each Edge Gateway. The conversion process is designed to not interfere with regular Edge Gateway data processing, and should complete within a day. ..."

I don't know what the best approach is.

You can call into ObjectScript from an XSLT using the isc:evaluate function. This is handled by the class in the XSLTCallbackHandlerClass property in HS.Util.XSLTTransformer. The HealthShare callback handler is HS.Util.XSLTHelper. You can extend this class to add functions to isc:evaluate and then point the transformer at your callback class. This is discussed in the documentation:

HealthShare 2022.2 > Using XML Tools > Performing XSLT Transformations > Specifying Parameters for Use by the Stylesheet > Adding and Using XSLT Extension Functions
https://docs.intersystems.com/hs20222/csp/docbook/DocBook.UI.Page.cls?KE...