X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=parse-rrf.lisp;h=4076dc7c47635615d12b3813d2beb2030922f814;hb=528ae99bf39b94a9e577505be14f110ac7ac0470;hp=ad9105aa546ee2b9e33b5cfbddbb5d6c879b5d4b;hpb=f4ea91e2cf0eb22db02498e54d1f75ef5dcd4239;p=umlisp.git diff --git a/parse-rrf.lisp b/parse-rrf.lisp index ad9105a..4076dc7 100644 --- a/parse-rrf.lisp +++ b/parse-rrf.lisp @@ -51,27 +51,32 @@ (when (and *preparse-hash-init?* (not force-read)) (return-from ensure-preparse 'already-done)) (make-preparse-hash-table) - (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)))) - ;; pfstr deprecated by KPKENG field in MRCONSO - #+nil - (unless (gethash cui pfstr-hash) ;; if haven't stored pfstr for cui + (let ((counter 0)) + (declare (fixnum 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)))) + #+sbcl + (when (= 0 (mod (incf counter) 100000)) (sb-ext:gc :full t)) + + ;; pfstr deprecated by KPKENG 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)))) - (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) - (multiple-value-bind (val found) (gethash sab sab-srl-hash) - (declare (ignore val)) - (unless found - (setf (gethash sab sab-srl-hash) srl))))) + (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) + (multiple-value-bind (val found) (gethash sab sab-srl-hash) + (declare (ignore val)) + (unless found + (setf (gethash sab sab-srl-hash) srl)))))) (setq *preparse-hash-init?* t) t) @@ -215,12 +220,12 @@ ("SUI" "MRCONSO") ("SAUI" "MRCONSO") ("CODE" "MRCONSO") ("SCUI" "MRCONSO") ("CUI" "MRDEF") - ("CUI1" "MRREL") ("CUI2" "MRREL") + ("CUI1" "MRREL") ("CUI2" "MRREL") ("SAB" "MRREL") ("RUI" "MRREL") ("AUI1" "MRREL") ("AUI2" "MRREL") ("CUI" "MRSAT") ("LUI" "MRSAT") ("SUI" "MRSAT") ("METAUI" "MRSAT") ("ATN" "MRSAT") ("CUI" "MRSTY") ("TUI" "MRSTY") ("CUI" "MRXNS_ENG") - ("AUI" "MRHIER") ("PTR" "MRHIER" 255) ("CUI" "MRHIER") ("CXN" "MRHIER") ("RELA" "MRHIER") ("PAUI" "MRHIER") + ("AUI" "MRHIER") ("CUI" "MRHIER") ("CXN" "MRHIER") ("RELA" "MRHIER") ("PAUI" "MRHIER") ("SAB" "MRHIER") #+ignore ("NSTR" "MRXNS_ENG" 10) ("CUI" "MRXNW_ENG") ("NWD" "MRXNW_ENG") ("WD" "MRXW_ENG")