Changeset 1617 for ccr/trunk/rxnorm


Ignore:
Timestamp:
Apr 10, 2013, 9:52:03 PM (12 years ago)
Author:
Sam Habiel
Message:

Improvements to bugs found in RxNorm lookups

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ccr/trunk/rxnorm/trunk/routines/C0CRXNLK.m

    r1615 r1617  
    1 C0CRXNLK        ; VEN/SMH - RxNorm Lookup Utilities ;2013-04-08  5:00 PM
     1C0CRXNLK        ; VEN/SMH - RxNorm Lookup Utilities ;2013-04-10  7:01 PM
    22        ;;1.0;RX NORM;;Apr 25, 2012;Build 99
    33        ;(c) Sam Habiel 2013
     
    99        D EN^XTMUNIT($T(+0),1)
    1010        QUIT
     11        ;
     12EXIST(RXN) ; $$ Public - Does this RxNorm CUI exist?
     13        ; Input: RxNorm CUI by value
     14        ; Output: Extrinsic
     15        Q ''$D(^C0CRXN(176.001,"B",RXN))
    1116        ;
    1217GCN2RXN(GCN)    ; $$ Public - Get RxNorm CUI using GCN
     
    6267        ;
    6368        ;
    64 VUI2VAP(VUID)   ; $$ Public - Get VA Product IEN from VUID
     69VUI2VAP(VUID)   ; $$ Public - Get VA Product IEN(s) from VUID
    6570        ; Input VUID by Value
    6671        ; Output: Extrinsic
    67         Q $$FIND1^DIC(50.68,"","QX",VUID,"AVUID")
     72        D FIND^DIC(50.68,,"@","QP",VUID,,"AVUID") ; Find all in VUID index
     73        N O S O="" ; Output
     74        N I F I=0:0 S I=$O(^TMP("DILIST",$J,I)) Q:'I  S O=O_^(I,0)_U ; Concat results together
     75        S O=$E(O,1,$L(O)-1) ; remove trailing ^
     76        Q O
    6877        ;
    6978VUI2VAPT ; @TEST - Get VA Product IEN from VUID
     
    8089        ;;4003335;2756
    8190        ;;4002469;1884
     91        ;;4009488;9046^10090
    8292        ;;<<END>>
    8393        ;
     
    106116        ; Output; Caret delimited extrinsic
    107117        ; Un-unit testable
    108         N VUIDS S VUIDS=$$RXN2VUI(RXNCUI) ; Get VUID from RXNCUI
    109         ; TODO: Decide which VUID to use!
    110         N VAPROD S VAPROD=$$VUI2VAP(VUIDS) ; Get VA Product from VUID
    111         N MEDS S MEDS=$$VAP2MED(VAPROD) ; Get Meds from VA Product
     118        N VUIDS S VUIDS=$$RXN2VUI(RXNCUI) ; Get VUID from RXNCUI (multiple VUIDs per CUI)
     119        Q:'VUIDS ""
     120        N MEDS S MEDS=""
     121        N DONE S DONE=0
     122        N I F I=1:1:$L(VUIDS,U) D  Q:DONE
     123        . N VUID S VUID=$P(VUIDS,U,I)
     124        . N VAPRODS S VAPRODS=$$VUI2VAP(VUID) ; Get VA Product from VUID (multiple products per VUID)
     125        . I '$L(VAPRODS) S ^SAM(RXNCUI)="TELL SAM",DONE=1 QUIT  ; MUST EXIST. Every VUID must have a product to go with it.
     126        . N J F J=1:1:$L(VAPRODS,U) D  Q:DONE
     127        . . N VAPROD S VAPROD=$P(VAPRODS,U,J)
     128        . . S MEDS=$$VAP2MED(VAPROD) ; Get Meds from VA Product
     129        . . I $L(MEDS) S DONE=1
    112130        QUIT MEDS
    113131        ;
     
    271289        I $$ISBRAND(RXN) S RXN=$$BR2GEN(RXN)
    272290        N ALLBN S ALLBN=$$GEN2BR(RXN)
     291        Q:ALLBN="" ""
    273292        N BNNO F BNNO=1:1:$L(ALLBN,U) D
    274293        . N EACHBN S EACHBN=$P(ALLBN,U,BNNO)
Note: See TracChangeset for help on using the changeset viewer.