| Version 39 (modified by , 12 years ago) ( diff ) | 
|---|
RxNorm Files for Vista/RPMS
- What is RxNorm?
 - Why do I want this?
 - What does this release contain?
 - How much does this cost?
 - How can I install RxNorm on VISTA/RPMS?
 - Contents of the KIDS file
 - What can I do with RxNorm
 - 
        Technical Details
        
- Package File Entry
 - Dependencies
 - Routine list
 - Description of routines and overall flow
 - Modifications to National VA distributed routines
 - File list
 - Pharmacy Files Computed Fields
 - Exported Options
 - Archiving and Purging
 - Supported APIs
 - External Interfaces, External Relations
 - Internal relations
 - Package wide-variables
 - Security
 - File Structure
 
 
Welcome to the homepage for the RxNorm VISTA/RPMS Support. I am Sam Habiel, and I am the developer for these packages. I can be reached at sam dot habiel at gmail dot com.
NB: Documentation for the older version of RxNorm can be found at RxNormForVista0.02.
What is RxNorm?
RxNorm is a standardized vocabulary set for Drugs in the United States. The goal of RxNorm is drug nomenclature standardization and systems interoperability. More information on RxNorm can be found at http://www.nlm.nih.gov/research/umls/rxnorm/.
Why do I want this?
RxNorm is necessary for interoperability with other systems. If you use VISTA alone without having to talk to any other system, then you don't need RxNorm. However, if you perform external drug interactions, send CCDA documents, or archive patient records for CCR, you are going to need RxNorm. For Meaningful Use, you are required to have RxNorm for various purposes.
What does this release contain?
This release contains Fileman files corresponding to most of public domain RxNorm (archived data is not loaded into VISTA). It also contains utilities for querying RxNorm for specific information and a utility to add drugs to the drug files automatically based on an RxNorm number.
It's important to note that the public domain RxNorm files here differ from the NLM prescribable subset of RxNorm. While both are public domain, the prescribable subset does not contain the VA datasets that enable translation between VISTA and RxNorm. These are available in the full RxNorm package from the NLM. Public domain corresponds to UMLS Restriction Level 0. Read further below to see how to get proprietary codes into your data file like First Databank GCNs and SNOMED codes.
How much does this cost?
This release is licensed under AGPL v3.0 and is free as in free beer. Commercial use for commercial entities running VISTA can be obtained for $2000 per VISTA instance; commercial license can be found here: RxNormForVista/CommercialLicense. Support costs for monthly updates are $100/month per VISTA instance both for AGPL and commercial users.
How can I install RxNorm on VISTA/RPMS?
Before you install
YOU MUST READ THIS BEFORE INSTALLING
The RxNorm globals file is about 2.5 GB, and when loaded it takes up about 2.5GB. You therefore need to have at least 10 GB on your drive.
It is very highly recommended that you load and maintain RxNorm in the ^C0CRXN global in an UNJOURNALED portion of your Mumps Database. The data is reproducible and does not need to be journaled; and journaling it is very expensive in terms of journal size. In addition, once loaded, it will not change until the next load. Maintaining back-ups of your database will be easier this way.
RxNorm contains very long text values. You must ensure that your Mumps database can do at least 16,000 characters in a single global node.
On GT.M V6.0, create the following Global File Definition, and run it with GDE:
add    -segment C0CRXN  -file="/path/to/your/globals/c0crxn.dat" -allocation=200000 
       -block_size=4096 -lock_space=100 -extension_count=1000  -global_buffer_count=8192
add    -region  C0CRXN  -record_size=16384 -key_size=255 -dyn=C0CRXN
add    -name    C0CRXN  -region=C0CRXN
If you use GT.M less than V6.0, you must make sure that your block size and record size synchronize since GT.M couldn't span blocks then.
On Cache, create a new database, and map C0CRXN to it. By default Cache databases allow 32K of global node length.
Installation
As of version 0.02 (currently the version 2.2), this version changes how you would do installation. You now install the dictionary file (which you need to only install once unless it changes) and then install the data file, which changes month to month. The data installation now takes 30 minutes to 60 minutes since it is transported as globals. 
Installation Order:
- DD and routines: source:ccr/trunk/rxnorm/tags/2.2/RXNORM_FOR_VISTA_2P2.KID
 - Public Domain Data (unzip with 7z first): source:ccr/trunk/rxnorm/tags/2.2/RXNORM_FOR_VISTA_PD_DATA_11P2013.GKID.7z
 
Installation is a normal KIDS file installation. There is nothing special about it.
Contents of the KIDS file
File list
| Name | Number | Global | RxNorm NLM File | Approx # of entries at the end of 2013 | 
| RXNORM CONCEPT NAMES AND SOURCES | 176.001 | ^C0CRXN(176.001) | RXNCONSO.RRF | 1,000,000 | 
| RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES | 176.002 | ^C0CRXN(176.002) | RXNSAT.RRF | 7,000,000 | 
| RXNORM SOURCE INFORMATION | 176.003 | ^C0CRXN(176.003) | RXNSAB.RRF | 13 | 
| RXNORM SEMANTIC TYPES | 176.004 | ^C0CRXN(176.004) | RXNSTY.RRF | 400,000 | 
| RXNORM RELATED CONCEPTS | 176.005 | ^C0CRXN(176.005) | RXNREL.RRF | 5,000,000 | 
| RXNORM DOCUMENTATION FOR ABBREVIATED VALUES | 176.006 | ^C0CRXN(176.006) | RXNDOC.RRF | 3,000 | 
Pharmacy Files Computed Fields
| File Name | File number | Field Name | Field Number | Description | 
| DRUG | 50 | RXNCUI | 176.001 | Pointer to the Semantic Clinical Drug in 176.001 that corresponds to this drug. | 
| DRUG | 50 | RXN SCD NAME | 176.002 | Canonical Clinical Drug name according to RxNorm. | 
| VA PRODUCT | 50.68 | COMPUTED GCNSEQNO | 176.001 | Multiple of GCNs corresponding to a VA PRODUCT | 
Routines
| Routine | Description | Special Remarks | 
| C0CRXNnn | Complied cross reference routines (12 routines on Fileman 22.2) | Routines compiled dynamically; not shipped in KIDS build. | 
| C0CRXNRD | Import RxNorm data from NLM files | See below for API | 
| C0CRXNLK | RxNorm mapping APIs for VISTA | See below for APIs | 
| C0CRXNAD | Add a drug to drug file based on RxNorm code | See below for API | 
What can I do with RxNorm
User Mode use
All files are shipped with no file access code security for reading, and as such they can be read by all users if they are granted access to Fileman and don't have Kernel Part III security turned on. If Kernel Part III security is turned on, you will need to grant users access to files 176.001 through 176.006. If you don't know what Part III security is, then you don't have it.
Concepts
Users can query the Concepts file by typing the concept name (usually a drug generic name or brand name) or a drug code (such as a VUID). Here are a couple of examples:
Search for all entries that have the word PROZAC in them:
Select RXNORM CONCEPT NAMES AND SOURCES RXCUI: PROZAC
     1   PROZAC  58827     MSH     PEN     D005473     Prozac
     2   PROZAC  58827     RXNORM     TMSY     58827     PROzac
     3   PROZAC  58827     RXNORM     BN     58827     Prozac
     4   PROZAC 10 MG (FLUOXETINE HYDRO  205535     RXNORM     SY     205535    
 Prozac 10 MG (fluoxetine hydrochloride 11.2 MG) Oral Capsule
     5   PROZAC 10 MG (FLUOXETINE HYDRO  205535     RXNORM     TMSY     205535  
   PROzac 10 MG (FLUoxetine hydrochloride 11.2 MG) Oral Capsule
Search for the VUID for Prozac after we obtain it from the NDF:
OUTPUT FROM WHAT FILE: RXNORM CONCEPT NAMES AND SOURCES// 50.68  VA PRODUCT
                                          (23779 entries)
Select VA PRODUCT NAME: FLUOXETINE
     1   FLUOXETINE HCL 10MG CAP  
     2   FLUOXETINE HCL 10MG CAP,UD  
     3   FLUOXETINE HCL 10MG TAB  
     4   FLUOXETINE HCL 20MG CAP  
     5   FLUOXETINE HCL 20MG CAP,UD  
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-5: 4  FLUOXETINE HCL 20MG CAP
ANOTHER ONE: 
STANDARD CAPTIONED OUTPUT? Yes//   (Yes)
Include COMPUTED fields:  (N/Y/R/B): NO//  - No record number (IEN), no Computed
 Fields
DISPLAY AUDIT TRAIL? No//   NO
NAME: FLUOXETINE HCL 20MG CAP           VA GENERIC NAME: FLUOXETINE
  DOSAGE FORM: CAP,ORAL                 STRENGTH: 20
  UNITS: MG
  NATIONAL FORMULARY NAME: FLUOXETINE CAP,ORAL
  VA PRINT NAME: FLUOXETINE HCL 20MG CAP
  VA PRODUCT IDENTIFIER: F0049          TRANSMIT TO CMOP: YES
  VA DISPENSE UNIT: CAP
ACTIVE INGREDIENTS: FLUOXETINE HYDROCHLORIDE
  STRENGTH: 20                          UNITS: MG
  PRIMARY VA DRUG CLASS: CN609          NATIONAL FORMULARY INDICATOR: YES
  CS FEDERAL SCHEDULE: Unscheduled      SINGLE/MULTI SOURCE PRODUCT: Multisource
  DSS NUMBER: 1                         OVERRIDE DF DOSE CHK EXCLUSION: NO
  CREATE DEFAULT POSSIBLE DOSAGE: YES
  FDA MED GUIDE: Fluoxetine_Cap_(Generic)_(2009).pdf
  SERVICE CODE: 608147
EFFECTIVE DATE/TIME: MAR 10, 2005       STATUS: ACTIVE
  VUID: 4008621                         MASTER ENTRY FOR VUID: YES
Select VA PRODUCT NAME: 
Select OPTION: INQUIRE TO FILE ENTRIES  
OUTPUT FROM WHAT FILE: VA PRODUCT// 176.001  RXNORM CONCEPT NAMES AND SOURCES
                                          (687143 entries)
Select RXNORM CONCEPT NAMES AND SOURCES RXCUI: 4008621
     1   4008621  310385     VANDF     CD     4008621     FLUOXETINE HCL 20MG CA
P
     2   4008621  310385     VANDF     AB     4008621     FLUOXETINE HCL 20MG CA
P
CHOOSE 1-2: 1  310385     VANDF     CD     4008621     FLUOXETINE HCL 20MG CAP
ANOTHER ONE: 
STANDARD CAPTIONED OUTPUT? Yes//   (Yes)
Include COMPUTED fields:  (N/Y/R/B): NO//  - No record number (IEN), no Computed
 Fields
RXCUI: 310385                           LAT: ENG
  RXAUI: 1424227                        SAB: VANDF
  TTY: CD                               CODE: 4008621
  STR: FLUOXETINE HCL 20MG CAP          SUPPRESS: N
Atoms
To search the Atoms file, chose file 176.002. You can search by the type of Atom or the Atom itself. The most useful thing to search here are NDC numbers. Here's a search for a Prozac NDC.
Select RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES ATN: 00777310502 NDC RXNOR M 00777310502 ANOTHER ONE: STANDARD CAPTIONED OUTPUT? Yes// (Yes) Include COMPUTED fields: (N/Y/R/B): NO// - No record number (IEN), no Computed Fields ATN: NDC RXAUI: 787787 STYPE: AUI CODE: 104849 RXCUI: 104849 SAB: RXNORM ATV: 00777310502 SUPPRESS: N CVF: 4096
You can also enter an RxNorm concept code to get all available atoms about a drug. Using the RXCUI we just obtained above, we can get an exhaustive list of everything about it:
OUTPUT FROM WHAT FILE: RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES// 
         
Select RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES ATN: 104849
     1   104849  NST     MTHFDA     20 MG
     2   104849  NDC     MTHFDA     054868-0511-*1
     3   104849  NDC     MTHFDA     053002-1016-*0
     4   104849  DRT     MTHFDA     ORAL
     5   104849  NDC     RXNORM     00777310502
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-5: 
     6   104849  NDC     MTHFDA     016590-*843-90
     7   104849  DDF     MTHFDA     CAPSULE
     8   104849  NDC     MTHFDA     000002-3105-14
     9   104849  NDC     MTHFDA     051655-*390-25
     10  104849  NDC     MTHFDA     054868-0511-*5
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-10: 
     11  104849  DDF     MTHFDA     CAPSULE, GELATIN COATED
     12  104849  MARKETING_STATUS     MTHSPL     active
     13  104849  DST     MTHFDA     20 MG
     14  104849  DDF     MTHFDA     CAPSULE
     15  104849  NDC     MTHFDA     054868-0511-*2
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-15: 
     16  104849  NDC     RXNORM     58864091730
     17  104849  TRN     MTHFDA     PROZAC FLUOXETINE CAPSULES USP
     18  104849  DDF     MTHFDA     CAPSULE, GELATIN COATED
     19  104849  DRT     MTHFDA     ORAL
     20  104849  DST     MTHFDA     20 MG
Press <RETURN> to see more, '^' to exit this list, OR
CHOOSE 1-20: 
     21  104849  DRT     MTHFDA     ORAL
     22  104849  DRT     MTHFDA     ORAL
     23  104849  DST     MTHFDA     20 MG
     24  104849  DDF     MTHFDA     CAPSULE, GELATIN COATED
     25  104849  NDC     MTHFDA     000077-3105-07
Sources
File 176.004 is the Sources file. It isn't that useful except to check the proprietariness of a source or to check when it was last updated for your database. Here's an example:
OUTPUT FROM WHAT FILE: RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES// 176.003  RXNO
RM SOURCE INFORMATION                     (13 entries)
Select RXNORM SOURCE INFORMATION RSAB: ?
 Answer with RXNORM SOURCE INFORMATION RSAB
 Do you want the entire 13-Entry RXNORM SOURCE INFORMATION List? y  (Yes)
   Choose from:
   ATC        Anatomical Therapeutic Chemical Classification System     3
   GS        Gold Standard Drug Database     3
   MDDB        Master Drug Data Base     3
   MMSL        Multum MediSource Lexicon     1
   MMX        Micromedex RED BOOK     3
   MSH        Medical Subject Headings, 2013_2013_01_21     0
   MTHFDA        Metathesaurus FDA National Drug Code Directory     0
   MTHSPL        Metathesaurus FDA Structured Product Labels     0
   NDDF        FDB MedKnowledge (formerly NDDF Plus)     3
   NDFRT        National Drug File     0
   RXNORM        RxNorm Vocabulary     0
   SNOMEDCT_US        US Edition of SNOMED CT     9
   VANDF        Veterans Health Administration National Drug File     0
    
Select RXNORM SOURCE INFORMATION RSAB: VANDF       Veterans Health Administratio
n National Drug File     0
ANOTHER ONE: 
STANDARD CAPTIONED OUTPUT? Yes//   (Yes)
Include COMPUTED fields:  (N/Y/R/B): NO//  - No record number (IEN), no Computed
 Fields
RSAB: VANDF                             RCUI: C1140288
  VSAB: VANDF_2013_09_27                VCUI: C3530306
  SON: Veterans Health Administration National Drug File
  SF: VANDF                             SVER: 2013_09_27
  IMETA: 2013AA
  SLC: Michael Lincoln, M.D.;;U.S. Department of Veterans Affairs, Veterans Heal
th Administration;;;Washington;DC;United States;;;;michael.lincoln@med.va.gov;ht
tp://www.pbm.va.gov/default.aspx
  SCC: Michael Lincoln, M.D.;;;;;;;;;;;michael.lincoln@med.va.gov;http://www.pbm
.va.gov/default.aspx                    SRL: 0
  TTYL: IN,CD,AB,PT,MTH_RXN_CD
  ATNL: VAC,DRUG_CLASS_TYPE,VA_CLASS_NAME,DDF,NFI,DCSA,PARENT_CLASS,VMO,SNGL_OR_
MULT_SRC_PRD,EXCLUDE_DI_CHECK,NDF_TRANSMIT_TO_CMOP,NF_INACTIVATE,VA_DISPENSE_UNI
T,VA_GENERIC_NAME,NF_NAME,NDC           LAT: ENG
  CENC: UTF-8                           CURVER: Y
  SABIN: Y                              SSN: National Drug File
  SCIT: ;;;;Veterans Health Administration National Drug File;;;September 27, 20
13;Washington, DC;U.S. Department of Veterans Affairs;;;;;;;;
According to this, RxNorm was last updated with VA sources on September 27th 2013. An SRL of 0 means that the source is public domain.
Relationships
RxNorm relationships are not easy to query in this version due to Fileman not behaving well with compound B indexes. But they are doable if you know what you are searching for.
Let's find out the generic drug concept that correspond to the RxNorm code we obtained via the NDC for Prozac 20mg:
Select RXNORM RELATED CONCEPTS RXCUI1: 104849
                                 RELA: has_tradename
                               RXCUI2: 
     1   104849  
     2   1048498  
     3   1048499  
CHOOSE 1-3: 1  RXNORM
Select Another RXNORM RELATED CONCEPTS RXCUI1: 
                                         RELA: 
                                       RXCUI2: 
STANDARD CAPTIONED OUTPUT? Yes//   (Yes)
Include COMPUTED fields:  (N/Y/R/B): NO//  - No record number (IEN), no Computed
 Fields
SAB: RXNORM                             STYPE1: CUI
  REL: RB                               RXCUI2: 310385
  STYPE2: CUI                           RELA: has_tradename
  RUI: 4086805                          RXCUI1: 104849
  SUPPRESS: N                           CVF: 4096
To confirm that we indeed got the generic, we jump over to 176.001:
OUTPUT FROM WHAT FILE: RXNORM RELATED CONCEPTS// 176.001  RXNORM CONCEPT NAMES A
ND SOURCES                                (687143 entries)
Select RXNORM CONCEPT NAMES AND SOURCES RXCUI: 310385
     1   310385       RXNORM     SCD     310385     Fluoxetine 20 MG Oral Capsul
e
     2   310385       VANDF     CD     4008621     FLUOXETINE HCL 20MG CAP
     3   310385       VANDF     CD     4013939     FLUOXETINE HCL 20MG CAP,UD
     4   310385       MTHFDA     CD     272755     FLUOXETINE / FLUOXETINE HYDRO
CHLORIDE ORAL CAPSULE
     5   310385       MTHFDA     CD     235824     FLUOXETINE 20 MG ORAL CAPSULE
The Semantic Clinical Drug entry (SCD) for RxNorm means that we hit the jackpot: That is indeed the canonical generic entry for the branded Prozac 20mg capsule.
Programmer APIs
Update API
To update RxNorm to a newer monthly version from the NLM, run the following:
D IMPORT^C0CRXNRD("/path/to/rrf/folder/",optional include restricted/copyrighted sources (1 -> yes). Default is no.)
If you need FDB or SNOMED-CT codes, you need to pass in the second parameter.
Look-up APIs
This is a list of APIs available for programmers for converting one terminology to another. Some APIs return multiple results. If so, they will be delimited by "".
$$EXIST^C0CRXNLK(RXN) $$ Public - Does this RxNorm CUI exist? $$GCN2RXN^C0CRXNLK(GCN) $$ Public - Get RxNorm CUI using GCN $$RXN2GCN^C0CRXNLK(RXNCUI) $$ Public - Get GCN(s) given an RxNorm Number $$RXN2VUI^C0CRXNLK(RXNCUI) $$ Public - Get VUID(s) for given RXNCUI for Clinical Drug $$VUI2VAP^C0CRXNLK(VUID) $$ Public - Get VA Product IEN(s) from VUID $$VAP2MED^C0CRXNLK(VAPROD) $$ Public - Get Drug(s) using VA Product IEN $$RXN2MEDS^C0CRXNLK(RXNCUI) $$ Public - Convert RxNorm value to currently existing drugs in File 50. $$FDI2RXN^C0CRXNLK(BASE) $$ Public - Get RxNorm CUI for FDB Ingredient/Base $$RXN2VIN^C0CRXNLK(RXNCUI) $$ Public - Get VUID Ingredient for RxNorm CUI $$VIN2VAG^C0CRXNLK(VUID) $$ Public - Get VA Generic for VUID Ingredient $$FDI2VAG^C0CRXNLK(BASE) $$ Public - Get VA Generic for FDB Ingredient/Base $$VIN2DIN^C0CRXNLK(VUID) $$ Public - Get Drug Ingredient for VUID Ingredient $$FDI2DIN^C0CRXNLK(BASE) $$ Public - Get Drug Ingredient for FDB Ingredient/Base $$VUI2RXN^C0CRXNLK(VUID) $$ Public - Get RXNCUI for VUID (any VUID type) $$VUI2GCN^C0CRXNLK(VUID) $$ Public - Get GCNs for a given VUID (any VUID type) $$MED2RXN^C0CRXNLK(DA) $$ Public - Get RxNorm CUI for Drug $$MED2SCDN^C0CRXNLK(DA) $$ Public - Medication to Semantic Clinical Drug Name $$RXN2NDI^C0CRXNLK(RXNCUI) $$ Public - Get NDDF Ingredient for RXNCUI $$VIN2NDI^C0CRXNLK(VUID) $$ Public - Get NDDF Ingredient for VUID $$NDC2RXN^C0CRXNLK(NDC) $$ Public - Get RxCUI given the NDC $$ISBRAND^C0CRXNLK(RXN) $$ Public - Is this RxCUI for a brand drug? $$BR2GEN^C0CRXNLK(RXN) $$ Public - Convert Brand RxCUI to Generic RxCUI (many to 1) $$GEN2BR^C0CRXNLK(RXN) $$ Public - Convert Generic RxCUI to Brand RxCUIs (1 to many). $$RXN2BNS^C0CRXNLK(RXN) $$ Public - Get all Brand Names associated with an RXN $$RXN2NDC^C0CRXNLK(RXN) $$ Public - Get NDC codes for RxNorm code
Here's an example call to return all active NDCs for brand name Prozac 20mg capsules:
GTM>W $$RXN2NDC^C0CRXNLK(104849) 00777310502^58864091730^58016082830^58016082820^66105056403^58016082810^58016082890^52959023320 ^54868051105^00777310507^52959023310^00247037204^58864097130^55289021522^54868051101^52959023314 ^58016082840^52959023340^52959023350^54868051102^00247037210^00777310530^52959023330^54868051100 ^58016082860^16590084390^52959023300^58016082800
C0CRXNLK comes with Unit Tests. To run them, make sure M-Unit is installed and run ^C0CRXNLK from the top.
Automatic Drug Addition API using RxNorm
To add a drug to the drug file using the RxNorm CUI, call the following entry point:
W $$ADDDRUG^C0CRXNLK(RXNCUI for Drug, optional NDC to file, optional barcode to put for BCMA)
Please note that this routine does not check to see if the drug is already there; it will add it again.
This routine can be enhanced to use the barcode to figure out which drug it is that is being added from RxNorm. As such, it will enable you to add drugs to the drug file by just bar-code scanning them.
Technical Details
The following are technical details for this package.
Package File Entry
NAME: RXNORM FOR VISTA PREFIX: C0CR SHORT DESCRIPTION: RxNorm data dictionaries and loading routines for VISTA FILE: RXNORM CONCEPT NAMES AND SOURCES FILE: RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES FILE: RXNORM SOURCE INFORMATION FILE: RXNORM SEMANTIC TYPES FILE: RXNORM RELATED CONCEPTS FILE: RXNORM DOCUMENTATION FOR ABBREVIATED VALUES VERSION: 2.2 DATE DISTRIBUTED: NOV 14, 2013
Dependencies
- Kernel 8
 - Fileman 22.2 (Fileman 22.0 can be used but it may not be used to edit the data definitions).
 
Routine list
Routine Summary
Checksums shown are NEW Checksums
The following routines are included in this patch.  The second line of each
of these routines now looks like:
 ;;2.2;RXNORM FOR VISTA;**[Patch List]**;Nov 14, 2013;Build 8
                 Checksums
Routine         Old         New        Patch List
C0CRXNAD        n/a      18747982    
C0CRXNLK        n/a      98280702    
C0CRXNRD        n/a      42158088    
In addition, routines C0CRXNnn (where nn is a number), are created automatically as Fileman compiles the RxNorm cross-references.
Description of routines and overall flow
The three routines are relatively self-contained. C0CRXNRD load RxNorm codes from the RRF files supplied by NLM. C0CRXNLK has various translation utilities. C0CRXNAD add a drug to the drug file based on an RxNorm code.
Modifications to National VA distributed routines
None.
File list
| Name | Number | Global | RxNorm NLM File | Approx # of entries at the end of 2013 | 
| RXNORM CONCEPT NAMES AND SOURCES | 176.001 | ^C0CRXN(176.001) | RXNCONSO.RRF | 1,000,000 | 
| RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES | 176.002 | ^C0CRXN(176.002) | RXNSAT.RRF | 7,000,000 | 
| RXNORM SOURCE INFORMATION | 176.003 | ^C0CRXN(176.003) | RXNSAB.RRF | 13 | 
| RXNORM SEMANTIC TYPES | 176.004 | ^C0CRXN(176.004) | RXNSTY.RRF | 400,000 | 
| RXNORM RELATED CONCEPTS | 176.005 | ^C0CRXN(176.005) | RXNREL.RRF | 5,000,000 | 
| RXNORM DOCUMENTATION FOR ABBREVIATED VALUES | 176.006 | ^C0CRXN(176.006) | RXNDOC.RRF | 3,000 | 
Pharmacy Files Computed Fields
| File Name | File number | Field Name | Field Number | Description | 
| DRUG | 50 | RXNCUI | 176.001 | Pointer to the Semantic Clinical Drug in 176.001 that corresponds to this drug. | 
| DRUG | 50 | RXN SCD NAME | 176.002 | Canonical Clinical Drug name according to RxNorm. | 
| VA PRODUCT | 50.68 | COMPUTED GCNSEQNO | 176.001 | Multiple of GCNs corresponding to a VA PRODUCT | 
Exported Options
None included.
Archiving and Purging
Not supported.
Supported APIs
All non-testing APIs in C0CRXNLK are supported.
D IMPORT^C0CRXNRD
$$ADDDRUG^C0CRXNAD
For details, see the Programmer APIs section.
External Interfaces, External Relations
Utility functions in Fileman and Kernel.
Access to Drug, VA Product and VA Generic files for various computations in C0CRXNLK.
Modifications of Drug and VA Product Data Dictionaries to add convenience computed fields to tie the files with RxNorm.
Internal relations
None.
Package wide-variables
None.
Security
This software implements no security of its own beyond Fileman access codes on the fields which can be seen below in the File Structure section. None of the data contained is sensitive in any way.
File Structure
All files have only a zero node for each entry and correspond as much as possible to the RxNorm file format, except that the '|' has been substitued with a "^". The exception to that rule is when a file's first field cannot be the .01 because it's missing for some entries. In this case, the first field and a key field are switch so that the key field can be the .01.
CONDENSED DATA DICTIONARY---RXNORM CONCEPT NAMES AND SOURCES FILE (#176.001)UCI: F201303,ICARUS 
STORED IN: ^C0CRXN(176.001,                               11/21/13    PAGE 1
------------------------------------------------------------------------------------------------------------------------------------
                                                  FILE SECURITY
                                   DD SECURITY    : @     DELETE SECURITY: 
                                   READ SECURITY  :       LAYGO SECURITY : 
                                   WRITE SECURITY : @
CROSS REFERENCED BY:
     
FILE #176.001
INDEXED BY:       RXCUI (B), CODE (CODE), SAB & TTY & CODE & RXCUI (STC), STR (STR), SAB & TTY & RXCUI & CODE (STX)
                                 FILE STRUCTURE
FIELD     FIELD
NUMBER    NAME
.01       RXCUI (RFJ8), [0;1]
.02       LAT (RFJ3), [0;2]
.03       TS (FJ1), [0;3]
.04       LUI (FJ8), [0;4]
.05       STT (FJ3), [0;5]
.06       SUI (FJ8), [0;6]
.07       ISPREF (FJ1), [0;7]
.08       RXAUI (RFJ8), [0;8]
.09       SAUI (FJ50), [0;9]
.1        SCUI (FJ50), [0;10]
.11       SDUI (FJ50), [0;11]
.12       SAB (RFJ20), [0;12]
.13       TTY (RFJ20), [0;13]
.14       CODE (RFJ50), [0;14]
.15       STR (RFJ3000), [0;15]
.16       SRL (FJ10), [0;16]
.17       SUPPRESS (FJ1), [0;17]
.18       CVF (FJ50), [0;18]
50        COMPUTED DRUGS (Cmp50), [ ; ]
CONDENSED DATA DICTIONARY---RXNORM SIMPLE CONCEPT AND ATOM ATTRIBUTES FILE (#176.002)UCI: F201303,ICARUS 
STORED IN: ^C0CRXN(176.002,                               11/21/13    PAGE 1
------------------------------------------------------------------------------------------------------------------------------------
                                                  FILE SECURITY
                                   DD SECURITY    : @     DELETE SECURITY: @
                                   READ SECURITY  :       LAYGO SECURITY : @
                                   WRITE SECURITY : @
CROSS REFERENCED BY:
      ATN(XATN)  ATV(XATV) 
FILE #176.002
INDEXED BY:       RXCUI & SAB & ATN & ATV (ANDFRT), SAB & ATN & ATV & RXCUI (ASAA), SAB & ATN & RXCUI & ATV (ASAR), RXCUI (RXCUI)
                                 FILE STRUCTURE
FIELD     FIELD
NUMBER    NAME
.01       ATN (RFJ1000), [0;1]
.02       LUI (FJ8), [0;2]
.03       SUI (FJ8), [0;3]
.04       RXAUI (FJ8), [0;4]
.05       STYPE (FJ50), [0;5]
.06       CODE (FJ50), [0;6]
.07       ATUI (FJ11), [0;7]
.08       SATUI (FJ50), [0;8]
.09       RXCUI (FJ8), [0;9]
.1        SAB (RFJ20), [0;10]
.11       ATV (FJ4000), [0;11]
.12       SUPPRESS (FJ1), [0;12]
.13       CVF (FJ50), [0;13]
CONDENSED DATA DICTIONARY---RXNORM SOURCE INFORMATION FILE (#176.003)UCI: F201303,ICARUS 
STORED IN: ^C0CRXN(176.003,                               11/21/13    PAGE 1
------------------------------------------------------------------------------------------------------------------------------------
                                                  FILE SECURITY
                                   DD SECURITY    : @     DELETE SECURITY: @
                                   READ SECURITY  :       LAYGO SECURITY : @
                                   WRITE SECURITY : @
CROSS REFERENCED BY:
      RSAB(B) 
                                 FILE STRUCTURE
FIELD     FIELD
NUMBER    NAME
.01       RSAB (RFJ20), [0;1]
.02       RCUI (FJ8), [0;2]
.03       VSAB (FJ40), [0;3]
.04       VCUI (FJ8), [0;4]
.05       SON (FJ3000), [0;5]
.06       SF (FJ20), [0;6]
.07       SVER (FJ20), [0;7]
.08       VSTART (FJ10), [0;8]
.09       VEND (FJ10), [0;9]
.1        IMETA (FJ10), [0;10]
.11       RMETA (FJ10), [0;11]
.12       SLC (FJ1000), [0;12]
.13       SCC (FJ1000), [0;13]
.14       SRL (NJ10,0), [0;14]
.15       TFR (NJ10,0), [0;15]
.16       CFR (NJ10,0), [0;16]
.17       CXTY (FJ50), [0;17]
.18       TTYL (FJ300), [0;18]
.19       ATNL (FJ1000), [0;19]
.2        LAT (FJ3), [0;20]
.21       CENC (FJ20), [0;21]
.22       CURVER (FJ1), [0;22]
.23       SABIN (FJ1), [0;23]
.24       SSN (FJ3000), [0;24]
.25       SCIT (FJ4000), [0;25]
CONDENSED DATA DICTIONARY---RXNORM SEMANTIC TYPES FILE (#176.004)UCI: F201303,ICARUS 
STORED IN: ^C0CRXN(176.004,                               11/21/13    PAGE 1
------------------------------------------------------------------------------------------------------------------------------------
                                                  FILE SECURITY
                                   DD SECURITY    : @     DELETE SECURITY: @
                                   READ SECURITY  :       LAYGO SECURITY : @
                                   WRITE SECURITY : @
CROSS REFERENCED BY:
      RXNCUI(B) 
                                 FILE STRUCTURE
FIELD     FIELD
NUMBER    NAME
.01       RXNCUI (RFJ8), [0;1]
.02       TUI (FJ4), [0;2]
.03       STN (FJ100), [0;3]
.04       STY (FJ50), [0;4]
.05       ATUI (FJ11), [0;5]
.06       CVF (FJ50), [0;6]
CONDENSED DATA DICTIONARY---RXNORM RELATED CONCEPTS FILE (#176.005)UCI: F201303,ICARUS 
STORED IN: ^C0CRXN(176.005,                               11/21/13    PAGE 1
------------------------------------------------------------------------------------------------------------------------------------
                                                  FILE SECURITY
                                   DD SECURITY    : @     DELETE SECURITY: @
                                   READ SECURITY  :       LAYGO SECURITY : @
                                   WRITE SECURITY : @
CROSS REFERENCED BY:
     
FILE #176.005
INDEXED BY:       RXCUI1 & RELA & RXCUI2 (B)
                                 FILE STRUCTURE
FIELD     FIELD
NUMBER    NAME
.01       SAB (RFJ20), [0;1]
.02       RXAUI1 (FJ8), [0;2]
.03       STYPE1 (FJ50), [0;3]
.04       REL (FJ4), [0;4]
.05       RXCUI2 (FJ8), [0;5]
.06       RXAUI2 (FJ8), [0;6]
.07       STYPE2 (FJ50), [0;7]
.08       RELA (FJ100), [0;8]
.09       RUI (FJ10), [0;9]
.1        SRUI (FJ50), [0;10]
.11       RXCUI1 (FJ8), [0;11]
.12       SL (FJ1000), [0;12]
.13       DIR (FJ1), [0;13]
.14       RG (FJ10), [0;14]
.15       SUPPRESS (FJ1), [0;15]
.16       CVF (FJ50), [0;16]
CONDENSED DATA DICTIONARY---RXNORM DOCUMENTATION FOR ABBREVIATED VALUES FILE (#176.006)UCI: F201303,ICARUS 
STORED IN: ^C0CRXN(176.006,                               11/21/13    PAGE 1
------------------------------------------------------------------------------------------------------------------------------------
                                                  FILE SECURITY
                                   DD SECURITY    : @     DELETE SECURITY: @
                                   READ SECURITY  :       LAYGO SECURITY : @
                                   WRITE SECURITY : @
CROSS REFERENCED BY:
      DOCKEY(B) 
                                 FILE STRUCTURE
FIELD     FIELD
NUMBER    NAME
.01       DOCKEY (RFJ50), [0;1]
.02       VALUE (FJ1000), [0;2]
.03       TYPE (FJ50), [0;3]
.04       EXPL (FJ1000), [0;4]
A crucial part of speed in the RxNorm operations is the extensive indexing on the files. What follows are the defined new-style indexes:
NEW-STYLE INDEX LIST -- FILE #176.001                                                                           11/21/13    PAGE 1
-----------------------------------------------------------------------------------------------------------------------------------
File #176.001
  New-Style Indexes:
  B (#983)    FIELD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  Regular B Index
        Set Logic:  S ^C0CRXN(176.001,"B",X,DA)=""
       Kill Logic:  K ^C0CRXN(176.001,"B",X,DA)
       Whole Kill:  K ^C0CRXN(176.001,"B")
             X(1):  RXCUI  (176.001,.01)  (Subscr 1)  (forwards)
  CODE (#1020)    FIELD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  Code Index
        Set Logic:  S ^C0CRXN(176.001,"CODE",X,DA)=""
       Kill Logic:  K ^C0CRXN(176.001,"CODE",X,DA)
       Whole Kill:  K ^C0CRXN(176.001,"CODE")
             X(1):  CODE  (176.001,.14)  (Subscr 1)  (forwards)
  STC (#1021)    RECORD    MUMPS    IR    LOOKUP & SORTING
      Short Descr:  Source Term Type Code Index
      Description:  Use this index to do compound searches on RxNorm Concepts.  
                     
                    Examples: SAB="NDDF", TTY="CDC", CODE={GCN} will give you the entry a clinical drug in First Database with GCN
                    Code {GCN}.  
                     
                    SAB="RXNORM", TTY="SCD", CODE={RXNORM} will give you the entry that is the Semantic Clinical Drug for the
                    RxNorm code.  
                     
                    SAB="VANDF", TTY="CD", CODE={VUID} will give you a drug that has that VUID.  
        Set Logic:  S ^C0CRXN(176.001,"STC",X(1),X(2),X(3),DA)=X(4)
       Kill Logic:  K ^C0CRXN(176.001,"STC",X(1),X(2),X(3),DA)
       Whole Kill:  K ^C0CRXN(176.001,"STC")
             X(1):  SAB  (176.001,.12)  (Subscr 1)  (forwards)
             X(2):  TTY  (176.001,.13)  (Subscr 2)  (forwards)
             X(3):  CODE  (176.001,.14)  (Subscr 3)  (forwards)
             X(4):  RXCUI  (176.001,.01)  (forwards)
  STR (#1022)    FIELD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  String Lookup Index
        Set Logic:  S ^C0CRXN(176.001,"STR",$E(X,1,30),DA)=""
       Kill Logic:  K ^C0CRXN(176.001,"STR",$E(X,1,30),DA)
       Whole Kill:  K ^C0CRXN(176.001,"STR")
             X(1):  STR  (176.001,.15)  (Subscr 1)  (Len 30)  (forwards)
                      Transform (Storage):  S X=$$UP^XLFSTR(X)
                       Transform (Lookup):  S X=$$UP^XLFSTR(X)
  STX (#1023)    RECORD    MUMPS    IR    LOOKUP & SORTING
      Short Descr:  Source Term Type RxCUI Code Index
      Description:  Use this index as a reverse of the STC index.  
                     
                    The STC index will give you an entry if you know the source and the type and the code. This index will give you
                    the codes if you know the source, the type, but not the code, but rather the RxNorm code.  
        Set Logic:  S ^C0CRXN(176.001,"STX",X(1),X(2),X(3),DA)=X(4)
       Kill Logic:  K ^C0CRXN(176.001,"STX",X(1),X(2),X(3),DA)
       Whole Kill:  K ^C0CRXN(176.001,"STX")
             X(1):  SAB  (176.001,.12)  (Subscr 1)  (forwards)
             X(2):  TTY  (176.001,.13)  (Subscr 2)  (forwards)
             X(3):  RXCUI  (176.001,.01)  (Subscr 3)  (forwards)
             X(4):  CODE  (176.001,.14)  (forwards)
NEW-STYLE INDEX LIST -- FILE #176.002                                                                           11/21/13    PAGE 1
-----------------------------------------------------------------------------------------------------------------------------------
File #176.002
  New-Style Indexes:
  ANDFRT (#1024)    RECORD    REGULAR    IR    SORTING ONLY
      Short Descr:  RxNorm NDFRT Index
        Set Logic:  S ^C0CRXN(176.002,"ANDFRT",X(1),$E(X(3),1,30),$E(X(4),1,30),DA)=""
         Set Cond:  S X=X(2)="NDFRT"
       Kill Logic:  K ^C0CRXN(176.002,"ANDFRT",X(1),$E(X(3),1,30),$E(X(4),1,30),DA)
        Kill Cond:  S X=X(2)="NDFRT"
       Whole Kill:  K ^C0CRXN(176.002,"ANDFRT")
             X(1):  RXCUI  (176.002,.09)  (Subscr 1)  (forwards)
             X(2):  SAB  (176.002,.1)  (forwards)
             X(3):  ATN  (176.002,.01)  (Subscr 2)  (Len 30)  (forwards)
             X(4):  ATV  (176.002,.11)  (Subscr 3)  (Len 30)  (forwards)
  ASAA (#1025)    RECORD    MUMPS    IR    SORTING ONLY
      Short Descr:  SAB (Source) ATN (Attribute Name) ATV (Value) Index
        Set Logic:  S ^C0CRXN(176.002,"ASAA",X(1),$E(X(2),1,30),$E(X(3),1,30),DA)=X(4)
       Kill Logic:  K ^C0CRXN(176.002,"ASAA",X(1),$E(X(2),1,30),$E(X(3),1,30),DA)
       Whole Kill:  K ^C0CRXN(176.002,"ASAA")
             X(1):  SAB  (176.002,.1)  (Subscr 1)  (forwards)
             X(2):  ATN  (176.002,.01)  (Subscr 2)  (Len 30)  (forwards)
             X(3):  ATV  (176.002,.11)  (Subscr 3)  (Len 30)  (forwards)
             X(4):  RXCUI  (176.002,.09)  (forwards)
  ASAR (#1026)    RECORD    MUMPS    IR    SORTING ONLY
      Short Descr:  SAB (Source) ATN (Attribute Name) RxCUI Index
        Set Logic:  S ^C0CRXN(176.002,"ASAR",X(1),$E(X(2),1,30),X(3),DA)=X(4)
       Kill Logic:  K ^C0CRXN(176.002,"ASAR",X(1),$E(X(2),1,30),X(3),DA)
       Whole Kill:  K ^C0CRXN(176.002,"ASAR")
             X(1):  SAB  (176.002,.1)  (Subscr 1)  (forwards)
             X(2):  ATN  (176.002,.01)  (Subscr 2)  (Len 30)  (forwards)
             X(3):  RXCUI  (176.002,.09)  (Subscr 3)  (forwards)
             X(4):  ATV  (176.002,.11)  (forwards)
  RXCUI (#1027)    FIELD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  RXCUI Index
        Set Logic:  S ^C0CRXN(176.002,"RXCUI",X,DA)=""
       Kill Logic:  K ^C0CRXN(176.002,"RXCUI",X,DA)
       Whole Kill:  K ^C0CRXN(176.002,"RXCUI")
             X(1):  RXCUI  (176.002,.09)  (Subscr 1)  (forwards)
NEW-STYLE INDEX LIST -- FILE #176.003                                                                           11/21/13    PAGE 1
-----------------------------------------------------------------------------------------------------------------------------------
NEW-STYLE INDEX LIST -- FILE #176.004                                                                           11/21/13    PAGE 1
-----------------------------------------------------------------------------------------------------------------------------------
NEW-STYLE INDEX LIST -- FILE #176.005                                                                           11/21/13    PAGE 1
-----------------------------------------------------------------------------------------------------------------------------------
File #176.005
  New-Style Indexes:
  B (#1028)    RECORD    REGULAR    IR    LOOKUP & SORTING
      Short Descr:  Compound Index for RXCUI1/RELA/RXCUI2
        Set Logic:  S ^C0CRXN(176.005,"B",X(1),X(2),X(3),DA)=""
       Kill Logic:  K ^C0CRXN(176.005,"B",X(1),X(2),X(3),DA)
       Whole Kill:  K ^C0CRXN(176.005,"B")
             X(1):  RXCUI1  (176.005,.11)  (Subscr 1)  (forwards)
             X(2):  RELA  (176.005,.08)  (Subscr 2)  (forwards)
             X(3):  RXCUI2  (176.005,.05)  (Subscr 3)  (forwards)
NEW-STYLE INDEX LIST -- FILE #176.006                                                                           11/21/13    PAGE 1
-----------------------------------------------------------------------------------------------------------------------------------
Attachments (1)
- RxNormForVista.png (127.8 KB ) - added by 12 years ago.
 
Download all attachments as: .zip

