;;;; Programmer: Kevin M. Rosenberg
;;;; Date Started: Apr 2000
;;;;
-;;;; $Id: sql-classes.lisp,v 1.8 2002/11/10 22:39:15 kevin Exp $
+;;;; $Id: sql-classes.lisp,v 1.10 2002/11/12 18:05:00 kevin Exp $
;;;;
;;;; This file, part of UMLisp, is
;;;; Copyright (c) 2000-2002 by Kevin M. Rosenberg, M.D.
(push (find-usty-tui (nth 0 tuple)) ustys))
(nreverse ustys)))
+(defun find-usab-all ()
+ "Find usab for a key"
+ (let ((results '()))
+ (dolist (tuple (mutex-sql-query "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"))
+ (destructuring-bind
+ (vcui rcui vsab rsab son sf sver mstart mend imeta rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc curver sabin) tuple
+ (push
+ (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)
+ results)))
+ (nreverse results)))
+
+(defun find-usab-by-key (key-name key)
+ "Find usab for a key"
+ (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 ~A='~A'" key-name key)))
+ (destructuring-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-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))))
+ (find-usab-by-key "RSAB" rsab))
+
+(defun find-usab-vsab (vsab)
+ "Find usab for vsab"
+ (find-usab-by-key "VSAB" vsab))
(defun find-cui-max ()
(let ((cui (caar (mutex-sql-query "select max(CUI) from MRCON"))))