Eduard Lebedyuk · Jul 25, 2023 go to post

No, services are not defined in iris.cpf.

You need to call irissesson from bash/ps/cmd.

Eduard Lebedyuk · Jul 25, 2023 go to post

Try something like this:

  • Response Timeout: 10 (Timeout for getting a response from the server (the timeout for opening the connection to the server is always 5 seconds). Setting the timeout to -1 means wait forever.)
  • Reply Code Actions: E=R (R - Retry the message according to the configured RetryInterval and FailureTimeout; finally Fail unless a different action is also specified.)
  • Retry Interval: 1 (How frequently to retry access to the output system)
  • Failure Timeout: 60 (Total number of seconds to keep trying to deliver the message. After this number of seconds has elapsed, the business operation discards the message data and returns an error code. To ensure that no message is ever skipped, enter a Failure Timeout value of -1, which means 'Never time out'. Use a setting of -1 when complete data delivery is critical, for example in health care applications. )
Eduard Lebedyuk · Jul 22, 2023 go to post

Well, you already have a null check.

To check if the object is locked just try to acquire exclusive lock with no wait, so it's enough to call %AcquireLock.

Eduard Lebedyuk · Jul 20, 2023 go to post

All object properties in a request or response object must extend %XML.Adaptor.

Lists and arrays of streams are skipped.

Private properties are skipped.

MultiDimensional properties are skipped. 

XMLIO = "IN" properties are skipped.

XMLPROJECTION = "NONE" properties are skipped.

Eduard Lebedyuk · Jul 19, 2023 go to post

Is this an expected growth? Check on global growth, maybe there's something you can delete.

You can mount blob storage from the cloud, but performance might (and probably would) take a hit.

Eduard Lebedyuk · Jul 12, 2023 go to post

I usually export the entire package, but if you want subclasses run this query:

SELECT Name 
FROM %Dictionary.ClassDefinitionQuery_SubclassOf('%Persistent')

And then call $system.OBJ.ExportODL on every result.

Eduard Lebedyuk · Jun 27, 2023 go to post

Before you quit the onrequest  method do this:

Set sc = pResponse.%Save()
Set ^dbg($i(^dbg)) = $lb($h, sc, pResponse.%Id())

Then check ^dbg global, sc must be 1 and there should be an id. Try to open pResponse object from a terminal.

Eduard Lebedyuk · Jun 26, 2023 go to post

You need to do either:

  • Send request to your BO in a sync mode.
  • Wait for your async request to complete.

You're sending request in async mode and don't wait for a response that's why response is not recorded - there's nothing waiting for it.

Eduard Lebedyuk · Jun 22, 2023 go to post
Set image.Prompt = "Two cats with a hat reading a comic"

Come on, why wouldn't you post the results?

Eduard Lebedyuk · Jun 21, 2023 go to post

Why will this only work in Chrome and not Microsoft Edge?

Is that a local server? Edge does not allow websockets on localhost.

In the Edge open About:flags page. Enable the "allow Localhost Loopback" feature.

Eduard Lebedyuk · Jun 20, 2023 go to post

Can you show the definition for /terminalsocket web app please?

If it's a DEV server, add %ALL to it and check if it works.

Also, check Audit DB for PROTECT errors.

Eduard Lebedyuk · Jun 20, 2023 go to post

UPD: Never mind, that's the wrong answer as it's about HL7. Sorry about that.

There are two ways to do that:

  1. Use EnsLib.MsgRouter.VDocRoutingEngine, it has Validation setting which is a string specifying types of validation to perform. Set to 1 to block documents that don't pass default validation. Default validation checks for DocType assignment and successful BuildMapStatus. This is equivalent to 'dm': 'd' - require DocType 'm' - require successful BuildMap status. Set to 0 to skip validation. In addition configure Bad Message Handler setting to handle messages which fail validation. I'm not sure it your messages would fail BuildMap validation, but that's the easiest option to implement.
  2. Create a subclass of EnsLib.MsgRouter.RoutingEngine and implement OnValidate method to provide custom validation. You'll also need to add Validation property to settings, same as EnsLib.MsgRouter.VDocRoutingEngine  does. In OnValidate method you can perform any checks you like.
Eduard Lebedyuk · Jun 20, 2023 go to post

Do you want to job ObjectScript code? Write a wrapper class method and call it from embedded python.

Eduard Lebedyuk · Jun 16, 2023 go to post

Found it:

set sc = ##class(EnsLib.HL7.SchemaXML).Import(filenameOrStream)

Works with both old and new export.

Eduard Lebedyuk · Jun 15, 2023 go to post

Anything better than manual wrangling:

Set tSC=##class(%Atelier.v2.Utils.TextServices).SetTextFromArray(.tTextArray,0,"CatNameFromFile","OTH",0)