X-Git-Url: http://git.kpe.io/?p=umlisp.git;a=blobdiff_plain;f=sql-classes.lisp;h=1187d5931bd9bc52a0791c43752dbaa434b2e865;hp=5543d58d5e4babd3db812ad744afd4ff48a4bfa5;hb=756b9f208a0f807c326b0ecc6d29bfc73967440e;hpb=51451987c4fee40b475e014ee5c801b1657d119d diff --git a/sql-classes.lisp b/sql-classes.lisp index 5543d58..1187d59 100644 --- a/sql-classes.lisp +++ b/sql-classes.lisp @@ -107,7 +107,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" :filter ,filter :limit ,limit))) (defmacro umlisp-query-eval (table fields srl where-name where-value - &key (lrl "KCUILRL") single distinct order like + &key (lrl "KCUILRL") single distinct order like filter limit) "Query the UMLisp database. Return a list of umlisp objects whose name is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" @@ -229,7 +229,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (ensure-cui-integer cui) (unless cui (return-from find-ucon-cui nil)) - (let ((tuple (car (mutex-sql-query + (let ((tuple (car (mutex-sql-query (format nil "SELECT kcuilrl,str FROM MRCONSO WHERE CUI=~D AND KPFENG=1~A" cui (if srl (format nil " AND SRL<=~D" srl) "")))))) @@ -254,10 +254,10 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" "Find preferred string for a cui" (ensure-cui-integer cui) (or - (collect-umlisp-query (mrconso (str) srl cui cui :distinct t + (collect-umlisp-query (mrconso (str) srl cui cui :distinct t :filter " KPFENG=1" :single t) str) - (collect-umlisp-query (mrconso (str) srl cui cui :distinct t + (collect-umlisp-query (mrconso (str) srl cui cui :distinct t :single t) str))) @@ -399,9 +399,9 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (defun find-urel-rui (rui &key (srl *current-srl*)) "Return the urel for a rui" (ensure-rui-integer rui) - (collect-umlisp-query (mrrel (aui1 rel stype1 cui2 aui2 stype2 rela rui srui sab sl rg dir suppress cvf) + (collect-umlisp-query (mrrel (aui1 rel stype1 cui1 cui2 aui2 stype2 rela rui srui sab sl rg dir suppress cvf) srl rui rui :lrl "KSRL" :single t) - (make-instance 'urel :cui1 cui :aui1 (ensure-integer aui1) :stype1 stype1 :rel rel + (make-instance 'urel :cui1 cui1 :aui1 (ensure-integer aui1) :stype1 stype1 :rel rel :cui2 (ensure-integer cui2) :aui2 (ensure-integer aui2) :stype2 stype2 :rui (ensure-integer rui) :srui srui :rela rela :sab sab :sl sl :rg rg :dir dir :suppress suppress :cvf cvf :pfstr2 (find-pfstr-cui cui2)))) @@ -418,7 +418,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (ensure-cui-integer cui2) (collect-umlisp-query (mrrel (rel cui1 aui1 stype1 aui2 stype2 rela rui srui sab sl rg dir suppress cvf) srl cui2 cui2 :lrl "KSRL") - (make-instance 'urel :cui2 cui2 :rel rel :aui2 (ensure-integer aui2) + (make-instance 'urel :cui2 cui2 :rel rel :aui2 (ensure-integer aui2) :stype2 stype2 :rui (ensure-integer rui) :srui srui :stype1 stype1 :cui1 (ensure-integer cui1) :aui1 (ensure-integer aui1) @@ -563,7 +563,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (defun find-uso-cui (cui &key (srl *current-srl*) (english-only nil) limit) (ensure-cui-integer cui) - (collect-umlisp-query (mrconso (aui sab code srl tty saui sdui scui lat str sui) + (collect-umlisp-query (mrconso (aui sab code srl tty saui sdui scui lat str sui) srl cui cui :lrl srl :limit limit :filter (when english-only "LAT='ENG'")) (make-instance 'uso :aui aui :sab sab :code code :srl srl :tty tty