/** * ----------------------------------------------------------------------------------- * (c) 2010-2014 OpenInfobutton Project, Biomedical Informatics, University of Utah * Contact: {@code <andrew.iskander@utah.edu>} * Biomedical Informatics * 421 Wakara Way, Ste 140 * Salt Lake City, UT 84108-3514 * Day Phone: 1-801-581-4080 * ----------------------------------------------------------------------------------- * * @author Andrew Iskander {@code <andrew.iskander@utah.edu>} * @version Jun 13, 2014 */ package org.openinfobutton.service.matching; import org.junit.Assert; import org.junit.Test; import static org.hamcrest.CoreMatchers.containsString; import org.openinfobutton.schema.KnowledgeRequest; import org.openinfobutton.service.fixture.OibServiceTestFixture; import org.openinfobutton.service.utility.WebServiceUtility; import org.openinfobutton.service.web.KnowledgeRequestEngine; import org.springframework.beans.factory.annotation.Autowired; public class ContextMatcherTest extends OibServiceTestFixture { @Autowired KnowledgeRequestEngine engine; @Test public void cysticICD9RequestTest() { final KnowledgeRequest request = WebServiceUtility.getServiceRequest( cystitisICD9Request() ); final String xml = marshallXML( engine.getResponse( request ) ); Assert.assertThat( xml, containsString( "http://www.nlm.nih.gov/medlineplus/bladderdiseases.html" ) ); Assert.assertThat( xml, containsString( "http://www.elsinfobutton.com/info/1030?taskContext.c.c=PROBLISTREV&" + "taskContext.c.cs=2.16.840.1.113883.5.4&" + "mainSearchCriteria.v.c=595.9&mainSearchCriteria.v.cs=2.16.840.1.113883.6.103&" + "mainSearchCriteria.v.dn=Cystitis&" ) ); Assert.assertThat( xml, containsString( "http://www.uptodate.com/online/content/search.do?searchType=HL7&" + "taskContext.c.c=PROBLISTREV&" + "taskContext.c.cs=2.16.840.1.113883.5.4&" + "ageGroup.v.c=D008875&ageGroup.v.cs=2.16.840.1.113883.6.177&" + "patientPerson.administrativeGenderCode.c=F&" + "patientPerson.administrativeGenderCode.cs=2.16.840.1.113883.5.1&" + "mainSearchCriteria.v.c=595.9&mainSearchCriteria.v.cs=2.16.840.1.113883.6.103&" + "mainSearchCriteria.v.dn=Cystitis&" + "subTopic.v.c=Q000175&subTopic.v.cs=2.16.840.1.113883.6.177&" + "subTopic.v.dn=Diagnosis" ) ); Assert.assertThat( xml, containsString( "http://www.google.com/search?hl=en&btnI=Im+Feeling+Lucky&" + "q=Cystitis+site:www.mayoclinic.com/health/&" ) ); Assert.assertThat( xml, containsString( "http://www.ncbi.nlm.nih.gov/pubmed?term=hasabstract[text]" ) ); } @Test public void ageDecedentTest() { final KnowledgeRequest request = WebServiceUtility.getServiceRequest( decedentAgeRangeTest() ); final String xml = marshallXML( engine.getResponse( request ) ); Assert.assertThat( xml, containsString( "http://www.google.com/search?hl=en&btnI=Im+Feeling+Lucky&" + "q=ICD-9+237.79+site:www.medicalhomeportal.org&" ) ); } @Test public void subsetMatchingTest() { final KnowledgeRequest request = WebServiceUtility.getServiceRequest( subsetRequest() ); final String xml = marshallXML( engine.getResponse( request ) ); Assert.assertThat( xml, containsString( "VisualDx" ) ); } @Test public void cysticUMLSRequestTest() { final KnowledgeRequest request = WebServiceUtility.getServiceRequest( cystitisUMLSRequest() ); final String xml = marshallXML( engine.getResponse( request ) ); Assert.assertThat( xml, containsString( "http://www.uptodate.com/online/content/search.do?searchType=HL7&" + "taskContext.c.c=PROBLISTREV&taskContext.c.cs=2.16.840.1.113883.5.4&" + "ageGroup.v.c=D008875&ageGroup.v.cs=2.16.840.1.113883.6.177&" + "patientPerson.administrativeGenderCode.c=F&" + "patientPerson.administrativeGenderCode.cs=2.16.840.1.113883.5.1&" + "mainSearchCriteria.v.c=595.0&mainSearchCriteria.v.cs=2.16.840.1.113883.6.103&" + "mainSearchCriteria.v.dn=Acute cystitis&subTopic.v.c=Q000175&" + "subTopic.v.cs=2.16.840.1.113883.6.177&subTopic.v.dn=Diagnosis" ) ); } @Test public void clopidogrelRxNormRequestTest() { final KnowledgeRequest request = WebServiceUtility.getServiceRequest( clopidogrelRxNormRequest() ); final String xml = marshallXML( engine.getResponse( request ) ); Assert.assertThat( xml, containsString( "http://www.uptodate.com/online/content/search.do?searchType=HL7&" + "taskContext.c.c=MEDOE&taskContext.c.cs=2.16.840.1.113883.5.4&" + "ageGroup.v.c=D008875&ageGroup.v.cs=2.16.840.1.113883.6.177&" + "patientPerson.administrativeGenderCode.c=F&" + "patientPerson.administrativeGenderCode.cs=2.16.840.1.113883.5.1&" + "mainSearchCriteria.v.c=32968&mainSearchCriteria.v.cs=2.16.840.1.113883.6.88&" + "mainSearchCriteria.v.dn=clopidogrel&" ) ); } @Test public void neurofibromatosisSubsetRequestTest() { final KnowledgeRequest request = WebServiceUtility.getServiceRequest( neurofibromatosisSubsetRequest() ); final String xml = marshallXML( engine.getResponse( request ) ); Assert.assertThat( xml, containsString( "http://www.google.com/search?hl=en&btnI=Im+Feeling+Lucky&" + "q=Neurofibromatosis+site:http://ghr.nlm.nih.gov/&" ) ); Assert.assertThat( xml, containsString( "http://www.google.com/search?hl=en&btnI=Im+Feeling+Lucky&" + "q=ICD-9+237.7+site:www.medicalhomeportal.org&" ) ); } }