diff --git a/org.hl7.fhir.validation.cli/pom.xml b/org.hl7.fhir.validation.cli/pom.xml index c1d18a95e..9846469f8 100644 --- a/org.hl7.fhir.validation.cli/pom.xml +++ b/org.hl7.fhir.validation.cli/pom.xml @@ -88,7 +88,7 @@ true - org.hl7.fhir.r5.validation.Validator + org.hl7.fhir.validation.Validator diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/BaseValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/BaseValidator.java similarity index 99% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/BaseValidator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/BaseValidator.java index 81735d662..6327a9e4f 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/BaseValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/BaseValidator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; /*- * #%L diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/NativeHostServices.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/NativeHostServices.java similarity index 99% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/NativeHostServices.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/NativeHostServices.java index 1570889b3..9cfecbbf3 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/NativeHostServices.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/NativeHostServices.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; /*- * #%L diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/ValidationEngine.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java similarity index 99% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/ValidationEngine.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java index 411244049..7c38815a1 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/ValidationEngine.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/ValidationEngine.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; import org.apache.commons.io.IOUtils; import org.hl7.fhir.convertors.*; @@ -22,7 +22,7 @@ import org.hl7.fhir.r5.terminologies.ConceptMapEngine; import org.hl7.fhir.r5.utils.*; import org.hl7.fhir.r5.utils.IResourceValidator.*; import org.hl7.fhir.r5.utils.StructureMapUtilities.ITransformerServices; -import org.hl7.fhir.r5.validation.instancevalidator.InstanceValidator; +import org.hl7.fhir.validation.instance.InstanceValidator; import org.hl7.fhir.utilities.IniFile; import org.hl7.fhir.utilities.TextFile; import org.hl7.fhir.utilities.Utilities; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/Validator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/Validator.java similarity index 99% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/Validator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/Validator.java index 9b7bce8d2..3b0913127 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/Validator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/Validator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; /*- * #%L @@ -49,13 +49,8 @@ POSSIBILITY OF SUCH DAMAGE. */ import java.awt.Desktop; -import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.net.HttpURLConnection; -import java.net.URL; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -85,14 +80,13 @@ import org.hl7.fhir.r5.model.Resource; import org.hl7.fhir.r5.model.StructureDefinition; import org.hl7.fhir.r5.utils.KeyGenerator; import org.hl7.fhir.r5.utils.ToolingExtensions; -import org.hl7.fhir.r5.validation.ValidationEngine.ScanOutputItem; +import org.hl7.fhir.validation.ValidationEngine.ScanOutputItem; import org.hl7.fhir.utilities.TextFile; import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.VersionUtilities; import org.hl7.fhir.utilities.cache.PackageCacheManager; import org.hl7.fhir.utilities.cache.ToolsVersion; import org.hl7.fhir.utilities.validation.ValidationMessage; -import org.hl7.fhir.utilities.xhtml.XhtmlComposer; /** * A executable class that will validate one or more FHIR resources against diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/VersionUtil.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/VersionUtil.java similarity index 98% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/VersionUtil.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/VersionUtil.java index b4ad10a4c..ea94e1f8e 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/VersionUtil.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/VersionUtil.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; /* * #%L diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/XVerExtensionManager.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/XVerExtensionManager.java similarity index 98% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/XVerExtensionManager.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/XVerExtensionManager.java index 10f67a116..ef658c4de 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/XVerExtensionManager.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/XVerExtensionManager.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; import java.io.IOException; import java.util.Date; @@ -16,7 +16,6 @@ import org.hl7.fhir.r5.model.StructureDefinition.ExtensionContextType; import org.hl7.fhir.r5.model.StructureDefinition.StructureDefinitionKind; import org.hl7.fhir.r5.model.StructureDefinition.TypeDerivationRule; import org.hl7.fhir.r5.model.UriType; -import org.hl7.fhir.r5.validation.XVerExtensionManager.XVerExtensionStatus; import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.VersionUtilities; import org.hl7.fhir.utilities.json.JsonTrackingParser; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/XmlValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/XmlValidator.java similarity index 99% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/XmlValidator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/XmlValidator.java index 5f87599b1..bd5619e2b 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/XmlValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/XmlValidator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation; /*- * #%L diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/CodeSystemValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/codesystem/CodeSystemValidator.java similarity index 95% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/CodeSystemValidator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/codesystem/CodeSystemValidator.java index 28adbb0be..492a113a7 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/CodeSystemValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/codesystem/CodeSystemValidator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation.codesystem; /*- * #%L @@ -30,6 +30,7 @@ import org.hl7.fhir.r5.model.CodeSystem; import org.hl7.fhir.r5.model.CodeSystem.ConceptDefinitionComponent; import org.hl7.fhir.utilities.validation.ValidationMessage; import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType; +import org.hl7.fhir.validation.BaseValidator; public class CodeSystemValidator extends BaseValidator { diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/EnableWhenEvaluator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/EnableWhenEvaluator.java similarity index 77% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/EnableWhenEvaluator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/EnableWhenEvaluator.java index 468b09647..77e5495da 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/EnableWhenEvaluator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/EnableWhenEvaluator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation.instance; /*- * #%L @@ -9,9 +9,9 @@ package org.hl7.fhir.r5.validation; * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -28,14 +28,13 @@ import org.hl7.fhir.r5.elementmodel.Element; import org.hl7.fhir.r5.model.*; import org.hl7.fhir.r5.model.Questionnaire.*; import org.hl7.fhir.r5.utils.FHIRPathEngine; -import org.hl7.fhir.r5.validation.instancevalidator.utils.ValidatorHostContext; +import org.hl7.fhir.validation.instance.utils.ValidatorHostContext; import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException; /** * Evaluates Questionnaire.item.enableWhen against a QuestionnaireResponse. * Ignores possible modifierExtensions and extensions. - * */ public class EnableWhenEvaluator { public static final String LINKID_ELEMENT = "linkId"; @@ -46,26 +45,29 @@ public class EnableWhenEvaluator { public static class QuestionnaireAnswerPair { private QuestionnaireItemComponent q; private Element a; - + public QuestionnaireAnswerPair(QuestionnaireItemComponent q, Element a) { super(); this.q = q; this.a = a; } + public QuestionnaireItemComponent getQ() { return q; } + public Element getA() { return a; } - + } + public static class QStack extends ArrayList { private static final long serialVersionUID = 1L; private Questionnaire q; private Element a; - + public QStack(Questionnaire q, Element a) { super(); this.q = q; @@ -97,40 +99,30 @@ public class EnableWhenEvaluator { /** * Evaluation result of enableWhen condition - * - * @param enabled - * Evaluation result - * @param linkId - * LinkId of the questionnaire item - * @param enableWhenCondition - * Evaluated enableWhen condition - * @param responseItem - * item in QuestionnaireResponse + * + * @param enabled Evaluation result + * @param enableWhenCondition Evaluated enableWhen condition */ public EnableWhenResult(boolean enabled, QuestionnaireItemEnableWhenComponent enableWhenCondition) { - this.enabled = enabled; - this.enableWhenCondition = enableWhenCondition; + this.enabled = enabled; + this.enableWhenCondition = enableWhenCondition; } public boolean isEnabled() { - return enabled; + return enabled; } public QuestionnaireItemEnableWhenComponent getEnableWhenCondition() { - return enableWhenCondition; + return enableWhenCondition; } -} + } + /** * the stack contains a set of QR items that represent the tree of the QR being validated, each tagged with the definition of the item from the Q for the QR being validated - * - * the itembeing validated is in the context of the stack. For root items, the stack is empty. - * + *

+ * the itembeing validated is in the context of the stack. For root items, the stack is empty. + *

* The context Questionnaire and QuestionnaireResponse are always available - * - * @param questionnaireItem - * @param questionnaireResponse - * @param qstack - * @return */ public boolean isQuestionEnabled(ValidatorHostContext hostContext, QuestionnaireItemComponent qitem, QStack qstack, FHIRPathEngine engine) { if (hasExpressionExtension(qitem)) { @@ -138,22 +130,22 @@ public class EnableWhenEvaluator { ExpressionNode node = engine.parse(expr); return engine.evaluateToBoolean(hostContext, qstack.a, qstack.a, qstack.a, node); } - + if (!qitem.hasEnableWhen()) { return true; } - + List evaluationResults = qitem.getEnableWhen() - .stream() - .map(enableCondition -> evaluateCondition(enableCondition, qitem, qstack)) - .collect(Collectors.toList()); + .stream() + .map(enableCondition -> evaluateCondition(enableCondition, qitem, qstack)) + .collect(Collectors.toList()); return checkConditionResults(evaluationResults, qitem); } private boolean hasExpressionExtension(QuestionnaireItemComponent qitem) { return qitem.hasExtension("http://phr.kanta.fi/StructureDefinition/fiphr-ext-questionnaire-enablewhen") || // finnish extension - qitem.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression"); // sdc extension + qitem.hasExtension("http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression"); // sdc extension } private String getExpression(QuestionnaireItemComponent qitem) { @@ -164,17 +156,18 @@ public class EnableWhenEvaluator { if ("text/fhirpath".equals(expr.getLanguage())) { return expr.getExpression(); } else { - throw new FHIRException("Unsupported language '"+expr.getLanguage()+"' for enableWhen extension http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression"); + throw new FHIRException("Unsupported language '" + expr.getLanguage() + "' for enableWhen extension http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-enableWhenExpression"); } } throw new Error("How did you get here?"); } - public boolean checkConditionResults(List evaluationResults, QuestionnaireItemComponent questionnaireItem) { - if ((questionnaireItem.hasEnableBehavior() && questionnaireItem.getEnableBehavior() == EnableWhenBehavior.ANY) || evaluationResults.size() == 1){ + public boolean checkConditionResults(List evaluationResults, QuestionnaireItemComponent questionnaireItem) { + if ((questionnaireItem.hasEnableBehavior() && questionnaireItem.getEnableBehavior() == EnableWhenBehavior.ANY) || evaluationResults.size() == 1) { return evaluationResults.stream().anyMatch(EnableWhenResult::isEnabled); - } if (questionnaireItem.hasEnableBehavior() && questionnaireItem.getEnableBehavior() == EnableWhenBehavior.ALL){ + } + if (questionnaireItem.hasEnableBehavior() && questionnaireItem.getEnableBehavior() == EnableWhenBehavior.ALL) { return evaluationResults.stream().allMatch(EnableWhenResult::isEnabled); } //TODO: Throw exception? enableBehavior is mandatory when there are multiple conditions @@ -183,18 +176,18 @@ public class EnableWhenEvaluator { protected EnableWhenResult evaluateCondition(QuestionnaireItemEnableWhenComponent enableCondition, QuestionnaireItemComponent qitem, QStack qstack) { - List answerItems = findQuestionAnswers(qstack, qitem, enableCondition); + List answerItems = findQuestionAnswers(qstack, qitem, enableCondition); QuestionnaireItemOperator operator = enableCondition.getOperator(); - if (operator == QuestionnaireItemOperator.EXISTS){ + if (operator == QuestionnaireItemOperator.EXISTS) { DataType answer = enableCondition.getAnswer(); - if (!(answer instanceof BooleanType)){ - throw new UnprocessableEntityException("Exists-operator requires answerBoolean"); + if (!(answer instanceof BooleanType)) { + throw new UnprocessableEntityException("Exists-operator requires answerBoolean"); } - return new EnableWhenResult(((BooleanType)answer).booleanValue() != answerItems.isEmpty(), enableCondition); - } + return new EnableWhenResult(((BooleanType) answer).booleanValue() != answerItems.isEmpty(), enableCondition); + } boolean result = answerItems - .stream() - .anyMatch(answer -> evaluateAnswer(answer, enableCondition.getAnswer(), enableCondition.getOperator())); + .stream() + .anyMatch(answer -> evaluateAnswer(answer, enableCondition.getAnswer(), enableCondition.getOperator())); return new EnableWhenResult(result, enableCondition); } @@ -235,71 +228,71 @@ public class EnableWhenEvaluator { } if (!actualAnswer.getClass().equals(expectedAnswer.getClass())) { throw new UnprocessableEntityException("Expected answer and actual answer have incompatible types"); - } + } if (expectedAnswer instanceof Coding) { - return compareCodingAnswer((Coding)expectedAnswer, (Coding)actualAnswer, questionnaireItemOperator); + return compareCodingAnswer((Coding) expectedAnswer, (Coding) actualAnswer, questionnaireItemOperator); } else if ((expectedAnswer instanceof PrimitiveType)) { - return comparePrimitiveAnswer((PrimitiveType)actualAnswer, (PrimitiveType)expectedAnswer, questionnaireItemOperator); + return comparePrimitiveAnswer((PrimitiveType) actualAnswer, (PrimitiveType) expectedAnswer, questionnaireItemOperator); } else if (expectedAnswer instanceof Quantity) { - return compareQuantityAnswer((Quantity)actualAnswer, (Quantity)expectedAnswer, questionnaireItemOperator); + return compareQuantityAnswer((Quantity) actualAnswer, (Quantity) expectedAnswer, questionnaireItemOperator); } // TODO: Attachment, reference? throw new UnprocessableEntityException("Unimplemented answer type: " + expectedAnswer.getClass()); } - private boolean compareQuantityAnswer(Quantity actualAnswer, Quantity expectedAnswer, QuestionnaireItemOperator questionnaireItemOperator) { + private boolean compareQuantityAnswer(Quantity actualAnswer, Quantity expectedAnswer, QuestionnaireItemOperator questionnaireItemOperator) { return compareComparable(actualAnswer.getValue(), expectedAnswer.getValue(), questionnaireItemOperator); } - private boolean comparePrimitiveAnswer(PrimitiveType actualAnswer, PrimitiveType expectedAnswer, QuestionnaireItemOperator questionnaireItemOperator) { - if (actualAnswer.getValue() instanceof Comparable){ - return compareComparable((Comparable)actualAnswer.getValue(), (Comparable) expectedAnswer.getValue(), questionnaireItemOperator); - } else if (questionnaireItemOperator == QuestionnaireItemOperator.EQUAL){ + private boolean comparePrimitiveAnswer(PrimitiveType actualAnswer, PrimitiveType expectedAnswer, QuestionnaireItemOperator questionnaireItemOperator) { + if (actualAnswer.getValue() instanceof Comparable) { + return compareComparable((Comparable) actualAnswer.getValue(), (Comparable) expectedAnswer.getValue(), questionnaireItemOperator); + } else if (questionnaireItemOperator == QuestionnaireItemOperator.EQUAL) { return actualAnswer.equalsShallow(expectedAnswer); - } else if (questionnaireItemOperator == QuestionnaireItemOperator.NOT_EQUAL){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.NOT_EQUAL) { return !actualAnswer.equalsShallow(expectedAnswer); } throw new UnprocessableEntityException("Bad operator for PrimitiveType comparison"); } - @SuppressWarnings({ "rawtypes", "unchecked" }) + @SuppressWarnings({"rawtypes", "unchecked"}) private boolean compareComparable(Comparable actual, Comparable expected, - QuestionnaireItemOperator questionnaireItemOperator) { + QuestionnaireItemOperator questionnaireItemOperator) { int result = actual.compareTo(expected); - if (questionnaireItemOperator == QuestionnaireItemOperator.EQUAL){ + if (questionnaireItemOperator == QuestionnaireItemOperator.EQUAL) { return result == 0; - } else if (questionnaireItemOperator == QuestionnaireItemOperator.NOT_EQUAL){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.NOT_EQUAL) { return result != 0; - } else if (questionnaireItemOperator == QuestionnaireItemOperator.GREATER_OR_EQUAL){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.GREATER_OR_EQUAL) { return result >= 0; - } else if (questionnaireItemOperator == QuestionnaireItemOperator.LESS_OR_EQUAL){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.LESS_OR_EQUAL) { return result <= 0; - } else if (questionnaireItemOperator == QuestionnaireItemOperator.LESS_THAN){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.LESS_THAN) { return result < 0; - } else if (questionnaireItemOperator == QuestionnaireItemOperator.GREATER_THAN){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.GREATER_THAN) { return result > 0; } - throw new UnprocessableEntityException("Bad operator for PrimitiveType comparison: "+questionnaireItemOperator.toCode()); + throw new UnprocessableEntityException("Bad operator for PrimitiveType comparison: " + questionnaireItemOperator.toCode()); } /** * Recursively look for answers to questions with the given link id, working upwards given the context - * + *

* For discussion about this, see https://chat.fhir.org/#narrow/stream/179255-questionnaire/topic/enable-when - * - - given sourceQ - question that contains the enableWhen reference and targetQ - question that the enableWhen references in the Q and also sourceA - answer for sourceQ and targetA - answer for targetQ in the QR - - work up from sourceQ until you find the Q group that also contains targetQ - this is groupQ - - work up from sourceA until you find the QR group that matches groupQ - this is groupA - - any targetA in groupA are input for the enableWhen decision + *

+ * - given sourceQ - question that contains the enableWhen reference and targetQ - question that the enableWhen references in the Q and also sourceA - answer for sourceQ and targetA - answer for targetQ in the QR + * - work up from sourceQ until you find the Q group that also contains targetQ - this is groupQ + * - work up from sourceA until you find the QR group that matches groupQ - this is groupA + * - any targetA in groupA are input for the enableWhen decision */ private List findQuestionAnswers(QStack qstack, QuestionnaireItemComponent sourceQ, QuestionnaireItemEnableWhenComponent ew) { QuestionnaireItemComponent targetQ = qstack.getQ().getQuestion(ew.getQuestion()); - if (targetQ != null) { + if (targetQ != null) { QuestionnaireItemComponent groupQ = qstack.getQ().getCommonGroup(sourceQ, targetQ); if (groupQ == null) { // root is Q itself return findOnItem(qstack.getA(), ew.getQuestion()); @@ -341,16 +334,16 @@ public class EnableWhenEvaluator { private List extractAnswer(Element item) { return item.getChildrenByName(ANSWER_ELEMENT) - .stream() - .flatMap(c -> c.getChildren().stream()) - .collect(Collectors.toList()); + .stream() + .flatMap(c -> c.getChildren().stream()) + .collect(Collectors.toList()); } private boolean compareCodingAnswer(Coding expectedAnswer, Coding actualAnswer, QuestionnaireItemOperator questionnaireItemOperator) { boolean result = compareSystems(expectedAnswer, actualAnswer) && compareCodes(expectedAnswer, actualAnswer); - if (questionnaireItemOperator == QuestionnaireItemOperator.EQUAL){ + if (questionnaireItemOperator == QuestionnaireItemOperator.EQUAL) { return result == true; - } else if (questionnaireItemOperator == QuestionnaireItemOperator.NOT_EQUAL){ + } else if (questionnaireItemOperator == QuestionnaireItemOperator.NOT_EQUAL) { return result == false; } throw new UnprocessableEntityException("Bad operator for Coding comparison"); @@ -378,7 +371,7 @@ public class EnableWhenEvaluator { private boolean hasLinkId(Element item, String linkId) { Element linkIdChild = item.getNamedChild(LINKID_ELEMENT); - if (linkIdChild != null && linkIdChild.getValue().equals(linkId)){ + if (linkIdChild != null && linkIdChild.getValue().equals(linkId)) { return true; } return false; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/InstanceValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java similarity index 99% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/InstanceValidator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java index 2e5f1e30e..93b597899 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/InstanceValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation.instancevalidator; +package org.hl7.fhir.validation.instance; /*- * #%L @@ -126,11 +126,9 @@ import org.hl7.fhir.r5.utils.FHIRPathEngine; import org.hl7.fhir.r5.utils.FHIRPathEngine.IEvaluationContext; import org.hl7.fhir.r5.utils.IResourceValidator; import org.hl7.fhir.r5.utils.ToolingExtensions; -import org.hl7.fhir.r5.validation.BaseValidator; -import org.hl7.fhir.r5.validation.EnableWhenEvaluator; -import org.hl7.fhir.r5.validation.EnableWhenEvaluator.QStack; -import org.hl7.fhir.r5.validation.XVerExtensionManager; -import org.hl7.fhir.r5.validation.instancevalidator.utils.*; +import org.hl7.fhir.validation.BaseValidator; +import org.hl7.fhir.validation.instance.EnableWhenEvaluator.QStack; +import org.hl7.fhir.validation.XVerExtensionManager; import org.hl7.fhir.utilities.CommaSeparatedStringBuilder; import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.Utilities.DecimalStatus; @@ -142,6 +140,7 @@ import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType; import org.hl7.fhir.utilities.validation.ValidationMessage.Source; import org.hl7.fhir.utilities.xhtml.NodeType; import org.hl7.fhir.utilities.xhtml.XhtmlNode; +import org.hl7.fhir.validation.instance.utils.*; import org.w3c.dom.Document; import com.google.gson.Gson; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/InstanceValidatorFactory.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidatorFactory.java similarity index 95% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/InstanceValidatorFactory.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidatorFactory.java index 90ef501a3..547bf02af 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/InstanceValidatorFactory.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/InstanceValidatorFactory.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation.instancevalidator; +package org.hl7.fhir.validation.instance; import org.hl7.fhir.exceptions.FHIRException; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ChildIterator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ChildIterator.java similarity index 95% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ChildIterator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ChildIterator.java index 09e35d78c..5dd0f832f 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ChildIterator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ChildIterator.java @@ -1,7 +1,7 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.elementmodel.Element; -import org.hl7.fhir.r5.validation.instancevalidator.InstanceValidator; +import org.hl7.fhir.validation.instance.InstanceValidator; import org.hl7.fhir.utilities.Utilities; public class ChildIterator { diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ElementInfo.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ElementInfo.java similarity index 97% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ElementInfo.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ElementInfo.java index b3f7b69b6..15a5f2ce0 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ElementInfo.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ElementInfo.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.elementmodel.Element; import org.hl7.fhir.r5.model.ElementDefinition; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/EntrySummary.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/EntrySummary.java similarity index 87% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/EntrySummary.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/EntrySummary.java index 8457ead30..05bb76098 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/EntrySummary.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/EntrySummary.java @@ -1,7 +1,6 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.elementmodel.Element; -import org.hl7.fhir.r5.validation.instancevalidator.InstanceValidator; import java.util.ArrayList; import java.util.List; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/IndexedElement.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/IndexedElement.java similarity index 93% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/IndexedElement.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/IndexedElement.java index feeb9d505..d103c3ce7 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/IndexedElement.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/IndexedElement.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.elementmodel.Element; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ResolvedReference.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ResolvedReference.java similarity index 91% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ResolvedReference.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ResolvedReference.java index 7c619cd09..4066e1d2a 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ResolvedReference.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ResolvedReference.java @@ -1,8 +1,8 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.elementmodel.Element; import org.hl7.fhir.r5.model.StructureDefinition; -import org.hl7.fhir.r5.validation.instancevalidator.InstanceValidator; +import org.hl7.fhir.validation.instance.InstanceValidator; public class ResolvedReference { diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ResourceValidationTracker.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ResourceValidationTracker.java similarity index 96% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ResourceValidationTracker.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ResourceValidationTracker.java index 92962c578..7d48a1c9b 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ResourceValidationTracker.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ResourceValidationTracker.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.model.StructureDefinition; import org.hl7.fhir.utilities.validation.ValidationMessage; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ValidatorHostContext.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ValidatorHostContext.java similarity index 98% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ValidatorHostContext.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ValidatorHostContext.java index 5eb22397c..c823fd570 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/instancevalidator/utils/ValidatorHostContext.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/instance/utils/ValidatorHostContext.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation.instancevalidator.utils; +package org.hl7.fhir.validation.instance.utils; import org.hl7.fhir.r5.elementmodel.Element; import org.hl7.fhir.r5.model.StructureDefinition; diff --git a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/ProfileValidator.java b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/profile/ProfileValidator.java similarity index 98% rename from org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/ProfileValidator.java rename to org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/profile/ProfileValidator.java index 53ae98d3d..054adb258 100644 --- a/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/r5/validation/ProfileValidator.java +++ b/org.hl7.fhir.validation/src/main/java/org/hl7/fhir/validation/profile/ProfileValidator.java @@ -1,4 +1,4 @@ -package org.hl7.fhir.r5.validation; +package org.hl7.fhir.validation.profile; /*- * #%L @@ -20,7 +20,6 @@ package org.hl7.fhir.r5.validation; * #L% */ - import java.util.ArrayList; import java.util.Hashtable; import java.util.List; @@ -34,6 +33,7 @@ import org.hl7.fhir.r5.utils.FHIRPathEngine; import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.validation.ValidationMessage; import org.hl7.fhir.utilities.validation.ValidationMessage.IssueType; +import org.hl7.fhir.validation.BaseValidator; public class ProfileValidator extends BaseValidator { diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/CDAValidationTestCase.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/CDAValidationTestCase.java index eabbe5e92..c1735254a 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/CDAValidationTestCase.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/CDAValidationTestCase.java @@ -2,8 +2,7 @@ package org.hl7.fhir.validation.tests; import org.hl7.fhir.r4.context.SimpleWorkerContext; import org.hl7.fhir.r5.test.utils.TestingUtilities; -import org.hl7.fhir.r5.validation.Validator; -import org.hl7.fhir.validation.tests.utilities.TestUtilities; +import org.hl7.fhir.validation.Validator; import org.junit.Test; public class CDAValidationTestCase { diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/NativeHostServiceTester.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/NativeHostServiceTester.java index ba3403355..539e1d7ce 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/NativeHostServiceTester.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/NativeHostServiceTester.java @@ -2,9 +2,7 @@ package org.hl7.fhir.validation.tests; import org.hl7.fhir.r5.elementmodel.Manager.FhirFormat; import org.hl7.fhir.r5.test.utils.TestingUtilities; -import org.hl7.fhir.r5.validation.NativeHostServices; -import org.hl7.fhir.utilities.TextFile; -import org.hl7.fhir.validation.tests.utilities.TestUtilities; +import org.hl7.fhir.validation.NativeHostServices; import org.junit.Test; public class NativeHostServiceTester { diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ProfileComparisonTests.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ProfileComparisonTests.java index 3b4f475e3..c2607a462 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ProfileComparisonTests.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ProfileComparisonTests.java @@ -1,19 +1,15 @@ package org.hl7.fhir.validation.tests; -import java.awt.Desktop; import java.io.File; import java.util.UUID; import org.hl7.fhir.r5.conformance.ProfileComparer; import org.hl7.fhir.r5.model.FhirPublication; -import org.hl7.fhir.r5.model.OperationOutcome; import org.hl7.fhir.r5.model.StructureDefinition; import org.hl7.fhir.r5.utils.KeyGenerator; -import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent; import org.hl7.fhir.r5.test.utils.TestingUtilities; -import org.hl7.fhir.r5.validation.ValidationEngine; +import org.hl7.fhir.validation.ValidationEngine; import org.hl7.fhir.validation.tests.utilities.TestUtilities; -import org.junit.Assert; import org.junit.Test; public class ProfileComparisonTests { diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TransformationTests.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TransformationTests.java index 0b36ed297..e695dd8b5 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TransformationTests.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/TransformationTests.java @@ -3,7 +3,7 @@ package org.hl7.fhir.validation.tests; import java.io.File; import org.hl7.fhir.r4.test.utils.TestingUtilities; -import org.hl7.fhir.r5.validation.Validator; +import org.hl7.fhir.validation.Validator; import org.hl7.fhir.utilities.Utilities; import org.junit.Test; diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java index 54b270906..4c662240b 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationEngineTests.java @@ -1,6 +1,5 @@ package org.hl7.fhir.validation.tests; -import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -10,8 +9,7 @@ import org.hl7.fhir.r5.model.OperationOutcome; import org.hl7.fhir.r5.model.OperationOutcome.IssueSeverity; import org.hl7.fhir.r5.model.OperationOutcome.OperationOutcomeIssueComponent; import org.hl7.fhir.r5.test.utils.TestingUtilities; -import org.hl7.fhir.r5.validation.ValidationEngine; -import org.hl7.fhir.utilities.Utilities; +import org.hl7.fhir.validation.ValidationEngine; import org.hl7.fhir.validation.tests.utilities.TestUtilities; import org.junit.Assert; import org.junit.Test; diff --git a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationTestSuite.java b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationTestSuite.java index 7b694f755..331a37715 100644 --- a/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationTestSuite.java +++ b/org.hl7.fhir.validation/src/test/java/org/hl7/fhir/validation/tests/ValidationTestSuite.java @@ -26,8 +26,8 @@ import org.hl7.fhir.r5.utils.FHIRPathEngine.IEvaluationContext; import org.hl7.fhir.r5.utils.IResourceValidator; import org.hl7.fhir.r5.utils.IResourceValidator.IValidatorResourceFetcher; import org.hl7.fhir.r5.utils.IResourceValidator.ReferenceValidationPolicy; -import org.hl7.fhir.r5.validation.instancevalidator.InstanceValidator; -import org.hl7.fhir.r5.validation.ValidationEngine; +import org.hl7.fhir.validation.instance.InstanceValidator; +import org.hl7.fhir.validation.ValidationEngine; import org.hl7.fhir.utilities.TextFile; import org.hl7.fhir.utilities.Utilities; import org.hl7.fhir.utilities.VersionUtilities;