You have to write your object as String into a Ens.StreamContainer and sent it to a EnsLib.File.PassthroughOperation Business Operation.

Well, I guess that the reason for the storage of DICOM images out of the database is the huge size of these images. 

I was working for a time for a VNA provider and many studies composed by hundred of DICOM images usually weighted more than 4 and 5 GB.

Maybe I'm missing something. This is my container:

ARG IMAGE=containers.intersystems.com/intersystems/iris-community:latest-preview

But I can't see the button.

In my opinion the problem is that your text is already in UTF8 but with wrong characters due to a wrong decode so you can't remove it with $ZCONVERT, you should define the charset of the data from the class that is receiving the JSON to decode the JSON properly.

To declare a specific charset for a REST API (I guess that you are using a class that extends %CSP.REST) you have to define the following parameter:

Parameter CHARSET = "utf-8";

In my case I was receiving UTF8 texts, you should configure it with your specific charset.

About the CSPSystem, I had some troubles to connect when I used the superuser from VSC and the webgateway had the CSPSystem user configured, It solved when I changed the user to superuser.

Probably you are right and is not necessary to change the CSPSystem (my current configuration it's using CSPSystem and works fine) it just was pure chance.

You can use $ZF(-100) command to execute operative system commands (here an example), with that command you can look for the process that is locking the superserver.

Well, I highly recommend to you to not use the same instance of Health Connect for TEST, DEV and PRODUCTION, even more, I recommend to you to deploy each environmnent in different servers.

It won't be the first time that a code un DEV has a infinite loop creating heavy globals that use all the space in the disk.