From e34ed32c0c1b5fa230505357e71add61ab0b5c87 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Thu, 28 Dec 2006 21:13:18 +0000 Subject: [PATCH] r11410: abstract interfaces for medtermserver --- data-structures.lisp | 32 ++++++++++++++++++++------------ sql.lisp | 13 ++++++++++--- 2 files changed, 30 insertions(+), 15 deletions(-) diff --git a/data-structures.lisp b/data-structures.lisp index 36b874c..5f86198 100644 --- a/data-structures.lisp +++ b/data-structures.lisp @@ -20,27 +20,35 @@ ;;; Paths for files +(defparameter *release* "2006AC") + (defparameter *umls-path* - (make-pathname :directory '(:absolute "srv" "umls" "2006AC")) + (make-pathname :directory (list :absolute "srv" "umls" *release*)) "Path for base of UMLS data files") +(defparameter *meta-dir* + (make-pathname :directory '(:relative "META"))) + +(defparameter *lex-dir* + (make-pathname :directory '(:relative "LEX"))) + +(defparameter *net-dir* + (make-pathname :directory '(:relative "NET"))) + (defparameter *meta-path* - (merge-pathnames - (make-pathname :directory '(:relative "META")) - *umls-path*)) + (merge-pathnames *meta-dir* *umls-path*)) (defparameter *lex-path* - (merge-pathnames - (make-pathname :directory '(:relative "LEX")) - *umls-path*)) + (merge-pathnames *lex-dir* *umls-path*)) (defparameter *net-path* - (merge-pathnames - (make-pathname :directory '(:relative "NET")) - *umls-path*)) + (merge-pathnames *net-dir* *umls-path*)) (defun umls-path! (p) - (setq *umls-path* p)) + (setq *umls-path* p) + (setq *meta-path* (merge-pathnames *meta-dir* *umls-path*)) + (setq *lex-path* (merge-pathnames *lex-dir* *umls-path*)) + (setq *net-path* (merge-pathnames *net-dir* *umls-path*))) ;;; Structures for parsing UMLS text files @@ -57,7 +65,7 @@ (defvar *octet-sql-storage* t "Used to deciding field lengths. Use nil if using UTF-8 database encoding. But, UTF-8 will cause MySQL to double the bytes used for fixed field sizes.") - + ;; Preliminary objects to replace structures (defclass ufile () diff --git a/sql.lisp b/sql.lisp index d2900d6..83f38e9 100644 --- a/sql.lisp +++ b/sql.lisp @@ -32,7 +32,11 @@ *umls-sql-db*) (defun umls-sql-db! (db) - (setq *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* "secret") (defun umls-sql-user () @@ -62,10 +66,13 @@ (sql-disconnect-pooled) (setq *umls-sql-type* h)) +(defun umls-connection-spec () + (list *umls-sql-host* *umls-sql-db* + *umls-sql-user* *umls-sql-passwd*)) + (defun sql-connect () "Connect to UMLS database, automatically used pooled connections" - (clsql:connect (list *umls-sql-host* (lookup-db-name *umls-sql-db*) - *umls-sql-user* *umls-sql-passwd*) + (clsql:connect (umls-connection-spec) :database-type *umls-sql-type* :pool t)) (defun sql-disconnect (conn) -- 2.34.1