KIDS Distribution saved on Apr 27, 2016@16:00:11 RXNORM FOR VISTA 2.5 **KIDS**:RXNORM FOR VISTA 2.5^ **INSTALL NAME** RXNORM FOR VISTA 2.5 "BLD",9814,0) RXNORM FOR VISTA 2.5^RXNORM FOR VISTA^0^3160427^y "BLD",9814,1,0) ^^35^35^3160427^ "BLD",9814,1,1,0) This build and install is (C) Sam Habiel 2016. Distributed "BLD",9814,1,2,0) by the VISTA Expertise Network. "BLD",9814,1,3,0) "BLD",9814,1,4,0) Questions and Support: sam.habiel@vistaexpertise.net "BLD",9814,1,5,0) "BLD",9814,1,6,0) See accompanying License Terms for the terms of using this software. "BLD",9814,1,7,0) "BLD",9814,1,8,0) RxNorm is a vocabulary set and tables maintained by the National Library "BLD",9814,1,9,0) of Medicine. From the Website "BLD",9814,1,10,0) (http://www.nlm.nih.gov/research/umls/rxnorm/index.html): "BLD",9814,1,11,0) "BLD",9814,1,12,0) <<< "BLD",9814,1,13,0) RxNorm provides normalized names for clinical drugs and links its names to "BLD",9814,1,14,0) many of the drug vocabularies commonly used in pharmacy management and "BLD",9814,1,15,0) drug interaction software, including those of First Databank, Micromedex, "BLD",9814,1,16,0) MediSpan, Gold Standard, and Multum. By providing links between these "BLD",9814,1,17,0) vocabularies, RxNorm can mediate messages between systems not using the "BLD",9814,1,18,0) same software and vocabulary. "BLD",9814,1,19,0) "BLD",9814,1,20,0) RxNorm now includes the National Drug File - Reference Terminology "BLD",9814,1,21,0) (NDF-RT) from the Veterans Health Administration. NDF-RT is a terminology "BLD",9814,1,22,0) used to code clinical drug properties, including mechanism of action, "BLD",9814,1,23,0) physiologic effect, and therapeutic category. "BLD",9814,1,24,0) >>> "BLD",9814,1,25,0) "BLD",9814,1,26,0) This build consists of the data dictionaries for 6 files and 3 routines, "BLD",9814,1,27,0) one of them being the loader routine for the data. "BLD",9814,1,28,0) "BLD",9814,1,29,0) This build needs Fileman 22.2 for editing global nodes up to 16,000. "BLD",9814,1,30,0) You don't need Fileman 22.2 to read the data. "BLD",9814,1,31,0) "BLD",9814,1,32,0) On the M Virtual Machine, Global Nodes need to be 16,000 or more. "BLD",9814,1,33,0) "BLD",9814,1,34,0) On Fileman 22.2, to edit the global definitions or the data, you need to "BLD",9814,1,35,0) have ^DD("STRING_LIMIT")=16000 (needs to be manually set). "BLD",9814,4,0) ^9.64PA^50.68^8 "BLD",9814,4,50,0) 50 "BLD",9814,4,50,2,0) ^9.641^50^1 "BLD",9814,4,50,2,50,0) DRUG (File-top level) "BLD",9814,4,50,2,50,1,0) ^9.6411^176.002^2 "BLD",9814,4,50,2,50,1,176.001,0) RXNCUI "BLD",9814,4,50,2,50,1,176.002,0) RXN SCD NAME "BLD",9814,4,50,222) y^y^p^^^^n^^n "BLD",9814,4,50,224) "BLD",9814,4,50.68,0) 50.68 "BLD",9814,4,50.68,2,0) ^9.641^50.68^1 "BLD",9814,4,50.68,2,50.68,0) VA PRODUCT (File-top level) "BLD",9814,4,50.68,2,50.68,1,0) ^9.6411^176.001^1 "BLD",9814,4,50.68,2,50.68,1,176.001,0) COMPUTED GCNSEQNO "BLD",9814,4,50.68,222) y^y^p^^^^n^^n "BLD",9814,4,50.68,224) "BLD",9814,4,176.001,0) 176.001 "BLD",9814,4,176.001,222) y^y^f^^^^n "BLD",9814,4,176.002,0) 176.002 "BLD",9814,4,176.002,222) y^y^f^^^^n "BLD",9814,4,176.003,0) 176.003 "BLD",9814,4,176.003,222) y^y^f^^^^n "BLD",9814,4,176.004,0) 176.004 "BLD",9814,4,176.004,222) y^y^f^^^^n "BLD",9814,4,176.005,0) 176.005 "BLD",9814,4,176.005,222) y^y^f^^^^n "BLD",9814,4,176.006,0) 176.006 "BLD",9814,4,176.006,222) y^y^f^^^^n "BLD",9814,4,"APDD",50,50) "BLD",9814,4,"APDD",50,50,176.001) "BLD",9814,4,"APDD",50,50,176.002) "BLD",9814,4,"APDD",50.68,50.68) "BLD",9814,4,"APDD",50.68,50.68,176.001) "BLD",9814,4,"B",50,50) "BLD",9814,4,"B",50.68,50.68) "BLD",9814,4,"B",176.001,176.001) "BLD",9814,4,"B",176.002,176.002) "BLD",9814,4,"B",176.003,176.003) "BLD",9814,4,"B",176.004,176.004) "BLD",9814,4,"B",176.005,176.005) "BLD",9814,4,"B",176.006,176.006) "BLD",9814,6.3) 18 "BLD",9814,"ABPKG") n "BLD",9814,"KRN",0) ^9.67PA^779.2^20 "BLD",9814,"KRN",.4,0) .4 "BLD",9814,"KRN",.401,0) .401 "BLD",9814,"KRN",.402,0) .402 "BLD",9814,"KRN",.403,0) .403 "BLD",9814,"KRN",.5,0) .5 "BLD",9814,"KRN",.84,0) .84 "BLD",9814,"KRN",3.6,0) 3.6 "BLD",9814,"KRN",3.8,0) 3.8 "BLD",9814,"KRN",9.2,0) 9.2 "BLD",9814,"KRN",9.8,0) 9.8 "BLD",9814,"KRN",9.8,"NM",0) ^9.68A^3^3 "BLD",9814,"KRN",9.8,"NM",1,0) C0CRXNRD^^0^B52136432 "BLD",9814,"KRN",9.8,"NM",2,0) C0CRXNLK^^0^B159120024 "BLD",9814,"KRN",9.8,"NM",3,0) C0CRXNAD^^0^B18747982 "BLD",9814,"KRN",9.8,"NM","B","C0CRXNAD",3) "BLD",9814,"KRN",9.8,"NM","B","C0CRXNLK",2) "BLD",9814,"KRN",9.8,"NM","B","C0CRXNRD",1) "BLD",9814,"KRN",19,0) 19 "BLD",9814,"KRN",19,"NM",0) ^9.68A^^ "BLD",9814,"KRN",19.1,0) 19.1 "BLD",9814,"KRN",101,0) 101 "BLD",9814,"KRN",409.61,0) 409.61 "BLD",9814,"KRN",771,0) 771 "BLD",9814,"KRN",779.2,0) 779.2 "BLD",9814,"KRN",870,0) 870 "BLD",9814,"KRN",8989.51,0) 8989.51 "BLD",9814,"KRN",8989.52,0) 8989.52 "BLD",9814,"KRN",8994,0) 8994 "BLD",9814,"KRN","B",.4,.4) "BLD",9814,"KRN","B",.401,.401) "BLD",9814,"KRN","B",.402,.402) "BLD",9814,"KRN","B",.403,.403) "BLD",9814,"KRN","B",.5,.5) "BLD",9814,"KRN","B",.84,.84) "BLD",9814,"KRN","B",3.6,3.6) "BLD",9814,"KRN","B",3.8,3.8) "BLD",9814,"KRN","B",9.2,9.2) "BLD",9814,"KRN","B",9.8,9.8) "BLD",9814,"KRN","B",19,19) "BLD",9814,"KRN","B",19.1,19.1) "BLD",9814,"KRN","B",101,101) "BLD",9814,"KRN","B",409.61,409.61) "BLD",9814,"KRN","B",771,771) "BLD",9814,"KRN","B",779.2,779.2) "BLD",9814,"KRN","B",870,870) "BLD",9814,"KRN","B",8989.51,8989.51) "BLD",9814,"KRN","B",8989.52,8989.52) "BLD",9814,"KRN","B",8994,8994) "BLD",9814,"QUES",0) ^9.62^^ "BLD",9814,"REQB",0) ^9.611^^ "FIA",50) DRUG "FIA",50,0) ^PSDRUG( "FIA",50,0,0) 50I "FIA",50,0,1) y^y^p^^^^n^^n "FIA",50,0,10) "FIA",50,0,11) "FIA",50,0,"RLRO") "FIA",50,0,"VR") 2.5^RXNORM FOR VISTA "FIA",50,50) 1 "FIA",50,50,176.001) "FIA",50,50,176.002) "FIA",50.68) VA PRODUCT "FIA",50.68,0) ^PSNDF(50.68, "FIA",50.68,0,0) 50.68 "FIA",50.68,0,1) y^y^p^^^^n^^n "FIA",50.68,0,10) "FIA",50.68,0,11) "FIA",50.68,0,"RLRO") "FIA",50.68,0,"VR") 2.5^RXNORM FOR VISTA "FIA",50.68,50.68) 1 "FIA",50.68,50.68,176.001) "FIA",176.001) RXNORM CONCEPT NAMES AND SOURCES "FIA",176.001,0) ^C0CRXN(176.001, "FIA",176.001,0,0) 176.001I "FIA",176.001,0,1) y^y^f^^^^n "FIA",176.001,0,10) "FIA",176.001,0,11) "FIA",176.001,0,"RLRO") "FIA",176.001,0,"VR") 2.5^RXNORM FOR VISTA "FIA",176.001,176.001) 0 "FIA",176.002) RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES "FIA",176.002,0) ^C0CRXN(176.002, "FIA",176.002,0,0) 176.002I "FIA",176.002,0,1) y^y^f^^^^n "FIA",176.002,0,10) "FIA",176.002,0,11) "FIA",176.002,0,"RLRO") "FIA",176.002,0,"VR") 2.5^RXNORM FOR VISTA "FIA",176.002,176.002) 0 "FIA",176.003) RXNORM SOURCE INFORMATION "FIA",176.003,0) ^C0CRXN(176.003, "FIA",176.003,0,0) 176.003I "FIA",176.003,0,1) y^y^f^^^^n "FIA",176.003,0,10) "FIA",176.003,0,11) "FIA",176.003,0,"RLRO") "FIA",176.003,0,"VR") 2.5^RXNORM FOR VISTA "FIA",176.003,176.003) 0 "FIA",176.004) RXNORM SEMANTIC TYPES "FIA",176.004,0) ^C0CRXN(176.004, "FIA",176.004,0,0) 176.004I "FIA",176.004,0,1) y^y^f^^^^n "FIA",176.004,0,10) "FIA",176.004,0,11) "FIA",176.004,0,"RLRO") "FIA",176.004,0,"VR") 2.5^RXNORM FOR VISTA "FIA",176.004,176.004) 0 "FIA",176.005) RXNORM RELATED CONCEPTS "FIA",176.005,0) ^C0CRXN(176.005, "FIA",176.005,0,0) 176.005 "FIA",176.005,0,1) y^y^f^^^^n "FIA",176.005,0,10) "FIA",176.005,0,11) "FIA",176.005,0,"RLRO") "FIA",176.005,0,"VR") 2.5^RXNORM FOR VISTA "FIA",176.005,176.005) 0 "FIA",176.006) RXNORM DOCUMENTATION FOR ABBREVIATED VALUES "FIA",176.006,0) ^C0CRXN(176.006, "FIA",176.006,0,0) 176.006I "FIA",176.006,0,1) y^y^f^^^^n "FIA",176.006,0,10) "FIA",176.006,0,11) "FIA",176.006,0,"RLRO") "FIA",176.006,0,"VR") 2.5^RXNORM FOR VISTA "FIA",176.006,176.006) 0 "IX",176.001,176.001,"B",0) 176.001^B^Regular B Index^R^^F^IR^I^176.001^^^^^LS "IX",176.001,176.001,"B",1) S ^C0CRXN(176.001,"B",X,DA)="" "IX",176.001,176.001,"B",2) K ^C0CRXN(176.001,"B",X,DA) "IX",176.001,176.001,"B",2.5) K ^C0CRXN(176.001,"B") "IX",176.001,176.001,"B",11.1,0) ^.114IA^1^1 "IX",176.001,176.001,"B",11.1,1,0) 1^F^176.001^.01^^1^F "IX",176.001,176.001,"B",11.1,1,3) "IX",176.001,176.001,"CODE",0) 176.001^CODE^Code Index^R^^F^IR^I^176.001^^^^^LS "IX",176.001,176.001,"CODE",1) S ^C0CRXN(176.001,"CODE",X,DA)="" "IX",176.001,176.001,"CODE",2) K ^C0CRXN(176.001,"CODE",X,DA) "IX",176.001,176.001,"CODE",2.5) K ^C0CRXN(176.001,"CODE") "IX",176.001,176.001,"CODE",11.1,0) ^.114IA^1^1 "IX",176.001,176.001,"CODE",11.1,1,0) 1^F^176.001^.14^^1^F "IX",176.001,176.001,"CODE",11.1,1,3) "IX",176.001,176.001,"STC",0) 176.001^STC^Source Term Type Code Index^MU^^R^IR^I^176.001^^^^^LS "IX",176.001,176.001,"STC",.1,0) ^^11^11^3130304^ "IX",176.001,176.001,"STC",.1,1,0) Use this index to do compound searches on RxNorm Concepts. "IX",176.001,176.001,"STC",.1,2,0) "IX",176.001,176.001,"STC",.1,3,0) Examples: "IX",176.001,176.001,"STC",.1,4,0) SAB="NDDF", TTY="CDC", CODE={GCN} will give you the entry a clinical drug "IX",176.001,176.001,"STC",.1,5,0) in First Database with GCN Code {GCN}. "IX",176.001,176.001,"STC",.1,6,0) "IX",176.001,176.001,"STC",.1,7,0) SAB="RXNORM", TTY="SCD", CODE={RXNORM} will give you the entry that is "IX",176.001,176.001,"STC",.1,8,0) the Semantic Clinical Drug for the RxNorm code. "IX",176.001,176.001,"STC",.1,9,0) "IX",176.001,176.001,"STC",.1,10,0) SAB="VANDF", TTY="CD", CODE={VUID} will give you a drug that has that "IX",176.001,176.001,"STC",.1,11,0) VUID. "IX",176.001,176.001,"STC",1) S ^C0CRXN(176.001,"STC",X(1),X(2),X(3),DA)=X(4) "IX",176.001,176.001,"STC",2) K ^C0CRXN(176.001,"STC",X(1),X(2),X(3),DA) "IX",176.001,176.001,"STC",2.5) K ^C0CRXN(176.001,"STC") "IX",176.001,176.001,"STC",11.1,0) ^.114IA^4^4 "IX",176.001,176.001,"STC",11.1,1,0) 1^F^176.001^.12^^1^F "IX",176.001,176.001,"STC",11.1,1,3) "IX",176.001,176.001,"STC",11.1,2,0) 2^F^176.001^.13^^2^F "IX",176.001,176.001,"STC",11.1,2,3) "IX",176.001,176.001,"STC",11.1,3,0) 3^F^176.001^.14^^3^F "IX",176.001,176.001,"STC",11.1,3,3) "IX",176.001,176.001,"STC",11.1,4,0) 4^F^176.001^.01^^^F "IX",176.001,176.001,"STC",11.1,4,3) "IX",176.001,176.001,"STR",0) 176.001^STR^String Lookup Index^R^^F^IR^I^176.001^^^^^LS "IX",176.001,176.001,"STR",1) S ^C0CRXN(176.001,"STR",$E(X,1,30),DA)="" "IX",176.001,176.001,"STR",2) K ^C0CRXN(176.001,"STR",$E(X,1,30),DA) "IX",176.001,176.001,"STR",2.5) K ^C0CRXN(176.001,"STR") "IX",176.001,176.001,"STR",11.1,0) ^.114IA^1^1 "IX",176.001,176.001,"STR",11.1,1,0) 1^F^176.001^.15^30^1^F "IX",176.001,176.001,"STR",11.1,1,2) S X=$$UP^XLFSTR(X) "IX",176.001,176.001,"STR",11.1,1,3) "IX",176.001,176.001,"STR",11.1,1,4) S X=$$UP^XLFSTR(X) "IX",176.001,176.001,"STX",0) 176.001^STX^Source Term Type RxCUI Code Index^MU^^R^IR^I^176.001^^^^^LS "IX",176.001,176.001,"STX",.1,0) ^^5^5^3130305^ "IX",176.001,176.001,"STX",.1,1,0) Use this index as a reverse of the STC index. "IX",176.001,176.001,"STX",.1,2,0) "IX",176.001,176.001,"STX",.1,3,0) The STC index will give you an entry if you know the source and the type "IX",176.001,176.001,"STX",.1,4,0) and the code. This index will give you the codes if you know the source, "IX",176.001,176.001,"STX",.1,5,0) the type, but not the code, but rather the RxNorm code. "IX",176.001,176.001,"STX",1) S ^C0CRXN(176.001,"STX",X(1),X(2),X(3),DA)=X(4) "IX",176.001,176.001,"STX",2) K ^C0CRXN(176.001,"STX",X(1),X(2),X(3),DA) "IX",176.001,176.001,"STX",2.5) K ^C0CRXN(176.001,"STX") "IX",176.001,176.001,"STX",11.1,0) ^.114IA^4^4 "IX",176.001,176.001,"STX",11.1,1,0) 1^F^176.001^.12^^1^F "IX",176.001,176.001,"STX",11.1,1,3) "IX",176.001,176.001,"STX",11.1,2,0) 2^F^176.001^.13^^2^F "IX",176.001,176.001,"STX",11.1,2,3) "IX",176.001,176.001,"STX",11.1,3,0) 3^F^176.001^.01^^3^F "IX",176.001,176.001,"STX",11.1,3,3) "IX",176.001,176.001,"STX",11.1,4,0) 4^F^176.001^.14^^^F "IX",176.001,176.001,"STX",11.1,4,3) "IX",176.002,176.002,"ANDFRT",0) 176.002^ANDFRT^RxNorm NDFRT Index^R^^R^IR^I^176.002^^^^^S "IX",176.002,176.002,"ANDFRT",1) S ^C0CRXN(176.002,"ANDFRT",X(1),$E(X(3),1,30),$E(X(4),1,30),DA)="" "IX",176.002,176.002,"ANDFRT",1.4) S X=X(2)="NDFRT" "IX",176.002,176.002,"ANDFRT",2) K ^C0CRXN(176.002,"ANDFRT",X(1),$E(X(3),1,30),$E(X(4),1,30),DA) "IX",176.002,176.002,"ANDFRT",2.4) S X=X(2)="NDFRT" "IX",176.002,176.002,"ANDFRT",2.5) K ^C0CRXN(176.002,"ANDFRT") "IX",176.002,176.002,"ANDFRT",11.1,0) ^.114IA^4^4 "IX",176.002,176.002,"ANDFRT",11.1,1,0) 1^F^176.002^.09^^1^F "IX",176.002,176.002,"ANDFRT",11.1,1,3) "IX",176.002,176.002,"ANDFRT",11.1,2,0) 2^F^176.002^.1^^^F "IX",176.002,176.002,"ANDFRT",11.1,2,3) "IX",176.002,176.002,"ANDFRT",11.1,3,0) 3^F^176.002^.01^30^2^F "IX",176.002,176.002,"ANDFRT",11.1,3,3) "IX",176.002,176.002,"ANDFRT",11.1,4,0) 4^F^176.002^.11^30^3^F "IX",176.002,176.002,"ANDFRT",11.1,4,3) "IX",176.002,176.002,"ASAA",0) 176.002^ASAA^SAB (Source) ATN (Attribute Name) ATV (Value) Index^MU^^R^IR^I^176.002^^^^^S "IX",176.002,176.002,"ASAA",1) S ^C0CRXN(176.002,"ASAA",X(1),$E(X(2),1,30),$E(X(3),1,30),DA)=X(4) "IX",176.002,176.002,"ASAA",2) K ^C0CRXN(176.002,"ASAA",X(1),$E(X(2),1,30),$E(X(3),1,30),DA) "IX",176.002,176.002,"ASAA",2.5) K ^C0CRXN(176.002,"ASAA") "IX",176.002,176.002,"ASAA",11.1,0) ^.114IA^4^4 "IX",176.002,176.002,"ASAA",11.1,1,0) 1^F^176.002^.1^^1^F "IX",176.002,176.002,"ASAA",11.1,1,3) "IX",176.002,176.002,"ASAA",11.1,2,0) 2^F^176.002^.01^30^2^F "IX",176.002,176.002,"ASAA",11.1,2,3) "IX",176.002,176.002,"ASAA",11.1,3,0) 3^F^176.002^.11^30^3^F "IX",176.002,176.002,"ASAA",11.1,3,3) "IX",176.002,176.002,"ASAA",11.1,4,0) 4^F^176.002^.09^^^F "IX",176.002,176.002,"ASAA",11.1,4,3) "IX",176.002,176.002,"ASAR",0) 176.002^ASAR^SAB (Source) ATN (Attribute Name) RxCUI Index^MU^^R^IR^I^176.002^^^^^S "IX",176.002,176.002,"ASAR",1) S ^C0CRXN(176.002,"ASAR",X(1),$E(X(2),1,30),X(3),DA)=X(4) "IX",176.002,176.002,"ASAR",2) K ^C0CRXN(176.002,"ASAR",X(1),$E(X(2),1,30),X(3),DA) "IX",176.002,176.002,"ASAR",2.5) K ^C0CRXN(176.002,"ASAR") "IX",176.002,176.002,"ASAR",11.1,0) ^.114IA^4^4 "IX",176.002,176.002,"ASAR",11.1,1,0) 1^F^176.002^.1^^1^F "IX",176.002,176.002,"ASAR",11.1,1,3) "IX",176.002,176.002,"ASAR",11.1,2,0) 2^F^176.002^.01^30^2^F "IX",176.002,176.002,"ASAR",11.1,2,3) "IX",176.002,176.002,"ASAR",11.1,3,0) 3^F^176.002^.09^^3^F "IX",176.002,176.002,"ASAR",11.1,3,3) "IX",176.002,176.002,"ASAR",11.1,4,0) 4^F^176.002^.11^^^F "IX",176.002,176.002,"ASAR",11.1,4,3) "IX",176.002,176.002,"RXCUI",0) 176.002^RXCUI^RXCUI Index^R^^F^IR^I^176.002^^^^^LS "IX",176.002,176.002,"RXCUI",1) S ^C0CRXN(176.002,"RXCUI",X,DA)="" "IX",176.002,176.002,"RXCUI",2) K ^C0CRXN(176.002,"RXCUI",X,DA) "IX",176.002,176.002,"RXCUI",2.5) K ^C0CRXN(176.002,"RXCUI") "IX",176.002,176.002,"RXCUI",11.1,0) ^.114IA^1^1 "IX",176.002,176.002,"RXCUI",11.1,1,0) 1^F^176.002^.09^^1^F "IX",176.005,176.005,"B",0) 176.005^B^Compound Index for RXCUI1/RELA/RXCUI2^R^^R^IR^I^176.005^^^^^LS "IX",176.005,176.005,"B",1) S ^C0CRXN(176.005,"B",X(1),X(2),X(3),DA)="" "IX",176.005,176.005,"B",2) K ^C0CRXN(176.005,"B",X(1),X(2),X(3),DA) "IX",176.005,176.005,"B",2.5) K ^C0CRXN(176.005,"B") "IX",176.005,176.005,"B",11.1,0) ^.114IA^3^3 "IX",176.005,176.005,"B",11.1,1,0) 1^F^176.005^.11^^1^F "IX",176.005,176.005,"B",11.1,1,3) "IX",176.005,176.005,"B",11.1,2,0) 2^F^176.005^.08^^2^F "IX",176.005,176.005,"B",11.1,2,3) "IX",176.005,176.005,"B",11.1,3,0) 3^F^176.005^.05^^3^F "IX",176.005,176.005,"B",11.1,3,3) "MBREQ") 0 "PKG",228,-1) 1^1 "PKG",228,0) RXNORM FOR VISTA^C0CR^RxNorm data dictionaries and loading routines for VISTA "PKG",228,20,0) ^9.402P^^ "PKG",228,22,0) ^9.49I^1^1 "PKG",228,22,1,0) 2.5^3160427 "PKG",228,22,1,1,0) ^^35^35^3160427 "PKG",228,22,1,1,1,0) This build and install is (C) Sam Habiel 2016. Distributed "PKG",228,22,1,1,2,0) by the VISTA Expertise Network. "PKG",228,22,1,1,3,0) "PKG",228,22,1,1,4,0) Questions and Support: sam.habiel@vistaexpertise.net "PKG",228,22,1,1,5,0) "PKG",228,22,1,1,6,0) See accompanying License Terms for the terms of using this software. "PKG",228,22,1,1,7,0) "PKG",228,22,1,1,8,0) RxNorm is a vocabulary set and tables maintained by the National Library "PKG",228,22,1,1,9,0) of Medicine. From the Website "PKG",228,22,1,1,10,0) (http://www.nlm.nih.gov/research/umls/rxnorm/index.html): "PKG",228,22,1,1,11,0) "PKG",228,22,1,1,12,0) <<< "PKG",228,22,1,1,13,0) RxNorm provides normalized names for clinical drugs and links its names to "PKG",228,22,1,1,14,0) many of the drug vocabularies commonly used in pharmacy management and "PKG",228,22,1,1,15,0) drug interaction software, including those of First Databank, Micromedex, "PKG",228,22,1,1,16,0) MediSpan, Gold Standard, and Multum. By providing links between these "PKG",228,22,1,1,17,0) vocabularies, RxNorm can mediate messages between systems not using the "PKG",228,22,1,1,18,0) same software and vocabulary. "PKG",228,22,1,1,19,0) "PKG",228,22,1,1,20,0) RxNorm now includes the National Drug File - Reference Terminology "PKG",228,22,1,1,21,0) (NDF-RT) from the Veterans Health Administration. NDF-RT is a terminology "PKG",228,22,1,1,22,0) used to code clinical drug properties, including mechanism of action, "PKG",228,22,1,1,23,0) physiologic effect, and therapeutic category. "PKG",228,22,1,1,24,0) >>> "PKG",228,22,1,1,25,0) "PKG",228,22,1,1,26,0) This build consists of the data dictionaries for 6 files and 3 routines, "PKG",228,22,1,1,27,0) one of them being the loader routine for the data. "PKG",228,22,1,1,28,0) "PKG",228,22,1,1,29,0) This build needs Fileman 22.2 for editing global nodes up to 16,000. "PKG",228,22,1,1,30,0) You don't need Fileman 22.2 to read the data. "PKG",228,22,1,1,31,0) "PKG",228,22,1,1,32,0) On the M Virtual Machine, Global Nodes need to be 16,000 or more. "PKG",228,22,1,1,33,0) "PKG",228,22,1,1,34,0) On Fileman 22.2, to edit the global definitions or the data, you need to "PKG",228,22,1,1,35,0) have ^DD("STRING_LIMIT")=16000 (needs to be manually set). "PKG",228,"DEV") SAM HABIEL/VEN "PKG",228,"VERSION") 2.5 "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 3 "RTN","C0CRXNAD") 0^3^B18747982 "RTN","C0CRXNAD",1,0) C0CRXNAD ; VEN/SMH - Add a drug to VISTA from RxNorm;2013-04-19 5:39 PM "RTN","C0CRXNAD",2,0) ;;2.5;RXNORM FOR VISTA;;Apr 27, 2016;Build 18 "RTN","C0CRXNAD",3,0) ; (C) 2013 Sam Habiel "RTN","C0CRXNAD",4,0) ; Proprietary Code. Don't use if license terms aren't supplied. "RTN","C0CRXNAD",5,0) ; "RTN","C0CRXNAD",6,0) ADDDRUG(RXN,NDC,BARCODE) ; Public Proc; Add Drug to Drug File "RTN","C0CRXNAD",7,0) ; Input: RXN - RxNorm Semantic Clinical Drug CUI by Value. Required. "RTN","C0CRXNAD",8,0) ; Input: NDC - Drug NDC by Value. Optional. Pass in 11 digit format without dashes. "RTN","C0CRXNAD",9,0) ; Input: BARCODE - Wand Barcode. Optional. Pass exactly as wand reads minus control characters. "RTN","C0CRXNAD",10,0) ; Output: Internal Entry Number "RTN","C0CRXNAD",11,0) ; "RTN","C0CRXNAD",12,0) ; Prelim Checks "RTN","C0CRXNAD",13,0) I '$G(RXN) S $EC=",U1," ; Required "RTN","C0CRXNAD",14,0) I $L($G(NDC)),$L(NDC)'=11 S $EC=",U1," "RTN","C0CRXNAD",15,0) ; "RTN","C0CRXNAD",16,0) N PSSZ S PSSZ=1 ; Needed for the drug file to let me in! "RTN","C0CRXNAD",17,0) ; "RTN","C0CRXNAD",18,0) ; If RXN refers to a brand drug, get the generic instead. "RTN","C0CRXNAD",19,0) I $$ISBRAND^C0CRXNLK(RXN) S RXN=$$BR2GEN^C0CRXNLK(RXN) "RTN","C0CRXNAD",20,0) W !,"(debug) RxNorm is "_RXN,! "RTN","C0CRXNAD",21,0) ; "RTN","C0CRXNAD",22,0) ; Get first VUID for this RxNorm drug "RTN","C0CRXNAD",23,0) N VUID S VUID=+$$RXN2VUI^C0CRXNLK(RXN) "RTN","C0CRXNAD",24,0) Q:'VUID "RTN","C0CRXNAD",25,0) W "(debug) VUID for RxNorm CUI "_RXN_" is "_VUID,! "RTN","C0CRXNAD",26,0) ; "RTN","C0CRXNAD",27,0) ; IEN in 50.68 "RTN","C0CRXNAD",28,0) N C0XVUID ; For Searching Compound Index "RTN","C0CRXNAD",29,0) S C0XVUID(1)=VUID "RTN","C0CRXNAD",30,0) S C0XVUID(2)=1 "RTN","C0CRXNAD",31,0) N F5068IEN S F5068IEN=$$FIND1^DIC(50.68,"","XQ",.C0XVUID,"AMASTERVUID") "RTN","C0CRXNAD",32,0) Q:'F5068IEN "RTN","C0CRXNAD",33,0) W "F 50.68 IEN (debug): "_F5068IEN,! "RTN","C0CRXNAD",34,0) ; "RTN","C0CRXNAD",35,0) ; FDA Array "RTN","C0CRXNAD",36,0) N C0XFDA "RTN","C0CRXNAD",37,0) ; "RTN","C0CRXNAD",38,0) ; Name, shortened "RTN","C0CRXNAD",39,0) S C0XFDA(50,"+1,",.01)=$E($$GET1^DIQ(50.68,F5068IEN,.01),1,40) "RTN","C0CRXNAD",40,0) ; "RTN","C0CRXNAD",41,0) ; File BarCode as a Synonym for BCMA "RTN","C0CRXNAD",42,0) I $L($G(BARCODE)) D "RTN","C0CRXNAD",43,0) . S C0XFDA(50.1,"+2,+1,",.01)=BARCODE "RTN","C0CRXNAD",44,0) . S C0XFDA(50.1,"+2,+1,",1)="Q" "RTN","C0CRXNAD",45,0) ; "RTN","C0CRXNAD",46,0) ; Brand Names "RTN","C0CRXNAD",47,0) N BNS S BNS=$$RXN2BNS^C0CRXNLK(RXN) ; Brands "RTN","C0CRXNAD",48,0) I $L(BNS) N I F I=1:1:$L(BNS,U) D "RTN","C0CRXNAD",49,0) . N IENS S IENS=I+2 "RTN","C0CRXNAD",50,0) . S C0XFDA(50.1,"+"_IENS_",+1,",.01)=$$UP^XLFSTR($E($P(BNS,U,I),1,40)) "RTN","C0CRXNAD",51,0) . S C0XFDA(50.1,"+"_IENS_",+1,",1)="T" "RTN","C0CRXNAD",52,0) ; "RTN","C0CRXNAD",53,0) ; NDC (string) "RTN","C0CRXNAD",54,0) I $G(NDC) S C0XFDA(50,"+1,",31)=$E(NDC,1,5)_"-"_$E(NDC,6,9)_"-"_$E(NDC,10,11) "RTN","C0CRXNAD",55,0) ; "RTN","C0CRXNAD",56,0) ; Dispense Unit (string) "RTN","C0CRXNAD",57,0) S C0XFDA(50,"+1,",14.5)=$$GET1^DIQ(50.68,F5068IEN,"VA DISPENSE UNIT") "RTN","C0CRXNAD",58,0) ; "RTN","C0CRXNAD",59,0) ; National Drug File Entry (pointer to 50.6) "RTN","C0CRXNAD",60,0) S C0XFDA(50,"+1,",20)="`"_$$GET1^DIQ(50.68,F5068IEN,"VA GENERIC NAME","I") "RTN","C0CRXNAD",61,0) ; "RTN","C0CRXNAD",62,0) ; VA Product Name (string) "RTN","C0CRXNAD",63,0) S C0XFDA(50,"+1,",21)=$E($$GET1^DIQ(50.68,F5068IEN,.01),1,70) "RTN","C0CRXNAD",64,0) ; "RTN","C0CRXNAD",65,0) ; PSNDF VA PRODUCT NAME ENTRY (pointer to 50.68) "RTN","C0CRXNAD",66,0) S C0XFDA(50,"+1,",22)="`"_F5068IEN "RTN","C0CRXNAD",67,0) ; "RTN","C0CRXNAD",68,0) ; DEA, SPECIAL HDLG (string) "RTN","C0CRXNAD",69,0) D ; From ^PSNMRG "RTN","C0CRXNAD",70,0) . N CS S CS=$$GET1^DIQ(50.68,F5068IEN,"CS FEDERAL SCHEDULE","I") "RTN","C0CRXNAD",71,0) . S CS=$S(CS?1(1"2n",1"3n"):+CS_"C",+CS=2!(+CS=3)&(CS'["C"):+CS_"A",1:CS) "RTN","C0CRXNAD",72,0) . S C0XFDA(50,"+1,",3)=CS "RTN","C0CRXNAD",73,0) ; "RTN","C0CRXNAD",74,0) ; NATIONAL DRUG CLASS (pointer to 50.605) (triggers VA Classification field) "RTN","C0CRXNAD",75,0) S C0XFDA(50,"+1,",25)="`"_$$GET1^DIQ(50.68,F5068IEN,"PRIMARY VA DRUG CLASS","I") "RTN","C0CRXNAD",76,0) ; "RTN","C0CRXNAD",77,0) ; Right Now, I don't file the following which ^PSNMRG does (cuz I don't need them) "RTN","C0CRXNAD",78,0) ; - Package Size (derived from NDC/UPN file) "RTN","C0CRXNAD",79,0) ; - Package Type (ditto) "RTN","C0CRXNAD",80,0) ; - CMOP ID (from $$PROD2^PSNAPIS) "RTN","C0CRXNAD",81,0) ; - National Formulary Indicator (from 50.68) "RTN","C0CRXNAD",82,0) ; "RTN","C0CRXNAD",83,0) ; Next Step is to kill Old OI if Dosage Form doesn't match "RTN","C0CRXNAD",84,0) ; Won't do that here as it's assumed any drugs that's added is new. "RTN","C0CRXNAD",85,0) ; This happens at ^PSNPSS "RTN","C0CRXNAD",86,0) ; "RTN","C0CRXNAD",87,0) ; Now add drug to drug file, as we need the IEN for the dosages call. "RTN","C0CRXNAD",88,0) N C0XERR,C0XIEN "RTN","C0CRXNAD",89,0) D UPDATE^DIE("E","C0XFDA","C0XIEN","C0XERR") "RTN","C0CRXNAD",90,0) S:$D(C0XERR) $EC=",U1," "RTN","C0CRXNAD",91,0) ; "RTN","C0CRXNAD",92,0) ; Next Step: Kill off old doses and add new ones. "RTN","C0CRXNAD",93,0) D EN2^PSSUTIL(C0XIEN(1)) "RTN","C0CRXNAD",94,0) ; "RTN","C0CRXNAD",95,0) ; Mark uses for the Drug; use the undocumented Silent call in PSSGIU "RTN","C0CRXNAD",96,0) N PSIUDA,PSIUX ; Expected Input variables "RTN","C0CRXNAD",97,0) S PSIUDA=C0XIEN(1),PSIUX="O^Outpatient Pharmacy" D ENS^PSSGIU "RTN","C0CRXNAD",98,0) S PSIUDA=C0XIEN(1),PSIUX="U^Unit Dose" D ENS^PSSGIU "RTN","C0CRXNAD",99,0) S PSIUDA=C0XIEN(1),PSIUX="X^Non-VA Med" D ENS^PSSGIU "RTN","C0CRXNAD",100,0) ; "RTN","C0CRXNAD",101,0) ; Get VA Generic text and VA Product pointer for Orderable Item creation plus dosage form information "RTN","C0CRXNAD",102,0) N VAGENP S VAGENP=$P(^PSDRUG(C0XIEN(1),"ND"),U) ; VA Generic Pointer "RTN","C0CRXNAD",103,0) N VAGEN S VAGEN=$$VAGN^PSNAPIS(VAGENP) ; VA Generic Full name "RTN","C0CRXNAD",104,0) N VAPRODP S VAPRODP=$P(^PSDRUG(C0XIEN(1),"ND"),U,3) ; VA Product Pointer "RTN","C0CRXNAD",105,0) N DOSAGE S DOSAGE=$$PSJDF^PSNAPIS(0,VAPRODP) ; IEN of dose form in 50.606 ^ Text "RTN","C0CRXNAD",106,0) N DOSEPTR S DOSEPTR=$P(DOSAGE,U) ; ditto "RTN","C0CRXNAD",107,0) N DOSEFORM S DOSEFORM=$P(DOSAGE,U,2) ;ditto "RTN","C0CRXNAD",108,0) ; "RTN","C0CRXNAD",109,0) ; Get the (possibly new) Orderable Item Text "RTN","C0CRXNAD",110,0) N VAG40 S VAG40=$E(VAGEN,1,40) ; Max length of .01 field "RTN","C0CRXNAD",111,0) ; "RTN","C0CRXNAD",112,0) ; See if there is an existing orderable item already. If so, populate the Pharmacy Orderable item on drug file. "RTN","C0CRXNAD",113,0) N OI S OI=$O(^PS(50.7,"ADF",VAG40,DOSEPTR,"")) "RTN","C0CRXNAD",114,0) ; "RTN","C0CRXNAD",115,0) ; Otherwise, add a new one. (See MCHAN+12^PSSPOIMN) "RTN","C0CRXNAD",116,0) I 'OI D "RTN","C0CRXNAD",117,0) . N C0XFDA,C0XERR "RTN","C0CRXNAD",118,0) . S C0XFDA(50.7,"+1,",.01)=VAG40 "RTN","C0CRXNAD",119,0) . S C0XFDA(50.7,"+1,",.02)=DOSEPTR "RTN","C0CRXNAD",120,0) . D UPDATE^DIE("",$NA(C0XFDA),$NA(OI),$NA(C0XERR)) "RTN","C0CRXNAD",121,0) . I $D(C0XERR) S $EC=",U1," "RTN","C0CRXNAD",122,0) . S OI=OI(1) ; For ease of use... "RTN","C0CRXNAD",123,0) . ; Next two statements: See FIN^PSSPOIM1 and MF^PSSDEE. "RTN","C0CRXNAD",124,0) . D EN^PSSPOIDT(OI) ; Update Indexes; activations, etc. "RTN","C0CRXNAD",125,0) . D EN2^PSSHL1(OI,"MUP") ; Send HL7 message to CPRS "RTN","C0CRXNAD",126,0) ; "RTN","C0CRXNAD",127,0) ; Finally, add the orderable Item to the drug file. "RTN","C0CRXNAD",128,0) N C0XFDA,C0XERR S C0XFDA(50,C0XIEN(1)_",",2.1)=OI ; Orderable Item "RTN","C0CRXNAD",129,0) D FILE^DIE("",$NA(C0XFDA),$NA(C0XERR)) "RTN","C0CRXNAD",130,0) S:$D(C0XERR) $EC=",U1," "RTN","C0CRXNAD",131,0) ; "RTN","C0CRXNAD",132,0) EX QUIT C0XIEN(1) "RTN","C0CRXNLK") 0^2^B159120024 "RTN","C0CRXNLK",1,0) C0CRXNLK ; VEN/SMH - RxNorm Lookup Utilities ;2014-07-22 2:27 PM "RTN","C0CRXNLK",2,0) ;;2.5;RXNORM FOR VISTA;;Apr 27, 2016;Build 18 "RTN","C0CRXNLK",3,0) ;(c) Sam Habiel 2016 "RTN","C0CRXNLK",4,0) ; See accompanying license. Don't use otherwise. "RTN","C0CRXNLK",5,0) ; "RTN","C0CRXNLK",6,0) S IO=$P "RTN","C0CRXNLK",7,0) N DIQUIET S DIQUIET=1 "RTN","C0CRXNLK",8,0) D DT^DICRW "RTN","C0CRXNLK",9,0) D EN^%ut($T(+0),2) "RTN","C0CRXNLK",10,0) QUIT "RTN","C0CRXNLK",11,0) ; "RTN","C0CRXNLK",12,0) EXIST(RXN) ; $$ Public - Does this RxNorm CUI exist? "RTN","C0CRXNLK",13,0) ; Input: RxNorm CUI by value "RTN","C0CRXNLK",14,0) ; Output: Extrinsic "RTN","C0CRXNLK",15,0) Q ''$D(^C0CRXN(176.001,"B",RXN)) "RTN","C0CRXNLK",16,0) ; "RTN","C0CRXNLK",17,0) GCN2RXN(GCN) ; $$ Public - Get RxNorm CUI using GCN "RTN","C0CRXNLK",18,0) ; Input: GCN by Value "RTN","C0CRXNLK",19,0) ; Output: Extrinsic "RTN","C0CRXNLK",20,0) S GCN=$$RJ^XLFSTR(GCN,6,0) ; pad to six digits by zeros (123 becomes 000123) "RTN","C0CRXNLK",21,0) N IEN S IEN=$O(^C0CRXN(176.001,"STC","NDDF","CDC",GCN,"")) ; Get Entry "RTN","C0CRXNLK",22,0) Q ^(IEN) "RTN","C0CRXNLK",23,0) ; "RTN","C0CRXNLK",24,0) GCN2RXNT ; @TEST Test Get RxNorm CUI using GCN "RTN","C0CRXNLK",25,0) Q:'$D(^C0CRXN(176.001,"STC","NDDF")) "RTN","C0CRXNLK",26,0) N L F L=1:1 N LN S LN=$T(GCN2RXND+L) Q:LN["<>" Q:LN="" D "RTN","C0CRXNLK",27,0) . N GCN S GCN=$P(LN,";",3) "RTN","C0CRXNLK",28,0) . N RXN S RXN=$P(LN,";",4) "RTN","C0CRXNLK",29,0) . D CHKEQ^%ut($$GCN2RXN(GCN),RXN,"Translation from GCN to RXCUI failed") "RTN","C0CRXNLK",30,0) QUIT "RTN","C0CRXNLK",31,0) ; "RTN","C0CRXNLK",32,0) GCN2RXND ; @DATA - Data for Tests ;;GCN;EXPECTED RXNCUI "RTN","C0CRXNLK",33,0) ;;8208;310429 "RTN","C0CRXNLK",34,0) ;;1275;628953 "RTN","C0CRXNLK",35,0) ;;18;197604 "RTN","C0CRXNLK",36,0) ;;346;884173 "RTN","C0CRXNLK",37,0) ;;<> "RTN","C0CRXNLK",38,0) ; "RTN","C0CRXNLK",39,0) ; "RTN","C0CRXNLK",40,0) ; "RTN","C0CRXNLK",41,0) RXN2GCN(RXNCUI) ; $$ Public - Get GCN(s) given an RxNorm Number "RTN","C0CRXNLK",42,0) ; Input: RXNCUI by Value "RTN","C0CRXNLK",43,0) ; Output: Caret delimited Extrinsic "RTN","C0CRXNLK",44,0) N GCNS S GCNS="" "RTN","C0CRXNLK",45,0) N I S I="" "RTN","C0CRXNLK",46,0) F S I=$O(^C0CRXN(176.001,"STX","NDDF","CDC",RXNCUI,I)) Q:I="" S GCNS=GCNS_+^(I)_U ; + b/c we want the GCN w/o leading zeros "RTN","C0CRXNLK",47,0) S GCNS=$E(GCNS,1,$L(GCNS)-1) ; remove trailing ^ "RTN","C0CRXNLK",48,0) Q GCNS "RTN","C0CRXNLK",49,0) ; "RTN","C0CRXNLK",50,0) RXN2GCNT ; @TEST Test Get GCN from RXNCUI "RTN","C0CRXNLK",51,0) Q:'$D(^C0CRXN(176.001,"STX","NDDF")) "RTN","C0CRXNLK",52,0) N L F L=1:1 N LN S LN=$T(RXN2GCND+L) Q:LN["<>" Q:LN="" D "RTN","C0CRXNLK",53,0) . N RXN S RXN=$P(LN,";",3) "RTN","C0CRXNLK",54,0) . N GCN S GCN=$P(LN,";",4) "RTN","C0CRXNLK",55,0) . D CHKEQ^%ut($$RXN2GCN(RXN),GCN,"Translation from RXCUI to GCN failed") "RTN","C0CRXNLK",56,0) QUIT "RTN","C0CRXNLK",57,0) ; "RTN","C0CRXNLK",58,0) ; "RTN","C0CRXNLK",59,0) RXN2GCND ; @DATA - Data for Tests ;;RXNORM CUI;Expected GCN; Human Readable Drug name for dear reader "RTN","C0CRXNLK",60,0) ;;998689;5145;Acetabulol 200mg tab "RTN","C0CRXNLK",61,0) ;;745679;28090;Albuterol Inhaler "RTN","C0CRXNLK",62,0) ;;197320;2536;Allopurinol 300mg tab "RTN","C0CRXNLK",63,0) ;;993691;46236;Bupropion 75mg tab "RTN","C0CRXNLK",64,0) ;;197591;3768;Diazepam 5mg tab "RTN","C0CRXNLK",65,0) ;;<> "RTN","C0CRXNLK",66,0) ; "RTN","C0CRXNLK",67,0) ; "RTN","C0CRXNLK",68,0) ; "RTN","C0CRXNLK",69,0) RXN2VUI(RXNCUI) ; $$ Public - Get VUID(s) for given RXNCUI for Clinical Drug "RTN","C0CRXNLK",70,0) ; Input: RXNCUI by Value "RTN","C0CRXNLK",71,0) ; Output: Caret delimited extrinsic. Should not be more than 2 entries. "RTN","C0CRXNLK",72,0) N C0PVUID S C0PVUID="" "RTN","C0CRXNLK",73,0) N I S I="" "RTN","C0CRXNLK",74,0) F S I=$O(^C0CRXN(176.001,"STX","VANDF","CD",RXNCUI,I)) Q:I="" S C0PVUID=C0PVUID_^(I)_U "RTN","C0CRXNLK",75,0) S C0PVUID=$E(C0PVUID,1,$L(C0PVUID)-1) ; remove trailing ^ "RTN","C0CRXNLK",76,0) ; TODO: Return only the quantified form using: "RTN","C0CRXNLK",77,0) ; I $O(^C0CRXN(176.005,"RXCUIREL",RXN,"has_quantified_form","")) N QF S QF=$O(^("")) Q $O(^C0CRXN(176.001,"RXN2VUID",QF,"")) "RTN","C0CRXNLK",78,0) Q C0PVUID "RTN","C0CRXNLK",79,0) ; "RTN","C0CRXNLK",80,0) RXN2VUIT ; @TEST Get VUIDs given RxNorm values "RTN","C0CRXNLK",81,0) N L F L=1:1 N LN S LN=$T(RXN2VUID+L) Q:LN["<>" Q:LN="" D "RTN","C0CRXNLK",82,0) . N RXN S RXN=$P(LN,";",3) "RTN","C0CRXNLK",83,0) . N VUIDS S VUIDS=$P(LN,";",4) "RTN","C0CRXNLK",84,0) . D CHKEQ^%ut($P($$RXN2VUI(RXN),U),$P(VUIDS,U),"Translation from RXNCUI to VUID failed") "RTN","C0CRXNLK",85,0) QUIT "RTN","C0CRXNLK",86,0) ; "RTN","C0CRXNLK",87,0) RXN2VUID ; @DATA - Data items for previous test "RTN","C0CRXNLK",88,0) ;;310429;4002369^4013941 "RTN","C0CRXNLK",89,0) ;;628953;4000856^4013966^4015798^4015799 "RTN","C0CRXNLK",90,0) ;;197604;4003335^4015937 "RTN","C0CRXNLK",91,0) ;;884173;4002469^4013919^4032795 "RTN","C0CRXNLK",92,0) ;;<> "RTN","C0CRXNLK",93,0) ; "RTN","C0CRXNLK",94,0) ; "RTN","C0CRXNLK",95,0) ; "RTN","C0CRXNLK",96,0) VUI2VAP(VUID) ; $$ Public - Get VA Product IEN(s) from VUID "RTN","C0CRXNLK",97,0) ; Input VUID by Value "RTN","C0CRXNLK",98,0) ; Output: Extrinsic "RTN","C0CRXNLK",99,0) D FIND^DIC(50.68,,"@","QP",VUID,,"AVUID") ; Find all in VUID index "RTN","C0CRXNLK",100,0) N O S O="" ; Output "RTN","C0CRXNLK",101,0) N I F I=0:0 S I=$O(^TMP("DILIST",$J,I)) Q:'I S O=O_^(I,0)_U ; Concat results together "RTN","C0CRXNLK",102,0) S O=$E(O,1,$L(O)-1) ; remove trailing ^ "RTN","C0CRXNLK",103,0) Q O "RTN","C0CRXNLK",104,0) ; "RTN","C0CRXNLK",105,0) VUI2VAPT ; @TEST Get VA Product IEN from VUID "RTN","C0CRXNLK",106,0) N L F L=1:1 N LN S LN=$T(VUI2VAPD+L) Q:LN["<>" Q:LN="" D "RTN","C0CRXNLK",107,0) . N VUID S VUID=$P(LN,";",3) "RTN","C0CRXNLK",108,0) . N VAP S VAP=$P(LN,";",4) "RTN","C0CRXNLK",109,0) . D CHKEQ^%ut($$VUI2VAP(VUID),VAP,"Translation from VUID to VA PRODUCT failed") "RTN","C0CRXNLK",110,0) QUIT "RTN","C0CRXNLK",111,0) ; "RTN","C0CRXNLK",112,0) VUI2VAPD ; @DATA - Data for above test "RTN","C0CRXNLK",113,0) ;;4006455;5932 "RTN","C0CRXNLK",114,0) ;;4002369;1784 "RTN","C0CRXNLK",115,0) ;;4000874;252 "RTN","C0CRXNLK",116,0) ;;4003335;2756 "RTN","C0CRXNLK",117,0) ;;4002469;1884 "RTN","C0CRXNLK",118,0) ;;4009488;9046^10090 "RTN","C0CRXNLK",119,0) ;;<> "RTN","C0CRXNLK",120,0) ; "RTN","C0CRXNLK",121,0) ; "RTN","C0CRXNLK",122,0) ; "RTN","C0CRXNLK",123,0) VAP2MED(VAPROD) ; $$ Public - Get Drug(s) using VA Product IEN "RTN","C0CRXNLK",124,0) ; Un-Unit-testable: Drug files differ between sites. "RTN","C0CRXNLK",125,0) ; Input: VA Product IEN By Value "RTN","C0CRXNLK",126,0) ; OUtput: Caret delimited extrinsic "RTN","C0CRXNLK",127,0) ; This code inspired from PSNAPIs "RTN","C0CRXNLK",128,0) ; WHY THE HELL WOULD I USE A TEXT INDEX? "RTN","C0CRXNLK",129,0) ; It's my only option. Creating new xrefs on the drug file doesn't help "RTN","C0CRXNLK",130,0) ; as they are not filled out when adding a drug (IX[ALL]^DIK isn't called). "RTN","C0CRXNLK",131,0) N MEDS S MEDS="" ; result "RTN","C0CRXNLK",132,0) N PN,PN1 ; Product Name, abbreviated product name. "RTN","C0CRXNLK",133,0) S PN=$P(^PSNDF(50.68,VAPROD,0),"^"),PN1=$E(PN,1,30) "RTN","C0CRXNLK",134,0) N P50 S P50=0 ; looper through VAPN index which is DRUG file entry "RTN","C0CRXNLK",135,0) F S P50=$O(^PSDRUG("VAPN",PN1,P50)) Q:'P50 D ; for each text match "RTN","C0CRXNLK",136,0) . I $P(^PSDRUG(P50,"ND"),"^",3)=VAPROD S MEDS=$G(MEDS)_P50_U ; check that the VA PRODUCT pointer is the same as ours. "RTN","C0CRXNLK",137,0) S:MEDS MEDS=$E(MEDS,1,$L(MEDS)-1) ; remove trailing ^ "RTN","C0CRXNLK",138,0) Q MEDS "RTN","C0CRXNLK",139,0) ; "RTN","C0CRXNLK",140,0) ; "RTN","C0CRXNLK",141,0) RXN2MEDS(RXNCUI) ; $$ Public - Convert RxNorm value to currently existing drugs in File 50. "RTN","C0CRXNLK",142,0) ; Input: SCD RXNCUI "RTN","C0CRXNLK",143,0) ; Output; Caret delimited extrinsic "RTN","C0CRXNLK",144,0) ; Un-unit testable "RTN","C0CRXNLK",145,0) N VUIDS S VUIDS=$$RXN2VUI(RXNCUI) ; Get VUID from RXNCUI (multiple VUIDs per CUI) "RTN","C0CRXNLK",146,0) Q:'VUIDS "" "RTN","C0CRXNLK",147,0) N MEDS S MEDS="" "RTN","C0CRXNLK",148,0) N DONE S DONE=0 "RTN","C0CRXNLK",149,0) N I F I=1:1:$L(VUIDS,U) D Q:DONE "RTN","C0CRXNLK",150,0) . N VUID S VUID=$P(VUIDS,U,I) "RTN","C0CRXNLK",151,0) . N VAPRODS S VAPRODS=$$VUI2VAP(VUID) ; Get VA Product from VUID (multiple products per VUID) "RTN","C0CRXNLK",152,0) . I '$L(VAPRODS) S $ECODE=",U-NO-VA-PRODUCT-CORRUPT-NDF," ; MUST EXIST. Every VUID must have a product to go with it. "RTN","C0CRXNLK",153,0) . N J F J=1:1:$L(VAPRODS,U) D Q:DONE "RTN","C0CRXNLK",154,0) . . N VAPROD S VAPROD=$P(VAPRODS,U,J) "RTN","C0CRXNLK",155,0) . . S MEDS=$$VAP2MED(VAPROD) ; Get Meds from VA Product "RTN","C0CRXNLK",156,0) . . I $L(MEDS) S DONE=1 "RTN","C0CRXNLK",157,0) QUIT MEDS "RTN","C0CRXNLK",158,0) ; "RTN","C0CRXNLK",159,0) FDI2RXN(BASE) ; $$ Public - Get RxNorm CUI for FDB Ingredient/Base "RTN","C0CRXNLK",160,0) ; ^C0CRXN(176.001,"STC","NDDF","IN","014739",1000870)=1362160 "RTN","C0CRXNLK",161,0) ; Input: BASE By Value "RTN","C0CRXNLK",162,0) ; Output: RxNorm CUI "RTN","C0CRXNLK",163,0) S BASE=$$RJ^XLFSTR(BASE,6,0) ; pad to six digits by zeros (123 becomes 000123) "RTN","C0CRXNLK",164,0) N IEN S IEN=$O(^C0CRXN(176.001,"STC","NDDF","IN",BASE,"")) Q ^(IEN) "RTN","C0CRXNLK",165,0) ; "RTN","C0CRXNLK",166,0) FDI2RXNT ; @TEST Test Get RxNorm CUI for FDB Ingredient/Base "RTN","C0CRXNLK",167,0) Q:'$D(^C0CRXN(176.001,"STC","NDDF")) "RTN","C0CRXNLK",168,0) D CHKEQ^%ut($$FDI2RXN(14739),1362160,"$$FDI2RXN failed") "RTN","C0CRXNLK",169,0) QUIT "RTN","C0CRXNLK",170,0) ; "RTN","C0CRXNLK",171,0) ; "RTN","C0CRXNLK",172,0) ; "RTN","C0CRXNLK",173,0) RXN2VIN(RXNCUI) ; $$ Public - Get VUID Ingredient for RxNorm CUI "RTN","C0CRXNLK",174,0) ; ^C0CRXN(176.001,"STX","VANDF","IN",1366467,1008555)=4031768 "RTN","C0CRXNLK",175,0) ; Input: RXNCUI By Value "RTN","C0CRXNLK",176,0) ; Output: VUID "RTN","C0CRXNLK",177,0) N IEN S IEN=$O(^C0CRXN(176.001,"STX","VANDF","IN",RXNCUI,"")) "RTN","C0CRXNLK",178,0) I IEN Q ^(IEN) "RTN","C0CRXNLK",179,0) E Q "" "RTN","C0CRXNLK",180,0) ; "RTN","C0CRXNLK",181,0) RXN2VINT ; @TEST Test Get VUID Ingredient for RxNorm CUI "RTN","C0CRXNLK",182,0) D CHKEQ^%ut($$RXN2VIN(1366467),4031768,"$$RXN2VIN failed") "RTN","C0CRXNLK",183,0) QUIT "RTN","C0CRXNLK",184,0) ; "RTN","C0CRXNLK",185,0) ; "RTN","C0CRXNLK",186,0) ; "RTN","C0CRXNLK",187,0) VIN2VAG(VUID) ; $$ Public - Get VA Generic for VUID Ingredient "RTN","C0CRXNLK",188,0) ; Input: VUID By Value "RTN","C0CRXNLK",189,0) ; Output: IEN^VA Generic Name (i.e. .01 field value) "RTN","C0CRXNLK",190,0) N C0PIEN S C0PIEN=$$FIND1^DIC(50.6,"","QX",VUID,"AVUID") "RTN","C0CRXNLK",191,0) N C0P01 S C0P01=$$GET1^DIQ(50.6,C0PIEN,.01) "RTN","C0CRXNLK",192,0) Q C0PIEN_"^"_C0P01 "RTN","C0CRXNLK",193,0) ; "RTN","C0CRXNLK",194,0) VIN2VAGT ; @TEST Test Get VA Generic for VUID Ingredient "RTN","C0CRXNLK",195,0) D CHKEQ^%ut(+$$VIN2VAG(4023636),2832,"$$VIN2VAG failed") "RTN","C0CRXNLK",196,0) QUIT "RTN","C0CRXNLK",197,0) ; "RTN","C0CRXNLK",198,0) ; "RTN","C0CRXNLK",199,0) ; "RTN","C0CRXNLK",200,0) FDI2VAG(BASE) ; $$ Public - Get VA Generic for FDB Ingredient/Base "RTN","C0CRXNLK",201,0) ; TODO:Not tested... "RTN","C0CRXNLK",202,0) ; Input: BASE By Value "RTN","C0CRXNLK",203,0) ; Output: IEN^VA Generic Name (i.e. .01 field value) "RTN","C0CRXNLK",204,0) Q $$VIN2VAG($$RXN2VIN($$FDI2RXN(BASE))) "RTN","C0CRXNLK",205,0) ; "RTN","C0CRXNLK",206,0) VIN2DIN(VUID) ; $$ Public - Get Drug Ingredient for VUID Ingredient "RTN","C0CRXNLK",207,0) ; TODO:Not tested... "RTN","C0CRXNLK",208,0) ; Input: VUID By Value "RTN","C0CRXNLK",209,0) ; Output: IEN^Drug Ingredient Name (i.e. .01 field value) "RTN","C0CRXNLK",210,0) N C0PIEN S C0PIEN=$$FIND1^DIC(50.416,"","QX",VUID,"AVUID") "RTN","C0CRXNLK",211,0) N C0P01 S C0P01=$$GET1^DIQ(50.416,C0PIEN,.01) "RTN","C0CRXNLK",212,0) Q C0PIEN_"^"_C0P01 "RTN","C0CRXNLK",213,0) ; "RTN","C0CRXNLK",214,0) FDI2DIN(BASE) ; $$ Public - Get Drug Ingredient for FDB Ingredient/Base "RTN","C0CRXNLK",215,0) ; TODO:Not tested... "RTN","C0CRXNLK",216,0) ; Input: BASE By Value "RTN","C0CRXNLK",217,0) ; Output: IEN^Drug Ingredient Name (i.e. .01 field value) "RTN","C0CRXNLK",218,0) Q $$VIN2DIN($$RXN2VIN($$FDI2RXN(BASE))) "RTN","C0CRXNLK",219,0) ; "RTN","C0CRXNLK",220,0) VUI2RXN(VUID,TTY) ; $$ Public Stephanie's Unified VUID searcher. Get RXNCUI given VUID "RTN","C0CRXNLK",221,0) ;GIVEN A VUID IN ONE OF SEVERAL FILES RETURN THE ASSOCIATED RXNORM CODE IN 176.001 "RTN","C0CRXNLK",222,0) ; TTY="IN", "CD", or "PT" "RTN","C0CRXNLK",223,0) ; IN = DRUG INGRIDENT FILE & VA GENERIC file "RTN","C0CRXNLK",224,0) ; CD = VA PRODUCT FILE "RTN","C0CRXNLK",225,0) ; PT = VA DRUG CLASS "RTN","C0CRXNLK",226,0) ; "RTN","C0CRXNLK",227,0) ; SAB="VANDF" "RTN","C0CRXNLK",228,0) ; CODE=VUID "RTN","C0CRXNLK",229,0) ; "RTN","C0CRXNLK",230,0) I $O(^C0CRXN(176.001,"STC","VANDF",TTY,VUID,"")) Q ^($O(^(""))) "RTN","C0CRXNLK",231,0) Q "" "RTN","C0CRXNLK",232,0) ; "RTN","C0CRXNLK",233,0) VUI2RXNT ; @TEST VUID to RxNorm CUI tests "RTN","C0CRXNLK",234,0) D CHKEQ^%ut($$VUI2RXN(4010151,"CD"),314231) "RTN","C0CRXNLK",235,0) D CHKEQ^%ut($$VUI2RXN(4020940,"IN"),16681) "RTN","C0CRXNLK",236,0) D CHKEQ^%ut($$VUI2RXN(4021568,"PT"),883) "RTN","C0CRXNLK",237,0) D CHKEQ^%ut($$VUI2RXN(1234234,"CD"),"") "RTN","C0CRXNLK",238,0) QUIT "RTN","C0CRXNLK",239,0) ; "RTN","C0CRXNLK",240,0) VUI2GCN(VUID) ; $$ Public - Get GCNs for a given VUID (any VUID type) "RTN","C0CRXNLK",241,0) ; Input: VUID by Value "RTN","C0CRXNLK",242,0) ; Output: GCNs delimited by ^ "RTN","C0CRXNLK",243,0) ; TODO: Unit Test "RTN","C0CRXNLK",244,0) N RXNS S RXNS=$$VUI2RXN(VUID,"AB") "RTN","C0CRXNLK",245,0) Q:RXNS="" "" ; VUID not a drug or ingredient (can be food) "RTN","C0CRXNLK",246,0) N GCNS S GCNS="" "RTN","C0CRXNLK",247,0) N I F I=1:1:$L(RXNS,U) S GCNS=GCNS_$$RXN2GCN($P(RXNS,U,I))_U "RTN","C0CRXNLK",248,0) S GCNS=$E(GCNS,1,$L(GCNS)-1) "RTN","C0CRXNLK",249,0) QUIT GCNS "RTN","C0CRXNLK",250,0) ; "RTN","C0CRXNLK",251,0) MED2RXN(DA) ; $$ Public - Get RxNorm CUI for Drug "RTN","C0CRXNLK",252,0) ; Input: DA - Medication IEN "RTN","C0CRXNLK",253,0) ; Output: RXNCUIs delimited by ^ "RTN","C0CRXNLK",254,0) N ND S ND=$G(^PSDRUG(DA,"ND")) ; ND Node "RTN","C0CRXNLK",255,0) N VAP S VAP=$P(ND,U,3) ; VA Product Pointer "RTN","C0CRXNLK",256,0) Q:'VAP "" ; quit if empty "RTN","C0CRXNLK",257,0) N VUID S VUID=+^PSNDF(50.68,VAP,"VUID") ; Get VUID "RTN","C0CRXNLK",258,0) I 'VUID S $EC=",U1," ; Must exist "RTN","C0CRXNLK",259,0) Q $$VUI2RXN(VUID,"AB") "RTN","C0CRXNLK",260,0) ; "RTN","C0CRXNLK",261,0) MED2SCDN(DA) ; $$ Public - Medication to Semantic Clinical Drug Name "RTN","C0CRXNLK",262,0) ; Input: DA - Medication IEN "RTN","C0CRXNLK",263,0) ; Output: The Canonical Semantic Clinical Drug name "RTN","C0CRXNLK",264,0) N RXNCUI S RXNCUI=$$MED2RXN(DA) "RTN","C0CRXNLK",265,0) Q:'RXNCUI "" "RTN","C0CRXNLK",266,0) Q $$SCDNAME(RXNCUI) "RTN","C0CRXNLK",267,0) ; "RTN","C0CRXNLK",268,0) SCDNAME(RXNCUI) ; $$ Public - Semantic Clinical Drug Name for RxNorm CUI "RTN","C0CRXNLK",269,0) N IEN S IEN=$O(^C0CRXN(176.001,"STC","RXNORM","SCD",RXNCUI,"")) ; Let's try generic drug "RTN","C0CRXNLK",270,0) I 'IEN S IEN=$O(^C0CRXN(176.001,"STC","RXNORM","SBD",RXNCUI,"")) ; Let's try non-bioequivalent Brands then "RTN","C0CRXNLK",271,0) I 'IEN S IEN=$O(^C0CRXN(176.001,"STC","RXNORM","GPCK",RXNCUI,"")) ; Let's try a Generic combination package "RTN","C0CRXNLK",272,0) I 'IEN S IEN=$O(^C0CRXN(176.001,"STC","RXNORM","SCDF",RXNCUI,"")) ; Let's try a Clinical Drug and Form (Like Metamucil) "RTN","C0CRXNLK",273,0) Q:'IEN "" ; Apparently not every VUID has a corresponding RXNCUI SCD. "RTN","C0CRXNLK",274,0) Q $P(^C0CRXN(176.001,IEN,0),U,15) "RTN","C0CRXNLK",275,0) ; "RTN","C0CRXNLK",276,0) ANYNAME(RXNCUI) ; $$ Public - Get the RxNorm name, no matter what it is "RTN","C0CRXNLK",277,0) N RESULT S RESULT="" "RTN","C0CRXNLK",278,0) N TTY S TTY="" "RTN","C0CRXNLK",279,0) F S TTY=$O(^C0CRXN(176.001,"STC","RXNORM",TTY)) Q:TTY="" D Q:RESULT]"" "RTN","C0CRXNLK",280,0) . N IEN S IEN=$O(^C0CRXN(176.001,"STC","RXNORM",TTY,RXNCUI,"")) "RTN","C0CRXNLK",281,0) . Q:'IEN "RTN","C0CRXNLK",282,0) . S RESULT=$P(^C0CRXN(176.001,IEN,0),U,15) "RTN","C0CRXNLK",283,0) QUIT RESULT "RTN","C0CRXNLK",284,0) ; "RTN","C0CRXNLK",285,0) RXN2NDI(RXNCUI) ; $$ Public - Get NDDF Ingredient for RXNCUI "RTN","C0CRXNLK",286,0) ; Input: RXNCUI By Value "RTN","C0CRXNLK",287,0) ; Output: NDDF Base code "RTN","C0CRXNLK",288,0) ; TODO:Not tested... "RTN","C0CRXNLK",289,0) N IEN S IEN=$O(^C0CRXN(176.001,"STX","NDDF","IN",RXNCUI,"")) Q ^(IEN) "RTN","C0CRXNLK",290,0) ; "RTN","C0CRXNLK",291,0) VIN2NDI(VUID) ; $$ Public - Get NDDF Ingredient for VUID "RTN","C0CRXNLK",292,0) ; NB: WILL ONLY WORK IF VUID IS AN INGREDIENT VUID, NOT A CLINICAL DRUG "RTN","C0CRXNLK",293,0) ; Input: VUID By Value "RTN","C0CRXNLK",294,0) ; Output: NDDF Base code "RTN","C0CRXNLK",295,0) ; TODO:Not tested... "RTN","C0CRXNLK",296,0) Q $$RXN2NDI($$VUI2RXN(VUID,"IN")) "RTN","C0CRXNLK",297,0) ; "RTN","C0CRXNLK",298,0) ; --- "RTN","C0CRXNLK",299,0) ; "RTN","C0CRXNLK",300,0) NDC2RXN(NDC) ; $$ Public - Get RxCUI given the NDC "RTN","C0CRXNLK",301,0) ; NB: Will only work if passed NDC is in 5-4-2 format. "RTN","C0CRXNLK",302,0) ; Input: NDC By Value in 5-4-2 Format "RTN","C0CRXNLK",303,0) ; Output: RxNorm Code. "RTN","C0CRXNLK",304,0) S NDC=$TR(NDC,"-") "RTN","C0CRXNLK",305,0) N IEN S IEN=$O(^C0CRXN(176.002,"ASAA","RXNORM","NDC",NDC,"")) Q ^(IEN) "RTN","C0CRXNLK",306,0) ; "RTN","C0CRXNLK",307,0) NDC2RXNT ; @TEST Test Get RxCUI given the NDC & Get RxCUI given the 50.67 NDC "RTN","C0CRXNLK",308,0) D CHKEQ^%ut($$NDC2RXN("30142-0917-71"),198439,"$$NDC2RXN failed") "RTN","C0CRXNLK",309,0) D CHKEQ^%ut($$NDC2RXN2("000031868518","VANDF"),996520,"$$NDC2RXN2 failed") "RTN","C0CRXNLK",310,0) QUIT "RTN","C0CRXNLK",311,0) ; "RTN","C0CRXNLK",312,0) NDC2RXN2(NDC,SOURCE) ; $$ Public - Get RxCUI given the source "RTN","C0CRXNLK",313,0) ; Input: NDC in any format according to source "RTN","C0CRXNLK",314,0) ; Output: RxNorm Code "RTN","C0CRXNLK",315,0) I SOURCE="" QUIT "" "RTN","C0CRXNLK",316,0) N IEN S IEN=$O(^C0CRXN(176.002,"ASAA",SOURCE,"NDC",NDC,"")) Q:IEN ^(IEN) Q "" "RTN","C0CRXNLK",317,0) QUIT "RTN","C0CRXNLK",318,0) ; --- "RTN","C0CRXNLK",319,0) ; "RTN","C0CRXNLK",320,0) ISBRAND(RXN) ; $$ Public - Is this RxCUI for a brand drug? "RTN","C0CRXNLK",321,0) ; Input: RxCUI "RTN","C0CRXNLK",322,0) ; Output: 0 or 1 "RTN","C0CRXNLK",323,0) Q ''$D(^C0CRXN(176.001,"STC","RXNORM","SBD",RXN)) "RTN","C0CRXNLK",324,0) ISBRANDT ; @TEST Test Is this RxCUI for a brand drug? "RTN","C0CRXNLK",325,0) D CHKEQ^%ut($$ISBRAND(205535),1,"$$ISBRAND failed") ; Brand Prozac "RTN","C0CRXNLK",326,0) D CHKEQ^%ut($$ISBRAND(310384),0,"$$ISBRAND failed") ; Generic Fluoxetine "RTN","C0CRXNLK",327,0) QUIT "RTN","C0CRXNLK",328,0) ; "RTN","C0CRXNLK",329,0) ; --- "RTN","C0CRXNLK",330,0) ; "RTN","C0CRXNLK",331,0) BR2GEN(RXN) ; $$ Public - Convert Brand RxCUI to Generic RxCUI (many to 1) "RTN","C0CRXNLK",332,0) ; Input: RxCUI of Brand "RTN","C0CRXNLK",333,0) ; Output: RxCUI of Generic "RTN","C0CRXNLK",334,0) Q $O(^C0CRXN(176.005,"B",RXN,"has_tradename","")) "RTN","C0CRXNLK",335,0) BR2GENT ; @TEST Test Convert Brand RxCUI to Generic RxCUI (many to 1) "RTN","C0CRXNLK",336,0) D CHKEQ^%ut($$BR2GEN(205535),310384,"$$BR2GEN failed") "RTN","C0CRXNLK",337,0) QUIT "RTN","C0CRXNLK",338,0) ; "RTN","C0CRXNLK",339,0) ; --- "RTN","C0CRXNLK",340,0) ; "RTN","C0CRXNLK",341,0) GEN2BR(RXN) ; $$ Public - Convert Generic RxCUI to Brand RxCUIs (1 to many). "RTN","C0CRXNLK",342,0) N RTN S RTN="" ; Return "RTN","C0CRXNLK",343,0) N I S I="" F S I=$O(^C0CRXN(176.005,"B",RXN,"tradename_of",I)) Q:'I S RTN=RTN_I_U "RTN","C0CRXNLK",344,0) S RTN=$E(RTN,1,$L(RTN)-1) "RTN","C0CRXNLK",345,0) Q RTN "RTN","C0CRXNLK",346,0) ; "RTN","C0CRXNLK",347,0) GEN2BRT ; @TEST Test Convert Generic RxCUI to Brand RxCUIs (1 to many). "RTN","C0CRXNLK",348,0) D CHKTF^%ut($$GEN2BR(310384)[205535,"$$GEN2BR failed") "RTN","C0CRXNLK",349,0) QUIT "RTN","C0CRXNLK",350,0) ; "RTN","C0CRXNLK",351,0) ; --- "RTN","C0CRXNLK",352,0) ; "RTN","C0CRXNLK",353,0) RXN2BNS(RXN) ; $$ Public - Get all Brand Names associated with an RXN "RTN","C0CRXNLK",354,0) N BNS S BNS="" "RTN","C0CRXNLK",355,0) I $$ISBRAND(RXN) S RXN=$$BR2GEN(RXN) "RTN","C0CRXNLK",356,0) N ALLBN S ALLBN=$$GEN2BR(RXN) "RTN","C0CRXNLK",357,0) Q:ALLBN="" "" "RTN","C0CRXNLK",358,0) N BNNO F BNNO=1:1:$L(ALLBN,U) D "RTN","C0CRXNLK",359,0) . N EACHBN S EACHBN=$P(ALLBN,U,BNNO) "RTN","C0CRXNLK",360,0) . N BNRXCUI S BNRXCUI=$O(^C0CRXN(176.005,"B",EACHBN,"ingredient_of","")) "RTN","C0CRXNLK",361,0) . Q:BNRXCUI="" "RTN","C0CRXNLK",362,0) . N BNIEN S BNIEN=$O(^C0CRXN(176.001,"B",BNRXCUI,"")) "RTN","C0CRXNLK",363,0) . S BNS=BNS_$P(^C0CRXN(176.001,BNIEN,0),U,15)_U "RTN","C0CRXNLK",364,0) QUIT $E(BNS,1,$L(BNS)-1) "RTN","C0CRXNLK",365,0) RXN2BNST ; @TEST Test Get all Brand Names associated with an RXN "RTN","C0CRXNLK",366,0) D CHKTF^%ut($$RXN2BNS(205535)["Prozac","$$RXN2BNS failed") "RTN","C0CRXNLK",367,0) QUIT "RTN","C0CRXNLK",368,0) ; "RTN","C0CRXNLK",369,0) ; --- "RTN","C0CRXNLK",370,0) ; "RTN","C0CRXNLK",371,0) RXN2NDC(RXN) ; $$ Public - Get NDC codes for RxNorm code "RTN","C0CRXNLK",372,0) N NDCS S NDCS="" "RTN","C0CRXNLK",373,0) N I F I=0:0 S I=$O(^C0CRXN(176.002,"ASAR","RXNORM","NDC",RXN,I)) Q:'I S NDCS=NDCS_^(I)_"^" "RTN","C0CRXNLK",374,0) S $E(NDCS,$L(NDCS))="" "RTN","C0CRXNLK",375,0) QUIT NDCS "RTN","C0CRXNLK",376,0) RXN2NDCT ; @TEST Test Get NDC codes for RxNorm code "RTN","C0CRXNLK",377,0) D CHKTF^%ut($$RXN2NDC(197379)["^"_16714003309,"$$RXN2NDC failed") "RTN","C0CRXNLK",378,0) QUIT "RTN","C0CRXNLK",379,0) ; "RTN","C0CRXNLK",380,0) LVUID(RXN) ; $$ Public - Locate VUID, given RxNorm. Iterative Search "RTN","C0CRXNLK",381,0) ; ^C0CRXN(176.001,"STC","RXNORM","IN",46239,IEN "RTN","C0CRXNLK",382,0) N TTY S TTY="" "RTN","C0CRXNLK",383,0) N intermediateRxCUI "RTN","C0CRXNLK",384,0) N finalVUID "RTN","C0CRXNLK",385,0) i '$$EXIST(RXN) q "0^not found in RxNorm" "RTN","C0CRXNLK",386,0) ; "RTN","C0CRXNLK",387,0) F S TTY=$O(^C0CRXN(176.001,"STC","RXNORM",TTY)) Q:TTY="" D q:$g(intermediateRxCUI) q:$g(finalVUID) "RTN","C0CRXNLK",388,0) . N IEN S IEN=$O(^C0CRXN(176.001,"STC","RXNORM",TTY,RXN,"")) "RTN","C0CRXNLK",389,0) . I 'IEN quit ; s err="0^not found in RxNorm" quit "RTN","C0CRXNLK",390,0) . ; W ^C0CRXN(176.001,IEN,0),! "RTN","C0CRXNLK",391,0) . I TTY="BN" s intermediateRxCUI=$$BR2GEN(RXN) quit ; try searching with generic "RTN","C0CRXNLK",392,0) . I TTY="IN"!(TTY="MIN") s finalVUID=$$RXN2VIN(RXN) quit ; match VUID "RTN","C0CRXNLK",393,0) . I TTY="PIN" s intermediateRxCUI=$$formOf(RXN) quit ; try searching with ingredient "RTN","C0CRXNLK",394,0) . I TTY="SCD" d "RTN","C0CRXNLK",395,0) .. s finalVUID=$$RXN2VUI(RXN) "RTN","C0CRXNLK",396,0) .. i finalVUID="" s finalVUID=$$containerOf(RXN) "RTN","C0CRXNLK",397,0) .. I finalVUID="" s finalVUID=$$tradeName(RXN) "RTN","C0CRXNLK",398,0) . I TTY="GPCK" d "RTN","C0CRXNLK",399,0) .. s finalVUID=$$tradeName(RXN) "RTN","C0CRXNLK",400,0) i $get(intermediateRxCUI) q $$LVUID(intermediateRxCUI) ; recurse "RTN","C0CRXNLK",401,0) i $get(finalVUID) quit finalVUID "RTN","C0CRXNLK",402,0) quit "0^no mapping found in RxNorm" "RTN","C0CRXNLK",403,0) ; "RTN","C0CRXNLK",404,0) formOf(RXN) ; RXN is form of result "RTN","C0CRXNLK",405,0) q $o(^C0CRXN(176.005,"B",RXN,"has_form","")) "RTN","C0CRXNLK",406,0) containerOf(RXN) ; loop through all contains and see if one hits it. "RTN","C0CRXNLK",407,0) n container "RTN","C0CRXNLK",408,0) n vuid s vuid="" "RTN","C0CRXNLK",409,0) f container=0:0 s container=$o(^C0CRXN(176.005,"B",RXN,"contains",container)) q:'container d q:$g(vuid) "RTN","C0CRXNLK",410,0) . s vuid=$$RXN2VUI(container) "RTN","C0CRXNLK",411,0) quit vuid "RTN","C0CRXNLK",412,0) tradeName(RXN) ; loop through all tradenames and see if there's a match "RTN","C0CRXNLK",413,0) n vuid s vuid="" "RTN","C0CRXNLK",414,0) n tncui f tncui=0:0 s tncui=$o(^C0CRXN(176.005,"B",RXN,"tradename_of",tncui)) q:'tncui d q:$g(vuid) "RTN","C0CRXNLK",415,0) . s vuid=$$RXN2VUI(tncui) "RTN","C0CRXNLK",416,0) quit vuid "RTN","C0CRXNLK",417,0) ; "RTN","C0CRXNLK",418,0) loopVUIDs ; [Public] Paste VUIDs to get the RxNorm Numbers "RTN","C0CRXNLK",419,0) ; ZEXCEPT: DTIME "RTN","C0CRXNLK",420,0) n rxn "RTN","C0CRXNLK",421,0) f r rxn:$g(DTIME,300) q:rxn="" q:rxn=$c(4) d "RTN","C0CRXNLK",422,0) . w "|" "RTN","C0CRXNLK",423,0) . w $$LVUID(rxn),"|",$$ANYNAME(rxn),! "RTN","C0CRXNLK",424,0) quit "RTN","C0CRXNRD") 0^1^B52136432 "RTN","C0CRXNRD",1,0) C0CRXNRD ; VEN/SMH - RxNorm Utilities: Routine to Read RxNorm files;2013-11-14 1:23 PM "RTN","C0CRXNRD",2,0) ;;2.5;RXNORM FOR VISTA;;Apr 27, 2016;Build 18 "RTN","C0CRXNRD",3,0) ; (C) Sam Habiel 2016 "RTN","C0CRXNRD",4,0) ; See license for terms of use. "RTN","C0CRXNRD",5,0) ; "RTN","C0CRXNRD",6,0) W "No entry from top" Q "RTN","C0CRXNRD",7,0) IMPORT(PATH,RESTRICTED) ; PUBLIC ENTRY POINT. Rest are private "RTN","C0CRXNRD",8,0) I PATH="" QUIT "RTN","C0CRXNRD",9,0) S RESTRICTED=$G(RESTRICTED,0) "RTN","C0CRXNRD",10,0) S U="^" "RTN","C0CRXNRD",11,0) N STARTTIME S STARTTIME=$P($H,",")*24*60*60+$P($H,",",2) "RTN","C0CRXNRD",12,0) D SAB(PATH) ; Load restriction values into SAB. ; 176.006 "RTN","C0CRXNRD",13,0) JOB SAT^C0CRXNRD(PATH,RESTRICTED) ; 176.002 "RTN","C0CRXNRD",14,0) W "Jobbed off... "_$ZJOB_"." "RTN","C0CRXNRD",15,0) D CONSO(PATH,RESTRICTED) ; 176.001,176.002 "RTN","C0CRXNRD",16,0) D STY(PATH),REL(PATH),DOC(PATH) ; 176.003-5 "RTN","C0CRXNRD",17,0) N ENDTIME S ENDTIME=$P($H,",")*24*60*60+$P($H,",",2) "RTN","C0CRXNRD",18,0) W !,(ENDTIME-STARTTIME)/60_" minutes elapsed" "RTN","C0CRXNRD",19,0) QUIT "RTN","C0CRXNRD",20,0) ; "RTN","C0CRXNRD",21,0) ; Everything is private from down on... "RTN","C0CRXNRD",22,0) DELFILED(FN) ; Delete file data; PEP procedure; only for RxNorm files "RTN","C0CRXNRD",23,0) ; FN is Filenumber passed by Value "RTN","C0CRXNRD",24,0) QUIT:$E(FN,1,3)'=176 ; Quit if not RxNorm files "RTN","C0CRXNRD",25,0) N ROOT S ROOT=$$ROOT^DILFD(FN,"",1) ; global root "RTN","C0CRXNRD",26,0) N ZERO S ZERO=@ROOT@(0) ; Save zero node "RTN","C0CRXNRD",27,0) S $P(ZERO,U,3,9999)="" ; Remove entry # and last edited "RTN","C0CRXNRD",28,0) K @ROOT ; Kill the file -- so sad! "RTN","C0CRXNRD",29,0) S @ROOT@(0)=ZERO ; It riseth again! "RTN","C0CRXNRD",30,0) QUIT "RTN","C0CRXNRD",31,0) GETLINES(PATH,FILENAME) ; Get number of lines in a file "RTN","C0CRXNRD",32,0) N POP "RTN","C0CRXNRD",33,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",34,0) Q:POP "RTN","C0CRXNRD",35,0) U IO "RTN","C0CRXNRD",36,0) N I,LINE "RTN","C0CRXNRD",37,0) F I=1:1 R LINE:0 Q:$$STATUS^%ZISH "RTN","C0CRXNRD",38,0) D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",39,0) Q I-1 "RTN","C0CRXNRD",40,0) CONSO(PATH,RESTRICTED) ; Open and read concepts file: RXNCONSO.RRF "RTN","C0CRXNRD",41,0) ; PATH ByVal, path of RxNorm files "RTN","C0CRXNRD",42,0) ; SABS ByRef, arrays of SABS(SAB)=restriction level "RTN","C0CRXNRD",43,0) ; RESTRICTED ByVal, include restricted sources. 1 for yes, 0 for no "RTN","C0CRXNRD",44,0) N SABS D LOADSABS(.SABS) "RTN","C0CRXNRD",45,0) I PATH="" QUIT "RTN","C0CRXNRD",46,0) N FILENAME S FILENAME="RXNCONSO.RRF" "RTN","C0CRXNRD",47,0) D DELFILED(176.001) ; delete data "RTN","C0CRXNRD",48,0) N LINES S LINES=$$GETLINES(PATH,FILENAME) "RTN","C0CRXNRD",49,0) N POP "RTN","C0CRXNRD",50,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",51,0) IF POP D EN^DDIOL("Error reading file..., Please check...") G EX "RTN","C0CRXNRD",52,0) N C0CCOUNT "RTN","C0CRXNRD",53,0) N C0CSUPP S C0CSUPP=0 "RTN","C0CRXNRD",54,0) F C0CCOUNT=1:1 D Q:$$STATUS^%ZISH "RTN","C0CRXNRD",55,0) . U IO "RTN","C0CRXNRD",56,0) . N LINE R LINE:0 "RTN","C0CRXNRD",57,0) . IF $$STATUS^%ZISH QUIT "RTN","C0CRXNRD",58,0) . I '(C0CCOUNT#1000) U $P W C0CCOUNT," of ",LINES," read ",! U IO ; update every 1000 "RTN","C0CRXNRD",59,0) . ; "RTN","C0CRXNRD",60,0) . ; If suppressed, quit "RTN","C0CRXNRD",61,0) . N SUPP S SUPP=$P(LINE,"|",17) "RTN","C0CRXNRD",62,0) . I SUPP="O"!(SUPP="Y")!(SUPP="E") S C0CSUPP=C0CSUPP+1 QUIT "RTN","C0CRXNRD",63,0) . ; "RTN","C0CRXNRD",64,0) . ; Deal with restriction level "RTN","C0CRXNRD",65,0) . N SAB S SAB=$P(LINE,"|",12) "RTN","C0CRXNRD",66,0) . I 'RESTRICTED,SABS(SAB) QUIT ; If not include restricted, and SABS(SAB) is not zero, quit "RTN","C0CRXNRD",67,0) . ; "RTN","C0CRXNRD",68,0) . ; Save data "RTN","C0CRXNRD",69,0) . S ^C0CRXN(176.001,C0CCOUNT,0)=$TR(LINE,"|^","^|") "RTN","C0CRXNRD",70,0) EX D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",71,0) N DIK S DIK="^C0CRXN(176.001," D IXALL^DIK "RTN","C0CRXNRD",72,0) W "Suppressed: ",C0CSUPP,! "RTN","C0CRXNRD",73,0) QUIT "RTN","C0CRXNRD",74,0) ; "RTN","C0CRXNRD",75,0) ; "RTN","C0CRXNRD",76,0) SAT(PATH,RESTRICTED) ; Open and read Concept and Atom attributes: RXNSAT.RRF "RTN","C0CRXNRD",77,0) ; PATH ByVal, path of RxNorm files "RTN","C0CRXNRD",78,0) ; SABS ByRef, arrays of SABS(SAB)=restriction level "RTN","C0CRXNRD",79,0) ; RESTRICTED ByVal, include restricted sources. 1 for yes, 0 for no "RTN","C0CRXNRD",80,0) N $ET S $ET="D ^%ZTER HALT" "RTN","C0CRXNRD",81,0) S U="^" "RTN","C0CRXNRD",82,0) I PATH="" QUIT "RTN","C0CRXNRD",83,0) N FILENAME S FILENAME="RXNSAT.RRF" "RTN","C0CRXNRD",84,0) D DELFILED(176.002) ; delete data "RTN","C0CRXNRD",85,0) N LINES S LINES=$$GETLINES(PATH,FILENAME) "RTN","C0CRXNRD",86,0) N POP "RTN","C0CRXNRD",87,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",88,0) IF POP W "Error reading file..., Please check...",! G EX2 "RTN","C0CRXNRD",89,0) N SABS D LOADSABS(.SABS) "RTN","C0CRXNRD",90,0) N C0CSUPP S C0CSUPP=0 "RTN","C0CRXNRD",91,0) N C0CCOUNT F C0CCOUNT=1:1 Q:$$STATUS^%ZISH D "RTN","C0CRXNRD",92,0) . U IO "RTN","C0CRXNRD",93,0) . N LINE R LINE:0 "RTN","C0CRXNRD",94,0) . IF $$STATUS^%ZISH QUIT "RTN","C0CRXNRD",95,0) . I '(C0CCOUNT#1000) U $P W C0CCOUNT," of ",LINES," read ",! U IO ; update every 1000 "RTN","C0CRXNRD",96,0) . ; "RTN","C0CRXNRD",97,0) . ; If suppressed, quit "RTN","C0CRXNRD",98,0) . N SUPP S SUPP=$P(LINE,"|",12) "RTN","C0CRXNRD",99,0) . I SUPP="O"!(SUPP="Y")!(SUPP="E") S C0CSUPP=C0CSUPP+1 QUIT "RTN","C0CRXNRD",100,0) . ; "RTN","C0CRXNRD",101,0) . ; We switch around the fields .01 and .09 because the .01 isn't always present; where as .09 is required "RTN","C0CRXNRD",102,0) . N RXCUI1,ATN9 "RTN","C0CRXNRD",103,0) . S RXCUI1=$P(LINE,"|",1) "RTN","C0CRXNRD",104,0) . S ATN9=$P(LINE,"|",9) "RTN","C0CRXNRD",105,0) . S $P(LINE,"|",1)=ATN9 "RTN","C0CRXNRD",106,0) . S $P(LINE,"|",9)=RXCUI1 "RTN","C0CRXNRD",107,0) . ; "RTN","C0CRXNRD",108,0) . ; Deal with restricted sources "RTN","C0CRXNRD",109,0) . N SAB S SAB=$P(LINE,"|",10) "RTN","C0CRXNRD",110,0) . I 'RESTRICTED,SABS(SAB) QUIT ; If not include restricted, and SABS(SAB) is not zero, quit "RTN","C0CRXNRD",111,0) . ; "RTN","C0CRXNRD",112,0) . ; Save off "RTN","C0CRXNRD",113,0) . S ^C0CRXN(176.002,C0CCOUNT,0)=$TR(LINE,"|^","^|") "RTN","C0CRXNRD",114,0) EX2 D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",115,0) N DIK S DIK="^C0CRXN(176.002," D IXALL^DIK "RTN","C0CRXNRD",116,0) W "Suppressed: ",C0CSUPP,! "RTN","C0CRXNRD",117,0) QUIT "RTN","C0CRXNRD",118,0) ; "RTN","C0CRXNRD",119,0) ; "RTN","C0CRXNRD",120,0) SAB(PATH) ; Open the read RxNorm Sources file: RXNSAB.RRF "RTN","C0CRXNRD",121,0) I PATH="" QUIT "RTN","C0CRXNRD",122,0) N FILENAME S FILENAME="RXNSAB.RRF" "RTN","C0CRXNRD",123,0) D DELFILED(176.003) ; delete data "RTN","C0CRXNRD",124,0) N POP "RTN","C0CRXNRD",125,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",126,0) IF POP W "Error reading file..., Please check...",! G EX3 "RTN","C0CRXNRD",127,0) N I F I=1:1 Q:$$STATUS^%ZISH D "RTN","C0CRXNRD",128,0) . U IO "RTN","C0CRXNRD",129,0) . N LINE R LINE:0 "RTN","C0CRXNRD",130,0) . IF $$STATUS^%ZISH QUIT "RTN","C0CRXNRD",131,0) . U $P W I,! U IO ; Write I to the screen, then go back to reading the file "RTN","C0CRXNRD",132,0) . ; Switch pieces 1 and 4 because 4 is always defined. Goes into .01 field. "RTN","C0CRXNRD",133,0) . N VCUI S VCUI=$P(LINE,"|",1) "RTN","C0CRXNRD",134,0) . N RSAB S RSAB=$P(LINE,"|",4) "RTN","C0CRXNRD",135,0) . S $P(LINE,"|",1)=RSAB "RTN","C0CRXNRD",136,0) . S $P(LINE,"|",4)=VCUI "RTN","C0CRXNRD",137,0) . S ^C0CRXN(176.003,I,0)=$TR(LINE,"^|","|^") "RTN","C0CRXNRD",138,0) EX3 D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",139,0) N DIK S DIK="^C0CRXN(176.003," D IXALL^DIK "RTN","C0CRXNRD",140,0) QUIT "RTN","C0CRXNRD",141,0) ; "RTN","C0CRXNRD",142,0) LOADSABS(SABS) ; "RTN","C0CRXNRD",143,0) N C0CI F C0CI=0:0 S C0CI=$O(^C0CRXN(176.003,C0CI)) Q:'C0CI D "RTN","C0CRXNRD",144,0) . S SABS($$GET1^DIQ(176.003,C0CI,.01))=$$GET1^DIQ(176.003,C0CI,"SRL") "RTN","C0CRXNRD",145,0) QUIT "RTN","C0CRXNRD",146,0) ; "RTN","C0CRXNRD",147,0) STY(PATH) ; Open and read RxNorm Semantic types file: RXNSTY.RRF "RTN","C0CRXNRD",148,0) I PATH="" QUIT "RTN","C0CRXNRD",149,0) N FILENAME S FILENAME="RXNSTY.RRF" "RTN","C0CRXNRD",150,0) D DELFILED(176.004) ; delete data "RTN","C0CRXNRD",151,0) N LINES S LINES=$$GETLINES(PATH,FILENAME) ; Get # of lines "RTN","C0CRXNRD",152,0) N POP "RTN","C0CRXNRD",153,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",154,0) IF POP W "Error reading file..., Please check...",! G EX4 "RTN","C0CRXNRD",155,0) N I F I=1:1 Q:$$STATUS^%ZISH D "RTN","C0CRXNRD",156,0) . U IO "RTN","C0CRXNRD",157,0) . N LINE R LINE:0 "RTN","C0CRXNRD",158,0) . IF $$STATUS^%ZISH QUIT "RTN","C0CRXNRD",159,0) . I '(I#1000) U $P W I," of ",LINES," read ",! U IO ; update every 1000 "RTN","C0CRXNRD",160,0) . S ^C0CRXN(176.004,I,0)=$TR(LINE,"^|","|^") "RTN","C0CRXNRD",161,0) EX4 D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",162,0) N DIK S DIK="^C0CRXN(176.004," D IXALL^DIK "RTN","C0CRXNRD",163,0) QUIT "RTN","C0CRXNRD",164,0) ; "RTN","C0CRXNRD",165,0) REL(PATH) ; Open and read RxNorm Relationships file: RXNREL.RRF "RTN","C0CRXNRD",166,0) I PATH="" QUIT "RTN","C0CRXNRD",167,0) N FILENAME S FILENAME="RXNREL.RRF" "RTN","C0CRXNRD",168,0) D DELFILED(176.005) ; delete data "RTN","C0CRXNRD",169,0) N LINES S LINES=$$GETLINES(PATH,FILENAME) ; Get # of lines "RTN","C0CRXNRD",170,0) N POP "RTN","C0CRXNRD",171,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",172,0) IF POP W "Error reading file..., Please check...",! G EX5 "RTN","C0CRXNRD",173,0) N C0CSUPP S C0CSUPP=0 "RTN","C0CRXNRD",174,0) N I F I=1:1 Q:$$STATUS^%ZISH D "RTN","C0CRXNRD",175,0) . U IO "RTN","C0CRXNRD",176,0) . N LINE R LINE:0 "RTN","C0CRXNRD",177,0) . ; "RTN","C0CRXNRD",178,0) . ; If suppressed, quit "RTN","C0CRXNRD",179,0) . N SUPP S SUPP=$P(LINE,"|",15) "RTN","C0CRXNRD",180,0) . I SUPP="O"!(SUPP="Y")!(SUPP="E") S C0CSUPP=C0CSUPP+1 QUIT "RTN","C0CRXNRD",181,0) . ; "RTN","C0CRXNRD",182,0) . IF $$STATUS^%ZISH QUIT "RTN","C0CRXNRD",183,0) . I '(I#1000) U $P W I," of ",LINES," read ",! U IO ; update every 1000 "RTN","C0CRXNRD",184,0) . ; swap RXCUI1 location with SAB b/c SAB is required so can be .01 field "RTN","C0CRXNRD",185,0) . N RXCUI1 S RXCUI1=$P(LINE,"|",1) "RTN","C0CRXNRD",186,0) . N SAB S SAB=$P(LINE,"|",11) "RTN","C0CRXNRD",187,0) . S $P(LINE,"|",1)=SAB "RTN","C0CRXNRD",188,0) . S $P(LINE,"|",11)=RXCUI1 "RTN","C0CRXNRD",189,0) . S ^C0CRXN(176.005,I,0)=$TR(LINE,"^|","|^") "RTN","C0CRXNRD",190,0) EX5 D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",191,0) N DIK S DIK="^C0CRXN(176.005," D IXALL^DIK "RTN","C0CRXNRD",192,0) W "Suppressed: ",C0CSUPP,! "RTN","C0CRXNRD",193,0) QUIT "RTN","C0CRXNRD",194,0) DOC(PATH) ; Open the read RxNorm Abbreviation Documentation file: RXNDOC.RRF "RTN","C0CRXNRD",195,0) I PATH="" QUIT "RTN","C0CRXNRD",196,0) N FILENAME S FILENAME="RXNDOC.RRF" "RTN","C0CRXNRD",197,0) D DELFILED(176.006) ; delete data "RTN","C0CRXNRD",198,0) N LINES S LINES=$$GETLINES(PATH,FILENAME) ; Get # of lines "RTN","C0CRXNRD",199,0) N POP "RTN","C0CRXNRD",200,0) D OPEN^%ZISH("FILE",PATH,FILENAME,"R") "RTN","C0CRXNRD",201,0) IF POP W "Error reading file..., Please check...",! G EX6 "RTN","C0CRXNRD",202,0) N I F I=1:1 Q:$$STATUS^%ZISH D "RTN","C0CRXNRD",203,0) . U IO "RTN","C0CRXNRD",204,0) . N LINE R LINE:0 "RTN","C0CRXNRD",205,0) . IF $$STATUS^%ZISH QUIT "RTN","C0CRXNRD",206,0) . I '(I#1000) U $P W I," of ",LINES," read ",! U IO ; update every 1000 "RTN","C0CRXNRD",207,0) . S ^C0CRXN(176.006,I,0)=$TR(LINE,"^|","|^") "RTN","C0CRXNRD",208,0) EX6 D CLOSE^%ZISH("FILE") "RTN","C0CRXNRD",209,0) N DIK S DIK="^C0CRXN(176.006," D IXALL^DIK "RTN","C0CRXNRD",210,0) QUIT "SEC","^DD",176.001,176.001,50,9) "SEC","^DIC",176.001,176.001,0,"AUDIT") "SEC","^DIC",176.001,176.001,0,"DD") @ "SEC","^DIC",176.001,176.001,0,"DEL") "SEC","^DIC",176.001,176.001,0,"LAYGO") "SEC","^DIC",176.001,176.001,0,"RD") "SEC","^DIC",176.001,176.001,0,"WR") @ "SEC","^DIC",176.002,176.002,0,"AUDIT") @ "SEC","^DIC",176.002,176.002,0,"DD") @ "SEC","^DIC",176.002,176.002,0,"DEL") @ "SEC","^DIC",176.002,176.002,0,"LAYGO") @ "SEC","^DIC",176.002,176.002,0,"RD") "SEC","^DIC",176.002,176.002,0,"WR") @ "SEC","^DIC",176.003,176.003,0,"AUDIT") @ "SEC","^DIC",176.003,176.003,0,"DD") @ "SEC","^DIC",176.003,176.003,0,"DEL") @ "SEC","^DIC",176.003,176.003,0,"LAYGO") @ "SEC","^DIC",176.003,176.003,0,"RD") "SEC","^DIC",176.003,176.003,0,"WR") @ "SEC","^DIC",176.004,176.004,0,"AUDIT") @ "SEC","^DIC",176.004,176.004,0,"DD") @ "SEC","^DIC",176.004,176.004,0,"DEL") @ "SEC","^DIC",176.004,176.004,0,"LAYGO") @ "SEC","^DIC",176.004,176.004,0,"RD") "SEC","^DIC",176.004,176.004,0,"WR") @ "SEC","^DIC",176.005,176.005,0,"AUDIT") @ "SEC","^DIC",176.005,176.005,0,"DD") @ "SEC","^DIC",176.005,176.005,0,"DEL") @ "SEC","^DIC",176.005,176.005,0,"LAYGO") @ "SEC","^DIC",176.005,176.005,0,"RD") "SEC","^DIC",176.005,176.005,0,"WR") @ "SEC","^DIC",176.006,176.006,0,"AUDIT") @ "SEC","^DIC",176.006,176.006,0,"DD") @ "SEC","^DIC",176.006,176.006,0,"DEL") @ "SEC","^DIC",176.006,176.006,0,"LAYGO") @ "SEC","^DIC",176.006,176.006,0,"RD") "SEC","^DIC",176.006,176.006,0,"WR") @ "VER") 8.0^22.0 "^DD",50,50,176.001,0) RXNCUI^Cp176.001^^ ; ^S X=$$MED2RXN^C0CRXNLK(D0) "^DD",50,50,176.001,.1) RXNORM CUI "^DD",50,50,176.001,9.01) "^DD",50,50,176.001,9.1) S X=$$MED2RXN^C0CRXNLK(D0) "^DD",50,50,176.001,"DT") 3130708 "^DD",50,50,176.002,0) RXN SCD NAME^CJ250^^ ; ^S X=$$MED2SCDN^C0CRXNLK(D0) "^DD",50,50,176.002,9.01) "^DD",50,50,176.002,9.1) S X=$$MED2SCDN^C0CRXNLK(D0) "^DD",50,50,176.002,"DT") 3130408 "^DD",50.68,50.68,176.001,0) COMPUTED GCNSEQNO^CJ25^^ ; ^S X=$$VUI2GCN^C0CRXNLK(+$G(^PSNDF(50.68,D0,"VUID"))) "^DD",50.68,50.68,176.001,9.01) "^DD",50.68,50.68,176.001,9.1) S X=$$VUI2GCN^C0CRXNLK(+$G(^PSNDF(50.68,D0,"VUID"))) "^DD",50.68,50.68,176.001,"DT") 3130625 "^DD",176.001,176.001,0) FIELD^^50^19 "^DD",176.001,176.001,0,"DIK") C0CRXN1 "^DD",176.001,176.001,0,"DIKOLD") C0CRXN1 "^DD",176.001,176.001,0,"DT") 3130410 "^DD",176.001,176.001,0,"ID",.12) W " ",$P(^(0),U,12) "^DD",176.001,176.001,0,"ID",.13) W " ",$P(^(0),U,13) "^DD",176.001,176.001,0,"ID",.14) W " ",$P(^(0),U,14) "^DD",176.001,176.001,0,"ID",.15) W " ",$P(^(0),U,15) "^DD",176.001,176.001,0,"NM","RXNORM CONCEPT NAMES AND SOURCES") "^DD",176.001,176.001,0,"VRPK") RXNORM FOR VISTA "^DD",176.001,176.001,.01,0) RXCUI^RFJ8^^0;1^K:$L(X)>8!($L(X)<1)!'(X'?1P.E) X "^DD",176.001,176.001,.01,1,0) ^.1^^0 "^DD",176.001,176.001,.01,3) Answer must be 1-8 characters in length. "^DD",176.001,176.001,.01,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.01,21,1,0) RxNorm Unique identifier for concept (concept ID) "^DD",176.001,176.001,.01,"DT") 3130305 "^DD",176.001,176.001,.02,0) LAT^RFJ3^^0;2^K:$L(X)>3!($L(X)<1) X "^DD",176.001,176.001,.02,3) Answer must be 1-3 characters in length. "^DD",176.001,176.001,.02,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.02,21,1,0) Language of Term "^DD",176.001,176.001,.02,"DT") 3130225 "^DD",176.001,176.001,.03,0) TS^FJ1^^0;3^K:$L(X)>1!($L(X)<1) X "^DD",176.001,176.001,.03,3) Answer must be 1 character in length. "^DD",176.001,176.001,.03,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.03,21,1,0) Term status (no value provided) "^DD",176.001,176.001,.03,"DT") 3130225 "^DD",176.001,176.001,.04,0) LUI^FJ8^^0;4^K:$L(X)>8!($L(X)<1) X "^DD",176.001,176.001,.04,3) Answer must be 1-8 characters in length. "^DD",176.001,176.001,.04,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.04,21,1,0) Unique identifier for term (no value provided) "^DD",176.001,176.001,.04,"DT") 3130225 "^DD",176.001,176.001,.05,0) STT^FJ3^^0;5^K:$L(X)>3!($L(X)<1) X "^DD",176.001,176.001,.05,3) Answer must be 1-3 characters in length. "^DD",176.001,176.001,.05,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.05,21,1,0) String type (no value provided) "^DD",176.001,176.001,.05,"DT") 3130225 "^DD",176.001,176.001,.06,0) SUI^FJ8^^0;6^K:$L(X)>8!($L(X)<1) X "^DD",176.001,176.001,.06,3) Answer must be 1-8 characters in length. "^DD",176.001,176.001,.06,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.06,21,1,0) Unique identifier for string (no value provided) "^DD",176.001,176.001,.06,"DT") 3130225 "^DD",176.001,176.001,.07,0) ISPREF^FJ1^^0;7^K:$L(X)>1!($L(X)<1) X "^DD",176.001,176.001,.07,3) Answer must be 1 character in length. "^DD",176.001,176.001,.07,21,0) ^^2^2^3130225^ "^DD",176.001,176.001,.07,21,1,0) Atom status - preferred (Y) or not (N) for this string within this "^DD",176.001,176.001,.07,21,2,0) concept (no value provided) "^DD",176.001,176.001,.07,"DT") 3130225 "^DD",176.001,176.001,.08,0) RXAUI^RFJ8^^0;8^K:$L(X)>8!($L(X)<1) X "^DD",176.001,176.001,.08,3) Answer must be 1-8 characters in length. "^DD",176.001,176.001,.08,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.08,21,1,0) Unique identifier for atom (RxNorm Atom ID) "^DD",176.001,176.001,.08,"DT") 3130225 "^DD",176.001,176.001,.09,0) SAUI^FJ50^^0;9^K:$L(X)>50!($L(X)<1) X "^DD",176.001,176.001,.09,3) Answer must be 1-50 characters in length. "^DD",176.001,176.001,.09,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.09,21,1,0) Source asserted atom identifier [optional] "^DD",176.001,176.001,.09,"DT") 3130225 "^DD",176.001,176.001,.1,0) SCUI^FJ50^^0;10^K:$L(X)>50!($L(X)<1) X "^DD",176.001,176.001,.1,3) Answer must be 1-50 characters in length. "^DD",176.001,176.001,.1,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.1,21,1,0) Source asserted concept identifier [optional] "^DD",176.001,176.001,.1,"DT") 3130225 "^DD",176.001,176.001,.11,0) SDUI^FJ50^^0;11^K:$L(X)>50!($L(X)<1) X "^DD",176.001,176.001,.11,3) Answer must be 1-50 characters in length. "^DD",176.001,176.001,.11,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.11,21,1,0) Source asserted descriptor identifier [optional] (no value provided) "^DD",176.001,176.001,.11,"DT") 3130225 "^DD",176.001,176.001,.12,0) SAB^RFJ20^^0;12^K:$L(X)>20!($L(X)<1) X "^DD",176.001,176.001,.12,3) Answer must be 1-20 characters in length. "^DD",176.001,176.001,.12,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.12,21,1,0) Source abbreviation "^DD",176.001,176.001,.12,"DT") 3130305 "^DD",176.001,176.001,.13,0) TTY^RFJ20^^0;13^K:$L(X)>20!($L(X)<1) X "^DD",176.001,176.001,.13,3) Answer must be 1-20 characters in length. "^DD",176.001,176.001,.13,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.13,21,1,0) Term type in source "^DD",176.001,176.001,.13,"DT") 3130305 "^DD",176.001,176.001,.14,0) CODE^RFJ50^^0;14^K:$L(X)>50!($L(X)<1) X "^DD",176.001,176.001,.14,3) Answer must be 1-50 characters in length. "^DD",176.001,176.001,.14,21,0) ^^3^3^3130225^ "^DD",176.001,176.001,.14,21,1,0) "Most useful" source asserted identifier (if the source vocabulary has "^DD",176.001,176.001,.14,21,2,0) more than one identifier), or a Metathesaurus-generated source entry "^DD",176.001,176.001,.14,21,3,0) identifier (if the source vocabulary has none.) "^DD",176.001,176.001,.14,"DT") 3130305 "^DD",176.001,176.001,.15,0) STR^RFJ3000^^0;15^K:$L(X)>3000!($L(X)<1) X "^DD",176.001,176.001,.15,1,0) ^.1^^0 "^DD",176.001,176.001,.15,3) Answer must be 1-3000 characters in length. "^DD",176.001,176.001,.15,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.15,21,1,0) String "^DD",176.001,176.001,.15,"DT") 3130227 "^DD",176.001,176.001,.16,0) SRL^FJ10^^0;16^K:$L(X)>10!($L(X)<1) X "^DD",176.001,176.001,.16,3) Answer must be 1-10 characters in length. "^DD",176.001,176.001,.16,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.16,21,1,0) Source Restriction Level (no value provided) "^DD",176.001,176.001,.16,"DT") 3130225 "^DD",176.001,176.001,.17,0) SUPPRESS^FJ1^^0;17^K:$L(X)>1!($L(X)<1) X "^DD",176.001,176.001,.17,3) Answer must be 1 character in length. "^DD",176.001,176.001,.17,21,0) ^^4^4^3130225^ "^DD",176.001,176.001,.17,21,1,0) Suppressible flag. Values = N or O. N - not suppressible. O - Specific "^DD",176.001,176.001,.17,21,2,0) Individual names (atoms) set as Obsolete because the name is no longer "^DD",176.001,176.001,.17,21,3,0) provided by the original source. NLM strongly recommends that users not "^DD",176.001,176.001,.17,21,4,0) alter editor-assigned suppressibility. "^DD",176.001,176.001,.17,"DT") 3130225 "^DD",176.001,176.001,.18,0) CVF^FJ50^^0;18^K:$L(X)>50!($L(X)<1) X "^DD",176.001,176.001,.18,3) Answer must be 1-50 characters in length. "^DD",176.001,176.001,.18,21,0) ^^1^1^3130225^ "^DD",176.001,176.001,.18,21,1,0) Content view flag "^DD",176.001,176.001,.18,"DT") 3130225 "^DD",176.001,176.001,50,0) COMPUTED DRUGS^Cmp50^^ ; ^N V S V=$$RXN2MEDS^C0CRXNLK($P(^C0CRXN(176.001,D0,0),U)) Q:V="" N D F D=1:1:$L(V,U) N D0 S D0=$P(V,U,D),X=$P(^PSDRUG(D0,0),U) X DICMX Q:'$D(D) "^DD",176.001,176.001,50,9.01) "^DD",176.001,176.001,50,9.1) N V S V=$$RXN2MEDS^C0CRXNLK($P(^C0CRXN(176.001,D0,0),U)) Q:V="" N D F D=1:1:$L(V,U) N D0 S D0=$P(V,U,D),X=$P(^PSDRUG(D0,0),U) X DICMX Q:'$D(D) "^DD",176.001,176.001,50,"DT") 3130410 "^DD",176.002,176.002,0) FIELD^^.13^13 "^DD",176.002,176.002,0,"DIK") C0CRXN2 "^DD",176.002,176.002,0,"DIKOLD") C0CRXN2 "^DD",176.002,176.002,0,"DT") 3130301 "^DD",176.002,176.002,0,"ID",.1) W " ",$P(^(0),U,10) "^DD",176.002,176.002,0,"ID",.11) W " ",$P(^(0),U,11) "^DD",176.002,176.002,0,"IX","XATN",176.002,.01) "^DD",176.002,176.002,0,"IX","XATV",176.002,.11) "^DD",176.002,176.002,0,"NM","RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES") "^DD",176.002,176.002,0,"VRPK") RXNORM FOR VISTA "^DD",176.002,176.002,.01,0) ATN^RFJ1000^^0;1^K:$L(X)>1000!($L(X)<1)!'(X'?1P.E) X "^DD",176.002,176.002,.01,1,0) ^.1 "^DD",176.002,176.002,.01,1,1,0) 176.002^XATN "^DD",176.002,176.002,.01,1,1,1) S ^C0CRXN(176.002,"XATN",$E(X,1,30),DA)="" "^DD",176.002,176.002,.01,1,1,2) K ^C0CRXN(176.002,"XATN",$E(X,1,30),DA) "^DD",176.002,176.002,.01,1,1,3) ATN INDEX "^DD",176.002,176.002,.01,1,1,"DT") 3130301 "^DD",176.002,176.002,.01,3) Answer must be 1-1000 characters in length. "^DD",176.002,176.002,.01,21,0) ^^2^2^3130301^^ "^DD",176.002,176.002,.01,21,1,0) Attribute name. Possible values appear in RXNDOC.RRF and are described on "^DD",176.002,176.002,.01,21,2,0) the UMLS Attribute Names page. "^DD",176.002,176.002,.01,"DT") 3130307 "^DD",176.002,176.002,.02,0) LUI^FJ8^^0;2^K:$L(X)>8!($L(X)<1) X "^DD",176.002,176.002,.02,3) Answer must be 1-8 characters in length. "^DD",176.002,176.002,.02,21,0) ^^1^1^3130301^^ "^DD",176.002,176.002,.02,21,1,0) Unique identifier for term (no value provided) "^DD",176.002,176.002,.02,"DT") 3130301 "^DD",176.002,176.002,.03,0) SUI^FJ8^^0;3^K:$L(X)>8!($L(X)<1) X "^DD",176.002,176.002,.03,3) Answer must be 1-8 characters in length. "^DD",176.002,176.002,.03,21,0) ^^1^1^3130301^ "^DD",176.002,176.002,.03,21,1,0) Unique identifier for string (no value provided) "^DD",176.002,176.002,.03,"DT") 3130301 "^DD",176.002,176.002,.04,0) RXAUI^FJ8^^0;4^K:$L(X)>8!($L(X)<1) X "^DD",176.002,176.002,.04,3) Answer must be 1-8 characters in length. "^DD",176.002,176.002,.04,21,0) ^^1^1^3130301^ "^DD",176.002,176.002,.04,21,1,0) RxNorm atom identifier (RXAUI) or RxNorm relationship identifier (RUI). "^DD",176.002,176.002,.04,"DT") 3130301 "^DD",176.002,176.002,.05,0) STYPE^FJ50^^0;5^K:$L(X)>50!($L(X)<1) X "^DD",176.002,176.002,.05,3) Answer must be 1-50 characters in length. "^DD",176.002,176.002,.05,21,0) ^^2^2^3130301^ "^DD",176.002,176.002,.05,21,1,0) The name of the column in RXNCONSO.RRF or RXNREL.RRF that contains the "^DD",176.002,176.002,.05,21,2,0) identifier to which the attribute is attached, e.g., CUI, AUI. "^DD",176.002,176.002,.05,"DT") 3130301 "^DD",176.002,176.002,.06,0) CODE^FJ50^^0;6^K:$L(X)>50!($L(X)<1) X "^DD",176.002,176.002,.06,3) Answer must be 1-50 characters in length. "^DD",176.002,176.002,.06,21,0) ^^2^2^3130301^^ "^DD",176.002,176.002,.06,21,1,0) "Most useful" source asserted identifier (if the source vocabulary "^DD",176.002,176.002,.06,21,2,0) contains more than one). "^DD",176.002,176.002,.06,"DT") 3130301 "^DD",176.002,176.002,.07,0) ATUI^FJ11^^0;7^K:$L(X)>11!($L(X)<1) X "^DD",176.002,176.002,.07,3) Answer must be 1-11 characters in length. "^DD",176.002,176.002,.07,21,0) ^^1^1^3130301^ "^DD",176.002,176.002,.07,21,1,0) Unique identifier for attribute. "^DD",176.002,176.002,.07,"DT") 3130301 "^DD",176.002,176.002,.08,0) SATUI^FJ50^^0;8^K:$L(X)>50!($L(X)<1) X "^DD",176.002,176.002,.08,3) Answer must be 1-50 characters in length. "^DD",176.002,176.002,.08,21,0) ^^1^1^3130301^ "^DD",176.002,176.002,.08,21,1,0) Source asserted attribute identifier (optional - present if it exists). "^DD",176.002,176.002,.08,"DT") 3130301 "^DD",176.002,176.002,.09,0) RXCUI^FJ8^^0;9^K:$L(X)>8!($L(X)<1) X "^DD",176.002,176.002,.09,3) Answer must be 1-8 characters in length. "^DD",176.002,176.002,.09,21,0) ^^1^1^3130301^ "^DD",176.002,176.002,.09,21,1,0) Unique identifier for concept (concept id). "^DD",176.002,176.002,.09,"DT") 3130307 "^DD",176.002,176.002,.1,0) SAB^RFJ20^^0;10^K:$L(X)>20!($L(X)<1) X "^DD",176.002,176.002,.1,3) Answer must be 1-20 characters in length. "^DD",176.002,176.002,.1,21,0) ^^2^2^3130301^ "^DD",176.002,176.002,.1,21,1,0) Abbreviation of the source of the attribute. Possible values appear in "^DD",176.002,176.002,.1,21,2,0) RXNSAB.RRF and are listed on the UMLS Source Vocabularies page. "^DD",176.002,176.002,.1,"DT") 3130307 "^DD",176.002,176.002,.11,0) ATV^FJ4000^^0;11^K:$L(X)>4000!($L(X)<1) X "^DD",176.002,176.002,.11,1,0) ^.1 "^DD",176.002,176.002,.11,1,1,0) 176.002^XATV "^DD",176.002,176.002,.11,1,1,1) S ^C0CRXN(176.002,"XATV",$E(X,1,30),DA)="" "^DD",176.002,176.002,.11,1,1,2) K ^C0CRXN(176.002,"XATV",$E(X,1,30),DA) "^DD",176.002,176.002,.11,1,1,3) ATV INDEX "^DD",176.002,176.002,.11,1,1,"DT") 3130301 "^DD",176.002,176.002,.11,3) Answer must be 1-4000 characters in length. "^DD",176.002,176.002,.11,21,0) ^^4^4^3130301^ "^DD",176.002,176.002,.11,21,1,0) Attribute value described under specific attribute name on the UMLS "^DD",176.002,176.002,.11,21,2,0) Attribute Names page. A few attribute values exceed 1,000 characters. "^DD",176.002,176.002,.11,21,3,0) Many of the abbreviations used in attribute values are explained in "^DD",176.002,176.002,.11,21,4,0) RXNDOC.RRF and included UMLS Abbreviations Used in Data Elements page. "^DD",176.002,176.002,.11,"DT") 3130307 "^DD",176.002,176.002,.12,0) SUPPRESS^FJ1^^0;12^K:$L(X)>1!($L(X)<1) X "^DD",176.002,176.002,.12,3) Answer must be 1 character in length. "^DD",176.002,176.002,.12,21,0) ^^3^3^3130301^ "^DD",176.002,176.002,.12,21,1,0) Suppressible flag. Values = O, Y, or N. Reflects the suppressible status "^DD",176.002,176.002,.12,21,2,0) of the attribute. N - Attribute is not suppressed. O - Attribute is "^DD",176.002,176.002,.12,21,3,0) suppressed at source level. Y - Attribute is suppressed by RxNorm editors. "^DD",176.002,176.002,.12,"DT") 3130301 "^DD",176.002,176.002,.13,0) CVF^FJ50^^0;13^K:$L(X)>50!($L(X)<1) X "^DD",176.002,176.002,.13,3) Answer must be 1-50 characters in length. "^DD",176.002,176.002,.13,21,0) ^^1^1^3130301^ "^DD",176.002,176.002,.13,21,1,0) Content view flag "^DD",176.002,176.002,.13,"DT") 3130301 "^DD",176.003,176.003,0) FIELD^^.25^25 "^DD",176.003,176.003,0,"DT") 3130301 "^DD",176.003,176.003,0,"ID",.05) W " ",$P(^(0),U,5) "^DD",176.003,176.003,0,"ID",.14) W " ",$P(^(0),U,14) "^DD",176.003,176.003,0,"IX","B",176.003,.01) "^DD",176.003,176.003,0,"NM","RXNORM SOURCE INFORMATION") "^DD",176.003,176.003,0,"VRPK") RXNORM FOR VISTA "^DD",176.003,176.003,.01,0) RSAB^RFJ20^^0;1^K:$L(X)>20!($L(X)<1)!'(X'?1P.E) X "^DD",176.003,176.003,.01,.1) ROOT SOURCE ABBREVIATION "^DD",176.003,176.003,.01,1,0) ^.1 "^DD",176.003,176.003,.01,1,1,0) 176.003^B "^DD",176.003,176.003,.01,1,1,1) S ^C0CRXN(176.003,"B",$E(X,1,30),DA)="" "^DD",176.003,176.003,.01,1,1,2) K ^C0CRXN(176.003,"B",$E(X,1,30),DA) "^DD",176.003,176.003,.01,3) Answer must be 1-20 characters in length. "^DD",176.003,176.003,.01,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.01,21,1,0) The root source abbreviation, for a source e.g. NDDF "^DD",176.003,176.003,.01,"DT") 3130301 "^DD",176.003,176.003,.02,0) RCUI^FJ8^^0;2^K:$L(X)>8!($L(X)<1) X "^DD",176.003,176.003,.02,.1) ROOT CUI "^DD",176.003,176.003,.02,3) Answer must be 1-8 characters in length. "^DD",176.003,176.003,.02,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.02,21,1,0) CUI of the root SRC concept for a source "^DD",176.003,176.003,.02,"DT") 3130301 "^DD",176.003,176.003,.03,0) VSAB^FJ40^^0;3^K:$L(X)>40!($L(X)<1) X "^DD",176.003,176.003,.03,.1) VERSIONED SOURCE ABBREVIATION "^DD",176.003,176.003,.03,3) Answer must be 1-20 characters in length. "^DD",176.003,176.003,.03,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.03,21,1,0) The versioned source abbreviation for a source, e.g., NDDF_2004_11_03 "^DD",176.003,176.003,.03,"DT") 3130301 "^DD",176.003,176.003,.04,0) VCUI^FJ8^^0;4^K:$L(X)>8!($L(X)<1) X "^DD",176.003,176.003,.04,.1) CUI "^DD",176.003,176.003,.04,3) Answer must be 1-8 characters in length. "^DD",176.003,176.003,.04,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.04,21,1,0) CUI of the versioned SRC concept for a source "^DD",176.003,176.003,.04,"DT") 3130301 "^DD",176.003,176.003,.05,0) SON^FJ3000^^0;5^K:$L(X)>3000!($L(X)<1) X "^DD",176.003,176.003,.05,.1) OFFICIAL NAME "^DD",176.003,176.003,.05,3) Answer must be 1-3000 characters in length. "^DD",176.003,176.003,.05,21,0) ^^1^1^3130301^^ "^DD",176.003,176.003,.05,21,1,0) The official name for a source "^DD",176.003,176.003,.05,"DT") 3130301 "^DD",176.003,176.003,.06,0) SF^FJ20^^0;6^K:$L(X)>20!($L(X)<1) X "^DD",176.003,176.003,.06,.1) SOURCE FAMILY "^DD",176.003,176.003,.06,3) Answer must be 1-20 characters in length. "^DD",176.003,176.003,.06,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.06,21,1,0) The Source Family for a source "^DD",176.003,176.003,.06,"DT") 3130301 "^DD",176.003,176.003,.07,0) SVER^FJ20^^0;7^K:$L(X)>20!($L(X)<1) X "^DD",176.003,176.003,.07,.1) VERSION "^DD",176.003,176.003,.07,3) Answer must be 1-20 characters in length. "^DD",176.003,176.003,.07,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.07,21,1,0) The source version, e.g., 2001 "^DD",176.003,176.003,.07,"DT") 3130301 "^DD",176.003,176.003,.08,0) VSTART^FJ10^^0;8^K:$L(X)>10!($L(X)<1) X "^DD",176.003,176.003,.08,.1) META START DATE "^DD",176.003,176.003,.08,3) Answer must be 1-10 characters in length. "^DD",176.003,176.003,.08,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.08,21,1,0) The date a source became active, e.g., 2001_04_03 "^DD",176.003,176.003,.08,"DT") 3130301 "^DD",176.003,176.003,.09,0) VEND^FJ10^^0;9^K:$L(X)>10!($L(X)<1) X "^DD",176.003,176.003,.09,.1) META END DATE "^DD",176.003,176.003,.09,3) Answer must be 1-10 characters in length. "^DD",176.003,176.003,.09,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.09,21,1,0) The date a source ceased to be active, e.g., 2001_05_10 "^DD",176.003,176.003,.09,"DT") 3130301 "^DD",176.003,176.003,.1,0) IMETA^FJ10^^0;10^K:$L(X)>10!($L(X)<1) X "^DD",176.003,176.003,.1,.1) META INSERT VERSION "^DD",176.003,176.003,.1,3) Answer must be 1-10 characters in length. "^DD",176.003,176.003,.1,21,0) ^^1^1^3130301^^ "^DD",176.003,176.003,.1,21,1,0) The version of the Metathesaurus a source first appeared, e.g., 2001AB "^DD",176.003,176.003,.1,"DT") 3130301 "^DD",176.003,176.003,.11,0) RMETA^FJ10^^0;11^K:$L(X)>10!($L(X)<1) X "^DD",176.003,176.003,.11,.1) META REMOVE VERSION "^DD",176.003,176.003,.11,3) Answer must be 1-10 characters in length. "^DD",176.003,176.003,.11,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.11,21,1,0) The version of the Metathesaurus a source was removed, e.g., 2001AC "^DD",176.003,176.003,.11,"DT") 3130301 "^DD",176.003,176.003,.12,0) SLC^FJ1000^^0;12^K:$L(X)>1000!($L(X)<1) X "^DD",176.003,176.003,.12,.1) SOURCE LICENSE CONTACT "^DD",176.003,176.003,.12,3) Answer must be 1-1000 characters in length. "^DD",176.003,176.003,.12,21,0) ^^4^4^3130301^ "^DD",176.003,176.003,.12,21,1,0) The source license contact information. A semi-colon separated list "^DD",176.003,176.003,.12,21,2,0) containing the following fields: Name; Title; Organization; Address 1; "^DD",176.003,176.003,.12,21,3,0) Address 2; City; State or Province; Country; Zip or Postal Code; "^DD",176.003,176.003,.12,21,4,0) Telephone; Contact Fax; Email; URL "^DD",176.003,176.003,.12,"DT") 3130301 "^DD",176.003,176.003,.13,0) SCC^FJ1000^^0;13^K:$L(X)>1000!($L(X)<1) X "^DD",176.003,176.003,.13,.1) SOURCE CONTENT CONTACT "^DD",176.003,176.003,.13,3) Answer must be 1-1000 characters in length. "^DD",176.003,176.003,.13,21,0) ^^4^4^3130301^ "^DD",176.003,176.003,.13,21,1,0) The source content contact information. A semi-colon separated list "^DD",176.003,176.003,.13,21,2,0) containing the following fields: Name; Title; Organization; Address 1; "^DD",176.003,176.003,.13,21,3,0) Address 2; City; State or Province; Country; Zip or Postal Code; "^DD",176.003,176.003,.13,21,4,0) Telephone; Contact Fax; Email; URL "^DD",176.003,176.003,.13,"DT") 3130301 "^DD",176.003,176.003,.14,0) SRL^NJ10,0^^0;14^K:+X'=X!(X>9999999999)!(X<0)!(X?.E1"."1N.N) X "^DD",176.003,176.003,.14,.1) SOURCE RESTRICTION LEVEL "^DD",176.003,176.003,.14,3) Type a number between 0 and 9999999999, 0 decimal digits. "^DD",176.003,176.003,.14,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.14,21,1,0) 0,1,2,3,4 - explained in the License Agreement. "^DD",176.003,176.003,.14,"DT") 3130301 "^DD",176.003,176.003,.15,0) TFR^NJ10,0^^0;15^K:+X'=X!(X>9999999999)!(X<0)!(X?.E1"."1N.N) X "^DD",176.003,176.003,.15,.1) TERM FREQUENCY "^DD",176.003,176.003,.15,3) Type a number between 0 and 9999999999, 0 decimal digits. "^DD",176.003,176.003,.15,21,0) ^^2^2^3130301^ "^DD",176.003,176.003,.15,21,1,0) The number of terms for this source in RXNCONSO.RRF, e.g., 12343 (not "^DD",176.003,176.003,.15,21,2,0) implemented yet) "^DD",176.003,176.003,.15,"DT") 3130301 "^DD",176.003,176.003,.16,0) CFR^NJ10,0^^0;16^K:+X'=X!(X>9999999999)!(X<0)!(X?.E1"."1N.N) X "^DD",176.003,176.003,.16,.1) CUI FREQUENCY "^DD",176.003,176.003,.16,3) Type a number between 0 and 9999999999, 0 decimal digits. "^DD",176.003,176.003,.16,21,0) ^^2^2^3130301^ "^DD",176.003,176.003,.16,21,1,0) The number of CUIs associated with this source, e.g., 10234 (not "^DD",176.003,176.003,.16,21,2,0) implemented yet) "^DD",176.003,176.003,.16,"DT") 3130301 "^DD",176.003,176.003,.17,0) CXTY^FJ50^^0;17^K:$L(X)>50!($L(X)<1) X "^DD",176.003,176.003,.17,.1) CONTEXT TYPE "^DD",176.003,176.003,.17,3) Answer must be 1-50 characters in length. "^DD",176.003,176.003,.17,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.17,21,1,0) The type of relationship label (Section 2.4.2 of UMLS Reference Manual) "^DD",176.003,176.003,.17,"DT") 3130301 "^DD",176.003,176.003,.18,0) TTYL^FJ300^^0;18^K:$L(X)>300!($L(X)<1) X "^DD",176.003,176.003,.18,.1) TERM TYPE LIST "^DD",176.003,176.003,.18,3) Answer must be 1-300 characters in length. "^DD",176.003,176.003,.18,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.18,21,1,0) Term type list from source, e.g., MH,EN,PM,TQ "^DD",176.003,176.003,.18,"DT") 3130301 "^DD",176.003,176.003,.19,0) ATNL^FJ1000^^0;19^K:$L(X)>1000!($L(X)<1) X "^DD",176.003,176.003,.19,.1) ATTRIBUTE NAME LIST "^DD",176.003,176.003,.19,3) Answer must be 1-1000 characters in length. "^DD",176.003,176.003,.19,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.19,21,1,0) The attribute name list, e.g., MUI,RN,TH,... "^DD",176.003,176.003,.19,"DT") 3130301 "^DD",176.003,176.003,.2,0) LAT^FJ3^^0;20^K:$L(X)>3!($L(X)<1) X "^DD",176.003,176.003,.2,.1) LANGUAGE "^DD",176.003,176.003,.2,3) Answer must be 1-3 characters in length. "^DD",176.003,176.003,.2,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.2,21,1,0) The language of the terms in the source "^DD",176.003,176.003,.2,"DT") 3130301 "^DD",176.003,176.003,.21,0) CENC^FJ20^^0;21^K:$L(X)>20!($L(X)<1) X "^DD",176.003,176.003,.21,.1) CHARACTER ENCODING "^DD",176.003,176.003,.21,3) Answer must be 1-20 characters in length. "^DD",176.003,176.003,.21,21,0) ^^2^2^3130301^ "^DD",176.003,176.003,.21,21,1,0) Character set as specified by the IANA official names for character "^DD",176.003,176.003,.21,21,2,0) assignments http://www.iana.org/assignments/character-sets "^DD",176.003,176.003,.21,"DT") 3130301 "^DD",176.003,176.003,.22,0) CURVER^FJ1^^0;22^K:$L(X)>1!($L(X)<1) X "^DD",176.003,176.003,.22,.1) CURRENT VERSION "^DD",176.003,176.003,.22,3) Answer must be 1 character in length. "^DD",176.003,176.003,.22,21,0) ^^2^2^3130301^ "^DD",176.003,176.003,.22,21,1,0) A Y or N flag indicating whether or not this row corresponds to the "^DD",176.003,176.003,.22,21,2,0) current version of the named source "^DD",176.003,176.003,.22,"DT") 3130301 "^DD",176.003,176.003,.23,0) SABIN^FJ1^^0;23^K:$L(X)>1!($L(X)<1) X "^DD",176.003,176.003,.23,.1) SOURCE IN SUBSET "^DD",176.003,176.003,.23,3) Answer must be 1 character in length. "^DD",176.003,176.003,.23,21,0) ^^3^3^3130301^ "^DD",176.003,176.003,.23,21,1,0) A Y or N flag indicating whether or not this row is represented in the "^DD",176.003,176.003,.23,21,2,0) current MetamorphoSys subset. Initially always Y where CURVER is Y, but "^DD",176.003,176.003,.23,21,3,0) later is recomputed by MetamorphoSys. "^DD",176.003,176.003,.23,"DT") 3130301 "^DD",176.003,176.003,.24,0) SSN^FJ3000^^0;24^K:$L(X)>3000!($L(X)<1) X "^DD",176.003,176.003,.24,.1) SOURCE SHORT NAME "^DD",176.003,176.003,.24,3) Answer must be 1-3000 characters in length. "^DD",176.003,176.003,.24,21,0) ^^1^1^3130301^ "^DD",176.003,176.003,.24,21,1,0) The short name of a source as used by the NLM Knowledge Source Server. "^DD",176.003,176.003,.24,"DT") 3130301 "^DD",176.003,176.003,.25,0) SCIT^FJ4000^^0;25^K:$L(X)>4000!($L(X)<1) X "^DD",176.003,176.003,.25,.1) SOURCE CITATION "^DD",176.003,176.003,.25,3) Answer must be 1-4000 characters in length. "^DD",176.003,176.003,.25,21,0) ^^6^6^3130301^ "^DD",176.003,176.003,.25,21,1,0) Citation information for a source. A semi-colon separated list containing "^DD",176.003,176.003,.25,21,2,0) the following fields: Author(s); Author(s) address; Author(s) "^DD",176.003,176.003,.25,21,3,0) organization; Editor(s); Title; Content Designator; Medium Designator; "^DD",176.003,176.003,.25,21,4,0) Edition; Place of Publication; Publisher; Date of Publication/copyright; "^DD",176.003,176.003,.25,21,5,0) Date of revision; Location; Extent; Series; Availability Statement (URL); "^DD",176.003,176.003,.25,21,6,0) Language; Notes "^DD",176.003,176.003,.25,"DT") 3130301 "^DD",176.004,176.004,0) FIELD^^.06^6 "^DD",176.004,176.004,0,"DIK") C0CRXN4 "^DD",176.004,176.004,0,"DIKOLD") C0CRXN4 "^DD",176.004,176.004,0,"DT") 3130301 "^DD",176.004,176.004,0,"ID",.02) W " ",$P(^(0),U,2) "^DD",176.004,176.004,0,"ID",.03) W " ",$P(^(0),U,3) "^DD",176.004,176.004,0,"ID",.04) W " ",$P(^(0),U,4) "^DD",176.004,176.004,0,"IX","B",176.004,.01) "^DD",176.004,176.004,0,"NM","RXNORM SEMANTIC TYPES") "^DD",176.004,176.004,0,"VRPK") RXNORM FOR VISTA "^DD",176.004,176.004,.01,0) RXNCUI^RFJ8^^0;1^K:$L(X)>8!($L(X)<1)!'(X'?1P.E) X "^DD",176.004,176.004,.01,1,0) ^.1 "^DD",176.004,176.004,.01,1,1,0) 176.004^B "^DD",176.004,176.004,.01,1,1,1) S ^C0CRXN(176.004,"B",$E(X,1,30),DA)="" "^DD",176.004,176.004,.01,1,1,2) K ^C0CRXN(176.004,"B",$E(X,1,30),DA) "^DD",176.004,176.004,.01,3) Answer must be 1-8 characters in length. "^DD",176.004,176.004,.01,21,0) ^^1^1^3130301^ "^DD",176.004,176.004,.01,21,1,0) Unique identifier of concept (concept id) "^DD",176.004,176.004,.01,"DT") 3130301 "^DD",176.004,176.004,.02,0) TUI^FJ4^^0;2^K:$L(X)>4!($L(X)<1) X "^DD",176.004,176.004,.02,3) Answer must be 1-4 characters in length. "^DD",176.004,176.004,.02,21,0) ^^1^1^3130301^ "^DD",176.004,176.004,.02,21,1,0) Unique identifier of Semantic Type "^DD",176.004,176.004,.02,"DT") 3130301 "^DD",176.004,176.004,.03,0) STN^FJ100^^0;3^K:$L(X)>100!($L(X)<1) X "^DD",176.004,176.004,.03,3) Answer must be 1-100 characters in length. "^DD",176.004,176.004,.03,21,0) ^^1^1^3130301^ "^DD",176.004,176.004,.03,21,1,0) Semantic Type tree number "^DD",176.004,176.004,.03,"DT") 3130301 "^DD",176.004,176.004,.04,0) STY^FJ50^^0;4^K:$L(X)>50!($L(X)<1) X "^DD",176.004,176.004,.04,3) Answer must be 1-50 characters in length. "^DD",176.004,176.004,.04,21,0) ^^1^1^3130301^ "^DD",176.004,176.004,.04,21,1,0) Semantic Type. The valid values are defined in the Semantic Network. "^DD",176.004,176.004,.04,"DT") 3130301 "^DD",176.004,176.004,.05,0) ATUI^FJ11^^0;5^K:$L(X)>11!($L(X)<1) X "^DD",176.004,176.004,.05,3) Answer must be 1-11 characters in length. "^DD",176.004,176.004,.05,21,0) ^^1^1^3130301^ "^DD",176.004,176.004,.05,21,1,0) Unique identifier for attribute "^DD",176.004,176.004,.05,"DT") 3130301 "^DD",176.004,176.004,.06,0) CVF^FJ50^^0;6^K:$L(X)>50!($L(X)<1) X "^DD",176.004,176.004,.06,3) Answer must be 1-50 characters in length. "^DD",176.004,176.004,.06,21,0) ^^1^1^3130301^ "^DD",176.004,176.004,.06,21,1,0) Content view flag "^DD",176.004,176.004,.06,"DT") 3130301 "^DD",176.005,176.005,0) FIELD^^.16^16 "^DD",176.005,176.005,0,"DIK") C0CRXN5 "^DD",176.005,176.005,0,"DIKOLD") C0CRXN5 "^DD",176.005,176.005,0,"DT") 3130301 "^DD",176.005,176.005,0,"NM","RXNORM RELATED CONCEPTS") "^DD",176.005,176.005,0,"VRPK") RXNORM FOR VISTA "^DD",176.005,176.005,.01,0) SAB^RFJ20^^0;1^K:$L(X)>20!($L(X)<1)!'(X'?1P.E) X "^DD",176.005,176.005,.01,1,0) ^.1^^0 "^DD",176.005,176.005,.01,3) Answer must be 1-20 characters in length. "^DD",176.005,176.005,.01,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.01,21,1,0) Abbreviation of the source of relationship "^DD",176.005,176.005,.01,"DT") 3130301 "^DD",176.005,176.005,.02,0) RXAUI1^FJ8^^0;2^K:$L(X)>8!($L(X)<1) X "^DD",176.005,176.005,.02,3) Answer must be 1-8 characters in length. "^DD",176.005,176.005,.02,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.02,21,1,0) Unique identifier for first atom "^DD",176.005,176.005,.02,"DT") 3130301 "^DD",176.005,176.005,.03,0) STYPE1^FJ50^^0;3^K:$L(X)>50!($L(X)<1) X "^DD",176.005,176.005,.03,3) Answer must be 1-50 characters in length. "^DD",176.005,176.005,.03,21,0) ^^3^3^3130301^ "^DD",176.005,176.005,.03,21,1,0) The name of the column in RXNCONSO.RRF that contains the identifier used "^DD",176.005,176.005,.03,21,2,0) for the first concept or first atom in source of the relationship (e.g., "^DD",176.005,176.005,.03,21,3,0) 'AUI' or 'CUI'). "^DD",176.005,176.005,.03,"DT") 3130301 "^DD",176.005,176.005,.04,0) REL^FJ4^^0;4^K:$L(X)>4!($L(X)<1) X "^DD",176.005,176.005,.04,3) Answer must be 1-4 characters in length. "^DD",176.005,176.005,.04,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.04,21,1,0) Relationship of second concept or atom to first concept or atom "^DD",176.005,176.005,.04,"DT") 3130301 "^DD",176.005,176.005,.05,0) RXCUI2^FJ8^^0;5^K:$L(X)>8!($L(X)<1) X "^DD",176.005,176.005,.05,3) Answer must be 1-8 characters in length. "^DD",176.005,176.005,.05,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.05,21,1,0) Unique identifier of second concept "^DD",176.005,176.005,.05,"DT") 3130301 "^DD",176.005,176.005,.06,0) RXAUI2^FJ8^^0;6^K:$L(X)>8!($L(X)<1) X "^DD",176.005,176.005,.06,3) Answer must be 1-8 characters in length. "^DD",176.005,176.005,.06,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.06,21,1,0) Unique identifier for second atom "^DD",176.005,176.005,.06,"DT") 3130301 "^DD",176.005,176.005,.07,0) STYPE2^FJ50^^0;7^K:$L(X)>50!($L(X)<1) X "^DD",176.005,176.005,.07,3) Answer must be 1-50 characters in length. "^DD",176.005,176.005,.07,21,0) ^^3^3^3130301^ "^DD",176.005,176.005,.07,21,1,0) The name of the column in RXNCONSO.RRF that contains the identifier used "^DD",176.005,176.005,.07,21,2,0) for the second concept or second atom in the source of the relationship "^DD",176.005,176.005,.07,21,3,0) (e.g., 'AUI' or 'CUI'). "^DD",176.005,176.005,.07,"DT") 3130301 "^DD",176.005,176.005,.08,0) RELA^FJ100^^0;8^K:$L(X)>100!($L(X)<1) X "^DD",176.005,176.005,.08,3) Answer must be 1-100 characters in length. "^DD",176.005,176.005,.08,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.08,21,1,0) Additional (more specific) relationship label (optional) "^DD",176.005,176.005,.08,"DT") 3130301 "^DD",176.005,176.005,.09,0) RUI^FJ10^^0;9^K:$L(X)>10!($L(X)<1) X "^DD",176.005,176.005,.09,3) Answer must be 1-10 characters in length. "^DD",176.005,176.005,.09,21,0) ^^1^1^3130301^^ "^DD",176.005,176.005,.09,21,1,0) Unique identifier for relationship "^DD",176.005,176.005,.09,"DT") 3130301 "^DD",176.005,176.005,.1,0) SRUI^FJ50^^0;10^K:$L(X)>50!($L(X)<1) X "^DD",176.005,176.005,.1,3) Answer must be 1-50 characters in length. "^DD",176.005,176.005,.1,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.1,21,1,0) Source asserted relationship identifier, if present (no value provided) "^DD",176.005,176.005,.1,"DT") 3130301 "^DD",176.005,176.005,.11,0) RXCUI1^FJ8^^0;11^K:$L(X)>8!($L(X)<1) X "^DD",176.005,176.005,.11,3) Answer must be 1-8 characters in length. "^DD",176.005,176.005,.11,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.11,21,1,0) Unique identifier of first concept "^DD",176.005,176.005,.11,"DT") 3130301 "^DD",176.005,176.005,.12,0) SL^FJ1000^^0;12^K:$L(X)>1000!($L(X)<1) X "^DD",176.005,176.005,.12,3) Answer must be 1-1000 characters in length. "^DD",176.005,176.005,.12,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.12,21,1,0) Source of relationship labels (no value provided) "^DD",176.005,176.005,.12,"DT") 3130301 "^DD",176.005,176.005,.13,0) DIR^FJ1^^0;13^K:$L(X)>1!($L(X)<1) X "^DD",176.005,176.005,.13,3) Answer must be 1 character in length. "^DD",176.005,176.005,.13,21,0) ^^4^4^3130301^ "^DD",176.005,176.005,.13,21,1,0) Source asserted directionality flag. (no value provided) Y indicates that "^DD",176.005,176.005,.13,21,2,0) this is the direction of the relationship in its source; N indicates that "^DD",176.005,176.005,.13,21,3,0) it is not; a blank indicates that it is not important or has not yet been "^DD",176.005,176.005,.13,21,4,0) determined. "^DD",176.005,176.005,.13,"DT") 3130301 "^DD",176.005,176.005,.14,0) RG^FJ10^^0;14^K:$L(X)>10!($L(X)<1) X "^DD",176.005,176.005,.14,3) Answer must be 1-10 characters in length. "^DD",176.005,176.005,.14,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.14,21,1,0) Machine generated and unverified indicator (optional) "^DD",176.005,176.005,.14,"DT") 3130301 "^DD",176.005,176.005,.15,0) SUPPRESS^FJ1^^0;15^K:$L(X)>1!($L(X)<1) X "^DD",176.005,176.005,.15,3) Answer must be 1 character in length. "^DD",176.005,176.005,.15,21,0) ^^3^3^3130301^ "^DD",176.005,176.005,.15,21,1,0) Suppressible flag. Values = Y, E, or N. Reflects the suppressible status "^DD",176.005,176.005,.15,21,2,0) of the relationship; not yet in use. See also SUPPRESS in MRCONSO.RRF and "^DD",176.005,176.005,.15,21,3,0) MRDEF.RRF and MRREL.RRF in the UMLS Reference Manual. "^DD",176.005,176.005,.15,"DT") 3130301 "^DD",176.005,176.005,.16,0) CVF^FJ50^^0;16^K:$L(X)>50!($L(X)<1) X "^DD",176.005,176.005,.16,3) Answer must be 1-50 characters in length. "^DD",176.005,176.005,.16,21,0) ^^1^1^3130301^ "^DD",176.005,176.005,.16,21,1,0) Content view flag "^DD",176.005,176.005,.16,"DT") 3130301 "^DD",176.006,176.006,0) FIELD^^.04^4 "^DD",176.006,176.006,0,"DT") 3130301 "^DD",176.006,176.006,0,"ID",.02) W " ",$P(^(0),U,2) "^DD",176.006,176.006,0,"ID",.03) W " ",$P(^(0),U,3) "^DD",176.006,176.006,0,"ID",.04) W " ",$P(^(0),U,4) "^DD",176.006,176.006,0,"IX","B",176.006,.01) "^DD",176.006,176.006,0,"NM","RXNORM DOCUMENTATION FOR ABBREVIATED VALUES") "^DD",176.006,176.006,0,"VRPK") RXNORM FOR VISTA "^DD",176.006,176.006,.01,0) DOCKEY^RFJ50^^0;1^K:$L(X)>50!($L(X)<1)!'(X'?1P.E) X "^DD",176.006,176.006,.01,1,0) ^.1 "^DD",176.006,176.006,.01,1,1,0) 176.006^B "^DD",176.006,176.006,.01,1,1,1) S ^C0CRXN(176.006,"B",$E(X,1,30),DA)="" "^DD",176.006,176.006,.01,1,1,2) K ^C0CRXN(176.006,"B",$E(X,1,30),DA) "^DD",176.006,176.006,.01,3) Answer must be 1-50 characters in length. "^DD",176.006,176.006,.01,21,0) ^^1^1^3130301^ "^DD",176.006,176.006,.01,21,1,0) Data element or attribute "^DD",176.006,176.006,.01,"DT") 3130301 "^DD",176.006,176.006,.02,0) VALUE^FJ1000^^0;2^K:$L(X)>1000!($L(X)<1) X "^DD",176.006,176.006,.02,3) Answer must be 1-1000 characters in length. "^DD",176.006,176.006,.02,21,0) ^^1^1^3130301^ "^DD",176.006,176.006,.02,21,1,0) Abbreviation that is one of its values "^DD",176.006,176.006,.02,"DT") 3130301 "^DD",176.006,176.006,.03,0) TYPE^FJ50^^0;3^K:$L(X)>50!($L(X)<1) X "^DD",176.006,176.006,.03,3) Answer must be 1-50 characters in length. "^DD",176.006,176.006,.03,21,0) ^^1^1^3130301^ "^DD",176.006,176.006,.03,21,1,0) Type of information in EXPL column "^DD",176.006,176.006,.03,"DT") 3130301 "^DD",176.006,176.006,.04,0) EXPL^FJ1000^^0;4^K:$L(X)>1000!($L(X)<1) X "^DD",176.006,176.006,.04,3) Answer must be 1-1000 characters in length. "^DD",176.006,176.006,.04,21,0) ^^1^1^3130301^ "^DD",176.006,176.006,.04,21,1,0) Explanation of VALUE "^DD",176.006,176.006,.04,"DT") 3130301 "^DIC",176.001,176.001,0) RXNORM CONCEPT NAMES AND SOURCES^176.001 "^DIC",176.001,176.001,0,"GL") ^C0CRXN(176.001, "^DIC",176.001,176.001,"%",0) ^1.005^^0 "^DIC",176.001,176.001,"%D",0) ^^10^10^3130225^ "^DIC",176.001,176.001,"%D",1,0) File = RXNCONSO.RRF "^DIC",176.001,176.001,"%D",2,0) "^DIC",176.001,176.001,"%D",3,0) This file follows the general format of the MRCONSO.RRF file of the "^DIC",176.001,176.001,"%D",4,0) Metathesaurus. Some of the Metathesaurus fields are not provided by "^DIC",176.001,176.001,"%D",5,0) RxNorm and are marked as "(no value provided)". There is exactly one row "^DIC",176.001,176.001,"%D",6,0) in this file for each atom (each occurrence of each unique string or "^DIC",176.001,176.001,"%D",7,0) concept name within each source vocabulary) in RxNorm, i.e., there is "^DIC",176.001,176.001,"%D",8,0) exactly one row for each unique RXAUI in RxNorm. Every string or concept "^DIC",176.001,176.001,"%D",9,0) name in RxNorm appears in this file, connected to its language, source "^DIC",176.001,176.001,"%D",10,0) vocabularies, and its concept identifier (RXCUI). "^DIC",176.001,"B","RXNORM CONCEPT NAMES AND SOURCES",176.001) "^DIC",176.002,176.002,0) RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES^176.002 "^DIC",176.002,176.002,0,"GL") ^C0CRXN(176.002, "^DIC",176.002,176.002,"%",0) ^1.005^^0 "^DIC",176.002,176.002,"%D",0) ^^9^9^3130301^ "^DIC",176.002,176.002,"%D",1,0) File: RXNSAT.RRF "^DIC",176.002,176.002,"%D",2,0) "^DIC",176.002,176.002,"%D",3,0) This file follows the general format of the MRSAT.RRF file of the "^DIC",176.002,176.002,"%D",4,0) Metathesaurus. Some of the Metathesaurus fields are not provided by "^DIC",176.002,176.002,"%D",5,0) RxNorm and are marked as "(no value provided)". There is exactly one row "^DIC",176.002,176.002,"%D",6,0) in this table for each concept, atom, or relationship attribute that does "^DIC",176.002,176.002,"%D",7,0) not have a sub-element structure. Not all RxNorm concepts or RxNorm "^DIC",176.002,176.002,"%D",8,0) relationships have entries in this file. This file includes all source "^DIC",176.002,176.002,"%D",9,0) vocabulary attributes that do not fit into other categories. "^DIC",176.002,"B","RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES",176.002) "^DIC",176.003,176.003,0) RXNORM SOURCE INFORMATION^176.003 "^DIC",176.003,176.003,0,"GL") ^C0CRXN(176.003, "^DIC",176.003,176.003,"%",0) ^1.005^^0 "^DIC",176.003,176.003,"%D",0) ^^11^11^3130301^ "^DIC",176.003,176.003,"%D",1,0) File RXNSAB.RRF "^DIC",176.003,176.003,"%D",2,0) "^DIC",176.003,176.003,"%D",3,0) This file contains the sources for each of the RxNorm files and their "^DIC",176.003,176.003,"%D",4,0) restriction levels. "^DIC",176.003,176.003,"%D",5,0) "^DIC",176.003,176.003,"%D",6,0) This file follows the general format of the MRSAB.RRF file of the "^DIC",176.003,176.003,"%D",7,0) Metathesaurus. Please refer to the UMLS Reference Manual for more "^DIC",176.003,176.003,"%D",8,0) specific information regarding this file. "^DIC",176.003,176.003,"%D",9,0) "^DIC",176.003,176.003,"%D",10,0) There is one row in this file for every source in RxNorm that is "^DIC",176.003,176.003,"%D",11,0) represented in this RxNorm release. "^DIC",176.003,"B","RXNORM SOURCE INFORMATION",176.003) "^DIC",176.004,176.004,0) RXNORM SEMANTIC TYPES^176.004 "^DIC",176.004,176.004,0,"GL") ^C0CRXN(176.004, "^DIC",176.004,176.004,"%",0) ^1.005^^0 "^DIC",176.004,176.004,"%D",0) ^^7^7^3130301^ "^DIC",176.004,176.004,"%D",1,0) File = RXNSTY.RRF "^DIC",176.004,176.004,"%D",2,0) "^DIC",176.004,176.004,"%D",3,0) This file follows the general format of the MRSTY.RRF file of the "^DIC",176.004,176.004,"%D",4,0) Metathesaurus. There is exactly one row in this file for each Semantic "^DIC",176.004,176.004,"%D",5,0) Type assigned to each concept. All RxNorm concepts have at least one "^DIC",176.004,176.004,"%D",6,0) entry in this file. Many have more than one entry. The TUI, STN, and STY "^DIC",176.004,176.004,"%D",7,0) are all direct links to the UMLS Semantic Network. "^DIC",176.004,"B","RXNORM SEMANTIC TYPES",176.004) "^DIC",176.005,176.005,0) RXNORM RELATED CONCEPTS^176.005 "^DIC",176.005,176.005,0,"GL") ^C0CRXN(176.005, "^DIC",176.005,176.005,"%",0) ^1.005^^0 "^DIC",176.005,176.005,"%D",0) ^^15^15^3130301^ "^DIC",176.005,176.005,"%D",1,0) File = RXNREL.RRF "^DIC",176.005,176.005,"%D",2,0) "^DIC",176.005,176.005,"%D",3,0) This file follows the general format of the MRREL.RRF file of the "^DIC",176.005,176.005,"%D",4,0) Metathesaurus. Some of the Metathesaurus fields are not provided by "^DIC",176.005,176.005,"%D",5,0) RxNorm and are marked as "(no value provided)". There is one row in this "^DIC",176.005,176.005,"%D",6,0) table for each relationship between concepts or atoms known to RxNorm. In "^DIC",176.005,176.005,"%D",7,0) addition, explicit SY RELs are provided which give the UMLS Metathesaurus "^DIC",176.005,176.005,"%D",8,0) CUI and AUI as the RXCUI2 and RXAUI2 fields. "^DIC",176.005,176.005,"%D",9,0) "^DIC",176.005,176.005,"%D",10,0) Note that for asymmetrical relationships there is one row for each "^DIC",176.005,176.005,"%D",11,0) direction of the relationship. Note also the direction of REL - the "^DIC",176.005,176.005,"%D",12,0) relationship which the SECOND concept or atom (with Concept Unique "^DIC",176.005,176.005,"%D",13,0) Identifier RXCUI2 and Atom Unique Identifier RXAUI2) HAS TO the FIRST "^DIC",176.005,176.005,"%D",14,0) concept or atom (with Concept Unique Identifier RXCUI1 and Atom Unique "^DIC",176.005,176.005,"%D",15,0) Identifier RXAUI1). "^DIC",176.005,"B","RXNORM RELATED CONCEPTS",176.005) "^DIC",176.006,176.006,0) RXNORM DOCUMENTATION FOR ABBREVIATED VALUES^176.006 "^DIC",176.006,176.006,0,"GL") ^C0CRXN(176.006, "^DIC",176.006,176.006,"%",0) ^1.005^^0 "^DIC",176.006,176.006,"%D",0) ^^9^9^3130301^ "^DIC",176.006,176.006,"%D",1,0) File = RXNDOC.RRF "^DIC",176.006,176.006,"%D",2,0) "^DIC",176.006,176.006,"%D",3,0) This file follows the format of the Metathesaurus MRDOC.RRF file. At this "^DIC",176.006,176.006,"%D",4,0) time, this file contains all of the data contained in the UMLS MRDOC.RRF "^DIC",176.006,176.006,"%D",5,0) file. In the future, the contents of this file may be tailored to the "^DIC",176.006,176.006,"%D",6,0) RxNorm subset of data only. There is exactly one row in this table for "^DIC",176.006,176.006,"%D",7,0) each allowed value of selected data elements or attributes that have a "^DIC",176.006,176.006,"%D",8,0) finite number of abbreviations as allowed values. Examples of such data "^DIC",176.006,176.006,"%D",9,0) elements include TTY, ATN, TS, STT, REL, RELA. "^DIC",176.006,"B","RXNORM DOCUMENTATION FOR ABBREVIATED VALUES",176.006) **END** **END**