===== IMPORTANT NOTE ===== All WebAPI documentation has moved to [[https://github.com/OHDSI/WebAPI/wiki|GitHub]]. Please disregard the content below as it is legacy and kept for posterity. ==== WebAPI Source Configuration (LEGACY)==== As we work to improve the deployment strategy for the OHDSI stack we will maintain this FAQ to assist with source configuration information. ---- **Q**. Can you explain the reason for the SOURCE and SOURCE_DAIMON tables? **A**. These tables allow a single WebAPI to access multiple databases within a given network environment. Each SOURCE roughly translates to a unique server. Each SOURCE_DAIMON roughly translates to a set of tables, typically located within a schema or table qualification that are all used for a simliar purpose. This layer of abstraction also allows for a CDM database to be read only while still identifying the proper location to write result information from various analyses. ---- **Q**. How do you configure the SOURCE table in the OHDSI application schema? **A**. Currently no tool manages the configuration of the SOURCE table and so it must be manually configured. Here is an example of valid settings: ^ Column Name ^ Sample Value ^ Description ^ | SOURCE_ID | 1 | (typically auto generated by the database layer) | | SOURCE_NAME | My CDM | the display name of this CDM as you want it to appear across OHDSI web applications | | SOURCE_KEY | CDM1 | a unique key that will be used in calls to the REST API - no spaces allowed | | SOURCE_CONNECTION | jdbc: | a valid jdbc connection string | | SOURCE_DIALECT | sql server | the dialect of your database, used by the SqlTranslate services (**sql server** : Microsoft SQL Server, **oracle** : Oracle, **pdw** : Microsoft Parallel Data Warehouse, **postgresql** : Amazon Redshift or PostgreSQL) | ---- **Q**. How do you configure the SOURCE_DAIMON table in the OHDSI application schema? **A**. Currently no tool manages the configuration of the SOURCE_DAIMON table and so it must be manually configured. Here is an example of valid settings: ^ Column Name ^ Sample Value ^ Description ^ | SOURCE_DAIMON_ID | 1 | typically auto generated by the database layer | | SOURCE_ID | 1 | a foreign key reference to an existing record in the SOURCE table | | DAIMON_TYPE | 0 | a type identifying the type of daimon, valid values listed [[https://github.com/OHDSI/WebAPI/blob/master/src/main/java/org/ohdsi/webapi/source/SourceDaimon.java#L37|here]] | | TABLE_QUALIFIER | db1.dbo | the schema or qualifier containing the required tables | | PRIORITY | 0 | a number specifying priority of this daimon, the largest value is highest priority | At the time of writing the valid **DAIMON_TYPE** values are as follows: ^ DAIMON_TYPE ^ ENUM VALUE ^ Description ^ | 0 | CDM | a database / table qualifier combination that contains a valid CDM V5 schema | | 1 | VOCABULARY | a database / table qualifier combination that contains the CDM V5 Vocabulary tables | | 2 | RESULTS | a database / table qualifier combination that contains result table schemas | | 3 | EVIDENCE | a database / table qualifier combination that contains the LAERTES evidence table schema | ---- **Q**. Why use the word DAIMON in SOURCE_DAIMON to represent services, aren't those traditionally DAEMONS? **A**. DAIMON is actually the Greek version of DAEMON. [[https://en.wikipedia.org/wiki/Daemon_(classical_mythology)|From wikipedia]]: For the Minoan (3000-1100 BC) and Mycenaean (1500-1100 BC), "daimons" were seen as attendants or servants to the deities, possessing spiritual power. As our projects all take on the names of Greek dieties, DAIMON seemed more appropriate.