r3368: *** empty log message ***
[umlisp.git] / sql-classes.lisp
index 60eeb23389809e16ae3a3feb29b3125c09b06408..c9e7c3617ab3560dde60dd776d6947a22a340720 100644 (file)
@@ -7,7 +7,7 @@
 ;;;; Programmer:    Kevin M. Rosenberg
 ;;;; Date Started:  Apr 2000
 ;;;;
-;;;; $Id: sql-classes.lisp,v 1.6 2002/10/18 03:57:39 kevin Exp $
+;;;; $Id: sql-classes.lisp,v 1.8 2002/11/10 22:39:15 kevin Exp $
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;    Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
        ls
        :database db))))
 
+(defun map-ucon-all (fn &key (srl *current-srl*))
+  "Return list of all ucon's"
+  (let ((ls "select distinct CUI,KPFSTR,KCUILRL from MRCON"))
+    (when srl
+      (string-append ls (format nil " where KCUILRL <= ~d" srl)))
+    (string-append ls " order by CUI asc")
+    (with-sql-connection (db)
+      (clsql:map-query 
+       nil
+       #'(lambda (cui pfstr cuilrl)
+          (funcall fn
+                   (make-instance 'ucon :cui (ensure-integer cui)
+                                  :pfstr pfstr
+                                  :lrl (ensure-integer cuilrl))))
+       ls
+       :database db))))
 
 
 (defun find-udef-cui (cui &key (srl *current-srl*))
     (nreverse ustys)))
 
 
+(defun find-usab-rsab (rsab)
+  "Find usab for rsab"
+  (aif (car (mutex-sql-query 
+            (format nil "select VCUI,RCUI,VSAB,RSAB,SON,SF,SVER,MSTART,MEND,IMETA,RMETA,SLC,SCC,SRL,TFR,CFR,CXTY,TTYL,ATNL,LAT,CENC,CURVER,SABIN from MRSAB where RSAB='~A'" rsab)))
+       (multiple-value-bind
+            (vcui rcui vsab rsab son sf sver mstart mend imeta rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc curver sabin) it
+       (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 :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 :curver curver
+                     :sabin sabin))))
+
 (defun find-cui-max ()
   (let ((cui (caar (mutex-sql-query "select max(CUI) from MRCON"))))
     (ensure-integer cui)))