X-Git-Url: http://git.kpe.io/?a=blobdiff_plain;f=sql-classes.lisp;h=48e7d54a538e66bea2290c61e8d4ae76037bbd92;hb=5be6bdf06e0c99612a4c1a1d6f110e424400d96e;hp=1eef61cb4a8c48bcbff45c881e24b8c854d42f7b;hpb=466bf8726b602d58e4ad1a103d9c9b36077521a1;p=umlisp.git diff --git a/sql-classes.lisp b/sql-classes.lisp index 1eef61c..48e7d54 100644 --- a/sql-classes.lisp +++ b/sql-classes.lisp @@ -7,7 +7,7 @@ ;;;; Author: Kevin M. Rosenberg ;;;; Date Started: Apr 2000 ;;;; -;;;; $Id: sql-classes.lisp,v 1.92 2003/08/27 23:55:17 kevin Exp $ +;;;; $Id$ ;;;; ;;;; This file, part of UMLisp, is ;;;; Copyright (c) 2000-2003 by Kevin M. Rosenberg, M.D. @@ -256,6 +256,12 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" :pfstr kpfstr :lrl (ensure-integer kcuilrl)))) +(defun find-cui-ucon-all (&key (srl *current-srl*)) + "Return list of CUIs for all ucons" + (collect-umlisp-query (mrcon (cui) srl nil nil :order (cui asc) + :distinct t) + cui)) + (defun map-ucon-all (fn &key (srl *current-srl*)) "Map a function over all ucon's" (with-sql-connection (db) @@ -298,6 +304,13 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" :cui2 (ensure-integer cui2) :rela rela :sab sab :sl sl :mg mg :pfstr2 kpfstr2))) +(defun find-cui2-urel-cui (cui &key (srl *current-srl*)) + "Return a list of urel for cui" + (ensure-cui-integer cui) + (collect-umlisp-query (mrrel (cui2) srl cui1 + cui :lrl "KSRL") + cui2)) + (defun find-urel-cui2 (cui2 &key (srl *current-srl*)) "Return a list of urel for cui2" (ensure-cui-integer cui2) @@ -497,12 +510,12 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (defun find-usab-all () "Find usab for a key" - (collect-umlisp-query (mrsab (vcui rcui vsab rsab son sf sver mstart mend imeta + (collect-umlisp-query (mrsab (vcui rcui vsab rsab son sf sver vstart vend imeta rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc curver sabin) nil nil nil) (make-instance 'usab :vcui (ensure-integer vcui) :rcui (ensure-integer rcui) :vsab vsab :rsab rsab :son son - :sf sf :sver sver :mstart mstart :mend mend :imeta imeta + :sf sf :sver sver :vstart vstart :vend vend :imeta imeta :rmeta rmeta :slc slc :scc scc :srl (ensure-integer srl) :tfr (ensure-integer tfr) :cfr (ensure-integer cfr) :cxty cxty :ttyl ttyl :atnl atnl :lat lat :cenc cenc @@ -510,13 +523,13 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (defun find-usab-by-key (key-name key) "Find usab for a key" - (collect-umlisp-query-eval ('mrsab '(vcui rcui vsab rsab son sf sver mstart - mend imeta rmeta slc scc srl tfr cfr cxty + (collect-umlisp-query-eval ('mrsab '(vcui rcui vsab rsab son sf sver vstart + vend imeta rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc curver sabin) nil key-name key :single t) (make-instance 'usab :vcui (ensure-integer vcui) :rcui (ensure-integer rcui) :vsab vsab :rsab rsab :son son - :sf sf :sver sver :mstart mstart :mend mend :imeta imeta + :sf sf :sver sver :vstart vstart :vend vend :imeta imeta :rmeta rmeta :slc slc :scc scc :srl (ensure-integer srl) :tfr (ensure-integer tfr) :cfr (ensure-integer cfr) :cxty cxty :ttyl ttyl :atnl atnl :lat lat :cenc cenc @@ -777,7 +790,7 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" (defun make-ustats () (with-sql-connection (conn) - (sql-execute "drop table if exists USTATS" conn) + (ignore-errors (sql-execute "drop table USTATS" conn)) (sql-execute "create table USTATS (NAME varchar(160), COUNT bigint, SRL integer)" conn) (dotimes (srl 4) @@ -831,11 +844,18 @@ is OBJNAME from TABLE where WHERE-NAME field = WHERE-VALUE with FIELDS" conn)) (defun find-ustats-all (&key (srl *current-srl*)) - (collect-umlisp-query (ustats (name count srl) nil srl srl - :order (name asc)) - (make-instance 'ustats :name name :hits (ensure-integer count) - :srl (ensure-integer srl)))) - + (if srl + (collect-umlisp-query (ustats (name count srl) nil srl srl + :order (name asc)) + (make-instance 'ustats :name name + :hits (ensure-integer count) + :srl (ensure-integer srl))) + (collect-umlisp-query (ustats (name count srl) nil nil nil + :order (name asc)) + (make-instance 'ustats :name name + :hits (ensure-integer count) + :srl (ensure-integer srl))))) + (defun find-ustats-srl (srl) (collect-umlisp-query (ustats (name count) nil srl srl :order (name asc)) (make-instance 'ustats :name name :hits (ensure-integer count))))