Hi Jordan,

Looking at the method implementation, the Remainder is being overwritten from the method. So your assignment before GetFieldStreamRaw() method call is not considered.

Set Remainder="^^PDF"

If you need to set the "^^PDF" at the end of the segment, I would set it before Storing the stream.

Set tSC=OBX.SetValueAt("OBX",0)
Set tSC=OBX.SetValueAt("RP",2)
Set tSC=OBX.SetValueAt("PDF",5.4)
Set tSC=OBX.StoreFieldStreamRaw(EmbeddedPDF,5.1,Remainder)

Hi Karthikeyan,

From the code that you are running, the file you are providing, is being evaluated as a message file.

Can you please provide the file name which doesn't start with a "." or not in the list of MAGICFILENAMES. 

Please refer to ##class(EnsLib.InteropTools.HL7.MessageAnalyzer.Workspace.FolderType).IsMessageFileName() for the name validation.


Hi Jack,

We had used commitSegmentByPath for Huge HL7 related transformations. 

Can you try doing an intermediate %Save on the target object in the DTL using the <code> block. You can do this save multiple times, it will save as the same object. This might help you with some memory issues.

The other method you might consider is the one below, found in the EnsLib.EDI.XML.Document (IRIS 2019.2).

/// Switch from keeping changes in memory to keeping them in storage. Allows for unlimited changes to a document without running out of memory. This mode is automatically in effect when the object is created by loading from a stored Id
Method CommittedMode(pMode As %Boolean = 1) As %Status

There might be other efficient ways. Please let me know what you find out.



Hi Brad,

In addition to Enrico's list, these are some of the settings and items I would be wary of.

1. Auto-start on the Productions.

2. Creating any Custom WebApplications in the new environment. These would be applicable if you Client is using SOAP and/or REST based interfaces and Custom web pages.

3. Resource, Role and Users creation/import from the old environment to the new. Please look at the below classes in the %SYS Namespace.

a. Security.Roles
b. Security.Users

4. Once the backup is imported into the new environment, please, please do a compile of all the classes in all namespaces.

a.      zn "%SYS"

b.      do $system.OBJ.CompileAllNamespaces("u")

c.      do $system.OBJ.CompileAllNamespaces("ck")

5. And restart the new instance atleast a couple of times after the import and compile. This should clear any issues with the new installation and monitor the Console log for issues after the restart.

6. And I guess you are replicating the Database size limits from the old system to the new system.

7. Create Tasks in the Task Manager, after Tasks import.

8. Last but not the least, check with the Network Team if all the Vendors/source/destination application system routes have a S2S VPN connection setup or firewall ports opened.

Hope this helps.



As Eduard said above, I would manually compile the classes in this order and restart the Web Service Object in Production (if added to one).


Also, I would not suggest you to change the Authentication to Unauthenticated. This will allow anyone who has access to the Web Service URL to invoke the WebService.