X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=parse-rrf.lisp;h=ef56f8516358913b292bb6f88473e28163ec18ef;hb=c01a3503e58ba9d4e7fadb42f3f0f69c38496e10;hp=d54c6b2e2f4ff8766fdfd60d26d28ef58a8cf5fb;hpb=24e20cbd6508de4fc712696c08a9d7b5fd23219b;p=umlisp.git diff --git a/parse-rrf.lisp b/parse-rrf.lisp index d54c6b2..ef56f85 100644 --- a/parse-rrf.lisp +++ b/parse-rrf.lisp @@ -30,13 +30,33 @@ Specifically, SRL 4 in the USA has license restrictions between SRL 1 and 2 when used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapping is: (0->0, 1->1, 4->2, 2->3, 3->4)." - (declare (fixnum srl)) + (declare (type (integer 0 100) srl)) (cond + ((<= srl 1) srl) ((= srl 4) 2) ((= srl 2) 3) ((= srl 3) 4) (t srl))) +(defvar *vff-position-hash* (make-hash-table :size 100 :test 'eq)) + +(defmacro vff (filename fieldname record) + (let ((pos (gensym "POS-")) + (found (gensym "FOUND-")) + (key (kmrcl:ensure-keyword (concatenate 'string filename "^" fieldname)))) + `(locally (declare (optimize (speed 3) (safety 0))) + (multiple-value-bind (,pos ,found) (gethash ,key *vff-position-hash*) + (declare (ignore ,found)) + (if ,pos + (locally (declare (type (integer 0 100000) ,pos)) + (nth ,pos ,record)) + (let ((,pos (position-field-file ,filename ,fieldname))) + (unless ,pos + (error "Did not find fieldname ~A in filename ~A." ,fieldname ,filename)) + (locally (declare (type (integer 0 100000) ,pos)) + (setf (gethash ,key *vff-position-hash*) ,pos) + (nth ,pos ,record)))))))) + (let ((pfstr-hash nil) ;; Preferred concept strings by CUI (cui-lrl-hash nil) ;; LRL by CUI (lui-lrl-hash nil) ;; LRL by LUI @@ -50,20 +70,22 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (sab-srl-hash nil) (sab-srlus-hash nil)) ;; SRL by SAB + (defun clear-preparse-hash-tables () + (clrhash pfstr-hash) + (clrhash cui-lrl-hash) + (clrhash lui-lrl-hash) + (clrhash sui-lrl-hash) + (clrhash cuisui-lrl-hash) + (clrhash cui-lrlus-hash) + (clrhash lui-lrlus-hash) + (clrhash sui-lrlus-hash) + (clrhash cuisui-lrlus-hash) + (clrhash sab-srl-hash) + (clrhash sab-srlus-hash)) + (defun make-preparse-hash-table () (if sui-lrl-hash - (progn - (clrhash pfstr-hash) - (clrhash cui-lrl-hash) - (clrhash lui-lrl-hash) - (clrhash sui-lrl-hash) - (clrhash cuisui-lrl-hash) - (clrhash cui-lrlus-hash) - (clrhash lui-lrlus-hash) - (clrhash sui-lrlus-hash) - (clrhash cuisui-lrlus-hash) - (clrhash sab-srl-hash) - (clrhash sab-srlus-hash)) + (clear-preparse-hash-tables) (setf pfstr-hash (make-hash-table :size 1500000) cui-lrl-hash (make-hash-table :size 1500000) @@ -85,30 +107,31 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (declare (fixnum counter) (ignorable counter)) (with-umls-file (line "MRCONSO.RRF") - (let* ((cui (parse-ui (nth 0 line))) - (lui (parse-ui (nth 3 line))) - (sui (parse-ui (nth 5 line))) - (sab (nth 11 line)) - (srl (parse-integer (nth 15 line))) - (srlus (srl-to-srlus srl))) + (let* ((cui (parse-ui (vff "MRCONSO.RRF" "CUI" line))) + (lui (parse-ui (vff "MRCONSO.RRF" "LUI" line))) + (sui (parse-ui (vff "MRCONSO.RRF" "SUI" line))) + (sab (vff "MRCONSO.RRF" "SAB" line)) + (srl (parse-integer (vff "MRCONSO.RRF" "SRL" line))) + (srlus (srl-to-srlus srl)) + (cuisui (make-cuisui cui sui))) #+sbcl (when (= 0 (mod (incf counter) 100000)) (sb-ext:gc :full t)) ;; pfstr deprecated by KPFENG field in MRCONSO #+nil (unless (gethash cui pfstr-hash) ;; if haven't stored pfstr for cui - (when (and (string-equal (nth 1 line) "ENG") ; LAT - (string-equal (nth 2 line) "P") ; ts - (string-equal (nth 4 line) "PF")) ; stt - (setf (gethash cui pfstr-hash) (nth 14 line)))) + (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)))) (set-lrl-hash cui srl cui-lrl-hash) (set-lrl-hash lui srl lui-lrl-hash) (set-lrl-hash sui srl sui-lrl-hash) - (set-lrl-hash (make-cuisui cui sui) srl cuisui-lrl-hash) + (set-lrl-hash cuisui srl cuisui-lrl-hash) (set-lrl-hash cui srlus cui-lrlus-hash) (set-lrl-hash lui srlus lui-lrlus-hash) (set-lrl-hash sui srlus sui-lrlus-hash) - (set-lrl-hash (make-cuisui cui sui) srlus cuisui-lrlus-hash) + (set-lrl-hash cuisui srlus cuisui-lrlus-hash) (multiple-value-bind (val found) (gethash sab sab-srl-hash) (declare (ignore val)) (unless found @@ -134,7 +157,7 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp )) ;; closure - + (defun set-lrl-hash (key srl hash) "Set the least restrictive level in hash table" (declare (fixnum srl)) @@ -158,13 +181,13 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp '(("AV" sql-f) ("BTS" sql-i) ("CLS" sql-i) ("COF" sql-i) ("CUI1" sql-u) ("AUI" sql-u) ("AUI1" sql-u) ("AUI2" sql-u) ("PCUI" sql-u) ("PLUI" sql-u) ("PAUI" sql-u) ("RUI" sql-u) - ("CUI2" sql-u) ("CUI" sql-u) ("CXN" sql-s) ("FR" sql-i) + ("CUI2" sql-u) ("CUI" sql-u) ("CXN" sql-s) ("FR" sql-i) ("LUI" sql-u) ("MAX" sql-s) ("MIN" sql-s) ("RANK" sql-s) ("REF" sql-c) ("PTR" sql-c) ("RNK" sql-s) ("RWS" sql-i) ("SRL" sql-t) ("SUI" sql-u) ("TUI" sql-u) ("MAPRANK" sql-s) ;;; Custom columns - ("KCUISUI" sql-l) ("KCUILUI" sql-l) + ("KCUISUI" sql-l) ("KCUILUI" sql-l) ("KSRL" sql-t) ("KSRLUS" sql-t) ("LRL" sql-t) ("LRLUS" sql-t) ("KCUILRL" sql-t) ("KLUILRL" sql-t) ("KSUILRL" sql-t) ("KLRL" sql-t) ("KCUILRLUS" sql-t) ("KLUILRLUS" sql-t) ("KSUILRLUS" sql-t) ("KLRLUS" sql-t) @@ -188,127 +211,142 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (defparameter +custom-cols+ '(#+nil ("MRCONSO.RRF" "KPFSTR" "TEXT" (slot-value (find-ucol "STR" "MRCONSO.RRF") 'max) - (lambda (x) (pfstr-hash (parse-ui (nth 0 x))))) + (lambda (x) (pfstr-hash (parse-ui (vff "MRCONSO.RRF" "CUI" x))))) ;; Set to 1 if term is prefered term for english ("MRCONSO.RRF" "KPFENG" "TINYINT" 0 - (lambda (x) (if (and (string-equal (nth 1 x) "ENG") ; LAT - (string-equal (nth 2 x) "P") ; ts - (string-equal (nth 4 x) "PF")) ; stt + (lambda (x) (if (and (string-equal (vff "MRCONSO.RRF" "LAT" x) "ENG") + (string-equal (vff "MRCONSO.RRF" "TS" x) "P") + (string-equal (vff "MRCONSO.RRF" "STT" x) "PF")) "1" "0"))) ("MRCONSO.RRF" "KCUISUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuisui (parse-ui (nth 0 x)) (parse-ui (nth 5 x)))))) + (lambda (x) (write-to-string (make-cuisui (parse-ui (vff "MRCONSO.RRF" "CUI" x)) + (parse-ui (vff "MRCONSO.RRF" "SUI" x)))))) ("MRCONSO.RRF" "KCUILUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuilui (parse-ui (nth 0 x)) (parse-ui (nth 3 x)))))) + (lambda (x) (write-to-string (make-cuilui (parse-ui (vff "MRCONSO.RRF" "CUI" x)) + (parse-ui (vff "MRCONSO.RRF" "SUI" x)))))) ("MRCONSO.RRF" "KCUILRL" "TINYINT" 0 - (lambda (x) (write-to-string (cui-lrl (parse-ui (nth 0 x)))))) + (lambda (x) (write-to-string (cui-lrl (parse-ui (vff "MRCONSO.RRF" "CUI" x)))))) ("MRCONSO.RRF" "KCUILRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (cui-lrlus (parse-ui (nth 0 x)))))) + (lambda (x) (write-to-string (cui-lrlus (parse-ui (vff "MRCONSO.RRF" "CUI" x)))))) ("MRCONSO.RRF" "KLUILRL" "TINYINT" 0 - (lambda (x) (write-to-string (lui-lrl (parse-ui (nth 3 x)))))) + (lambda (x) (write-to-string (lui-lrl (parse-ui (vff "MRCONSO.RRF" "LUI" x)))))) ("MRCONSO.RRF" "KLUILRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (lui-lrlus (parse-ui (nth 3 x)))))) + (lambda (x) (write-to-string (lui-lrlus (parse-ui (vff "MRCONSO.RRF" "LUI" x)))))) ("MRCONSO.RRF" "KSUILRL" "TINYINT" 0 - (lambda (x) (write-to-string (sui-lrl (parse-ui (nth 5 x)))))) + (lambda (x) (write-to-string (sui-lrl (parse-ui (vff "MRCONSO.RRF" "SUI" x)))))) ("MRCONSO.RRF" "KSUILRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sui-lrlus (parse-ui (nth 5 x)))))) + (lambda (x) (write-to-string (sui-lrlus (parse-ui (vff "MRCONSO.RRF" "SUI" x)))))) ("MRCONSO.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (srl-to-srlus (parse-integer (nth 15 x)))))) + (lambda (x) (write-to-string (srl-to-srlus (parse-integer (vff "MRCONSO.RRF" "SRL" x)))))) ("MRSAB.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (srl-to-srlus (parse-integer (nth 3 x)))))) + (lambda (x) (write-to-string (srl-to-srlus (parse-integer (vff "MRSAB.RRF" "SRL" x)))))) ("MRSTY.RRF" "KLRL" "TINYINT" 0 - (lambda (x) (write-to-string (cui-lrl (parse-ui (nth 0 x)))))) + (lambda (x) (write-to-string (cui-lrl (parse-ui (vff "MRSTY.RRF" "CUI" x)))))) ("MRSTY.RRF" "KLRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (cui-lrlus (parse-ui (nth 0 x)))))) + (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 (nth 0 x))) - (kmrcl:aif (cui-lrl (parse-ui (nth 1 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 (nth 0 x))) - (kmrcl:aif (cui-lrl (parse-ui (nth 1 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 (nth 9 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRSAT.RRF" "SAB" x))))) ("MRSAT.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 9 x))))) + (lambda (x) (write-to-string (sab-srlus (vff "MRSAT.RRF" "SAB" x))))) ("MRREL.RRF" "KSRL" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srl (nth 10 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRREL.RRF" "SAB" x))))) ("MRREL.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 10 x))))) + (lambda (x) (write-to-string (sab-srlus (vff "MRREL.RRF" "SAB" x))))) ("MRRANK.RRF" "KSRL" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srl (nth 1 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRRANK.RRF" "SAB" x))))) ("MRRANK.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 1 x))))) + (lambda (x) (write-to-string (sab-srlus (vff "MRRANK.RRF" "SAB" x))))) ("MRHIER.RRF" "KSRL" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srl (nth 4 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRHIER.RRF" "SAB" x))))) ("MRHIER.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 4 x))))) + (lambda (x) (write-to-string (sab-srlus (vff "MRHIER.RRF" "SAB" x))))) ("MRMAP.RRF" "KSRL" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srl (nth 1 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRMAP.RRF" "MAPSETSAB" x))))) ("MRMAP.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 1 x))))) + (lambda (x) (write-to-string (sab-srlus (vff "MRMAP.RRF" "MAPSETSAB" x))))) ("MRSMAP.RRF" "KSRL" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srl (nth 1 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRSMAP.RRF" "MAPSETSAB" x))))) ("MRSMAP.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 1 x))))) + (lambda (x) (write-to-string (sab-srlus (vff "MRSMAP.RRF" "MAPSETSAB" x))))) ("MRDEF.RRF" "KSRL" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srl (nth 4 x))))) + (lambda (x) (write-to-string (sab-srl (vff "MRDEF.RRF" "SAB" x))))) ("MRDEF.RRF" "KSRLUS" "TINYINT" 0 - (lambda (x) (write-to-string (sab-srlus (nth 4 x))))) + (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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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 (nth 2 x)) - (parse-ui (nth 4 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))))) - #+nil ("MRREL.RRF" "KPFSTR2" "TEXT" 1024 (lambda (x) (pfstr-hash (parse-ui (nth 4 x))))) - #+nil ("MRCOC.RRF" "KPFSTR2" "TEXT" 1024 (lambda (x) (pfstr-hash (parse-ui (nth 2 x))))) ("MRSAT.RRF" "KCUILUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuilui (parse-ui (nth 0 x)) (parse-ui (nth 1 x)))))) + (lambda (x) (write-to-string (make-cuilui + (parse-ui (vff "MRSAT.RRF" "CUI" x)) + (parse-ui (vff "MRSAT.RRF" "LUI" x)))))) ("MRSAT.RRF" "KCUISUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuisui (parse-ui (nth 0 x)) (parse-ui (nth 2 x)))))) + (lambda (x) (write-to-string (make-cuisui + (parse-ui (vff "MRSAT.RRF" "CUI" x)) + (parse-ui (vff "MRSAT.RRF" "SUI" x)))))) ("MRXW_ENG.RRF" "KCUISUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuisui (parse-ui (nth 2 x)) (parse-ui (nth 4 x)))))) + (lambda (x) (write-to-string (make-cuisui + (parse-ui (vff "MRXW_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXW_ENG.RRF" "SUI" x)))))) ("MRXNW_ENG.RRF" "KCUISUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuisui (parse-ui (nth 2 x)) (parse-ui (nth 4 x)))))) + (lambda (x) (write-to-string (make-cuisui + (parse-ui (vff "MRXNW_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXNW_ENG.RRF" "SUI" x)))))) ("MRXNS_ENG.RRF" "KCUISUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuisui (parse-ui (nth 2 x)) (parse-ui (nth 4 x)))))) - ("MRXW_NONENG.RRF" "LAT" "VARCHAR" 3 (lambda (x) (nth 0 x))) - ("MRXW_NONENG.RRF" "WD" "VARCHAR" 200 (lambda (x) (nth 1 x))) - ("MRXW_NONENG.RRF" "CUI" "INTEGER" 0 (lambda (x) (write-to-string (parse-ui (nth 2 x))))) - ("MRXW_NONENG.RRF" "LUI" "INTEGER" 0 (lambda (x) (write-to-string (parse-ui (nth 3 x))))) - ("MRXW_NONENG.RRF" "SUI" "INTEGER" 0 (lambda (x) (write-to-string (parse-ui (nth 4 x))))) + (lambda (x) (write-to-string (make-cuisui + (parse-ui (vff "MRXNS_ENG.RRF" "CUI" x)) + (parse-ui (vff "MRXNS_ENG.RRF" "SUI" x)))))) + ("MRXW_NONENG.RRF" "LAT" "VARCHAR" 3 (lambda (x) (vff "MRXW_NONENG.RRF" "LAT" x))) + ("MRXW_NONENG.RRF" "WD" "VARCHAR" 200 (lambda (x) (vff "MRXW_NONENG.RRF" "WD" x))) + ("MRXW_NONENG.RRF" "CUI" "INTEGER" 0 (lambda (x) (write-to-string (parse-ui (vff "MRXW_NONENG.RRF" "CUI" x))))) + ("MRXW_NONENG.RRF" "LUI" "INTEGER" 0 (lambda (x) (write-to-string (parse-ui (vff "MRXW_NONENG.RRF" "LUI" x))))) + ("MRXW_NONENG.RRF" "SUI" "INTEGER" 0 (lambda (x) (write-to-string (parse-ui (vff "MRXW_NONENG.RRF" "SUI" x))))) ("MRXW_NONENG.RRF" "KCUISUI" "BIGINT" 0 - (lambda (x) (write-to-string (make-cuisui (parse-ui (nth 2 x)) (parse-ui (nth 4 x))))))) - "Custom columns to create.(filename, col, sqltype, value-func).") + (lambda (x) (write-to-string (make-cuisui + (parse-ui (vff "MRXW_NONENG.RRF" "CUI" x)) + (parse-ui (vff "MRXW_NONENG.RRF" "SUI" x))))))) + "Custom columns to create.(filename, col, sqltype, value-func).") (defparameter +index-cols+ '(("CUI1" "MRCOC") ("CUI" "MRCONSO") ("LUI" "MRCONSO") @@ -325,14 +363,14 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp ("SAB" "MRHIER") #+ignore ("NSTR" "MRXNS_ENG" 10) ("CUI" "MRXNW_ENG") ("NWD" "MRXNW_ENG") ("WD" "MRXW_ENG") - ("KCUISUI" "MRCONSO") ("KCUILUI" "MRCONSO") + ("KCUISUI" "MRCONSO") ("KCUILUI" "MRCONSO") ("KCUILRL" "MRCONSO") ("KLUILRL" "MRCONSO") ("KSUILRL" "MRCONSO") ("KCUILRLUS" "MRCONSO") ("KLUILRLUS" "MRCONSO") ("KSUILRLUS" "MRCONSO") ("KCUISUI" "MRSAT") ("KCUILUI" "MRSAT") ("KCUISUI" "MRXW_ENG") ("KCUISUI" "MRXNW_ENG") ("KCUISUI" "MRXNS_ENG") ("KCUISUI" "MRXW_NONENG") - ("KSRL" "MRDEF") ("KSRL" "MRRANK")("KSRL" "MRREL") ("KSRL" "MRSAT") - ("KSRLUS" "MRDEF") ("KSRLUS" "MRRANK")("KSRLUS" "MRREL") ("KSRLUS" "MRSAT") + ("KSRL" "MRDEF") ("KSRL" "MRRANK")("KSRL" "MRREL") ("KSRL" "MRSAT") + ("KSRLUS" "MRDEF") ("KSRLUS" "MRRANK")("KSRLUS" "MRREL") ("KSRLUS" "MRSAT") ("KLRL" "MRCOC") ("KLRL" "MRSTY") ("KLRL" "MRXW_ENG") ("KLRL" "MRXNW_ENG") ("KLRLUS" "MRCOC") ("KLRLUS" "MRSTY") ("KLRLUS" "MRXW_ENG") ("KLRLUS" "MRXNW_ENG") ("KLRL" "MRXNS_ENG") ("KLRL" "MRXW_NONENG") @@ -363,9 +401,9 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp (defun gen-ucols () (add-ucols (gen-ucols-meta)) - (add-ucols (gen-ucols-custom)) (add-ucols (gen-ucols-generic "LRFLD")) - (add-ucols (gen-ucols-generic "SRFLD"))) + (add-ucols (gen-ucols-generic "SRFLD")) + (add-ucols (gen-ucols-custom))) (defun gen-ucols-meta () "Initialize all umls columns" @@ -383,7 +421,7 @@ used in the United States. We create a new scale (SRLUS) where SRL to SRLUS mapp 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 (nth 4 customcol)))) + :custom-value-fun (compile nil (nth 4 customcol))))) (defun gen-ucols-generic (col-filename) "Initialize for generic (LEX/NET) columns"