Hi Philip,

not knowing anything about your deployment or applications hosted by IRIS this will be only very high-level.

There are multiple ways how this can be achieved. 

Essentially the easiest way is to stop/freeze the IRIS instance on your backup mirror in LIVE then, depending on your databse sizes. Either copy the database files over to your test environment, or take afilesystem snapshot and transfer that accross. After start,thaw the backup mirror iris instance.

On the test environment break the mirror. shutdown the instance on your primary test mirror. copy in the databases you transferred (ensure the global mappings are the same), you can choose at this point to not overwrite certain databases you do not want to be refreshed e.g. localsysconfig. start up the iris instance, remove the mirror flag from the database files you just refreshed and then do all post refresh activities. at the end you have to rebuild the TEST mirror though, as per IRIS doco. 

When you do Delegated Auth you add code to ZAUTHENTICATE that validates the request against what you want e.g. you grab userid from the incoming web session, or even content of the get parameters provided and validate it against a global that was mapped via ECP from your primary server, that global could save e.g. client ip and username.
Then you can assign a valid user in ZAUTHENTICATE for the incoming connection, no password needed.

I don't think you can provide object script code via the UI for security reasons.

What you probably need to do is open you production item in Studio/VSCode.

Then overwrite the OnInit() method with something like

Below code is not validated and will not be 100% correct in regard to function specs etc, this is only used for clarification and example:

Method OnInit(.............) as %Status
{
    set ..IpAddress=$get(^ehrIP)
    set status=#super()
    return status
}

Hi Cathrine,

usually, TrakCare as a web application does not directly integrate with a dictation software. Any dictation software is used to fille the appropriate text field in the TrakCare browser window after parsing the dictation.

For more details and for a in depth look i would suggest you get an iService ticket raised so the specialist/development can have a look at it.

Best Regards
Timo

Hi Carl,

easiest way is to save the authorization to a global, have that global mapped via ECP to your child servers.
On the child servers create a ZAUTHENTICATE routine and implement delegated authentication. essentially you use this routine to check on connection open on the child server if the incoming connection is a valid request based on the auth global mapped from your primary server, then allow or deny.

The better approach here, if you don't want to use SystemDefaults.

Is to add a global mapping for your global config variable ^ehrIP to the %ALL namespace pointing it to a config database. This will point the ^ehrIP global in each namespace to the same storage location.

Then you can access this global via ^ehrIP as usual. I would not use % globals as they are saved in the %SYS namespace and application code/data should not be living in the %SYS namespace.

From a SMS point of view this is major hell.
If you are coding you application currently, then rather then checking a database for settings instead of using global mappings, code your application that it checks a "higher-priority global first" then defaults to the global default mapping.

example core config uses ^ %SYS for instance wide config and ^SYS for local namespace config.

In this scenario you would not even need a %ALL namespace global mapping.

Hi Pravin,

afaik this is not possible.

I would suggest revisiting the design. If you need custom code to be able to extend your production, then include code hooks that will be called if implemented.

e.g.

In your production class include code during processing that checks for classes inheriting froma specific abstract class you also defined and call the respective method. Now any customisation can be done by inheriting from the abstract class and overwriting the respective methods.