Table of Contents

External script

External scripts are a method provided by PMA.core to configure and execute command line programs via PMA.core itself.

Adding a new script

To configure a new script you need to provide the following information describing the application you want to execute and the parameters passed to it

Setting Description
Name A unique name for the script, used to fetch and distinguish from other scripts
Command The command line to execute, a batch file, cmd or .exe file
Arguments The arguments passed to the script
Parameters A dynamic list of parameters passed to the script by PMA.core

The following types of parameters are supported

Parameter Description
Number A number parameter
Path A path parameter i.e. a slide path
String A string parameter

Parameters & command line arguments

The parameters define which query string parameters PMA.core should attempt to parse from the URL when a script is invoked. Then, the values of these parameters can be passed as command line arguments to the script, provided that they also appear in the arguments list contained within the braces.

Here's an example: Let's assume we want to invoke a python script and pass it a path and a number argument. We would end up with the following configuration:

Option Value
Number PythonScriptTest
Command python.exe
Arguments d:\scripts\python_test.py -p {slide_path} -n {some_number} -i 123
Parameters slide_path - type = path, some_number - type = number

We would invoke this script by crafting the following URL:

http(s)://pma.core.url/scripts/Run?sessionId=your-session-id&name=PythonScriptTest&slide_path=images/collection1/slide1.svs&some_number=10

Then PMA.core would extract and validate the values “images/collection1/slide1.svs” and “10” and pass them on to the command, by replacing {slide_path} and {some_number} respectively. The resulting script looks like this:

python.exe d:\scripts\python_test.py -p “images/collection1/slide1.svs” -n 10 -i 123

After successful execution, the complete output of the command invocation is returned to the client.

See also the Scripts Run API.