-;;;; $Id: data-structures.lisp,v 1.1 2002/10/05 20:17:14 kevin Exp $
+;;;; -*- Mode: Lisp; Syntax: ANSI-Common-Lisp; Base: 10; Package: umlisp -*-
+;;;; *************************************************************************
+;;;; FILE IDENTIFICATION
+;;;;
+;;;; Name: data-structures.lisp
+;;;; Purpose: Basic data objects for UMLisp
+;;;; Author: Kevin M. Rosenberg
+;;;; Date Started: Apr 2000
+;;;;
+;;;; $Id: data-structures.lisp,v 1.7 2003/05/06 06:09:29 kevin Exp $
+;;;;
+;;;; This file, part of UMLisp, is
+;;;; Copyright (c) 2000-2002 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)
+(in-package #:umlisp)
+(eval-when (:compile-toplevel)
+ (declaim (optimize (speed 3) (safety 1) (compilation-speed 0) (debug 3))))
;;; Paths for files
-(defvar *umls-path*
- (kboot:find-directory
- '((nil (:absolute "data" "umls" "2002AC"))
- (nil (:absolute "data" "umls" "2002AB"))
- (nil (:absolute "data" "umls" "UMLS2001"))
- #+mswindows ("F" (:absolute "umls" "2002ac"))
- #+mswindows ("C" (:absolute "umls"))
- #+mswindows ("F" (:absolute "umls" "UMLS2001"))
- ))
+(defvar *umls-path*
+ (make-pathname :directory '(:absolute "data" "umls" "2003AA"))
"Path for base of UMLS data files")
(defvar *meta-path*
(defparameter *umls-cols* nil
"List of meta column structures. Used when parsing text files.")
+
+;; Preliminary objects to replace structures
+
+(defclass ufile ()
+ ((fil :initarg :fil)
+ (table :initarg :table)
+ (des :initarg :des)
+ (fmt :initarg :fmt)
+ (cls :initarg :cls)
+ (rws :initarg :rws)
+ (bts :initarg :bts)
+ (fields :initarg :fields)
+ (ucols :initarg ucols))
+ (:documentation "A UMLS File"))
+
+(defclass ucol ()
+ ((col :initarg :col)
+ (des :initarg des)
+ (ref :initarg ref)
+ (min :initarg :min)
+ (av :initarg :av)
+ (max :initarg :max)
+ (fil :initarg :fil)
+ (sqltype :initarg :sqltype)
+ (dty :initarg :dty :documentation "new in 2002: suggested SQL datatype")
+ (parsefunc :initarg :parsefunc)
+ (quotechar :initarg :quotechar)
+ (datatype :initarg :datatype)
+ (custom-value-func :initarg :custom-value-func))
+ (:documentation "A UMLS column"))
+
+(defstruct (umls-file)
+ "Record for each UMLS File"
+ fil table des fmt cls rws bts fields colstructs)
+
+(defstruct (umls-col)
+ "Record for each UMLS Column in each file"
+ col des ref min av max fil sqltype
+ dty ;; new in 2002 umls: suggested SQL datatype
+ parsefunc quotechar datatype custom-value-func)
+