I've created a new branch on GitHub project to include Oracle tests...I'm not going to merge it to the main branch because Oracle docker image consumes a lot of memory and requires to modify the Docker Desktop configuration, but if anyone is interested on it here is the branch published:

https://github.com/intersystems-ib/workshop-py-performance/tree/oracle

Here is the comparative graph with Oracle included:

As you can see IRIS and Oracle are equivalents in terms of performance.

Objectscript variables are not accessible from JavaScript, objectscript is executed on the server and JavaScript is executed on the client.

My suggestion is, create a hidden html table from objectscript and read the values using JavaScript to create the array for the graph. 

You can see the language of the article in the upper left side of the window, click on it and a list of language will be deployed, select the language to translate the article and a new window will be shown with 2 options, translate and request translate, select the first and you will be able to translate the article.

Log compression? I don't recall that the logs are compressed, I know that Journals are compressed since 2022.1 and streams can be compressed too, but I don't know anything about log compression.

Someone to enlighten us?

Well, I did something similar to create a Firebase connector, I created my own inbound adapter and define a business services to use it, after that I configured the interval in the business service and that's all!

You can review the article that I wrote about it:

https://community.intersystems.com/post/connecting-intersystems-iris-an…

For your case the interval would be 86400 seconds to execute the inbound adapter task once each day.

If you have any doubt don't hesitate to ask me.

Permissions must not be assigned automatically to the users when you create the FHIR server, it doesn't make sense to allow any user to access and modify the data from the server. You can create an specific role for FHIR access and assign it to the specific users.

Please, review your iris.key file and look for under ISC.IAM section the license_expiration_date info, if it's expired you have to open a case to WRC requesting a new Kong license as @Enrico Parisi said
 

Yeah, probably is your best option.

Anyway, I think that you could add the pieces of the base64 field as values of the Base64EncodedFile list removing the (1) in my code:

Do stream.Rewind()
While (stream.AtEnd = 0) {
    // Not sure about the len
    Set len = 3641144
    do target.SetValueAt(stream.Read(.len), "LetterAttachment(1).Base64EncodedFile", "append")
}

The problem of this is that you couldn't include more documents attached because all the list would belong to just one document.

I was reviewing the documentation and I think that the only option available is to split your base64 by the MAXSTRING limit and append all the pieces that you get using SetValueAt defining the action as append:

method SetValueAt(pValue As %String, 
                  pPropertyPath As %String, 
                  pAction As %String = "set", 
                  pKey As %String = "") as %Status

It could be something like:

Do stream.Rewind()
While (stream.AtEnd = 0) {
    // Not sure about the len
    Set len = 3641144
    do target.SetValueAt(stream.Read(.len), "LetterAttachment(1).Base64EncodedFile(1)", "append")
}

Those are good questions, I guess that the idea to not integrate it into the common distribution is to keep it lighter as possible.

Ok, it seems that your didn't install an IRIS version with Machine Learning capabilities.  You can see on this screenshot all the different versions available.

I suggest you to publish a question for the community explaining more in detail what is your problem what you want to achieve step by step.

You are absolutely right! I used a previous code as base for this article and I didn't realize that I was using the Read() method for the %CSP.Stream, I'll fix it.

Thank you for the warning Enrico!

If your operative systems is Windows execute the following command to check the used ports:

netstat -aon

If it's Linux try with this one:

sudo lsof -i -P -n | grep LISTEN

These commands will show you a list of ports in use and the process what is listening on it.

Just a small correction, 6 is the normative level.

Ineed, the normative resources won't be modified in the future but the devil is in the detail. More and more resources below the level 4 will be used by organizations that would find out major changes on it in future versions.

We can see here the differences between R4 and R5 releases of FHIR. I can't imagine an organization migrating FHIR respositories every 3 or 4 years to keep updated to the latest version. What I forsee it's a future with a lot of organizations using different versions of FHIR and trying to communicate among them struggling against the differences...exactly the same that we have right now.