r11412: warn on empty files -- occurs when subsetting UMLS
[umlisp.git] / classes.lisp
index a263a8bf03747a64fa3a9098b2697c19303a2273..996a7cdde8bb2f781a23b38aabee46443dabad03 100644 (file)
@@ -2,15 +2,15 @@
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
 ;;;; *************************************************************************
 ;;;; FILE IDENTIFICATION
 ;;;;
-;;;; Name:          classes.lisp
-;;;; Purpose:       Class defintions for UMLisp
-;;;; Programmer:    Kevin M. Rosenberg
-;;;; Date Started:  Apr 2000
+;;;; Name:     classes.lisp
+;;;; Purpose:  Class defintions for UMLisp
+;;;; Author:   Kevin M. Rosenberg
+;;;; Created:  Apr 2000
 ;;;;
 ;;;; $Id$
 ;;;;
 ;;;; This file, part of UMLisp, is
 ;;;;
 ;;;; $Id$
 ;;;;
 ;;;; This file, part of UMLisp, is
-;;;;    Copyright (c) 2000-2003 by Kevin M. Rosenberg, M.D.
+;;;;    Copyright (c) 2000-2006 by Kevin M. Rosenberg, M.D.
 ;;;;
 ;;;; UMLisp users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the GNU General Public License.
 ;;;;
 ;;;; UMLisp users are granted the rights to distribute and use this software
 ;;;; as governed by the terms of the GNU General Public License.
   (:default-print-slots sab srl)
   (:description "Custom Table: Source Restriction Level"))
 
   (:default-print-slots sab srl)
   (:description "Custom Table: Source Restriction Level"))
 
-  
+
 (defclass urank (umlsclass)
   ((rank :value-type fixnum :initarg :rank :reader rank)
    (sab :value-type string :initarg :sab :reader sab)
    (tty :value-type string :initarg :tty :reader tty)
 (defclass urank (umlsclass)
   ((rank :value-type fixnum :initarg :rank :reader rank)
    (sab :value-type string :initarg :sab :reader sab)
    (tty :value-type string :initarg :tty :reader tty)
-   (supres :value-type string :initarg :supres :reader supres))
+   (suppress :value-type string :initarg :suppress :reader suppress))
   (:metaclass hyperobject-class)
   (:user-name "Rank")
   (:metaclass hyperobject-class)
   (:user-name "Rank")
-  (:default-print-slots rank sab tty supres))
+  (:default-print-slots rank sab tty suppres))
 
 (defclass udef (umlsclass)
   ((def :value-type cdata :initarg :def :reader def)
 
 (defclass udef (umlsclass)
   ((def :value-type cdata :initarg :def :reader def)
-   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab))
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (suppress :value-type string :initarg :suppress :reader suppress))
   (:metaclass hyperobject-class)
   (:user-name "Definition")
   (:default-print-slots sab def))
   (:metaclass hyperobject-class)
   (:user-name "Definition")
   (:default-print-slots sab def))
@@ -67,8 +68,8 @@
    (son :value-type string :initarg :son :reader son)
    (sf :value-type string :initarg :sf :reader sf)
    (sver :value-type string :initarg :sver :reader sver)
    (son :value-type string :initarg :son :reader son)
    (sf :value-type string :initarg :sf :reader sf)
    (sver :value-type string :initarg :sver :reader sver)
-   (mstart :value-type string :initarg :mstart :reader mstart)
-   (mend :value-type string :initarg :mend :reader mend)
+   (vstart :value-type string :initarg :vstart :reader vstart)
+   (vend :value-type string :initarg :vend :reader vend)
    (imeta :value-type string :initarg :imeta :reader imeta)
    (rmeta :value-type string :initarg :rmeta :reader rmeta)
    (slc :value-type cdata :initarg :slc :reader slc)
    (imeta :value-type string :initarg :imeta :reader imeta)
    (rmeta :value-type string :initarg :rmeta :reader rmeta)
    (slc :value-type cdata :initarg :slc :reader slc)
    (lat :value-type string :initarg :lat :reader lat)
    (cenc :value-type string :initarg :cenc :reader cenc)
    (curver :value-type string :initarg :curver :reader curver)
    (lat :value-type string :initarg :lat :reader lat)
    (cenc :value-type string :initarg :cenc :reader cenc)
    (curver :value-type string :initarg :curver :reader curver)
-   (sabin :value-type string :initarg :sabin :reader sabin))
+   (sabin :value-type string :initarg :sabin :reader sabin)
+   (ssn :value-type string :initarg :ssn :reader ssn)
+   (scit :value-type string :initarg :scit :reader scit))
   (:metaclass hyperobject-class)
   (:user-name "Source Abbreviation")
   (:metaclass hyperobject-class)
   (:user-name "Source Abbreviation")
-  (:default-print-slots vcui rcui vsab rsab son sf sver mstart mend imeta
+  (:default-print-slots vcui rcui vsab rsab son sf sver vstart vend imeta
                rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc
                rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc
-               curver sabin))
-
-(defclass uso (umlsclass)
-  ((sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
-   (code :value-type string :initarg :code :reader code)
-   (tty :value-type string :initarg :tty :reader tty :hyperlink find-btty-tty)
-   (srl :value-type fixnum :initarg :srl :reader srl))
-  (:metaclass hyperobject-class)
-  (:user-name "Source")
-  (:default-print-slots sab code tty srl))
+               curver sabin ssn scit))
 
 (defclass ucxt (umlsclass)
   ((sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
    (code :value-type string :initarg :code :reader code)
 
 (defclass ucxt (umlsclass)
   ((sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
    (code :value-type string :initarg :code :reader code)
-   (rnk :value-type fixnum :initarg :rnk :reader rnk)
    (cxn :value-type fixnum :initarg :cxn :reader cxn)
    (cxl :value-type string :initarg :cxl :reader cxl)
    (cxn :value-type fixnum :initarg :cxn :reader cxn)
    (cxl :value-type string :initarg :cxl :reader cxl)
+   (rank :value-type string :initarg :rank :reader rank)
    (cxs :value-type cdata :initarg :cxs :reader cxs)
    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-cui
         :print-formatter fmt-cui)
    (cxs :value-type cdata :initarg :cxs :reader cxs)
    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-cui
         :print-formatter fmt-cui)
+   (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :hyperlink find-ucon-aui
+        :print-formatter fmt-aui)
    (hcd :value-type string :initarg :hcd :reader hcd)
    (rela :value-type string :initarg :rela :reader rela)
    (hcd :value-type string :initarg :hcd :reader hcd)
    (rela :value-type string :initarg :rela :reader rela)
-   (xc :value-type string  :initarg :xc :reader xc))
+   (xc :value-type string  :initarg :xc :reader xc)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Context")
+  (:default-print-slots sab code cxn cxl hcd rela xc cui2 cxs))
+
+(defclass uhier (umlsclass)
+  ((cui :value-type fixnum :initarg :cui :reader cui :hyperlink find-ucon-cui
+       :print-formatter fmt-cui)
+   (aui :value-type fixnum :initarg :aui :reader aui :hyperlink find-ucon-aui
+        :print-formatter fmt-aui)
+   (cxn :value-type fixnum :initarg :cxn :reader cxn)
+   (paui :value-type fixnum :initarg :paui :reader paui
+        :print-formatter fmt-aui)
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (rela :value-type string :initarg :rela :reader rela)
+   (ptr :value-type string :initarg :ptr :reader ptr)
+   (hcd :value-type string :initarg :hcd :reader hcd)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
   (:metaclass hyperobject-class)
   (:user-name "Context")
   (:metaclass hyperobject-class)
   (:user-name "Context")
-  (:default-print-slots sab code rnk cxn cxl hcd rela xc cui2 cxs))
+  (:default-print-slots cxn paui sab rela ptr hcd))
 
 (defclass ustr (umlsclass)
   ((sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
 
 (defclass ustr (umlsclass)
   ((sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
    (str :value-type cdata :initarg :str :reader str)
    (lrl :value-type fixnum :initarg :lrl :reader lrl)
    (stt :value-type string :initarg :stt :reader stt)
    (str :value-type cdata :initarg :str :reader str)
    (lrl :value-type fixnum :initarg :lrl :reader lrl)
    (stt :value-type string :initarg :stt :reader stt)
+   (suppress :value-type string :initarg :suppress :reader suppress)
    (s#so :reader s#so :subobject (find-uso-cuisui cui sui))
    (s#sat :reader s#sat :subobject (find-usat-ui cui lui sui))
    (s#cxt :reader s#cxt :subobject (find-ucxt-cuisui cui sui)))
   (:metaclass hyperobject-class)
   (:user-name "String")
    (s#so :reader s#so :subobject (find-uso-cuisui cui sui))
    (s#sat :reader s#sat :subobject (find-usat-ui cui lui sui))
    (s#cxt :reader s#cxt :subobject (find-ucxt-cuisui cui sui)))
   (:metaclass hyperobject-class)
   (:user-name "String")
-  (:default-print-slots sui stt lrl str))
+  (:default-print-slots sui stt lrl str suppress))
+
+
+(defclass uso (umlsclass)
+  ((aui :value-type fixnum :initarg :aui :reader aui :print-formatter fmt-aui
+        :hyperlink find-ucon-aui)
+   (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+       :hyperlink find-ucon-cui)
+   (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
+       :hyperlink find-ucon-sui)
+   (saui :value-type string :initarg :saui :reader saui)
+   (sdui :value-type string :initarg :sdui :reader sdui)
+   (scui :value-type string :initarg :scui :reader scui)
+   (tty :value-type string :initarg :tty :reader tty)
+   (code :value-type string :initarg :code :reader code)
+   (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+   (lat :value-type string :initarg :lat :reader lat)
+   (str :value-type cdata :initarg :str :reader str)
+   (srl :value-type fixnum :initarg :srl :reader srl))
+  (:metaclass hyperobject-class)
+  (:user-name "Source")
+  (:default-print-slots aui sab code saui sdui scui tty srl))
 
 (defclass ulo (umlsclass)
   ((isn :value-type string :initarg :isn :reader isn)
 
 (defclass ulo (umlsclass)
   ((isn :value-type string :initarg :isn :reader isn)
 (defclass urel (umlsclass)
   ((rel :value-type string :initarg :rel :reader rel :hyperlink find-brel-rel)
    (cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
 (defclass urel (umlsclass)
   ((rel :value-type string :initarg :rel :reader rel :hyperlink find-brel-rel)
    (cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
+   (aui1 :value-type fixnum :initarg :aui1 :reader aui1 :print-formatter fmt-aui)
+   (stype1 :value-type string  :initarg :stype1 :reader stype1)
    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-sui
         :print-formatter fmt-cui)
    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-sui
         :print-formatter fmt-cui)
+   (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :hyperlink find-ucon-aui
+        :print-formatter fmt-aui)
    (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
    (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
+   (stype2 :value-type string  :initarg :stype2 :reader stype2)
    (rela :value-type string :initarg :rela :reader rela)
    (rela :value-type string :initarg :rela :reader rela)
+   (rui :value-type fixnum  :initarg :rui :reader rui :print-formatter fmt-rui)
+   (srui :value-type string  :initarg :srui :reader srui)
    (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
    (sl :value-type string  :initarg :sl :reader sl)
    (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
    (sl :value-type string  :initarg :sl :reader sl)
-   (mg :value-type string  :initarg :mg :reader mg))
+   (rg :value-type string  :initarg :rg :reader rg)
+   (dir :value-type string  :initarg :dir :reader dir)
+   (suppress :value-type string  :initarg :suppress :reader suppress)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
   (:metaclass hyperobject-class)
   (:user-name "Relationship")
   (:metaclass hyperobject-class)
   (:user-name "Relationship")
-  (:default-print-slots rel rela sab sl mg cui2 pfstr2))
-       
+  (:default-print-slots stype1 rel cui2 aui2 stype2 rela rui srui sab sl rg dir suppress pfstr2))
+
 (defclass ucoc (umlsclass)
   ((cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
 (defclass ucoc (umlsclass)
   ((cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
+   (aui1 :value-type fixnum :initarg :aui1 :reader aui1 :print-formatter fmt-aui)
    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :print-formatter fmt-cui
         :hyperlink find-ucon-cui)
    (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :print-formatter fmt-cui
         :hyperlink find-ucon-cui)
+   (aui2 :value-type fixnum :initarg :aui2 :reader aui2 :print-formatter fmt-aui
+        :hyperlink find-ucon-aui)
    (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
    (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
-   (soc :value-type string :initarg :soc :reader soc)
+   (sab :value-type string :initarg :sab :reader sab)
    (cot :value-type string :initarg :cot :reader cot)
    (cof :value-type fixnum :initarg :cof :reader cof)
    (cot :value-type string :initarg :cot :reader cot)
    (cof :value-type fixnum :initarg :cof :reader cof)
-   (coa :value-type cdata :initarg :coa :reader coa))
+   (coa :value-type cdata :initarg :coa :reader coa)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
   (:metaclass hyperobject-class)
   (:user-name "Co-occuring Concept")
   (:metaclass hyperobject-class)
   (:user-name "Co-occuring Concept")
-  (:default-print-slots soc cot cof coa cui2 pfstr2))
-
-       
-(defclass uatx (umlsclass)
-  ((sab :value-type string :initarg :sab :reader sab)
-   (rel :value-type string :initarg :rel :reader rel)
-   (atx :value-type cdata :initarg :atx :reader atx))
-  (:metaclass hyperobject-class)
-  (:user-name "Associated Expression")
-  (:default-print-slots sab rel atx))
+  (:default-print-slots cot cof coa cui2 aui2 sab pfstr2))
 
 (defclass ucon (umlsclass)
   ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
        :hyperlink find-ucon-cui)
 
 (defclass ucon (umlsclass)
   ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
        :hyperlink find-ucon-cui)
-   (lrl :value-type fixnum :initarg :lrl :reader lrl)
-   (pfstr :value-type cdata :initarg :pfstr :reader pfstr)
+   (lrl :value-type fixnum :initarg :lrl :reader lrl
+        :subobject (find-lrl-cui cui))
+   (pfstr :value-type cdata :initarg :pfstr :reader pfstr
+          :subobject (find-pfstr-cui cui))
    (s#def :reader s#def :subobject (find-udef-cui cui))
    (s#def :reader s#def :subobject (find-udef-cui cui))
+   (s#so :reader s#so :subobject (find-uso-cui cui))
+   (s#hier :reader s#hier :subobject (find-uhier-cui cui))
+   (s#map :reader s#map :subobject (find-umap-cui cui))
+   (s#smap :reader s#smap :subobject (find-usmap-cui cui))
    (s#sty :reader s#sty :subobject (find-usty-cui cui))
    (s#sty :reader s#sty :subobject (find-usty-cui cui))
-   (s#atx :reader s#atx :subobject (find-uatx-cui cui))
    (s#lo :reader s#lo :subobject (find-ulo-cui cui))
    (s#term :reader s#term :subobject (find-uterm-cui cui))
    (s#sat :reader s#sat :subobject (find-usat-ui cui))
    (s#lo :reader s#lo :subobject (find-ulo-cui cui))
    (s#term :reader s#term :subobject (find-uterm-cui cui))
    (s#sat :reader s#sat :subobject (find-usat-ui cui))
   (:user-name "Concept")
   (:default-print-slots cui lrl pfstr))
 
   (:user-name "Concept")
   (:default-print-slots cui lrl pfstr))
 
+
+(defclass uconso (umlsclass)
+  ((cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+       :hyperlink find-ucon-cui)
+   (lat :value-type string :initarg :lat :reader lat)
+   (ts :value-type string :initarg :ts :reader ts)
+   (lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui)
+   (stt :value-type string :initarg :stt :reader stt)
+   (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui)
+   (ispref :value-type string :initarg :ispref :reader ispref)
+   (aui :value-type fixnum :initarg :aui :reader aui :print-formatter fmt-aui)
+   (saui :value-type string :initarg :saui :reader saui)
+   (scui :value-type string :initarg :scui :reader scui)
+   (sdui :value-type string :initarg :sdui :reader sdui)
+   (sab :value-type string :initarg :sab :reader sab)
+   (tty :value-type string :initarg :tty :reader tty)
+   (code :value-type string :initarg :code :reader code)
+   (str :value-type string :initarg :str :reader str)
+   (srl :value-type fixnum :initarg :srl :reader srl)
+   (suppress :value-type string :initarg :suppress :reader suppress)
+   (cvf :value-type string :initarg :cvf :reader cvf)
+   (kpfeng :value-type string :initarg :kpfeng :reader kpfeng)
+   (kcuisui :value-type bigint :initarg :kcuisui :reader kcuisui)
+   (kcuilui :value-type bigint :initarg :kcuilui :reader kcuilui)
+   (kcuilrl :value-type fixnum :initarg :kcuilrl :reader kcuilrl)
+   (kluilrl :value-type fixnum :initarg :kluilrl :reader kluilrl)
+   (ksuilrl :value-type fixnum :initarg :ksuilrl :reader ksuilrl)
+   (s#def :reader s#def :subobject (find-udef-cui cui))
+   (s#so :reader s#so :subobject (find-uso-cui cui))
+   (s#hier :reader s#hier :subobject (find-uhier-cui cui))
+   (s#map :reader s#map :subobject (find-umap-cui cui))
+   (s#smap :reader s#smap :subobject (find-usmap-cui cui))
+   (s#sty :reader s#sty :subobject (find-usty-cui cui))
+   (s#lo :reader s#lo :subobject (find-ulo-cui cui))
+   (s#term :reader s#term :subobject (find-uterm-cui cui))
+   (s#sat :reader s#sat :subobject (find-usat-ui cui))
+   (s#rel :reader s#rel :subobject (find-urel-cui cui))
+   (s#coc :reader s#coc :subobject (find-ucoc-cui cui)))
+  (:documentation "CONSO is a new concept from the RRF files. This object is a rather raw row from the MRCONSO table.")
+  (:metaclass hyperobject-class)
+  (:user-name "Concept")
+  (:default-print-slots cui lrl str sab))
+
+(defclass umap (umlsclass)
+  ((mapsetcui :value-type fixnum :initarg :mapsetcui :reader mapsetcui)
+   (mapsetsab :value-type string :initarg :mapsetsab :reader mapsetsab)
+   (mapsubsetid :value-type string :initarg :mapsubsetid :reader mapsubsetid)
+   ;; fixme: will convert to integer
+   (maprank :value-type string :initarg :maprank :reader maprank)
+   (fromid :value-type string :initarg :fromid :reader fromid)
+   (fromsid :value-type string :initarg :fromsid :reader fromsid)
+   (fromexpr :value-type string :initarg :fromexpr :reader fromexpr)
+   (fromtype :value-type string :initarg :fromtype :reader fromtype)
+   (fromrule :value-type string :initarg :fromrule :reader fromrule)
+   (fromres :value-type string :initarg :fromres :reader fromres)
+   (rel :value-type string :initarg :rel :reader rel)
+   (rela :value-type string :initarg :rela :reader rela)
+   (toid :value-type string :initarg :toid :reader toid)
+   (tosid :value-type string :initarg :tosid :reader tosid)
+   (toexpr :value-type string :initarg :toexpr :reader toexpr)
+   (totype :value-type string :initarg :totype :reader totype)
+   (torule :value-type string :initarg :torule :reader torule)
+   (tores :value-type string :initarg :tores :reader tores)
+   (maprule :value-type string :initarg :maprule :reader maprule)
+   (maptype :value-type string :initarg :maptype :reader maptype)
+   (mapatn :value-type string :initarg :mapatn :reader mapatn)
+   (mapatv :value-type string :initarg :mapatv :reader mapatv)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Mapping")
+  (:default-print-slots mapsetcui mapsetsab mapsubsetid maprank fromid fromsid fromexpr fromtype
+                       fromrule fromres rel rela toid tosid toexpr totype torule tores maprule
+                       maptype mapatn mapatv))
+
+(defclass usmap (umlsclass)
+  ((mapsetcui :value-type fixnum :initarg :mapsetcui :reader mapsetcui)
+   (mapsetsab :value-type string :initarg :mapsetsab :reader mapsetsab)
+   (fromexpr :value-type string :initarg :fromexpr :reader fromexpr)
+   (fromtype :value-type string :initarg :fromtype :reader fromtype)
+   (rel :value-type string :initarg :rel :reader rel)
+   (rela :value-type string :initarg :rela :reader rela)
+   (toexpr :value-type string :initarg :toexpr :reader toexpr)
+   (totype :value-type string :initarg :totype :reader totype)
+   (cvf :value-type string  :initarg :cvf :reader cvf))
+  (:metaclass hyperobject-class)
+  (:user-name "Simple Mapping")
+  (:default-print-slots mapsetcui mapsetsab fromexpr fromtype rel rela toexpr totype))
+
 (defclass uxw (umlsclass)
   ((wd :value-type string :initarg :wd :reader wd)
    (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
 (defclass uxw (umlsclass)
   ((wd :value-type string :initarg :wd :reader wd)
    (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
   (:user-name "XNS Index" "XNS Indices")
   (:default-print-slots lat nstr cuilist))
 
   (:user-name "XNS Index" "XNS Indices")
   (:default-print-slots lat nstr cuilist))
 
+(defclass udoc (umlsclass)
+  ((dockey :value-type string :initarg :dockey :reader dockey)
+   (expl :value-type cdata :initarg :expl :reader expl)
+   (dtype :value-type cdata :initarg :dtype :reader dtype)
+   (dvalue :value-type cdata :initarg :dvalue :reader dvalue))
+  (:metaclass hyperobject-class)
+  (:user-name "Documentation record")
+  (:default-print-slots dockey expl dtype dvalue))
+
 
 ;;; LEX objects
 
 
 ;;; LEX objects
 
   (:default-print-slots name hits srl)
   (:documentation "Custom Table: UMLS Database statistics."))
 
   (:default-print-slots name hits srl)
   (:documentation "Custom Table: UMLS Database statistics."))
 
-  
-(defclass bsab (umlsclass)
-  ((sab :value-type string :initarg :sab :reader sab
-       :hyperlink find-ustr-sab
-       :hyperlink-parameters (("subobjects" . "no")))
-   (name :value-type string :initarg :name :reader name)
-   (hits :value-type fixnum :initarg :hits :reader hits
-        :user-name "count"
-        :print-formatter fmt-comma-integer))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :name nil :hits nil)
-  (:user-name "Source of Abbreviation")
-  (:default-print-slots sab name hits)
-  (:documentation "Bonus SAB file"))
-  
-(defclass btty (umlsclass)
-  ((tty :value-type string :initarg :tty :reader tty)
-   (name :value-type string :initarg :name :reader name)
-   (hits :value-type fixnum :initarg :hits :reader hits
-        :user-name "count"
-        :print-formatter fmt-comma-integer))
-  (:metaclass hyperobject-class)
-  (:default-initargs :tty nil :name nil :hits nil)
-  (:user-name "Bonus TTY")
-  (:default-print-slots tty name hits)
-  (:documentation "Bonus TTY file"))
-  
-(defclass brel (umlsclass)
-  ((sab :value-type string :initarg :sab :reader sab)
-   (sl :value-type string :initarg :sl :reader sl)
-   (rel :value-type string :initarg :rel :reader rel)
-   (rela :value-type string :initarg :rela :reader rela)
-   (hits :value-type fixnum :initarg :hits :reader hits
-        :user-name "count"
-        :print-formatter fmt-comma-integer))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :sl nil :rel nil :rela nil :hits nil)
-  (:user-name "Bonus REL")
-  (:default-print-slots sab sl rel rela hits)
-  (:documentation "Bonus REL file"))
-
-(defclass batn (umlsclass)
-  ((sab :value-type string :initarg :sab :reader sab)
-   (atn :value-type string :initarg :atn :reader atn)
-   (hits :value-type fixnum :initarg :hits :reader hits
-        :user-name "count"
-        :print-formatter fmt-comma-intger))
-  (:metaclass hyperobject-class)
-  (:default-initargs :sab nil :atn nil)
-  (:user-name "Bonus ATN")
-  (:default-print-slots sab atn hits)
-  (:documentation "Bonus ATN file"))