Fix issue validating CDA FHIR Path constraints

This commit is contained in:
Grahame Grieve 2023-09-27 05:51:46 +10:00
parent f48c6a26f2
commit 527b2cb35b
2 changed files with 9 additions and 2 deletions

View File

@ -267,7 +267,7 @@ XHTML_XHTML_Image_Reference_Illegal = Invalid Image Reference in the XHTML (''{0
XHTML_XHTML_NS_InValid = Wrong namespace on the XHTML (''{0}'', should be ''{1}'')
XHTML_XHTML_Name_Invalid = Wrong name on the XHTML (''{0}'') - must start with div
_DT_Fixed_Wrong = Value is ''{0}'' but must be ''{1}''
All_observations_should_have_an_effectiveDateTime_or_an_effectivePeriodR4 = Best Practice Recommendation: In general, all observations should have an effective[x] ({0})
All_observations_should_have_an_effectiveDateTime_or_an_effectivePeriod = Best Practice Recommendation: In general, all observations should have an effective[x] ({0})
All_observations_should_have_a_performer = Best Practice Recommendation: In general, all observations should have a performer
All_observations_should_have_a_subject = Best Practice Recommendation: In general, all observations should have a subject
Unable_to_resolve_slice_matching__no_fixed_value_or_required_value_set = Unable to resolve slice matching - no fixed value or required value set

View File

@ -604,7 +604,14 @@ public class StructureDefinitionValidator extends BaseValidator {
private List<String> getTypesForElement(List<Element> elements, Element element, String profileType) {
List<String> types = new ArrayList<>();
if (element.hasChild("path") && !element.getNamedChildValue("path").contains(".")) {
types.add(element.getNamedChildValue("path"));
String t = element.getNamedChildValue("path");
if (profileType.equals(t)) {
types.add(profileType);
} else if (profileType.endsWith("/"+t)) {
types.add(profileType);
} else {
throw new Error("Error: this should not happen: '"+t+"' vs '"+profileType+"'?");
}
} else {
for (Element tr : element.getChildrenByName("type")) {
String t = tr.getNamedChildValue("code");