public Node getNode(String expression) throws CciDistPortalExceptionC { Node node = null; mXpath.reset(); try { node = (Node) mXpath.evaluate(expression, mDocument, XPathConstants.NODE); } catch (XPathExpressionException e) { throw new CciDistPortalExceptionC(e); } return node; }
/** * @param obj * @param expression * @return * @throws com.ccieurope.ccidistportal.exception.CciDistPortalExceptionC */ public String getString(Object obj, String expression) throws CciDistPortalExceptionC { String value; mXpath.reset(); try { value = mXpath.evaluate(expression, obj, XPathConstants.STRING).toString(); } catch (XPathExpressionException e) { throw new CciDistPortalExceptionC(e); } return value; }
@Override public Map<String, Boolean> checkStudyCharacteristic(String protocolMetaData) { Map<String, Boolean> studyCharacteristicMap = Maps.newHashMap(); String isAchStudyXpath = "boolean(count(/protocol/site-responsible[text()='ach-achri'])>0 or count(/protocol/study-sites/site[@site-id=\"2\" or @site-id=\"1\"])>0)"; String isAchStudyWithDrugXpath = "boolean((count(/protocol/site-responsible[text()='ach-achri'])>0 or count(/protocol/study-sites/site[@site-id=\"2\" or @site-id=\"1\"])>0) and count(/protocol/drugs/drug)>0)"; String isInvestigatorStudyPath = "boolean(count(/protocol/study-type[text()='investigator-initiated'])>0)"; String isIndustryOrCoorpStudyPath = "boolean(count(/protocol/study-type[text()='cooperative-group'])>0 or count(/protocol/study-type[text()='industry-sponsored'])>0)"; String isUamsStudyPath = "boolean(count(/protocol/site-responsible[text()='uams'])>0)"; try { boolean isAchStudy = false; boolean isAchStudyWithDrug = false; boolean isInvestigatorStudy = false; boolean isIndustryOrCoorpStudy = false; boolean isUAMSStudy = false; Document assertXml = xmlProcessor.loadXmlStringToDOM(protocolMetaData); XPath xpathInstance = xmlProcessor.getXPathInstance(); isAchStudy = (Boolean) (xpathInstance.evaluate(isAchStudyXpath, assertXml, XPathConstants.BOOLEAN)); studyCharacteristicMap.put("isAchStudy", isAchStudy); xpathInstance.reset(); isAchStudyWithDrug = (Boolean) (xpathInstance.evaluate(isAchStudyWithDrugXpath, assertXml, XPathConstants.BOOLEAN)); studyCharacteristicMap.put("isAchStudyWithDrug", isAchStudyWithDrug); xpathInstance.reset(); isInvestigatorStudy = (Boolean) (xpathInstance.evaluate(isInvestigatorStudyPath, assertXml, XPathConstants.BOOLEAN)); studyCharacteristicMap.put("isInvestigatorStudy", isInvestigatorStudy); xpathInstance.reset(); isIndustryOrCoorpStudy = (Boolean) (xpathInstance.evaluate( isIndustryOrCoorpStudyPath, assertXml, XPathConstants.BOOLEAN)); studyCharacteristicMap.put("isIndustryOrCoorpStudy", isIndustryOrCoorpStudy); xpathInstance.reset(); isUAMSStudy = (Boolean) (xpathInstance.evaluate(isUamsStudyPath, assertXml, XPathConstants.BOOLEAN)); studyCharacteristicMap.put("isUAMSStudy", isUAMSStudy); } catch (Exception e) { // don't care } return studyCharacteristicMap; }