BRE Debugger
The SanteDB debugger is a tool that allows developers to interactively debug business rules, and clinical protocols before pushing these changes to a production or staging environment.
Command Line Options
Tool: sdb-dbg.exe
The following parameters are supported by the SanteDB debugger
Option | Description | Example |
source | Source code file(s) for debugging | --source=myrule.js |
workDir | Working directory for the debugger | --workDir=C:\users\myuser\sources |
db | Attached sqlite database for loading / inserting data operations | --db=%localppdata%\sdbare\santedb.sqlite |
config | Attached configuration file for debugging | --config=C:\temp\santedb.config |
ref | Loads rules and script files from the referenced PAK file | --ref=org.santedb.core.sln.pak |
bre | Launches the debugger in BusinessRules mode (debug JavaScript rules) | --bre |
xprot | Launches the debugger in ClinicalProtocol mode (debug XProtocol files) | --xprot |
Debug Shell
The debug shell provides basic common commands as well as debugger specific commands (for JavaScript or XProtocol).
Command | Name |
cd | Change Directory |
sn | Scope to Null |
clear | Clear Screen |
ds | Dump Scope |
dj | Dump Scope JSON |
dv | Dump Scope View Model |
dx | Dump Scope XML |
xs | Exchange Scope |
q | Quit |
? | Show Help |
dbi | Database Insert |
lds | List Data Services |
ls | List Directory |
ofs | Output Full Stack |
pdq | Print Data Query |
pwd | Print Working Directory |
ss | Set Scope |
sd | Set Scope - Database Object |
sdq | Set Scope - Database Query |
sfv | Set Scope - View Model File |
sfj | Set Scope - JSON File |
sfx | Set Scope - XML File |
cd - Change Directory
Changes the working directory Example: cd C:\sources
sn - Scope to null
Sets the current scope to NULL
clear - Clear Screen
Clears the current screen
ds - Dump Scope
Dumps the current scope to the screen in .NET format
Parameters
[path] - The object property path to be dumped
Example: Dump Scope
Example: Dump Scope with Path
dj - Dump JSON
Dumps the current scope object to HDSI JSON format
Parameters
[path] - The object property path to be dumped
Example: Dump Scope as JSON
dv - Dump View Model
Dumps the current scope object as ViewModel format
Remarks: This command is useful when debugging data which is being sent to the view model in the AngularJS controllers
Example: Dump Scope as ViewModel
dx - Dump XML
Dumps the current scope object as IMSI XML format
Parameters:
[path] - The path within the object which should be dumped to screen
Example: Dump Scope as XML
xs - Exchange Scope
Exchanges the scope for a child element of the current scope.
Parameters:
[path] - The path within the current scope object to exchange the debugging scope with
Example: Exchange Scope for Array Item
Sets scope to a query then exchanges scope to first search result:
q - Quit
Exits the debugger
? - Show Help
Shows a complete list of commands for the current debugger
dbi - Database Insert
Inserts the current scope object into the database, setting the scope variable to the inserted instance.
lds - List Data Services
Lists all loaded services in the debugger environment
ls - List Directory
Lists the current working directory contents
Parameters:
[dir] - The subdirectory to list contents of
ofs - Output Full Stack
Output full stack traces instead of the summarized stack traces.
pdq - Print Data Query
Executes a database query against the attached database, however does not set the scope.
Remarks: This is useful when you want to query the database but do not want to set the scope (i.e. finding a record you will later set the scope to)
Parameters
[type] - The type of resource being queried
[qry] - The HDSI format query to be executed
[skip] - Skips the number of records
[take] - Takes the specified number of records from the dataset
[path] - The sub-path within the query result to show
Valid Uses:
pdq [type] [qry]
- Simple querypdq [type] [qry] [path]
- Simple query, printing pathpdq [type] [qry] [skip] [take]
- Query with result control limitspdq [type] [qry] [skip] [take] [path]
- Query with control limits, output selected path
Example: Query for patients with name Justin and show the first result's address
pwd - Print Working Directory
Prints the current working directory to the screen.
ss - Set Scope
Sets the scope to the specified simple object
Parameters:
[scope] - The simple object to set to scope
[type] - The type of resource to set scope to
[data] - The JSON formatted data to set the typed scope to (can only be used with type)
Valid Uses:
ss [scope]
- Simple Datass [type] [data]
- Complex data from JSON
Example: Set scope to 'hello world!'
Example: Set scope to a patient with date of birth of March 1, 2017
sd - Set Database Scope
Sets the current scope from the specified database object.
Remarks: This command is useful when reproducing bugs with a known patient identifier.
Parameters:
[type] - The resource type of data to load
[id] - The identifier of the data to be loaded
Example: Load patient with ID be6420ac-6ba8-4faa-98f6-7d9efdcd04a0 to scope
sdq - Set Database Scope Query
Sets the current scope to the result of a query with optional controls
Remarks: This operation is useful when you don't know the key of the data in a database to reproduce an issue, however you know attributes of the data.
Parameters:
[type] - The type of data to be queried
[qry] - The query to be executed
[skip] - The number of results to skip in the result set
[take] - The number of results to take
Valid Uses:
sdq [type] [qry]
- Set scope to results of querysdq [type] [qry] [skip] [take]
- Set scope to results of query with result control
Example: Set scope to all Patients having an external identifier of 1234567890
Example: Set scope to first 10 patients with name containing 'a'*
sfv - Set File (View Model)
Sets the current scope to the contents of a JSON file formatted in ViewModel format
Parameters:
[type] - The type of data the JSON View Model file contains
[file] - The name of the file to load
sfj - Set File JSON
Sets the current scope to the contents of a IMSI JSON file.
Remarks: The JSON file must carry a valid "$type" property.
Parameters:
[file] - The file to be loaded
sfx - Set File XML
Sets the current scope to the contents of an IMSI XML file
Parameters:
[type] - The type of resource the file contains
[file] - The path to the XML file to load
Last updated