Merge pull request #1194 from hapifhir/gg-202303-r5-path-fixes
Gg 202303 r5 path fixes
This commit is contained in:
commit
2313348657
|
@ -4,4 +4,9 @@
|
|||
|
||||
## Other code changes
|
||||
|
||||
* no changes
|
||||
* Fix R5 path for spec in generated narratives
|
||||
* Hack to fix wrong R5 paths in generated narratives in extensions pack
|
||||
* Suppress Prism rendering if ttl source is too big
|
||||
* Fix up URLs in untouched elements when processing snapshots
|
||||
* Fix up URLs in binding.description when generating snapshots
|
||||
|
||||
|
|
|
@ -725,6 +725,7 @@ public class ProfilePathProcessor {
|
|||
outcome.setPath(profileUtilities.fixedPathDest(getContextPathTarget(), outcome.getPath(), getRedirector(), getContextPathSource()));
|
||||
profileUtilities.updateFromBase(outcome, currentBase, getSourceStructureDefinition().getUrl());
|
||||
profileUtilities.updateConstraintSources(outcome, getSourceStructureDefinition().getUrl());
|
||||
profileUtilities.updateURLs(url, webUrl, outcome);
|
||||
profileUtilities.markDerived(outcome);
|
||||
if (cursors.resultPathBase == null)
|
||||
cursors.resultPathBase = outcome.getPath();
|
||||
|
|
|
@ -1651,14 +1651,21 @@ public class ProfileUtilities extends TranslatingUtilities {
|
|||
}
|
||||
if (webUrl != null) {
|
||||
// also, must touch up the markdown
|
||||
if (element.hasDefinition())
|
||||
if (element.hasDefinition()) {
|
||||
element.setDefinition(processRelativeUrls(element.getDefinition(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, null, false));
|
||||
if (element.hasComment())
|
||||
}
|
||||
if (element.hasComment()) {
|
||||
element.setComment(processRelativeUrls(element.getComment(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, null, false));
|
||||
if (element.hasRequirements())
|
||||
}
|
||||
if (element.hasRequirements()) {
|
||||
element.setRequirements(processRelativeUrls(element.getRequirements(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, null, false));
|
||||
if (element.hasMeaningWhenMissing())
|
||||
}
|
||||
if (element.hasMeaningWhenMissing()) {
|
||||
element.setMeaningWhenMissing(processRelativeUrls(element.getMeaningWhenMissing(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, null, false));
|
||||
}
|
||||
if (element.hasBinding() && element.getBinding().hasDescription()) {
|
||||
element.getBinding().setDescription(processRelativeUrls(element.getBinding().getDescription(), webUrl, context.getSpecUrl(), context.getResourceNames(), masterSourceFileNames, null, false));
|
||||
}
|
||||
}
|
||||
}
|
||||
return element;
|
||||
|
@ -2335,6 +2342,7 @@ public class ProfileUtilities extends TranslatingUtilities {
|
|||
if (dest.hasPattern()) {
|
||||
checkTypeOk(dest, dest.getPattern().fhirType(), srcSD, "pattern");
|
||||
}
|
||||
//updateURLs(url, webUrl, dest);
|
||||
}
|
||||
|
||||
private void addMappings(List<ElementDefinitionMappingComponent> destination, List<ElementDefinitionMappingComponent> source) {
|
||||
|
|
|
@ -4,6 +4,7 @@ import org.hl7.fhir.r5.context.IWorkerContext;
|
|||
import org.hl7.fhir.r5.model.CanonicalResource;
|
||||
import org.hl7.fhir.r5.model.ElementDefinition;
|
||||
import org.hl7.fhir.r5.model.Enumerations.BindingStrength;
|
||||
import org.hl7.fhir.r5.model.StructureDefinition.TypeDerivationRule;
|
||||
import org.hl7.fhir.r5.model.StructureDefinition;
|
||||
|
||||
public class R5Hacker {
|
||||
|
@ -16,50 +17,22 @@ public class R5Hacker {
|
|||
|
||||
|
||||
private static void fixSD(StructureDefinition sd) {
|
||||
if ("5.0.0-ballot".equals(sd.getVersion()) && "ElementDefinition".equals(sd.getType())) {
|
||||
if (sd.getDerivation() == TypeDerivationRule.CONSTRAINT) {
|
||||
for (ElementDefinition ed : sd.getDifferential().getElement()) {
|
||||
hackEDR5BallotError(ed);
|
||||
fix(ed);
|
||||
}
|
||||
for (ElementDefinition ed : sd.getSnapshot().getElement()) {
|
||||
hackEDR5BallotError(ed);
|
||||
fix(ed);
|
||||
}
|
||||
}
|
||||
if ("5.0.0-ballot".equals(sd.getVersion()) && "Base".equals(sd.getType())) {
|
||||
for (ElementDefinition ed : sd.getDifferential().getElement()) {
|
||||
hackBaseR5BallotError(ed);
|
||||
}
|
||||
for (ElementDefinition ed : sd.getSnapshot().getElement()) {
|
||||
hackBaseR5BallotError(ed);
|
||||
}
|
||||
}
|
||||
if ("5.0.0-ballot".equals(sd.getVersion()) && "Bundle".equals(sd.getType())) {
|
||||
for (ElementDefinition ed : sd.getDifferential().getElement()) {
|
||||
hackBundleR5BallotError(ed);
|
||||
}
|
||||
for (ElementDefinition ed : sd.getSnapshot().getElement()) {
|
||||
hackBundleR5BallotError(ed);
|
||||
}
|
||||
}
|
||||
if ("5.0.0-ballot".equals(sd.getVersion()) && "http://hl7.org/fhir/StructureDefinition/elementdefinition-defaulttype".equals(sd.getUrl())) {
|
||||
sd.getContextFirstRep().setExpression("ElementDefinition");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private static void hackBaseR5BallotError(ElementDefinition ed) {
|
||||
ed.getConstraint().clear();
|
||||
}
|
||||
|
||||
private static void hackBundleR5BallotError(ElementDefinition ed) {
|
||||
if (ed.getPath().equals("Bundle.link.relation")) {
|
||||
ToolingExtensions.removeExtension(ed.getBinding(), ToolingExtensions.EXT_BINDING_NAME);
|
||||
}
|
||||
}
|
||||
|
||||
private static void hackEDR5BallotError(ElementDefinition ed) {
|
||||
if (ed.getPath().equals("ElementDefinition.type.code")) {
|
||||
ed.getBinding().setStrength(BindingStrength.EXTENSIBLE);
|
||||
}
|
||||
private static void fix(ElementDefinition ed) {
|
||||
if (ed.hasDefinition()) {
|
||||
ed.setDefinition(ed.getDefinition().replace("http://hl7.org/fhir/5.0.0-snapshot3/", "http://hl7.org/fhir/R5/"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -598,7 +598,7 @@ public class VersionUtilities {
|
|||
case "3.0" : return "http://hl7.org/fhir/STU3";
|
||||
case "4.0" : return "http://hl7.org/fhir/R4";
|
||||
case "4.3" : return "http://hl7.org/fhir/R4B";
|
||||
case "5.0" : return "http://hl7.org/fhir/5.0.0-snapshot3";
|
||||
case "5.0" : return "http://hl7.org/fhir/R5";
|
||||
default:
|
||||
return "http://hl7.org/fhir";
|
||||
}
|
||||
|
|
|
@ -415,14 +415,14 @@ public class Turtle {
|
|||
writer.close();
|
||||
}
|
||||
|
||||
public String asHtml() throws Exception {
|
||||
public String asHtml(boolean prism) throws Exception {
|
||||
StringBuilder b = new StringBuilder();
|
||||
b.append("<pre class=\"rdf\" style=\"white-space: pre; overflow: hidden\"><code class=\"language-turtle\">\r\n");
|
||||
b.append("<pre class=\"rdf\" style=\"white-space: pre; overflow: hidden\">"+(prism ? "<code class=\"language-turtle\">" : "")+"\r\n");
|
||||
commitPrefixes(b);
|
||||
for (Section s : sections) {
|
||||
commitSection(b, s);
|
||||
}
|
||||
b.append("</code></pre>\r\n");
|
||||
b.append((prism ? "</code>" : "")+"</pre>\r\n");
|
||||
b.append("\r\n");
|
||||
return b.toString();
|
||||
}
|
||||
|
|
|
@ -563,6 +563,15 @@ public class XMLUtil {
|
|||
child.setAttribute("value", text);
|
||||
}
|
||||
|
||||
public static Element addTextTag(Document doc, Element element, String name, String text, int indent) {
|
||||
Node node = doc.createTextNode("\n"+Utilities.padLeft("", ' ', indent));
|
||||
element.appendChild(node);
|
||||
Element child = doc.createElement(name);
|
||||
element.appendChild(child);
|
||||
child.appendChild(doc.createTextNode(text));
|
||||
return child;
|
||||
}
|
||||
|
||||
public static void saveToFile(Element root, OutputStream stream) throws TransformerException {
|
||||
Transformer transformer = TransformerFactory.newInstance().newTransformer();
|
||||
Result output = new StreamResult(stream);
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -19,7 +19,7 @@
|
|||
|
||||
<properties>
|
||||
<hapi_fhir_version>6.2.1</hapi_fhir_version>
|
||||
<validator_test_case_version>1.2.24</validator_test_case_version>
|
||||
<validator_test_case_version>1.2.25-SNAPSHOT</validator_test_case_version>
|
||||
<junit_jupiter_version>5.7.1</junit_jupiter_version>
|
||||
<junit_platform_launcher_version>1.8.2</junit_platform_launcher_version>
|
||||
<maven_surefire_version>3.0.0-M5</maven_surefire_version>
|
||||
|
|
Loading…
Reference in New Issue