File: classes.lisp

package info (click to toggle)
cl-umlisp-orf 3.3.2-3.1
  • links: PTS, VCS
  • area: contrib
  • in suites: bookworm, sid
  • size: 228 kB
  • sloc: lisp: 2,841; makefile: 56
file content (500 lines) | stat: -rw-r--r-- 21,862 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*-
;;;; *************************************************************************
;;;; FILE IDENTIFICATION
;;;;
;;;; Name:     classes.lisp
;;;; Purpose:  Class defintions for UMLisp
;;;; Author:   Kevin M. Rosenberg
;;;; Created:  Apr 2000
;;;;
;;;; $Id$
;;;;
;;;; This file, part of UMLisp, is
;;;;    Copyright (c) 2000-2004 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-orf)

(defclass umlsclass (hyperobject)
  ()
  (: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 :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 :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 :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)
   (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)
   (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 vstart vend imeta
                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))

(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)
   (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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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 :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"))