X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=parse-rrf.lisp;h=59f48269aa4bc3bc7520cf0a804f9d89e849559c;hb=8dc001f5e7cf851c06006e489473a85611d348be;hp=ef56f8516358913b292bb6f88473e28163ec18ef;hpb=b783ec60a3ebef45ea824b9fd8945167f4de2d52;p=umlisp.git diff --git a/parse-rrf.lisp b/parse-rrf.lisp index ef56f85..59f4826 100644 --- a/parse-rrf.lisp +++ b/parse-rrf.lisp @@ -8,10 +8,8 @@ ;;;; Author: Kevin M. Rosenberg ;;;; Created: Apr 2000 ;;;; -;;;; $Id$ -;;;; ;;;; This file, part of UMLisp, is -;;;; Copyright (c) 2000-2006 by Kevin M. Rosenberg, M.D. +;;;; Copyright (c) 2000-2010 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. @@ -85,18 +83,18 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (defun make-preparse-hash-table () (if sui-lrl-hash - (clear-preparse-hash-tables) + (clear-preparse-hash-tables) (setf - pfstr-hash (make-hash-table :size 1500000) - cui-lrl-hash (make-hash-table :size 1500000) - lui-lrl-hash (make-hash-table :size 5000000) - sui-lrl-hash (make-hash-table :size 6000000) - cuisui-lrl-hash (make-hash-table :size 6000000) - cui-lrlus-hash (make-hash-table :size 1500000) - lui-lrlus-hash (make-hash-table :size 5000000) - sui-lrlus-hash (make-hash-table :size 6000000) - cuisui-lrlus-hash (make-hash-table :size 6000000) - sab-srl-hash (make-hash-table :size 200 :test 'equal) + pfstr-hash (make-hash-table :size 1500000) + cui-lrl-hash (make-hash-table :size 1500000) + lui-lrl-hash (make-hash-table :size 5000000) + sui-lrl-hash (make-hash-table :size 6000000) + cuisui-lrl-hash (make-hash-table :size 6000000) + cui-lrlus-hash (make-hash-table :size 1500000) + lui-lrlus-hash (make-hash-table :size 5000000) + sui-lrlus-hash (make-hash-table :size 6000000) + cuisui-lrlus-hash (make-hash-table :size 6000000) + sab-srl-hash (make-hash-table :size 200 :test 'equal) sab-srlus-hash (make-hash-table :size 200 :test 'equal)))) (defun ensure-preparse (&optional (force-read nil)) @@ -123,7 +121,7 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (when (and (string-equal (vff "MRCONSO.RRF" "LAT" line) "ENG") (string-equal (vff "MRCONSO.RRF" "TS" line) "P") (string-equal (vff "MRCONSO.RRF" "STT" line) "PF")) - (setf (gethash cui pfstr-hash) (vff "MRCONSO.RRF" "STR" line)))) + (setf (gethash cui pfstr-hash) (vff "MRCONSO.RRF" "STR" line)))) (set-lrl-hash cui srl cui-lrl-hash) (set-lrl-hash lui srl lui-lrl-hash) (set-lrl-hash sui srl sui-lrl-hash) @@ -165,7 +163,7 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (declare (type (or null fixnum) hash-lrl) (boolean found)) (if (or (not found) (< srl hash-lrl)) - (setf (gethash key hash) srl)))) + (setf (gethash key hash) srl)))) ;; UMLS file and column structures ;;; SQL datatypes symbols @@ -247,12 +245,12 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (lambda (x) (write-to-string (cui-lrlus (parse-ui (vff "MRSTY.RRF" "CUI" x)))))) ("MRCOC.RRF" "KLRL" "TINYINT" 0 (lambda (x) (write-to-string - (max (cui-lrl (parse-ui (vff "MRCOC.RRF" "CUI1" x))) - (kmrcl:aif (cui-lrl (parse-ui (vff "MRCOC.RRF" "CUI2" x))) kmrcl::it 0))))) + (max (cui-lrl (parse-ui (vff "MRCOC.RRF" "CUI1" x))) + (kmrcl:aif (cui-lrl (parse-ui (vff "MRCOC.RRF" "CUI2" x))) kmrcl::it 0))))) ("MRCOC.RRF" "KLRLUS" "TINYINT" 0 (lambda (x) (write-to-string - (max (cui-lrlus (parse-ui (vff "MRCOC.RRF" "CUI1" x))) - (kmrcl:aif (cui-lrl (parse-ui (vff "MRCOC.RRF" "CUI2" x))) kmrcl::it 0))))) + (max (cui-lrlus (parse-ui (vff "MRCOC.RRF" "CUI1" x))) + (kmrcl:aif (cui-lrl (parse-ui (vff "MRCOC.RRF" "CUI2" x))) kmrcl::it 0))))) ("MRSAT.RRF" "KSRL" "TINYINT" 0 (lambda (x) (write-to-string (sab-srl (vff "MRSAT.RRF" "SAB" x))))) ("MRSAT.RRF" "KSRLUS" "TINYINT" 0 @@ -283,36 +281,36 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (lambda (x) (write-to-string (sab-srlus (vff "MRDEF.RRF" "SAB" x))))) ("MRXW_ENG.RRF" "KLRL" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrl (make-cuisui - (parse-ui (vff "MRXW_ENG.RRF" "CUI" x)) - (parse-ui (vff "MRXW_ENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXW_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXW_ENG.RRF" "SUI" x))))))) ("MRXW_ENG.RRF" "KLRLUS" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrlus (make-cuisui - (parse-ui (vff "MRXW_ENG.RRF" "CUI" x)) - (parse-ui (vff "MRXW_ENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXW_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXW_ENG.RRF" "SUI" x))))))) ("MRXW_NONENG.RRF" "KLRL" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrl (make-cuisui - (parse-ui (vff "MRXW_NONENG.RRF" "CUI" x)) - (parse-ui (vff "MRXW_NONENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXW_NONENG.RRF" "CUI" x)) + (parse-ui (vff "MRXW_NONENG.RRF" "SUI" x))))))) ("MRXW_NONENG.RRF" "KLRLUS" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrlus (make-cuisui - (parse-ui (vff "MRXW_NONENG.RRF" "CUI" x)) - (parse-ui (vff "MRXW_NONENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXW_NONENG.RRF" "CUI" x)) + (parse-ui (vff "MRXW_NONENG.RRF" "SUI" x))))))) ("MRXNW_ENG.RRF" "KLRL" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrl (make-cuisui - (parse-ui (vff "MRXNW_ENG.RRF" "CUI" x)) - (parse-ui (vff "MRXNW_ENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXNW_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXNW_ENG.RRF" "SUI" x))))))) ("MRXNW_ENG.RRF" "KLRLUS" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrlus (make-cuisui - (parse-ui (vff "MRXNW_ENG.RRF" "CUI" x)) - (parse-ui (vff "MRXNW_ENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXNW_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXNW_ENG.RRF" "SUI" x))))))) ("MRXNS_ENG.RRF" "KLRL" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrl (make-cuisui - (parse-ui (vff "MRXNS_ENG.RRF" "CUI" x)) - (parse-ui (vff "MRXNS_ENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXNS_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXNS_ENG.RRF" "SUI" x))))))) ("MRXNS_ENG.RRF" "KLRLUS" "TINYINT" 0 (lambda (x) (write-to-string (cuisui-lrlus (make-cuisui - (parse-ui (vff "MRXNS_ENG.RRF" "CUI" x)) - (parse-ui (vff "MRXNS_ENG.RRF" "SUI" x))))))) + (parse-ui (vff "MRXNS_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXNS_ENG.RRF" "SUI" x))))))) #+nil ("MRREL.RRF" "KPFSTR2" "TEXT" 1024 (lambda (x) (pfstr-hash (parse-ui (vff "MRREL.RRF" "CUI2" x))))) #+nil ("MRCOC.RRF" "KPFSTR2" "TEXT" 1024 (lambda (x) (pfstr-hash (parse-ui (vff "MRCOC.RRF" "CUI2" x))))) @@ -410,29 +408,29 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (let ((cols '())) (with-umls-file (line "MRCOLS.RRF") (destructuring-bind (col des ref min av max fil dty) line - (push (make-ucol col des ref (parse-integer min) (read-from-string av) - (parse-integer max) fil dty) - cols))) + (push (make-ucol col des ref (parse-integer min) (read-from-string av) + (parse-integer max) fil dty) + cols))) (nreverse cols))) (defun gen-ucols-custom () "Initialize umls columns for custom columns" (loop for customcol in +custom-cols+ - collect - (make-ucol (nth 1 customcol) "" 0 0 0 (eval (nth 3 customcol)) - (nth 0 customcol) nil :sqltype (canonicalize-column-type (nth 2 customcol)) - :custom-value-fun (compile nil (nth 4 customcol))))) + collect + (make-ucol (nth 1 customcol) "" 0 0 0 (eval (nth 3 customcol)) + (nth 0 customcol) nil :sqltype (canonicalize-column-type (nth 2 customcol)) + :custom-value-fun (compile nil (nth 4 customcol))))) (defun gen-ucols-generic (col-filename) "Initialize for generic (LEX/NET) columns" (let ((cols '())) (with-umls-file (line col-filename) (destructuring-bind (nam des ref fil) line - (setq nam (escape-column-name nam)) - (dolist (file (delimited-string-to-list fil #\,)) - (push - (make-ucol nam des ref nil nil nil file nil) - cols)))) + (setq nam (escape-column-name nam)) + (dolist (file (delimited-string-to-list fil #\,)) + (push + (make-ucol nam des ref nil nil nil file nil) + cols)))) (nreverse cols))) @@ -449,18 +447,18 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (let ((files '())) (with-umls-file (line files-filename) (destructuring-bind (fil des fmt cls rws bts) line - (push (make-ufile - dir fil des - (parse-integer cls) - (parse-integer rws) (parse-integer bts) - (concatenate 'list (umls-field-string-to-list fmt) - (custom-colnames-for-filename fil))) - files))) + (push (make-ufile + dir fil des + (parse-integer cls) + (parse-integer rws) (parse-integer bts) + (concatenate 'list (umls-field-string-to-list fmt) + (custom-colnames-for-filename fil))) + files))) (nreverse files))) (defun gen-ufiles-custom () (make-ufile "META" "MRXW_NONENG.RRF" "Custom NonEnglish Index" - 5 0 0 (fields (find-ufile "MRXW_ENG.RRF")))) + 5 0 0 (fields (find-ufile "MRXW_ENG.RRF"))))