Version 3 (modified by 11 years ago) ( diff ) | ,
---|
i2b2 Mapped Importer
Java program to take input from various sources and load it into i2b2.
Sources
The aim is to allow any type of source to be used that comes in a per patient format. For example, a CSV file with a row per patient, an XML file with a node per patient, a set of XML files with one per patient, or a database query with a row per patient.
Multiple rows (etc) can be supplied for a single patient.
Outputs
The data can be outputted as either an i2b2 PDO XML file or loaded directlt into an i2b2 database.
Settings
The source and output used is defined is a YAML file. By default this file is called settings.yaml in the application root directory, but the setings file path can be defined using the -s=xxx
or --settingsFilePath=xxx
command line arguments.
The settings that can be defined are dataSource
and output
. Both settings have a field called type
that defines the class used to as a source or output processor. The further fields are specific for the type
specified.
Here is an example settings file:
output: type: uk.org.briccs.onyxmappedexport2pdo.output.mssql.MsSqlOutput server: Server Name instance: Instance Name database: Database Name username: Username password: Password dataSource: type: uk.org.briccs.onyxmappedexport2pdo.onyx.OnyxDataSourceSet export_directory: data
Mapping
Mappings are used to specify which field from the source gets used for which field in the output. These are specified in a YAML file. By default this file is called mapping.yaml in the application root directory, but the mapping file path can be defined using the -m=xxx
or --mappingFilePath=xxx
command line arguments.
Mappings are defined for Patients, Events and Observations.
Observation Mappings
The types available for observation mappings are:
- BooleanTrueField
- DataSourceConditionalExistenceField
- DataSourceConditionalExistenceIfNotNullField
- DataSourceConditionalExistenceIfTrueField
- DataSourceConditionalExistenceIfValueOneOfField
- DataSourceEnumerationField
- DataSourceNumericField
- DataSourceTextField
- LiteralTextField
Observation dates are defined as a list of dates that can be used if they are defined. If the first field in the list is not defined, then next one on the list will be tried and so on.
The types of date field available are:
- DataSourceDateField
- YearOnlyDateField