-(in-package :umlisp)
-(declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3)))
-
-
-(defvar *umls-sql-dsn* "KUMLS2002AC")
-(defun umls-sql-dsn ()
- *umls-sql-dsn*)
-(defun umls-sql-dsn! (dbname)
- (sql-disconnect-pooled)
- (setq *umls-sql-dsn* dbname))
-
-(defvar *umls-sql-user* "secret")
+(in-package #:umlisp)
+
+(defparameter +umls-sql-map+
+ '((:2004aa . "KUMLS2004AA")
+ (:2006ac . "KUMLS2006AC")
+ (:2006ad . "MTS2006AD")
+ (:2009ab . "MTS2009AB")
+ (:2010aa . "MTS2010AA")
+ (:2012ab_all . "MTS2012AB_ALL")
+ (:2020ab_all . "MTS2020AB_ALL")))
+(defvar +default-umls-db+ "MTS2020AB_ALL")
+
+(defun lookup-db-name (db)
+ (cdr (assoc (ensure-keyword db) +umls-sql-map+)))
+
+(defvar *umls-sql-db* +default-umls-db+)
+(defun umls-sql-db ()
+ *umls-sql-db*)
+
+(defun set-umls-sql-db (db)
+ (etypecase db
+ (string
+ (setq *umls-sql-db* db))
+ (keyword
+ (setq *umls-sql-db* (lookup-db-name db)))))
+
+(defvar *umls-sql-user* "mts")