RxNorm and SNOMED installs unresponsive

pfwilliams wrote on Monday, September 24, 2012:

I have a fresh install of 4.1.1 updated to patch 4 running on Windows Server 2003 R2 Datacenter x64 SP2.
The behavior for either the RxNorm or SNOMED installations are identical.

Prior to copying the .zip file into the appropriate directory the screen will show :

Installed Release
    Not Installed

Staged Releases
    No files staged for installation
    Follow these instructions for installing or upgrading the following database: RXNORM

After moving the full monthly RxNorm file, or the international SNOMED file,  to where it belongs, it is detected as the 2 lines beneath “Staged Releases” are removed, but nothing takes their place. I let it sit an hour thinking maybe it was not being kind enough to show me a status/progress message, but nothing seems to be happening.  Is something failing to trigger?  Is there somewhere I can look to help diagnose this?
Thank you.

yehster wrote on Monday, September 24, 2012:

RXNORM and SNOMED both provide their own command line tools for loading their dataset.
https://www.nlm.nih.gov/research/umls/rxnorm/docs/2012/rxnorm_doco_full_2012-3.html#s13_0

You might have better luck if you just use the import mechanisms directly.

bradymiller wrote on Monday, September 24, 2012:

Hi pfwilliams,

If working, should see the filename with a INSTALL button below it in the Staged Releases section. If file is incorrect, then should show a UNSUPPORTED error there. If blank, guessing there is an issue with your filenames or they are empty files (for example, windows may of added an ending to them or modified them when your downloaded them or windows may not of downloaded anything except for the name since the files are rather large). What are the exact name of the files you now have in the contrib/rxnorm and contrib/snomed directories and what are the sizes of them?

-brady
OpenEMR

pfwilliams wrote on Tuesday, September 25, 2012:

I downloaded these files form the UMLS site:
RxNorm_full_09042012.zip (142mb)
SnomedCT_Release_INT_20120731.zip (548mb)
I was able to view the archive via the Windoews built-in or my stand-alone WinRAR.
AFter the first response here, I extracted the RxNorm file, copied the RRF files into teh /script folder, updated the variables in the batch file and ran it.  It executes two calls to MySQL passing two .sql files as input. It successfuly defines 9 rxn tables, and then loaded them.  I brought the “index” SQL into MySQL Workbench and executed it there building 13 indexes.
I was then able to use MySQL Workbench to browse and query the 9 new rxn tables in the Openemr database. I ran a count(*) on one table, a list of meds, and it returned 210,7xx rows.

Launching OpenEMR is still shows “Not installed” beneath “Installed release” and I don’t seem able to access the list in the patient meds area. I don;t know if I need to flip a flag in some table, or in an .ini or .cfg file, or change a registry entry to get OpenEMR to recognize the tables exist. Or, maybe I could retry the auto-install route if we think we have a fix for that mechanism.
Thank you.

pfwilliams wrote on Wednesday, September 26, 2012:

I still haven’t resolved how to either auto-install the SNOMED or RxNorm databases, or how to get OpenEMR to recognize when the tables were manually created. But, while struggling with this issue I encountered the following error message:

Your PHP MySQL library version mysql 5.0.10 differs from your MySQL server version 5.5.25a. This may cause unpredictable behavior.

Scanning my PC I find 8 instances of libmysql.dll:

VERSION SIZE       LOCATION
5.5.16.0    3.81mb  C:\Program Files (x86)\MySQL Workbench 5.2.40 CE
5.5.25.0    3.81mb  C:\xampp\php
5.1.41.0    1.61mb  C:\xampp\apache\bin
5.1.41.0    1.61mb  C:\xampp\mysql\bin
5.5.25.0    3.81mb  C:\xampp\mysql\lib
5.1.40.0    1.61mb  C:\xampp\perl\bin
5.1.??.?    1.61mb  C:\xampp\mysql\lib\opt
5.1.41.0    1.61mb  C:\xampp\perl\site\lib\auto\DBD\mysql

(The one .dll with question marks does not report it’s version, but is a few kb smaller than any other 5.1  version found)
I don’t know if this would be related to my external load issue, but I’m inclined to think I ought to overwrite some or all of the older dll’s with a copy of 5.5.25.0?
Thank you.

yehster wrote on Wednesday, September 26, 2012:

FYI: The RXNORM tables are not used for the medications list in the “off the shelf” version of OpenEMR.

This import process was added for the benefit of the ePrescribing module offered by I think Phyura.

bradymiller wrote on Thursday, September 27, 2012:

Hi,

Did the ICD9 and ICD10 imports work? (or were they already installed?, which is the case on the xampp/openemr package)

When a import happens, a record of it is stored in the standardized_tables_track sql table. If want to ensure you have same named rxnorm tables from your manual install check out following section which lists the rxnorm tables:
http://www.open-emr.org/wiki/index.php/OpenEMR_System_Architecture#Database

Regarding the auto-install, I did get a email from another user awhile back that may be related. There was an odd issue on a windows machine where the files were not showing up when using localhost in web browser, but were showing up when using a web browser from another computer to the server.

Note the SNOMED tables are now integrated with OpenEMR (ie. can use them as diagnosis codes), however the rxnorm tables are not yet integrated (but they will be by the time stage 2 Meaningful Use certification happens).

-brady
OpenEMR

pfwilliams wrote on Thursday, September 27, 2012:

Yes, the full install of 4.1.1 had the ICD9 and ICD10 codes preinstalled.
Opening those tabs in “Administration/Other/External Data Loads” does show one ICD9 staging file present, and five ICD10 files staged.  The RxNorm and SNOMED tabs still refuse to show any sort of message beneath “Staged Releases” when

I noticed the supported_external_dataloads table only has 7 rows.
Two are type ICD9 and five are type ICD10.
I thought I was on to something thinking that entries with exact filenames were required in this table for RxNorm and SNOMED to enable the auto-install, but OpenEMR’s behavior indicates otherwise.
If contrib/RxNorm contains no files or files with other than a .zip entension then I get the “No Files Staged” message.
A generically named .zip file like “test.zip” placed in contrib/RxNorm generates an “UNSUPPORTED Database Load File: <filename>” message.
But a file named “RxNorm_full_09042012.zip” (even if it is a 0-byte text file renamed to this) causes different behavior, where no text of any kind is displayed beneath “Staged Releases”.
So there is obviously a second location (table? flat file? hard-coded? online lookup?) other than the supported_external_dataloads table where acceptable .zip file names are validated. OpenEMR gets are far as recognizing the RxNorm archive, then seems to go to sleep. 
I did try from a remote XP Pro SP3 machine and had the same results.

bradymiller wrote on Friday, September 28, 2012:

Hi pfwilliams,

The rxnorm and snomed do not use the supported_external_dataloads table, because their file naming schemes have been consistent enough to pull version/date from them (on the other hand, cms has not uses consistent naming schemes, which is why Mac created that table that allows use of checksums in order to ensure the ICD9/ICD10 data files were correctly verified/identified). For both rxnorm/snomed all the verification/identification is done from just using the filenames.

Are you seeing anything in yout windows temporary directory (such as an RXNORM directory)? Perhaps there is a permission issue with the php temp directory on your install.

-brady
OpenEMR

pfwilliams wrote on Tuesday, October 23, 2012:

PHP is not my forte, but seems pretty straightforward.
I was tinkering with the list_staged.php module and came across something odd.
I was adding an echo() command in startegic places display variable values and trace program flow.
Just adding an echo() after the compare in line 179 caused evrything to display properly (with the additional of the echo’ed value)

if ($supported_file === 1) {
       echo("File(s) found:

")
The Staged Releases section, instead of being blank, now displays the filename and a functioning “Install” button.  Both the RxNorm and SNOmed options have come back to life.

It’s almost like some buffer or I/O stream is left in limbo and the echo forces a reset?
Am running : 4.1.1.(7), Windows Server 2003 R2 x64 SP2, and IE8.

pfwilliams wrote on Tuesday, October 23, 2012:

I wish one were allowed to edit their posts in this forum!
Regarding the prior post…
I did try inserting a sleep() statement to see if it was a timing issue, no success.
If, after line 179, I insert “echo(“x”);”, it corrects the issue, if I insert “echo(” x");" (with a leading space) it does not.

pfwilliams wrote on Tuesday, October 23, 2012:

Simply removing the whitespace between lines 180 ("?>") and 181 ("<div class=…") also fixes the issue.
Strange. It’s almost like the PHP parser is misbehaving for me.

yehster wrote on Tuesday, October 23, 2012:

I’m curious about whether you are using IIS or Apache for your web server and which version of php you are running.

pfwilliams wrote on Tuesday, October 23, 2012:

The description for the running Apache 2.4 service reads:
Apache/2.4.2 (Win32)  OpenSSL/1.0.1c  PHP/5.4.4

yehster wrote on Tuesday, October 23, 2012:

Well that make my hypothesis that the issue is with windows style vs. unix style Linefeeds less likely. 

bradymiller wrote on Friday, October 26, 2012:

Hi,

That is a very odd bug. If that is the case, then there lots of other places in that script(and other places in OpenEMR) that will potentially break (with whitespace between ?> and html code. Is it poor practice to do this???

-brady
OpenEMR

pfwilliams wrote on Monday, October 29, 2012:

Since this is not being widely reported, I begin to think it might be an environment/setting issue specific to Server 2003 R2 X64.
Is there a utility that will show the intermediate code generated by the PHP parser, so I can compare the differences generated by the production file (with whitespace) and the patched file (without whitespace)?