-;;; $Id: classes.lisp,v 1.1 2002/10/08 22:08:56 kevin Exp $
-;;;
-;;; UMLS object defintions and printing routines
-
-(in-package :umlisp)
-(declaim (optimize (speed 3) (safety 1)))
-
-(defclass umlsclass ()
+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*-
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
+;;;;
+;;;; Name: classes.lisp
+;;;; Purpose: Class defintions for UMLisp
+;;;; Programmer: Kevin M. Rosenberg
+;;;; Date Started: Apr 2000
+;;;;
+;;;; $Id$
+;;;;
+;;;; This file, part of UMLisp, is
+;;;; Copyright (c) 2000-2003 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.
+;;;; *************************************************************************
+
+(in-package #:umlisp)
+
+(defclass umlsclass (hyperobject)
()
- (:metaclass ml-class)
- (:documentation "Parent class of all UMLS objects"))
-
-
-(defmethod print-object ((obj umlsclass) (s stream))
- (print-unreadable-object (obj s :type t :identity t)
- (let ((fmt (make-instance 'gu.ml::textformat)))
- (apply #'format
- s (funcall (gu.ml::obj-data-fmtstr fmt) obj)
- (multiple-value-list
- (funcall (funcall (gu.ml::obj-data-value-func fmt) obj) obj))))))
+ (:metaclass hyperobject-class)
+ (:description "Parent class of all UMLS objects. It is based on the HYPEROBJECT-CLASS metaclass that provides object printing functions."))
+(defclass usrl (umlsclass)
+ ((sab :value-type string :initarg :sab :reader sab)
+ (srl :value-type fixnum :initarg :srl :reader srl))
+ (:metaclass hyperobject-class)
+ (:user-name "Source Restriction Level")
+ (:default-print-slots sab srl)
+ (:description "Custom Table: Source Restriction Level"))
(defclass urank (umlsclass)
- ((rank :type fixnum :initarg :rank :reader rank)
- (sab :type string :initarg :sab :reader sab)
- (tty :type string :initarg :tty :reader tty)
- (supres :type string :initarg :supres :reader supres))
- (:metaclass ml-class)
- (:default-initargs :rank nil :sab nil :tty nil :supres nil)
- (:title "Rank")
- (:fields (rank :fixnum) (sab :string) (tty :string) (supres :string)))
+ ((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))
+ (:metaclass hyperobject-class)
+ (:user-name "Rank")
+ (:default-print-slots rank sab tty supres))
(defclass udef (umlsclass)
- ((def :type string :initarg :def :reader def)
- (sab :type string :initarg :sab :reader sab))
- (:metaclass ml-class)
- (:default-initargs :def nil :sab nil)
- (:title "Definition")
- (:ref-fields (sab find-bsab-sab))
- (:fields (sab :string) (def :cdata)))
+ ((def :value-type cdata :initarg :def :reader def)
+ (sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab))
+ (:metaclass hyperobject-class)
+ (:user-name "Definition")
+ (:default-print-slots sab def))
(defclass usat (umlsclass)
- ((sab :type string :initarg :sab :reader sab)
- (code :type string :initarg :code :reader code)
- (atn :type string :initarg :atn :reader atn)
- (atv :type string :initarg :atv :reader atv))
- (:metaclass ml-class)
- (:default-initargs :sab nil :code nil :atn nil :atv nil)
- (:title "Simple Attribute")
- (:ref-fields (sab find-bsab-sab))
- (:fields (sab :string) (code :string) (atn :string) (atv :cdata)))
+ ((sab :value-type string :initarg :sab :reader sab :hyperlink find-usab-rsab)
+ (code :value-type string :initarg :code :reader code)
+ (atn :value-type string :initarg :atn :reader atn)
+ (atv :value-type cdata :initarg :atv :reader atv))
+ (:metaclass hyperobject-class)
+ (:user-name "Simple Attribute")
+ (:default-print-slots sab code atn atv))
+
+(defclass usab (umlsclass)
+ ((vcui :value-type fixnum :initarg :vcui :reader vcui :print-formatter fmt-cui)
+ (rcui :value-type fixnum :initarg :rcui :reader rcui :print-formatter fmt-cui)
+ (vsab :value-type string :initarg :vsab :reader vsab)
+ (rsab :value-type string :initarg :rsab :reader rsab :hyperlink find-ustr-sab
+ :hyperlink-parameters (("subobjects" . "no")))
+ (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)
+ (imeta :value-type string :initarg :imeta :reader imeta)
+ (rmeta :value-type string :initarg :rmeta :reader rmeta)
+ (slc :value-type cdata :initarg :slc :reader slc)
+ (scc :value-type cdata :initarg :scc :reader scc)
+ (srl :value-type fixnum :initarg :srl :reader srl)
+ (tfr :value-type fixnum :initarg :tfr :reader tfr :print-formatter fmt-comma-integer)
+ (cfr :value-type fixnum :initarg :cfr :reader cfr :print-formatter fmt-comma-integer)
+ (cxty :value-type string :initarg :cxty :reader cxty)
+ (ttyl :value-type string :initarg :ttyl :reader ttyl)
+ (atnl :value-type string :initarg :atnl :reader atnl)
+ (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))
+ (:metaclass hyperobject-class)
+ (:user-name "Source Abbreviation")
+ (:default-print-slots vcui rcui vsab rsab son sf sver mstart mend imeta
+ rmeta slc scc srl tfr cfr cxty ttyl atnl lat cenc
+ curver sabin))
(defclass uso (umlsclass)
- ((sab :type string :initarg :sab :reader sab)
- (code :type string :initarg :code :reader code)
- (tty :type string :initarg :tty :reader tty)
- (srl :type fixnum :initarg :srl :reader srl))
- (:metaclass ml-class)
- (:default-initargs :sab nil :code nil :tty nil :srl nil)
- (:title "Source")
- (:ref-fields (sab find-bsab-sab) (tty find-btty-tty))
- (:fields (sab :string) (code :string) (tty :string) (srl :fixnum)))
+ ((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))
(defclass ucxt (umlsclass)
- ((sab :type string :initarg :sab :reader sab)
- (code :type string :initarg :code :reader code)
- (rnk :type fixnum :initarg :rnk :reader rnk)
- (cxn :type fixnum :initarg :cxn :reader cxn)
- (cxl :type string :initarg :cxl :reader cxl)
- (cxs :type string :initarg :cxs :reader cxs)
- (cui2 :type fixnum :initarg :cui2 :reader cui2)
- (hcd :type string :initarg :hcd :reader hcd)
- (rela :type string :initarg :rela :reader rela)
- (xc :type string :initarg :xc :reader xc))
- (:metaclass ml-class)
- (:default-initargs :sab nil :code nil :rnk nil :cxn nil :cxl nil :cxs nil
- :cui2 nil :hcd nil :rela nil :xc nil)
- (:title "Context")
- (:ref-fields (sab find-bsab-sab) (cui2 find-ucon-cui))
- (:fields
- (sab :string) (code :string) (rnk :fixnum) (cxn :fixnum) (cxl :string)
- (hcd :string) (rela :string) (xc :string) (cui2 :string fmt-cui)
- (cxs :cdata)))
+ ((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)
+ (cxs :value-type cdata :initarg :cxs :reader cxs)
+ (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-cui
+ :print-formatter fmt-cui)
+ (hcd :value-type string :initarg :hcd :reader hcd)
+ (rela :value-type string :initarg :rela :reader rela)
+ (xc :value-type string :initarg :xc :reader xc))
+ (:metaclass hyperobject-class)
+ (:user-name "Context")
+ (:default-print-slots sab code rnk cxn cxl hcd rela xc cui2 cxs))
(defclass ustr (umlsclass)
- ((sui :type fixnum :initarg :sui :reader sui)
- (cui :type fixnum :initarg :cui :reader cui)
- (lui :type fixnum :initarg :lui :reader lui)
- (cuisui :type integer :initarg :cuisui :reader cuisui )
- (str :type string :initarg :str :reader str)
- (lrl :type fixnum :initarg :lrl :reader lrl)
- (stt :type string :initarg :stt :reader stt)
- (s#sat :reader s#sat)
- (s#so :reader s#so)
- (s#cxt :reader s#cxt))
- (:metaclass ml-class)
- (:default-initargs
- :sui nil :cui nil :lui nil :cuisui nil :str nil :lrl nil :stt nil)
- (:title "String")
- (:subobjects-lists (s#sat usat) (s#so uso) (s#cxt ucxt))
- (:fields (sui :string fmt-sui) (stt :string) (lrl :fixnum) (str :cdata))
- (:ref-fields (sui find-ustr-sui)))
+ ((sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui
+ :hyperlink find-ustr-sui)
+ (cui :value-type fixnum :initarg :cui :reader cui :print-formatter fmt-cui
+ :hyperlink find-ucon-cui)
+ (lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
+ :hyperlink find-uterm-lui)
+ (cuisui :value-type integer :initarg :cuisui :reader cuisui )
+ (str :value-type cdata :initarg :str :reader str)
+ (lrl :value-type fixnum :initarg :lrl :reader lrl)
+ (stt :value-type string :initarg :stt :reader stt)
+ (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))
(defclass ulo (umlsclass)
- ((isn :type string :initarg :isn :reader isn)
- (fr :type fixnum :initarg :fr :reader fr)
- (un :type string :initarg :un :reader un)
- (sui :type fixnum :initarg :sui :reader sui)
- (sna :type string :initarg :sna :reader sna)
- (soui :type string :initarg :soui :reader soui))
- (:metaclass ml-class)
- (:default-initargs :isn nil :fr nil :un nil :sui nil :sna nil :soui nil)
- (:title "Locator")
- (:fields (isn :string) (fr :fixnum) (un :string) (sna :string)
- (soui :string) (sui :string fmt-sui) (suistr :string)))
+ ((isn :value-type string :initarg :isn :reader isn)
+ (fr :value-type fixnum :initarg :fr :reader fr)
+ (un :value-type string :initarg :un :reader un)
+ (sui :value-type fixnum :initarg :sui :reader sui :print-formatter fmt-sui)
+ (sna :value-type string :initarg :sna :reader sna)
+ (soui :value-type string :initarg :soui :reader soui))
+ (:metaclass hyperobject-class)
+ (:user-name "Locator")
+ (:default-print-slots isn fr un sna soui sui))
(defclass uterm (umlsclass)
- ((lui :type fixnum :initarg :lui :reader lui)
- (cui :type fixnum :initarg :cui :reader cui)
- (lat :type string :initarg :lat :reader lat)
- (ts :type string :initarg :ts :reader ts)
- (lrl :type fixnum :initarg :lrl :reader lrl)
- (s#str :reader s#str)
- (s#sat :reader s#sat))
- (:metaclass ml-class)
- (:default-initargs :lui nil :cui nil :lat nil :ts nil :lrl nil)
- (:title "Term")
- (:subobjects-lists (s#sat usat) (s#str ustr))
- (:fields (lui :string fmt-lui) (lat :string) (ts :string) (lrl :fixnum))
- (:ref-fields (lui find-uterm-lui)))
+ ((lui :value-type fixnum :initarg :lui :reader lui :print-formatter fmt-lui
+ :hyperlink find-uterm-lui)
+ (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)
+ (lrl :value-type fixnum :initarg :lrl :reader lrl)
+ (s#str :reader s#str :subobject (find-ustr-cuilui cui lui))
+ (s#sat :reader s#sat :subobject (find-usat-ui cui lui)))
+ (:metaclass hyperobject-class)
+ (:user-name "Term")
+ (:default-print-slots lui lat ts lrl))
(defclass usty (umlsclass)
- ((tui :type fixnum :initarg :tui :reader tui)
- (sty :type string :initarg :sty :reader sty))
- (:metaclass ml-class)
- (:default-initargs :tui nil :sty nil)
- (:title "Semantic Type")
- (:ref-fields (tui find-ucon-tui (("subobjects" "no"))))
- (:fields (tui :string fmt-tui) (sty :string)))
+ ((tui :value-type fixnum :initarg :tui :reader tui :print-formatter fmt-tui
+ :hyperlink find-ucon-tui
+ :hyperlink-parameters (("subobjects" . "no")))
+ (sty :value-type string :initarg :sty :reader sty))
+ (:metaclass hyperobject-class)
+ (:user-name "Semantic Type")
+ (:default-print-slots tui sty))
(defclass urel (umlsclass)
- ((rel :type string :initarg :rel :reader rel)
- (cui1 :type fixnum :initarg :cui1 :reader cui1)
- (cui2 :type fixnum :initarg :cui2 :reader cui2)
- (pfstr2 :type string :initarg :pfstr2 :reader pfstr2)
- (rela :type string :initarg :rela :reader rela)
- (sab :type string :initarg :sab :reader sab)
- (sl :type string :initarg :sl :reader sl)
- (mg :type string :initarg :mg :reader mg))
- (:metaclass ml-class)
- (:default-initargs
- :rel nil :cui1 nil :cui2 nil :pfstr2 nil :rela nil :sab nil :sl nil :mg nil)
- (:title "Relationship")
- (:ref-fields (rel find-brel-rel) (sab find-bsab-sab) (cui2 find-ucon-cui))
- (:fields (rel :string) (rela :string) (sab :string) (sl :string)
- (mg :string) (cui2 :string fmt-cui) (pfstr2 :cdata)))
+ ((rel :value-type string :initarg :rel :reader rel :hyperlink find-brel-rel)
+ (cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
+ (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :hyperlink find-ucon-sui
+ :print-formatter fmt-cui)
+ (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
+ (rela :value-type string :initarg :rela :reader rela)
+ (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))
+ (:metaclass hyperobject-class)
+ (:user-name "Relationship")
+ (:default-print-slots rel rela sab sl mg cui2 pfstr2))
(defclass ucoc (umlsclass)
- ((cui1 :type fixnum :initarg :cui1 :reader cui1)
- (cui2 :type fixnum :initarg :cui2 :reader cui2)
- (pfstr2 :type string :initarg :pfstr2 :reader pfstr2)
- (soc :type string :initarg :soc :reader soc)
- (cot :type string :initarg :cot :reader cot)
- (cof :type fixnum :initarg :cof :reader cof)
- (coa :type string :initarg :coa :reader coa))
- (:metaclass ml-class)
- (:default-initargs
- :cui1 nil :cui2 nil :pfstr2 nil :soc nil :cot nil :cof nil :coa nil)
- (:title "Co-occuring Concept")
- (:ref-fields (cui2 find-ucon-cui))
- (:fields (soc :string) (cot :string) (cof :fixnum) (coa :cdata)
- (cui2 :string fmt-cui) (pfstr2 :cdata)))
+ ((cui1 :value-type fixnum :initarg :cui1 :reader cui1 :print-formatter fmt-cui)
+ (cui2 :value-type fixnum :initarg :cui2 :reader cui2 :print-formatter fmt-cui
+ :hyperlink find-ucon-cui)
+ (pfstr2 :value-type cdata :initarg :pfstr2 :reader pfstr2)
+ (soc :value-type string :initarg :soc :reader soc)
+ (cot :value-type string :initarg :cot :reader cot)
+ (cof :value-type fixnum :initarg :cof :reader cof)
+ (coa :value-type cdata :initarg :coa :reader coa))
+ (:metaclass hyperobject-class)
+ (:user-name "Co-occuring Concept")
+ (:default-print-slots soc cot cof coa cui2 pfstr2))
(defclass uatx (umlsclass)
- ((sab :type string :initarg :sab :reader sab)
- (rel :type string :initarg :rel :reader rel)
- (atx :type string :initarg :atx :reader atx))
- (:metaclass ml-class)
- (:default-initargs :sab nil :rel nil :atx nil)
- (:title "Associated Expression")
- (:fields (sab :string) (rel :string) (atx :cdata)))
+ ((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))
(defclass ucon (umlsclass)
- ((cui :type fixnum :initarg :cui :reader cui )
- (pfstr :initarg :pfstr :reader pfstr)
- (lrl :initarg :lrl :reader lrl)
- (s#term :reader s#term)
- (s#def :reader s#def)
- (s#lo :reader s#lo)
- (s#rel :reader s#rel)
- (s#coc :reader s#coc)
- (s#sat :reader s#sat)
- (s#atx :reader s#atx)
- (s#sty :reader s#sty))
- (:metaclass ml-class)
- (:default-initargs :cui nil :pfstr nil :lrl nil)
- (:title "Concept")
- (:subobjects-lists
- (s#def udef) (s#sty usty) (s#lo ulo) (s#atx uatx) (s#sat usat) (s#rel urel)
- (s#coc ucoc) (s#term uterm))
- (:fields (cui :string fmt-cui) (lrl :fixum) (pfstr :cdata))
- (:ref-fields (cui find-ucon-cui)))
+ ((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)
+ (s#def :reader s#def :subobject (find-udef-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#rel :reader s#rel :subobject (find-urel-cui cui))
+ (s#coc :reader s#coc :subobject (find-ucoc-cui cui)))
+ (:metaclass hyperobject-class)
+ (:user-name "Concept")
+ (:default-print-slots cui lrl pfstr))
(defclass uxw (umlsclass)
- ((wd :type string :initarg :wd :reader wd)
- (cui :type fixnum :initform nil :initarg :cui :reader cui)
- (lui :type fixnum :initform nil :initarg :lui :reader lui)
- (sui :type fixnum :initform nil :initarg :sui :reader sui))
- (:metaclass ml-class)
- (:default-initargs :wd nil :cui nil :lui nil :sui nil)
- (:title "XW Index")
- (:fields (wd :string) (cui :string fmt-cui) (lui :string fmt-lui)
- (sui :string fmt-sui)))
+ ((wd :value-type string :initarg :wd :reader wd)
+ (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
+ (lui :value-type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
+ (sui :value-type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui))
+ (:metaclass hyperobject-class)
+ (:user-name "XW Index" "XW Indices")
+ (:default-print-slots wd cui lui sui))
+
+(defclass uxw-noneng (umlsclass)
+ ((lat :value-type string :initarg :lat :reader lat)
+ (wd :value-type string :initarg :wd :reader wd)
+ (cui :value-type fixnum :initform nil :initarg :cui :reader cui :print-formatter fmt-cui)
+ (lui :value-type fixnum :initform nil :initarg :lui :reader lui :print-formatter fmt-lui)
+ (sui :value-type fixnum :initform nil :initarg :sui :reader sui :print-formatter fmt-sui)
+ (lrl :value-type fixnum :initform nil :initarg :lrl :reader lrl))
+ (:metaclass hyperobject-class)
+ (:user-name "XW Non-English Index" "XW Non-English Indices")
+ (:default-print-slots wd cui lui sui))
(defclass uxnw (umlsclass)
- ((lat :type string :initarg :lat :reader lat)
- (nwd :type string :initarg :nwd :reader nwd)
- (cuilist :type list :initarg :cuilist :reader uxnw-cuilist))
- (:metaclass ml-class)
- (:default-initargs :lat nil :nwd nil :cuilist nil)
- (:title "XNW Index")
- (:fields (lat :string) (nwd :string) (cuilist :string)))
+ ((lat :value-type string :initarg :lat :reader lat)
+ (nwd :value-type string :initarg :nwd :reader nwd)
+ (cuilist :value-type list :initarg :cuilist :reader uxnw-cuilist))
+ (:metaclass hyperobject-class)
+ (:user-name "XNW Index" "XNW Indices")
+ (:default-print-slots lat nwd cuilist))
(defclass uxns (umlsclass)
- ((lat :type string :initarg :lat :reader lat)
- (nstr :type string :initarg :nstr :reader nstr)
- (cuilist :type list :initarg :cuilist :reader cuilist))
- (:metaclass ml-class)
- (:default-initargs :lat nil :nstr nil :cuilist nil)
- (:title "XNS Index")
- (:fields (lat :string) (nstr :string) (cuilist :string)))
+ ((lat :value-type string :initarg :lat :reader lat)
+ (nstr :value-type string :initarg :nstr :reader nstr)
+ (cuilist :value-type list :initarg :cuilist :reader cuilist))
+ (:metaclass hyperobject-class)
+ (:user-name "XNS Index" "XNS Indices")
+ (:default-print-slots lat nstr cuilist))
;;; LEX objects
(defclass lexterm (umlsclass)
- ((eui :type fixnum :initarg :eui :reader eui)
- (wrd :type string :initarg :wrd :reader wrd)
- (s#abr :reader s#abr)
- (s#agr :reader s#agr)
- (s#cmp :reader s#cmp)
- (s#mod :reader s#mod)
- (s#nom :reader s#nom)
- (s#prn :reader s#prn)
- (s#prp :reader s#prp)
- (s#spl :reader s#spl)
- (s#trm :reader s#trm)
- (s#typ :reader s#typ))
- (:metaclass ml-class)
- (:default-initargs :eui nil :wrd nil)
- (:title "Lexical Term")
- (:subobjects-lists
- (s#abr labr) (s#agr lagr) (s#cmp lcmp) (s#mod lmod) (s#nom unom)
- (s#prn lprn) (s#prp lprp) (s#spl lspl) (s#trm ltrm) (s#typ ltyp))
- (:fields (eui :string fmt-eui) (wrd :string))
- (:ref-fields (eui find-lexterm-eui)))
+ ((eui :value-type fixnum :initarg :eui :reader eui :print-formatter fmt-eui
+ :hyperlink find-lexterm-eui)
+ (wrd :value-type string :initarg :wrd :reader wrd)
+ (s#abr :reader s#abr :subobject (find-labr-eui eui))
+ (s#agr :reader s#agr :subobject (find-lagr-eui eui))
+ (s#cmp :reader s#cmp :subobject (find-lcmp-eui eui))
+ (s#mod :reader s#mod :subobject (find-lmod-eui eui))
+ (s#nom :reader s#nom :subobject (find-lnom-eui eui))
+ (s#prn :reader s#prn :subobject (find-lprn-eui eui))
+ (s#prp :reader s#prp :subobject (find-lprp-eui eui))
+ (s#spl :reader s#spl :subobject (find-lspl-eui eui))
+ (s#trm :reader s#trm :subobject (find-ltrm-eui eui))
+ (s#typ :reader s#typ :subobject (find-ltyp-eui eui)))
+ (:metaclass hyperobject-class)
+ (:user-name "Lexical Term")
+ (:default-print-slots eui wrd))
(defclass labr (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (abr :type string :initarg :abr :reader abr)
- (eui2 :type integer :initarg :eui2 :reader eui2)
- (bas2 :type string :initarg :bas2 :reader bas2))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :abr nil :eui2 nil :bas2 nil)
- (:title "Abbreviations and Acronyms")
- (:fields (eui :string fmt-eui) (bas :string) (abr :string)
- (eui2 :string fmt-eui) (bas2 :string )))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (abr :value-type string :initarg :abr :reader abr)
+ (eui2 :value-type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
+ (bas2 :value-type string :initarg :bas2 :reader bas2))
+ (:metaclass hyperobject-class)
+ (:user-name "Abbreviations and Acronym")
+ (:default-print-slots eui bas abr eui2 bas2))
(defclass lagr (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (str :type string :initarg :str :reader str)
- (sca :type string :initarg :sca :reader sca)
- (agr :type string :initarg :agr :reader agr)
- (cit :type string :initarg :cit :reader cit)
- (bas :type string :initarg :bas :reader bas))
- (:metaclass ml-class)
- (:default-initargs :eui nil :str nil :sca nil :agr nil :cit nil :bas nil)
- (:title "Agreement and Inflection")
- (:fields (eui :string fmt-eui) (str :string) (sca :string) (agr :string)
- (cit :string) (bas :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (str :value-type string :initarg :str :reader str)
+ (sca :value-type string :initarg :sca :reader sca)
+ (agr :value-type string :initarg :agr :reader agr)
+ (cit :value-type string :initarg :cit :reader cit)
+ (bas :value-type string :initarg :bas :reader bas))
+ (:metaclass hyperobject-class)
+ (:user-name "Agreement and Inflection")
+ (:default-print-slots eui str sca agr cit bas))
(defclass lcmp (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (sca :type string :initarg :sca :reader sca)
- (com :type string :initarg :com :reader com))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :sca nil :com nil)
- (:title "Complementation")
- (:fields (eui :string fmt-eui) (bas :string) (sca :string) (com :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (sca :value-type string :initarg :sca :reader sca)
+ (com :value-type string :initarg :com :reader com))
+ (:metaclass hyperobject-class)
+ (:user-name "Complementation")
+ (:default-print-slots eui bas sca com))
(defclass lmod (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (sca :type string :initarg :sca :reader sca)
- (psnmod :type string :initarg :psnmod :reader psnmod)
- (fea :type string :initarg :fea :reader fea))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :sca nil :psnmod nil :fea nil)
- (:title "Modifiers")
- (:fields (eui :string fmt-eui) (bas :string) (sca :string) (psnmod :string)
- (fea :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (sca :value-type string :initarg :sca :reader sca)
+ (psnmod :value-type string :initarg :psnmod :reader psnmod)
+ (fea :value-type string :initarg :fea :reader fea))
+ (:metaclass hyperobject-class)
+ (:user-name "Modifier")
+ (:default-print-slots eui bas sca psnmod fea))
(defclass lnom (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (sca :type string :initarg :sca :reader sca)
- (eui2 :type integer :initarg :eui2 :reader eui2)
- (bas2 :type string :initarg :bas2 :reader bas2)
- (sca2 :type string :initarg :sca2 :reader sca2))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :sca nil :eui2 nil :bas2 nil :sca2 nil)
- (:title "Nominalizations")
- (:fields (eui :string fmt-eui) (bas :string) (sca :string)
- (eui2 :string fmt-eui) (bas2 :string) (sca2 :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (sca :value-type string :initarg :sca :reader sca)
+ (eui2 :value-type integer :initarg :eui2 :reader eui2 :print-formatter fmt-eui)
+ (bas2 :value-type string :initarg :bas2 :reader bas2)
+ (sca2 :value-type string :initarg :sca2 :reader sca2))
+ (:metaclass hyperobject-class)
+ (:user-name "Nominalization")
+ (:default-print-slots eui bas sca eui2 bas2 sca2))
(defclass lprn (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (num :type string :initarg :num :reader num)
- (gnd :type string :initarg :gnd :reader gnd)
- (cas :type string :initarg :cas :reader cas)
- (pos :type string :initarg :pos :reader pos)
- (qnt :type string :initarg :qnt :reader qnt)
- (fea :type string :initarg :fea :reader fea))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :num nil :gnd nil :cas nil
- :pos nil :qnt nil :fea nil)
- (:title "Pronouns")
- (:fields (eui :string fmt-eui) (bas :string) (num :string) (gnd :string)
- (cas :string) (pos :string) (qnt :string) (fea :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (num :value-type string :initarg :num :reader num)
+ (gnd :value-type string :initarg :gnd :reader gnd)
+ (cas :value-type string :initarg :cas :reader cas)
+ (pos :value-type string :initarg :pos :reader pos)
+ (qnt :value-type string :initarg :qnt :reader qnt)
+ (fea :value-type string :initarg :fea :reader fea))
+ (:metaclass hyperobject-class)
+ (:user-name "Pronoun")
+ (:default-print-slots eui bas num gnd cas pos qnt fea))
(defclass lprp (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (str :type string :initarg :str :reader str)
- (sca :type string :initarg :sca :reader sca)
- (fea :type string :initarg :fea :reader fea))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :str nil :sca nil :fea nil)
- (:title "Properties")
- (:fields (eui :string fmt-eui) (bas :string) (str :string) (sca :string)
- (fea :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (str :value-type string :initarg :str :reader str)
+ (sca :value-type string :initarg :sca :reader sca)
+ (fea :value-type string :initarg :fea :reader fea))
+ (:metaclass hyperobject-class)
+ (:user-name "Property" "Properties")
+ (:default-print-slots eui bas str sca fea))
(defclass lspl (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (spv :type string :initarg :spv :reader spv)
- (bas :type string :initarg :bas :reader bas))
- (:metaclass ml-class)
- (:default-initargs :eui nil :spv nil :bas nil)
- (:title "Spelling Variants")
- (:fields (eui :string fmt-eui) (spv :string) (bas :string)))
-
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (spv :value-type string :initarg :spv :reader spv)
+ (bas :value-type string :initarg :bas :reader bas))
+ (:metaclass hyperobject-class)
+ (:user-name "Spelling Variant")
+ (:default-print-slots eui spv bas))
(defclass ltrm (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (gen :type string :initarg :gen :reader gen))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :gen nil)
- (:title "Trade Marks")
- (:fields (eui :string fmt-eui) (bas :string) (gen :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (gen :value-type string :initarg :gen :reader gen))
+ (:metaclass hyperobject-class)
+ (:user-name "Trade Mark")
+ (:default-print-slots eui bas gen))
(defclass ltyp (umlsclass)
- ((eui :type integer :initarg :eui :reader eui)
- (bas :type string :initarg :bas :reader bas)
- (sca :type string :initarg :sca :reader sca)
- (typ :type string :initarg :typ :reader typ))
- (:metaclass ml-class)
- (:default-initargs :eui nil :bas nil :sca nil :typ nil)
- (:title "Inflection Type")
- (:fields (eui :string fmt-eui) (bas :string) (sca :string) (typ :string)))
+ ((eui :value-type integer :initarg :eui :reader eui :print-formatter fmt-eui)
+ (bas :value-type string :initarg :bas :reader bas)
+ (sca :value-type string :initarg :sca :reader sca)
+ (typ :value-type string :initarg :typ :reader typ))
+ (:metaclass hyperobject-class)
+ (:user-name "Inflection Type")
+ (:default-print-slots eui bas sca typ))
(defclass lwd (umlsclass)
- ((wrd :type string :initarg :wrd :reader wrd)
- (euilist :type list :initarg :euilist :reader euilist))
- (:metaclass ml-class)
- (:default-initargs :wrd nil :euilist nil)
- (:title "Lexical Word Index")
- (:fields (wrd :string) (euilist :string)))
+ ((wrd :value-type string :initarg :wrd :reader wrd)
+ (euilist :value-type list :initarg :euilist :reader euilist))
+ (:metaclass hyperobject-class)
+ (:user-name "Lexical Word Index" "Lexical Word Indices")
+ (:default-print-slots wrd euilist))
;;; Semantic NET objects
(defclass sdef (umlsclass)
- ((rt :type string :initarg :rt :reader rt)
- (ui :type integer :initarg :ui :reader ui)
- (styrl :type string :initarg :styrl :reader styrl)
- (stnrtn :type string :initarg :stnrtn :reader stnrtn)
- (def :type string :initarg :def :reader def)
- (ex :type string :initarg :ex :reader ex)
- (un :type string :initarg :un :reader un)
- (rh :type string :initarg :rh :reader rh)
- (abr :type string :initarg :abr :reader abr)
- (rin :type string :initarg :rin :reader rin))
- (:metaclass ml-class)
- (:default-initargs
- :rt nil :ui nil :styrl nil :stnrtn nil :def nil :ex nil :un nil :rh nil
- :abr nil :rin nil)
- (:title "Basic information about Semantic Types and Relations")
- (:fields
- (rt :string) (ui :string fmt-tui) (styrl :string) (stnrtn :string-tui)
- (def :string) (ex :string) (un :string) (rh :string) (abr :string)
- (rin :string)))
+ ((rt :value-type string :initarg :rt :reader rt)
+ (ui :value-type integer :initarg :ui :reader ui :print-formatter fmt-tui)
+ (styrl :value-type string :initarg :styrl :reader styrl)
+ (stnrtn :value-type string :initarg :stnrtn :reader stnrtn)
+ (def :value-type string :initarg :def :reader def)
+ (ex :value-type string :initarg :ex :reader ex)
+ (un :value-type string :initarg :un :reader un)
+ (rh :value-type string :initarg :rh :reader rh)
+ (abr :value-type string :initarg :abr :reader abr)
+ (rin :value-type string :initarg :rin :reader rin))
+ (:metaclass hyperobject-class)
+ (:user-name "Basic information about Semantic Types and Relation")
+ (:default-print-slots rt ui styrl stnrtn def ex un rh abr rin))
(defclass sstr (umlsclass)
- ((styrl :type string :initarg :styrl :reader styrl)
- (rl :type string :initarg :rl :reader rl)
- (styrl2 :type string :initarg :styrl2 :reader styrl2)
- (ls :type string :initarg :ls :reader ls))
- (:metaclass ml-class)
- (:default-initargs :styrl nil :rl nil :styrl2 nil :ls nil)
- (:title "Structure of the Network")
- (:fields (styrl :string) (rl :string) (styrl2 :string) (ls :string)))
+ ((styrl :value-type string :initarg :styrl :reader styrl)
+ (rl :value-type string :initarg :rl :reader rl)
+ (styrl2 :value-type string :initarg :styrl2 :reader styrl2)
+ (ls :value-type string :initarg :ls :reader ls))
+ (:metaclass hyperobject-class)
+ (:user-name "Structure of the Network")
+ (:default-print-slots styrl rl styrl2 ls))
(defclass sstre1 (umlsclass)
- ((ui :type integer :initarg :ui :reader ui)
- (ui2 :type integer :initarg :ui2 :reader ui2)
- (ui3 :type integer :initarg :ui3 :reader ui3))
- (:metaclass ml-class)
- (:default-initargs :ui nil :ui2 nil :ui3 nil)
- (:title "Fully Inherited Set of Releatons (TUI's)")
- (:fields (ui :string fmt-tui) (ui2 :string fmt-tui) (ui3 :string fmt-tui)))
+ ((ui :value-type integer :initarg :ui :reader ui :print-formatter fmt-tui)
+ (ui2 :value-type integer :initarg :ui2 :reader ui2 :print-formatter fmt-tui)
+ (ui3 :value-type integer :initarg :ui3 :reader ui3 :print-formatter fmt-tui))
+ (:metaclass hyperobject-class)
+ (:user-name "Fully Inherited Set of Relation (TUIs)"
+ "Fully Inherited Set of Relations (TUIs)")
+ (:default-print-slots ui ui2 ui3))
(defclass sstre2 (umlsclass)
- ((sty :type string :initarg :ui :reader sty)
- (rl :type string :initarg :ui2 :reader rl)
- (sty2 :type string :initarg :ui3 :reader sty2))
- (:metaclass ml-class)
- (:default-initargs :sty nil :rl nil :sty2 nil)
- (:title "Fully Inherited Set of Releatons (strings)")
- (:fields (sty :string) (rl :string) (sty2 :string)))
-
-;;; Formatting routines
-
-(defmethod fmt-cui ((c ucon))
- (format nil "C~7,'0d" (cui c)))
-
-(defmethod fmt-cui ((c fixnum))
- (format nil "C~7,'0d" c))
-
-(defmethod fmt-cui ((c string))
- (if (eql (aref c 0) #\C)
- c
- (format nil "C~7,'0d" (parse-integer c))))
-
-(defmethod fmt-cui ((c null))
- (format nil "nil"))
-
-(defmethod fmt-lui ((l uterm))
- (format nil "L~7,'0d" (lui l)))
-
-(defmethod fmt-lui ((l fixnum))
- (format nil "L~7,'0d" l))
-
-(defmethod fmt-lui ((l string))
- (if (eql (aref l 0) #\L)
- l
- (format nil "L~7,'0d" (parse-integer l))))
-
-(defmethod fmt-sui ((s ustr))
- (format nil "S~7,'0d" (sui s)))
-
-(defmethod fmt-sui ((s fixnum))
- (format nil "S~7,'0d" s))
-
-(defmethod fmt-sui ((s string))
- (if (eql (aref s 0) #\S)
- s
- (format nil "S~7,'0d" (parse-integer s))))
-
-(defmethod fmt-tui ((s fixnum))
- (format nil "T~3,'0d" s))
-
-(defmethod fmt-tui ((s string))
- (if (eql (aref s 0) #\T)
- s
- (format nil "T~3,'0d" (parse-integer s))))
-
-(defmethod fmt-eui ((e fixnum))
- (format nil "E~7,'0d" e))
-
-(defmethod fmt-eui ((e string))
- (if (eql (aref e 0) #\E)
- e
- (format nil "E~7,'0d" (parse-integer e))))
-
-(defmethod fmt-eui ((e null))
- (format nil "nil"))
-
-;;; Generic display functions
-
-(eval-when (:compile-toplevel :load-toplevel :execute)
-(defun english-term-p (obj)
- (and (eq (class-name (class-of obj)) 'uterm)
- (string-equal (lat obj) "ENG"))))
-
-(defun display-umls-obj
- (obj &key (os *standard-output*) (format :text) (label nil)
- (file-wrapper t) (english-only nil) (subobjects nil)
- (refvars nil))
- (display-ml-class
- obj :os os :format format :label label :subobjects subobjects
- :file-wrapper file-wrapper
- :english-only-function (if english-only #'english-term-p nil)
- :refvars refvars))
-
-(defmacro defludisp-ml-class (newfuncname lookup-func)
- "Defines functions for looking up and displaying objects"
- `(defun ,newfuncname
- (keyval &key (os *standard-output*) (format :text) (label nil)
- (file-wrapper t) (english-only nil) (subobjects nil))
- (let ((obj (funcall ,lookup-func keyval)))
- (display-umls-obj obj :os os :format format :label label
- :file-wrapper file-wrapper :english-only english-only
- :subobjects subobjects))))
-
-(defludisp-ml-class disp-con #'find-ucon-cui)
-(defludisp-ml-class disp-term #'find-uterm-lui)
-(defludisp-ml-class disp-str #'find-ustr-sui)
+ ((sty :value-type string :initarg :ui :reader sty)
+ (rl :value-type string :initarg :ui2 :reader rl)
+ (sty2 :value-type string :initarg :ui3 :reader sty2))
+ (:metaclass hyperobject-class)
+ (:user-name "Fully Inherited Set of Relation (strings)"
+ "Fully Inherited Set of Relations (strings)")
+ (:default-print-slots sty rl sty2))
+
+
+;;; **************************
+;;; Local Classes
+;;; **************************
+
+(defclass ustats (umlsclass)
+ ((name :value-type string :initarg :name :reader name)
+ (hits :value-type integer :initarg :hits :reader hits
+ :user-name "count"
+ :print-formatter fmt-comma-integer)
+ (srl :value-type fixnum :initarg :srl :reader srl))
+ (:metaclass hyperobject-class)
+ (:default-initargs :name nil :hits nil :srl nil)
+ (:user-name "UMLS Statistic")
+ (: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"))