X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=parse-2002.lisp;h=ae126a0e10ff058e8520f6c3729d7ef6ab6c2e7e;hb=5be6bdf06e0c99612a4c1a1d6f110e424400d96e;hp=726764fd63b112f4d5280b5115eab0ff0b3a16fe;hpb=3199369942d2e5ab4f5b060c2c6b655caf505944;p=umlisp.git diff --git a/parse-2002.lisp b/parse-2002.lisp index 726764f..ae126a0 100644 --- a/parse-2002.lisp +++ b/parse-2002.lisp @@ -8,10 +8,10 @@ ;;;; Author: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: parse-2002.lisp,v 1.10 2003/05/07 21:57:06 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file, part of UMLisp, is -;;;; Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D. +;;;; Copyright (c) 2000-2003 by Kevin M. Rosenberg, M.D. ;;;; ;;;; UMLisp users are granted the rights to distribute and use this software ;;;; as governed by the terms of the GNU General Public License. @@ -23,7 +23,7 @@ (declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3)))) ;;; Pre-read data for custom fields into hash tables -(defvar *parse-hash-init?* nil) +(defvar *preparse-hash-init?* nil) (eval-when (:compile-toplevel :load-toplevel :execute) (let ((pfstr-hash nil) ;;; Preferred concept strings by CUI @@ -32,7 +32,7 @@ (cuisui-lrl-hash nil) ;;; LRL by CUISUI (sab-srl-hash nil)) ;;; SRL by SAB - (defun make-parse-hash-table () + (defun make-preparse-hash-table () (if pfstr-hash (progn (clrhash pfstr-hash) @@ -47,10 +47,10 @@ cuisui-lrl-hash (make-hash-table :size 1800000) sab-srl-hash (make-hash-table :size 100 :test 'equal)))) - (defun binit-hash-table (&optional (force-read nil)) - (when (or force-read (not *parse-hash-init?*)) - (make-parse-hash-table) - (setq *parse-hash-init?* t)) + (defun buffered-ensure-preparse (&optional (force-read nil)) + (when (or force-read (not *preparse-hash-init?*)) + (make-preparse-hash-table) + (setq *preparse-hash-init?* t)) (with-buffered-umls-file (line "MRCON") (let ((cui (parse-ui (aref line 0))) (lui (parse-ui (aref line 3))) @@ -69,10 +69,10 @@ (unless (gethash sab sab-srl-hash) ;; if haven't stored (setf (gethash sab sab-srl-hash) (aref line 6)))))) - (defun init-hash-table (&optional (force-read nil)) - (when (or force-read (not *parse-hash-init?*)) - (make-parse-hash-table) - (setq *parse-hash-init?* t)) + (defun ensure-preparse (&optional (force-read nil)) + (when (or force-read (not *preparse-hash-init?*)) + (make-preparse-hash-table) + (setq *preparse-hash-init?* t)) (with-umls-file (line "MRCON") (let ((cui (parse-ui (nth 0 line))) (lui (parse-ui (nth 3 line))) @@ -106,7 +106,7 @@ (gethash cuisui cuisui-lrl-hash)) (defun sab-srl (sab) - (kmrcl:aif (gethash sab sab-srl-hash) kmrcl::it 0)) + (aif (gethash sab sab-srl-hash) it 0)) )) ;; closure (defun set-lrl-hash (key lrl hash) @@ -122,11 +122,12 @@ ;;; sql-i - Integer (32-bit) ;;; sql-l - Big integer (64-bit) ;;; sql-f - Floating point +;;; sql-c - Character data (defparameter +col-datatypes+ '(("AV" sql-f) ("BTS" sql-i) ("CLS" sql-i) ("COF" sql-i) ("CUI1" sql-u) ("CUI2" sql-u) ("CUI" sql-u) ("CXN" sql-s) ("FR" sql-i) ("LRL" sql-s) - ("LUI" sql-u) ("MAX" sql-s) ("MIN" sql-s) ("RANK" sql-s) ("REF" sql-s) + ("LUI" sql-u) ("MAX" sql-s) ("MIN" sql-s) ("RANK" sql-s) ("REF" sql-c) ("RNK" sql-s) ("RWS" sql-i) ("SRL" sql-s) ("SUI" sql-u) ("TUI" sql-u) ;;; Custom columns ("KCUISUI" sql-l) ("KCUILUI" sql-l) ("KCUILRL" sql-i) ("KLUILRL" sql-i) @@ -254,6 +255,7 @@ ("VCUI" "MRSAB") ("LAT" "MRSAB")) "Columns in files to index") + (defparameter +custom-index-cols+ nil #+ignore @@ -283,7 +285,8 @@ (loop for customcol in +custom-cols+ collect (make-ucol (nth 1 customcol) "" 0 0 0 (nth 3 customcol) - (nth 0 customcol) nil :sqltype (nth 2 customcol)))) + (nth 0 customcol) nil :sqltype (nth 2 customcol) + :custom-value-fun (nth 4 customcol)))) (defun gen-ucols-generic (col-filename) "Initialize for generic (LEX/NET) columns"