Building and Deploying SNOMEDCT

Information on building and deploying SNOMED.

Steps

  1. Download SNOMED and unpack into a local directory.  Note the path to the "Snapshot" directory
    1. NOTE: download the US Edition  (e.g. 20170901) - NOT the international edition
    2. https://www.nlm.nih.gov/healthit/snomedct/us_edition.html

  2. Configure a c:/umlsserver/config/config-rf2.properties file based on the config.properties from the prod-snomedct config project.
    1. Make sure database info and paths are configured properly for your environment (so as to not overwrite data from other builds).
    2. See this sample

  3. Run an eclipse process to load the entire SNOMED RF2
  4. Run the server in dev mode through eclipse to test,
    1. Run server with  -Drun.config.umls=/path/to/config.prop to be used
    2. Test by reviewing Delta file making sure any changes in the concepts & descriptions are represented properly in term server

  5. Export the mysql database → snomedct.sql, then zip it as snomedct-sql.zip and put into S3
    1. https://s3.console.aws.amazon.com/s3/buckets/wci1/TermServer/

  6. Log into a.terminology.tools and become the ec2-tomcat user (need sudo priveleges for "sudo -u ec2-tomcat -i")

  7. Update the landing page (e.g. "UMLS-Terminology-Server\config\prod-snomedct\src\main\resources\app\page\general\landingContent.html") to update the references to the latest version, e.g. 20170301 => 20170901

  8. Update and rebuild the code (master branch) - **Note: this may require merging from "develop"

    cd ~/snomed/code
    git pull
    mvn -Drun.config.label=ts -Dconfig.artifactId=term-server-config-prod-snomedct clean install
  9. Go to ~/snomed and look at README.txt.  See the "RELOADING DATA" section, e.g.

    RELOADING DATA
    
    * Undeploy and start maintenance page
    /bin/rm -rf /var/lib/tomcat8/work/Catalina/localhost/snomed-server-rest
    /bin/rm -rf /var/lib/tomcat8/webapps/snomed-server-rest
    /bin/rm -rf /var/lib/tomcat8/webapps/snomed-server-rest.war
    /opt/maint/getMaintHtml.sh start snomed
    
    # deploy data - ~30 min
    cd ~/snomed/data
    wget  https://s3.console.aws.amazon.com/s3/buckets/wci1/TermServer/snomedct-sql.zip
    ### Note: This may not work as intended. If not, 
    ### a) use Filezilla and upload the file to '/tmp'.
    ### b) use ec2-tomcat to copy the file from /tmp to ~/snomed/data
    
    ### NOTE: if the following step gets stuck (should take < 1 min) it means tomcat session has "Locked" the DB
    ### you're best bet is to:
    ### a) log in as root (sudo su from personal login) 
    ### b) bounce tomcat with "/sbin/service tomcat8 restart" 
    mysqls < ~/snomed/code/admin/mojo/src/main/resources/truncate_all.sql
    
    unzip -p snomedct-sql.zip "snomedct.sql" | mysqls &
    ---wait---
    mysqls < ~/fixWindowsExportData.sql
    /bin/rm ~/snomed/data/snomed-sql.zip
    
    # recompute indexes (make sure latest code is built) - ~40 min
    /bin/rm -rf /var/lib/tomcat8/indexes/snomedct/*
    cd ~/snomed/code/admin/lucene
    mvn install -PReindex  -Drun.config.umls=/home/ec2-tomcat/snomed/config/config.properties >&! mvn.log &
    ---wait---
    
    # recompute ECL indexes
    mvn install -PReindexEcl -Dterminology=SNOMEDCT -Dversion=latest -Drun.config.umls=/home/ec2-tomcat/snomed/config/config.properties >&! mvn.log &
    ---wait ---
    
    # Deploy and remove maintenance page
    /bin/cp -f ~/snomed/code/rest/target/umls-server-rest*war /var/lib/tomcat8/webapps/snomed-server-rest.war
    /opt/maint/getMaintHtml.sh stop snomed
    
    # Remember to remove snomed.sql when finished (it takes a lot of space)
    
    



  10. Laucnch https://snomed.terminology.tools and verify that it's up and running and loaded with data you expect (E.g. search for a SNOMED concept new in the latest version)

  11. Consider announcements new version
    1. UMLS Users List Template
    2. Twitter Template
    3. LinkedIn (see past post - may be a reply to a message on the SNOMED group)
    4. Update WCI resources.html - http://westcoastinformatics.com/resources.html

 

.