Skip to content
Snippets Groups Projects
PrescriptionInteractionAndAllergyTest.java 14.35 KiB
package edu.ncsu.csc.itrust.selenium;

import java.util.logging.Level;
import java.util.logging.Logger;
import java.util.concurrent.TimeUnit;
import org.junit.*;
import org.openqa.selenium.*;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
import org.openqa.selenium.support.ui.Select;
import edu.ncsu.csc.itrust.enums.TransactionType;

public class PrescriptionInteractionAndAllergyTest extends iTrustSeleniumTest {
	private WebDriver driver;
	private StringBuffer verificationErrors = new StringBuffer();

	@Before
	public void setUp() throws Exception {
		super.setUp();
		Logger logger = Logger.getLogger("");
		logger.setLevel(Level.OFF);
		gen.clearAllTables();
		gen.hcp0();
		gen.standardData();
		driver = new HtmlUnitDriver();
		driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
	}

	@Test
	public void testNoAllergyPrescribe() throws Exception {
		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("25");
		driver.findElement(By.xpath("//input[@value='25']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		driver.findElement(By.id("update")).click();

		assertLogged(TransactionType.OFFICE_VISIT_CREATE, 9000000000L, 25L, "");

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("01864020 - Nexium");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("10");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("03/01/2015");
		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys(
				"Take very frequently");
		driver.findElement(By.id("addprescription")).click();
		assertTrue(driver.getPageSource().contains("Nexium"));

	}

	@Test
	public void testAllergicPrescribe() throws Exception {
		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("25");
		driver.findElement(By.xpath("//input[@value='25']")).submit();

		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
		driver.findElement(By.id("update")).click();

		assertLogged(TransactionType.OFFICE_VISIT_CREATE, 9000000000L, 25L, "");

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("664662530 - Penicillin");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("60");
		driver.findElement(By.id("startDate")).clear();

		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2028");

		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys("Take frequently");
		driver.findElement(By.id("addprescription")).click();

		assertTrue(driver.getPageSource().contains("Penicillin"));

	}

	@Test
	public void testPrescribeOverrideCancel() throws Exception {
		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("100");
		driver.findElement(By.xpath("//input[@value='100']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();
		driver.findElement(By.id("update")).click();
		assertLogged(TransactionType.OFFICE_VISIT_CREATE, 9000000000L, 100L,
				"Office visit");

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("00882219 - Lantus");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("60");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2028");
		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys("Take frequently");
		driver.findElement(By.id("addprescription")).click();

		// Make sure this didn't get prescribed
		assertFalse(driver.getPageSource().contains("Lantus 02/26/2015"));

	}

	@Test
	public void testAllergicPrescribeTwice() throws Exception {

		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("100");
		driver.findElement(By.xpath("//input[@value='100']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		driver.findElement(By.id("update")).click();

		assertLogged(TransactionType.OFFICE_VISIT_CREATE, 9000000000L, 100L, "");

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("00882219 - Lantus");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("60");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2028");
		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys("Take frequently");
		driver.findElement(By.id("addprescription")).click();
		// Second assigning
		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("00882219 - Lantus");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("60");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2028");
		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys("Take frequently");
		driver.findElement(By.id("addprescription")).click();

		assertTrue(driver.getPageSource().contains("Lantus"));

	}

	@Test
	public void testInteractionAndAllergyPrescribe() throws Exception {

		// From old test.
		gen.patient2();
		gen.officeVisit4();
		gen.ndCodes1();
		gen.drugInteractions3();
		gen.ORCodes();

		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();
		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("2");
		driver.findElement(By.xpath("//input[@value='2']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		driver.findElement(By.id("update")).click();
		// assertLogged(TransactionType.OFFICE_VISIT_VIEW, 9000000000L, 2L,
		// "Office visit");

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("619580501 - Adefovir");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("600");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2025");

		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys(
				"Take every 0.01 minutes or with high fiber meals.");
		driver.findElement(By.id("addprescription")).click();

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("081096 - Aspirin");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("1000");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("03/01/2015");
		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys(
				"Take very frequently");
		driver.findElement(By.id("addprescription")).click();

		System.out.println("TITLE   : " + driver.getTitle());

		assertTrue(driver.getPageSource().contains("Aspirin"));
		assertTrue(driver.getPageSource().contains("Adefovir"));

	}

	@Test
	public void testAllergicPrescribeOverride() throws Exception {
		// From old test
		gen.patient2();
		gen.officeVisit4();
		gen.ndCodes1();
		gen.drugInteractions3();
		gen.ORCodes();

		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("2");
		driver.findElement(By.xpath("//input[@value='2']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		driver.findElement(By.id("update")).click();

		// assertLogged(TransactionType.OFFICE_VISIT_VIEW, 9000000000L, 2L,
		// "");

		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("619580501 - Adefovir");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("600");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2025");

		driver.findElement(By.id("instructions")).clear();
		driver.findElement(By.id("instructions")).sendKeys(
				"Take every 0.01 minutes or with high fiber meals.");
		driver.findElement(By.id("addprescription")).click();

		assertFalse(driver.getPageSource().contains("Adefovir 02/26/2015"));

	}

	@Test
	public void testInteractionCancel() throws Exception {
		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("1");
		driver.findElement(By.xpath("//input[@value='1']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		driver.findElement(By.id("update")).click();
		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("619580501 - Adefovir");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("600");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2025");

		assertFalse(driver.getPageSource().contains("Adefovir 02/26/2015"));

	}

	@Test
	public void testInteractionOverride() throws Exception {
		driver.get("http://localhost:8080/iTrust/");
		driver.findElement(By.id("j_username")).sendKeys("9000000000");
		driver.findElement(By.id("j_password")).clear();
		driver.findElement(By.id("j_password")).sendKeys("pw");
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		// driver.findElement(By.linkText("HCP 1")).click();

		driver.findElement(
				By.xpath("//div[@id='iTrustMenu']/div/div[4]/div/h2")).click();
		driver.findElement(By.linkText("Document Office Visit")).click();

		driver.findElement(By.name("UID_PATIENTID")).sendKeys("1");
		driver.findElement(By.xpath("//input[@value='1']")).submit();
		driver.findElement(By.cssSelector("input[type=\"submit\"]")).click();

		driver.findElement(By.id("update")).click();
		new Select(driver.findElement(By.id("medID")))
				.selectByVisibleText("619580501 - Adefovir");
		driver.findElement(By.id("dosage")).clear();
		driver.findElement(By.id("dosage")).sendKeys("600");
		driver.findElement(By.id("startDate")).clear();
		driver.findElement(By.id("startDate")).sendKeys("02/26/2015");
		driver.findElement(By.id("endDate")).clear();
		driver.findElement(By.id("endDate")).sendKeys("02/26/2025");

		assertTrue(driver.getPageSource().contains("Adefovir"));
	}

	@After
	public void tearDown() throws Exception {
		driver.quit();
		String verificationErrorString = verificationErrors.toString();
		if (!"".equals(verificationErrorString)) {
			fail(verificationErrorString);
		}
	}

}