Improvements to bugs found in RxNorm lookups
This commit is contained in:
parent
1e98fe7212
commit
a3b271e74c
|
@ -1,4 +1,4 @@
|
||||||
C0CRXNLK ; VEN/SMH - RxNorm Lookup Utilities ;2013-04-08 5:00 PM
|
C0CRXNLK ; VEN/SMH - RxNorm Lookup Utilities ;2013-04-10 7:01 PM
|
||||||
;;1.0;RX NORM;;Apr 25, 2012;Build 99
|
;;1.0;RX NORM;;Apr 25, 2012;Build 99
|
||||||
;(c) Sam Habiel 2013
|
;(c) Sam Habiel 2013
|
||||||
; See accompanying license. Don't use otherwise.
|
; See accompanying license. Don't use otherwise.
|
||||||
|
@ -9,6 +9,11 @@ C0CRXNLK ; VEN/SMH - RxNorm Lookup Utilities ;2013-04-08 5:00 PM
|
||||||
D EN^XTMUNIT($T(+0),1)
|
D EN^XTMUNIT($T(+0),1)
|
||||||
QUIT
|
QUIT
|
||||||
;
|
;
|
||||||
|
EXIST(RXN) ; $$ Public - Does this RxNorm CUI exist?
|
||||||
|
; Input: RxNorm CUI by value
|
||||||
|
; Output: Extrinsic
|
||||||
|
Q ''$D(^C0CRXN(176.001,"B",RXN))
|
||||||
|
;
|
||||||
GCN2RXN(GCN) ; $$ Public - Get RxNorm CUI using GCN
|
GCN2RXN(GCN) ; $$ Public - Get RxNorm CUI using GCN
|
||||||
; Input: GCN by Value
|
; Input: GCN by Value
|
||||||
; Output: Extrinsic
|
; Output: Extrinsic
|
||||||
|
@ -61,10 +66,14 @@ RXN2VUID ; @DATA - Data items for previous test
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
VUI2VAP(VUID) ; $$ Public - Get VA Product IEN from VUID
|
VUI2VAP(VUID) ; $$ Public - Get VA Product IEN(s) from VUID
|
||||||
; Input VUID by Value
|
; Input VUID by Value
|
||||||
; Output: Extrinsic
|
; Output: Extrinsic
|
||||||
Q $$FIND1^DIC(50.68,"","QX",VUID,"AVUID")
|
D FIND^DIC(50.68,,"@","QP",VUID,,"AVUID") ; Find all in VUID index
|
||||||
|
N O S O="" ; Output
|
||||||
|
N I F I=0:0 S I=$O(^TMP("DILIST",$J,I)) Q:'I S O=O_^(I,0)_U ; Concat results together
|
||||||
|
S O=$E(O,1,$L(O)-1) ; remove trailing ^
|
||||||
|
Q O
|
||||||
;
|
;
|
||||||
VUI2VAPT ; @TEST - Get VA Product IEN from VUID
|
VUI2VAPT ; @TEST - Get VA Product IEN from VUID
|
||||||
N L F L=1:1 N LN S LN=$T(VUI2VAPD+L) Q:LN["<<END>>" Q:LN="" D
|
N L F L=1:1 N LN S LN=$T(VUI2VAPD+L) Q:LN["<<END>>" Q:LN="" D
|
||||||
|
@ -79,6 +88,7 @@ VUI2VAPD ; @DATA - Data for above test
|
||||||
;;4000874;252
|
;;4000874;252
|
||||||
;;4003335;2756
|
;;4003335;2756
|
||||||
;;4002469;1884
|
;;4002469;1884
|
||||||
|
;;4009488;9046^10090
|
||||||
;;<<END>>
|
;;<<END>>
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
|
@ -105,10 +115,18 @@ RXN2MEDS(RXNCUI) ; $$ Public - Convert RxNorm value to currently existing drugs
|
||||||
; Input: SCD RXNCUI
|
; Input: SCD RXNCUI
|
||||||
; Output; Caret delimited extrinsic
|
; Output; Caret delimited extrinsic
|
||||||
; Un-unit testable
|
; Un-unit testable
|
||||||
N VUIDS S VUIDS=$$RXN2VUI(RXNCUI) ; Get VUID from RXNCUI
|
N VUIDS S VUIDS=$$RXN2VUI(RXNCUI) ; Get VUID from RXNCUI (multiple VUIDs per CUI)
|
||||||
; TODO: Decide which VUID to use!
|
Q:'VUIDS ""
|
||||||
N VAPROD S VAPROD=$$VUI2VAP(VUIDS) ; Get VA Product from VUID
|
N MEDS S MEDS=""
|
||||||
N MEDS S MEDS=$$VAP2MED(VAPROD) ; Get Meds from VA Product
|
N DONE S DONE=0
|
||||||
|
N I F I=1:1:$L(VUIDS,U) D Q:DONE
|
||||||
|
. N VUID S VUID=$P(VUIDS,U,I)
|
||||||
|
. N VAPRODS S VAPRODS=$$VUI2VAP(VUID) ; Get VA Product from VUID (multiple products per VUID)
|
||||||
|
. I '$L(VAPRODS) S ^SAM(RXNCUI)="TELL SAM",DONE=1 QUIT ; MUST EXIST. Every VUID must have a product to go with it.
|
||||||
|
. N J F J=1:1:$L(VAPRODS,U) D Q:DONE
|
||||||
|
. . N VAPROD S VAPROD=$P(VAPRODS,U,J)
|
||||||
|
. . S MEDS=$$VAP2MED(VAPROD) ; Get Meds from VA Product
|
||||||
|
. . I $L(MEDS) S DONE=1
|
||||||
QUIT MEDS
|
QUIT MEDS
|
||||||
;
|
;
|
||||||
FDI2RXN(BASE) ; $$ Public - Get RxNorm CUI for FDB Ingredient/Base
|
FDI2RXN(BASE) ; $$ Public - Get RxNorm CUI for FDB Ingredient/Base
|
||||||
|
@ -270,6 +288,7 @@ RXN2BNS(RXN) ; $$ Public - Get all Brand Names associated with an RXN
|
||||||
N BNS S BNS=""
|
N BNS S BNS=""
|
||||||
I $$ISBRAND(RXN) S RXN=$$BR2GEN(RXN)
|
I $$ISBRAND(RXN) S RXN=$$BR2GEN(RXN)
|
||||||
N ALLBN S ALLBN=$$GEN2BR(RXN)
|
N ALLBN S ALLBN=$$GEN2BR(RXN)
|
||||||
|
Q:ALLBN="" ""
|
||||||
N BNNO F BNNO=1:1:$L(ALLBN,U) D
|
N BNNO F BNNO=1:1:$L(ALLBN,U) D
|
||||||
. N EACHBN S EACHBN=$P(ALLBN,U,BNNO)
|
. N EACHBN S EACHBN=$P(ALLBN,U,BNNO)
|
||||||
. N BNRXCUI S BNRXCUI=$O(^C0CRXN(176.005,"B",EACHBN,"ingredient_of",""))
|
. N BNRXCUI S BNRXCUI=$O(^C0CRXN(176.005,"B",EACHBN,"ingredient_of",""))
|
||||||
|
|
Loading…
Reference in New Issue