Eduard Lebedyuk · Aug 21, 2023 go to post

I guess you do need to use SessionEvent. OnLogin method specifically.

Or you can log every request using OnPreDispatch method in your REST broker.

Eduard Lebedyuk · Aug 14, 2023 go to post

You need your own datatype, which implements method generators for Set, GetStored etc.

After that use your own datatype in your main class. Example.

Eduard Lebedyuk · Aug 14, 2023 go to post

In your REST Web Application settings, leave only pass (and remove group by id, if any):

After that check that UnknownUser does not have %ALL.

Finally try to access your REST url using Postman (or similar tool) and you should be able to see Login methind being executed.

Eduard Lebedyuk · Aug 11, 2023 go to post

Are InterSystems Reports available on Ensemble, or only on Iris? (ie could we use InterSystems reports from the start?)

Only on IRIS.

Any other options for HL7 -> PDF generation?

Convert HL7 to FHIR and use The FHIR SQL Builder to make dataset available as a set of SQL Tables. Consume from InterSystems Reports.

Eduard Lebedyuk · Aug 11, 2023 go to post

You don't need to create a /login route since Login method is being called implicitly if auth is required.
To add logging, it's enough to redefine the Login method in your broker like this (##super docs):

ClassMethod Login(skipheader As %Boolean = 1) As %Status [ ProcedureBlock = 0 ]
{
    // do app-level logging
    quit ##super(skipheader)
}
Eduard Lebedyuk · Aug 11, 2023 go to post

Only if it's a collection property:

Class Utils.DynArrayProp Extends %Persistent
{

Property A;

Property B As list Of %Integer;

/// do ##class(Utils.DynArrayProp).Test()
ClassMethod Test()
{
	Do ..%KillExtent()
	Set json = "{""A"":123,""B"":[1,2,3]}"
	Set dynamicObject = {}.%FromJSON(json)
	Set object = ##class(%ZEN.Auxiliary.altJSONProvider).%UnpackObjectToCOSObject(dynamicObject, $classname())
	Set sc = object.%Save()
	ZW sc,object,^Utils.DynArrayPropD
}
}
Eduard Lebedyuk · Aug 6, 2023 go to post

InitialExpression would be preferable to %OnNew for predefined values.

%OnNew is for cases where you have user input.

Eduard Lebedyuk · Aug 5, 2023 go to post

It is setting headers, yes. But in your previous sample code you were using ..Adapter.Post method which does not take tHTTPRequest.

Eduard Lebedyuk · Aug 1, 2023 go to post

Go to routines and search for *%fm2class* - you should be able to export 5 items available there.

Alternatively, request WRC to provide you an xml file.

Eduard Lebedyuk · Jul 31, 2023 go to post

Also you need to pass your tHTTPRequest as pHttpRequestIn (using Send* methods of the adapter) - as currently none of your headers are sent.

Eduard Lebedyuk · Jul 31, 2023 go to post

When you use DEBUG=1 the request is not actually sent, just displayed, so you get downstream errors, ignore them.

First you need to check your request with DEBUG=1, verify that everything is okay and after that switch to DEBUG=2.

With DEBUG=2 the request is sent (but not displayed) and you get response back (which would be displayed).

Eduard Lebedyuk · Jul 31, 2023 go to post

You need to set

Parameter DEBUG As %Integer = 2;

in adapter, not in BO.

You'll get output on the current IO device (that's why you need to run BO in Foreground Mode), when your code gets to this line:

 set tSC = ..Adapter.Post(tURL)
Eduard Lebedyuk · Jul 28, 2023 go to post

I thought the "irispip install *.whl" would install the wheel file.

That is correct. Download pycryptodomex wheel same as you downloaded  pycryptodom wheel, thansfer it to your server and try to install first  pycryptodomex, then  pycryptodom.

Eduard Lebedyuk · Jul 28, 2023 go to post

Assuming you are using EnsLib.HTTP.OutboundAdapter, you can do this:

1. In your adapter set DEBUG flag to 1 or 2:

/// This is the debug flag setting (0 do nothing, 1 show request, 2 show request/response)
Parameter DEBUG As %Integer = 1;

2. Start BO in foreground.

Eduard Lebedyuk · Jul 28, 2023 go to post

Download wheel from a computer that does have internet connection and transfer the wheel file into the target system somehow.

Eduard Lebedyuk · Jul 28, 2023 go to post

Why are you building from source? Use wheels:

.\irispip install https://files.pythonhosted.org/packages/3f/a1/72ad8fbeb2630e74fa89622ab24ec0ce46dc93dc172156f1a112eb76c014/pycryptodome-3.18.0-cp35-abi3-win_amd64.whl --target C:\InterSystems\IRIS\mgr\python
Eduard Lebedyuk · Jul 28, 2023 go to post

User must have U on %Ens_MessageContent to view messages, on your screenshot user only has R.

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.