There is a DTL by default when you install the FHIR server or the FHIR adapter...in my case I've installed the adapter and the DTL is named:

HS.FHIR.DTL.vR4.SDA3.AllergyIntolerance.Allergy

This transformation is used to parse an object of type HS.FHIR.DTL.vR4.Model.Resource.AllergyIntolerance into a HS.SDA3.Allergy, you can use it as a reference for your transformation. 

Well...you can call netstat from IRIS...for example:

set status = $ZF(-100, "/LOGCMD", "netstat", "-ano", "-p", "tcp")

Do you mean how to write the range in the OBX segment? I've this example of a range:

OBX|13|NM|MO^# Monocitos^SNM||0.00|#|0.2-0.9||||F|||20230330133551

Jeffrey is totally right, you can't add multiple ranges in an OBX segment, the idea of that field is just to add the valid range for the observation, you can see that there is another field in that segment (OBX:12 - Efective date of Reference Range) in wich you can define the date when the range start to be valid.

Another option to the NTE segment is to repeat the OBX segment with the same value of the observation so many times as range values you have, informing the OBX:12 with a different date and the valid range for that date.

Well, Code function is validating if the code in source.Severity has a match in the target ValueSet and if it has then return the code. Maybe you can add a new line after each null validation of value var with something like these to get the description value:

^HS.XF.LookupTable("SDA3","vSTU3","HS.SDA3.CodeTableDetail.AllergyCategory","allergy-intolerance-category",value)

^HS.XF.LookupTable("SDA3","vR4","HS.SDA3.CodeTableDetail.Severity","reaction-event-severity|4.0.1",value)

And update the assign with something like this:

<assign value='^HS.XF.LookupTable("SDA3","vSTU3","HS.SDA3.CodeTableDetail.AllergyCategory","allergy-intolerance-category",value)' property='target.category' action='set'>

But not sure if it's correct to overwrite the codes of the resource with the description...try it and if you don't break anything keep it!

You can add after the %Save() command something like this:

set sqlUpdateMoodRecord = "UPDATE MoopRecord SET TotalAmount = 
        CASE WHEN TotalAmount > ? THEN TotalAmount - ? WHEN TotalAmount < ? THEN ? -TotalAmount
            ELSE TotalAmount WHERE %ID = ?"set statementUpdateMoodRecord = ##class(%SQL.Statement).%New()
set statusUpdateMoodRecord = statementUpdateMoodRecord.%Prepare(sqlUpdateMoodRecord)
if ($$$ISOK(statusUpdateMoodRecord)) {
    set resultSet = statementUpdateMoodRecord.%Execute(pRequest.TotalAmount, 
                        pRequest.TotalAmount, pRequest.TotalAmount, pRequest.TotalAmount,
                        tEntEpicMoopRecord.%ID)
}

Probably that code is not going to work...but the idea is to launch an UPDATE with a condition in the SET.

When you create a RecordMapper to transform a CSV into an ObjectScript class you can add to the production a Business Process to receive the created object from the mapper, so you can transform it to XML (extending the ObjectScript class from %XML.Adaptor) and save it into a file created ad-hoc when you've received the first mapped row of the CSV (I guess that you can get from the original request the name of the original CSV file to identify the PONumber).

You have 2 options to return a value from a Method, one is to send by reference an object and instantiate that object inside the method called:

ClassMethod MyMethod(myInput As String, Output myOutput As MyPackage.MyClass) As%Library.Status
{
    set myOuput = ##class(MyPackage.MyClass).%New()
    set myOutput.name = "This is a name"return$$$OK
}

And invoke it like:

// Invoke method with .. if it belong to the same class or with ##class(classname).method if it doesn'tset tSC = ..MyMethod("One Input", .output)
// Now output has been created and output.name has the value "This is a name"write output.name

You can see here in the documentation how to pass variables by reference:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

As far as I know, there is no extension to connect directly to IRIS using JDBC from Quarkus yet but you always have the option to connect using REST or TCP.

Have you tried adding "()":

<assignvalue='source.{ORCgrp(1).RXE:7.1()}'property='target.{ORCgrp(1).RXE:7.1()}'action='set' />

Good article! Curiously I uploaded a small project to recognize faces using IRIS and Embedded Python. Would be nice to save the 128 points vector generated for each face into the database and save time recalculating it for each comparation with a new face. 

I'll paste the answer received by @Aya Heshmat 

Assuming the client is using a file stream and created a message header, we would expect the stream stored in the MGR/\stream folder to get cleaned with a purge. Because you can add custom code, the associated stream may not be getting deleted so they need to look at their code. If file sizes are large, global streams are preferrable over file streams since any failover would remove the reference and the stream which might be causing these items to not purge. Assuming the file path is potentially different on each failover member. if the resource is shared, I would still expect it to get purged.