The Allergy system is connected to many files to do allergies across the VistA, using this variable pointer:
120.8,1 GMR ALLERGY 0;3 VARIABLE POINTER
FILE ORDER PREFIX LAYGO MESSAGE
120.82 1 A n GMR ALLERGY
50.6 4 N n NATIONAL DRUG
50 5 D n LOCAL DRUG
50.416 2 I n DRUG INGREDIENTS
50.605 3 C n VA DRUG CLASS
LAST EDITED: JUN 22,1992
DESCRIPTION: This field is a variable pointer to help relate
this allergy to some record in one of the files
to which this field points. The files that are
pointed to are the GMR Allergies (120.82) file,
National Drug (50.6) file, Drug (50) file, Drug
Ingredients (50.416) file and VA Drug Class
(50.605) file.
RECORD INDEXES: "AHDR" (#358)
Let's take it one by one:
1. GMR ALLERGY has no RxNorm mappings. I think various commercial entities hand built a translation table, when feasible. Dander cannot be mapped to RxNorm, nor Eggs, nor "Sulfa" drugs.
2. NATIONAL DRUG points to the VA GENERIC file. That currently has no RxNorm mapping in VA's VistA, but if you use my code for VistA RxNorm or use RxNorm web services, it can be mapped about 99% of the time. There are edge cases that cannot be mapped.
3. LOCAL DRUG points to your local drug file. That by definition is non-standard, and cannot be mapped to RxNorm.
4. DRUG INGREDIENTS I don't know much about. I don't think they have RxNorm in them.
5. VA DRUG CLASS represents drug classes, as defined by the VA. They have no equivalent anywhere. RxNorm does not contain classes.
As you can see from this list, doing an RxNorm mapping is only possible for some "GMR ALLERGY" and pretty much all of NATIONAL DRUG.
If I am not mistaken, you work for one of the companies that customized VistA; you need to check what changes were made. But I am replying to you mainly about how VA VistA works, as I don't know what changes you made.
Allergy checking in VistA is done for medications when ordering twice: upon selection, and signature. It is also hand coded in some reminder dialogs for some Immunizations. And checking is also done in the pharmacy package. RxNorm is not involved in any of the checking.
--Sam