- (translate-all-files extension)
- (with-sql-connection (conn)
- (sql-drop-tables conn)
- (sql-create-tables conn)
- (dolist (file *umls-files*)
- (sql-execute (funcall copy-cmd file extension) conn))
- (sql-create-indexes conn)
- (sql-create-custom-tables conn)
- (sql-create-indexes conn +custom-index-cols+)
- (sql-create-special-tables conn)))
-
-(defun translate-all-files (&optional (extension ".trans"))
- "Copy translated files and return postgresql copy commands to import"
- (make-noneng-index-file extension)
- (dolist (f (remove "MRXW.NONENG" *umls-files* :test #'string= :key #'fil))
- (translate-umls-file f extension)))
-
-(defun translate-umls-file (file extension)
+ (when verbose (format t "UMLS Import: Converting text UMLS files to optimized format.~%"))
+ (translate-all-files :extension extension :verbose verbose :force force-translation)
+ (let ((copy-cmd
+ (ecase (umls-sql-type)
+ (:mysql #'mysql-copy-cmd)
+ (:postgresql #'pg-copy-cmd))))
+ (with-sql-connection (conn)
+ (clsql:truncate-database :database conn)
+ (sql-drop-tables conn)
+ (sql-create-tables conn)
+ (dolist (file *umls-files*)
+ (when verbose (format t "UMLS Import: Importing file ~A to SQL.~%" (fil file)))
+ (sql-execute (funcall copy-cmd file extension) conn))
+ (When verbose (format t "UMLS Import: Creating SQL indices.~%"))
+ (sql-create-indexes conn :verbose verbose)
+ (When verbose (format t "UMLS Import: Creating custom tables.~%"))
+ (sql-create-custom-tables conn)
+ (When verbose (format t "UMLS Import: Creating custom indices.~%"))
+ (sql-create-indexes conn :indexes +custom-index-cols+ :verbose verbose)
+ (When verbose (format t "UMLS Import: Creating special tables.~%"))
+ (sql-create-special-tables conn)))
+ (When verbose (format t "UMLS Import: Completed.~%"))
+ t)
+
+(defun translate-all-files (&key (extension "-trans") verbose force)
+ "Translate all *umls-files* to optimized import format."
+ (when verbose (format t "UMLS Import: Translating file ~A.~%" (fil (find-ufile "MRXW_NONENG.RRF"))))
+ (make-noneng-index-file extension :force force)
+ (dolist (f (remove "MRXW_NONENG.RRF" *umls-files* :test #'string= :key #'fil))
+ (when verbose (format t "UMLS Import: Translating file ~A.~%" (fil f)))
+ (translate-umls-file f extension :force force)))
+
+(defun translate-umls-file (file extension &key force)