- (let ((tuple (car (mutex-sql-query
- (format nil
- "SELECT kcuilrl,str FROM MRCONSO WHERE CUI=~D AND KPFENG=1~A"
- cui (if srl (format nil " AND SRL<=~D" srl) ""))))))
- (unless tuple
- (setq tuple (car (mutex-sql-query
- (format nil
- "SELECT kcuilrl,str FROM MRCONSO WHERE CUI=~D"
- cui (if srl (format nil " AND SRL<=~D" srl) nil))))))
- (unless tuple
- (return-from find-ucon-cui nil))
- (make-instance 'ucon :cui cui :pfstr (second tuple)
- :lrl (ensure-integer (first tuple)))))
-
-(defun find-ucon-cui-sans-pfstr (cui &key (srl *current-srl*))
- "Find ucon for a cui"
- (ensure-cui-integer cui)
- (collect-umlisp-query (mrconso (kcuilrl) srl cui cui :single t)
- (make-instance 'ucon :cui cui :lrl (ensure-integer kcuilrl)
- :pfstr nil)))
+ (if without-pfstr
+ (collect-umlisp-query (mrconso (kcuilrl) srl cui cui :single t)
+ (make-instance 'ucon :cui cui :lrl (ensure-integer kcuilrl)
+ :pfstr nil)))
+ (or
+ (collect-umlisp-query (mrconso (kcuilrl str) srl cui cui :single t :filter "KPFENG=1")
+ (make-instance 'ucon :cui cui :pfstr str
+ :lrl kcuilrl))
+ (collect-umlisp-query (mrconso (kcuilrl str) srl cui cui :single t)
+ (make-instance 'ucon :cui cui :pfstr str
+ :lrl kcuilrl))))