Dataset Files

Sometimes your plugin/applet will need to include specialized data in order to operate. Some examples of data which a plugin might rely on are:

  • New Concepts and ReferenceTerms for standardized vocabulary

  • New Materials and ManufacturedMaterials which are used/distributed by the application

  • New Places or Organizations which support a particular plugin.

Dataset Files

All data in SanteDB's datastore can be distributed in the form of a data set. A data set file is a special file which contains a series of RIM objects (serialized in HDSI XML format) and instructions on how the RIM object should be treated.

Dataset files should be placed in the data/ folder of your applet (if you're distributing via applet) or should be copied into the data/ folder of the SanteDB server on installation (if you're distributing via .NET installer).

The structure of a dataset file is as follows:

<?xml version="1.0" encoding="utf-8" ?>
<dataset xmlns=""
id="My Super Cool Dataset">
<update insertIfNotExists="false" skipIfError="false">
<!-- Model Object -->
<insert updateIfExists="false" skipIfError="false">
<!-- Model Object -->

The two options for dataset manipulation are:

  • insert - Used to perform an insert on the database. Installation of the data is considered "FAILED" if the object already exists or is detected to be a duplicate. The @updateIfExists key is only used if an insertion was attempted and a duplicate primary key was detected. It does not check classifiers.

  • update - Used to perform a lookup by classifier / key and update the object. If an object does not exist, or a classifier key does not exist and @insertIfNotExists is true, then an insert is done. Typically this operation is safer than insert, but is slower.

The following objects are supported on the dataset:

  • Concept

  • ConceptClass

  • ConceptSet

  • ReferenceTerm

  • CodeSystem

  • Place

  • Organization

  • Material

  • ManufacturedMaterial

  • ExtensionType

  • IdentifierType

  • AssigningAuthority