Skip to content

Commit 067bb16

Browse files
Merge pull request #990 from HL7/UserFriendlyDependencyTable
Reader friendly dependency table
2 parents bfee787 + 4e22cd5 commit 067bb16

File tree

2 files changed

+222
-69
lines changed

2 files changed

+222
-69
lines changed

org.hl7.fhir.publisher.core/src/main/java/org/hl7/fhir/igtools/publisher/Publisher.java

Lines changed: 67 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -2176,98 +2176,98 @@ private void generateNarratives(boolean isRegen) throws Exception {
21762176
try {
21772177
for (FetchedResource r : f.getResources()) {
21782178
if (!isRegen || r.isRegenAfterValidation()) {
2179-
if (r.getExampleUri()==null || genExampleNarratives) {
2180-
if (!passesNarrativeFilter(r)) {
2181-
noNarrativeResources.add(r);
2182-
logDebugMessage(LogCategory.PROGRESS, "narrative for "+f.getName()+" : "+r.getId()+" suppressed");
2183-
if (r.getResource() != null && r.getResource() instanceof DomainResource) {
2184-
((DomainResource) r.getResource()).setText(null);
2185-
}
2186-
r.getElement().removeChild("text");
2187-
} else {
2188-
List<Locale> langs = translationLocales();
2189-
logDebugMessage(LogCategory.PROGRESS, "narrative for "+f.getName()+" : "+r.getId());
2190-
if (r.getResource() != null && isConvertableResource(r.getResource().fhirType())) {
2191-
boolean regen = false;
2192-
for (Locale lang : langs) {
2193-
boolean first = true;
2194-
RenderingContext lrc = rc.copy(false).setDefinitionsTarget(igpkp.getDefinitionsName(r));
2195-
lrc.setLocale(lang);
2196-
lrc.setRules(GenerationRules.VALID_RESOURCE);
2197-
lrc.setDefinitionsTarget(igpkp.getDefinitionsName(r));
2198-
lrc.setSecondaryLang(!first);
2199-
first = false;
2200-
if (r.getResource() instanceof DomainResource && (langs.size() > 1 || !(((DomainResource) r.getResource()).hasText() && ((DomainResource) r.getResource()).getText().hasDiv()))) {
2201-
regen = true;
2179+
if (r.getExampleUri()==null || genExampleNarratives) {
2180+
if (!passesNarrativeFilter(r)) {
2181+
noNarrativeResources.add(r);
2182+
logDebugMessage(LogCategory.PROGRESS, "narrative for "+f.getName()+" : "+r.getId()+" suppressed");
2183+
if (r.getResource() != null && r.getResource() instanceof DomainResource) {
2184+
((DomainResource) r.getResource()).setText(null);
2185+
}
2186+
r.getElement().removeChild("text");
2187+
} else {
2188+
List<Locale> langs = translationLocales();
2189+
logDebugMessage(LogCategory.PROGRESS, "narrative for "+f.getName()+" : "+r.getId());
2190+
if (r.getResource() != null && isConvertableResource(r.getResource().fhirType())) {
2191+
boolean regen = false;
2192+
for (Locale lang : langs) {
2193+
boolean first = true;
2194+
RenderingContext lrc = rc.copy(false).setDefinitionsTarget(igpkp.getDefinitionsName(r));
2195+
lrc.setLocale(lang);
2196+
lrc.setRules(GenerationRules.VALID_RESOURCE);
2197+
lrc.setDefinitionsTarget(igpkp.getDefinitionsName(r));
2198+
lrc.setSecondaryLang(!first);
2199+
first = false;
2200+
if (r.getResource() instanceof DomainResource && (langs.size() > 1 || !(((DomainResource) r.getResource()).hasText() && ((DomainResource) r.getResource()).getText().hasDiv()))) {
2201+
regen = true;
22022202
ResourceRenderer rr = RendererFactory.factory(r.getResource(), lrc);
22032203
if (rr.renderingUsesValidation()) {
22042204
r.setRegenAfterValidation(true);
22052205
needsRegen = true;
22062206
}
22072207
rr.setMultiLangMode(langs.size() > 1).renderResource(ResourceWrapper.forResource(lrc, r.getResource()));
2208-
} else if (r.getResource() instanceof Bundle) {
2209-
regen = true;
2210-
new BundleRenderer(lrc).setMultiLangMode(langs.size() > 1).renderResource(ResourceWrapper.forResource(lrc, r.getResource()));
2211-
} else if (r.getResource() instanceof Parameters) {
2212-
regen = true;
2213-
Parameters p = (Parameters) r.getResource();
2214-
new ParametersRenderer(lrc).setMultiLangMode(langs.size() > 1).renderResource(ResourceWrapper.forResource(lrc, p));
2215-
} else if (r.getResource() instanceof DomainResource) {
2216-
checkExistingNarrative(f, r, ((DomainResource) r.getResource()).getText().getDiv());
2217-
}
2208+
} else if (r.getResource() instanceof Bundle) {
2209+
regen = true;
2210+
new BundleRenderer(lrc).setMultiLangMode(langs.size() > 1).renderResource(ResourceWrapper.forResource(lrc, r.getResource()));
2211+
} else if (r.getResource() instanceof Parameters) {
2212+
regen = true;
2213+
Parameters p = (Parameters) r.getResource();
2214+
new ParametersRenderer(lrc).setMultiLangMode(langs.size() > 1).renderResource(ResourceWrapper.forResource(lrc, p));
2215+
} else if (r.getResource() instanceof DomainResource) {
2216+
checkExistingNarrative(f, r, ((DomainResource) r.getResource()).getText().getDiv());
22182217
}
2219-
if (regen) {
2220-
Element e = convertToElement(r, r.getResource());
2221-
e.copyUserData(r.getElement());
2222-
r.setElement(e);
2223-
}
2224-
} else {
2225-
boolean first = true;
2226-
for (Locale lang : langs) {
2227-
RenderingContext lrc = rc.copy(false).setParser(getTypeLoader(f,r));
2228-
lrc.clearAnchors();
2229-
lrc.setLocale(lang);
2230-
lrc.setRules(GenerationRules.VALID_RESOURCE);
2231-
lrc.setSecondaryLang(!first);
2232-
first = false;
2218+
}
2219+
if (regen) {
2220+
Element e = convertToElement(r, r.getResource());
2221+
e.copyUserData(r.getElement());
2222+
r.setElement(e);
2223+
}
2224+
} else {
2225+
boolean first = true;
2226+
for (Locale lang : langs) {
2227+
RenderingContext lrc = rc.copy(false).setParser(getTypeLoader(f,r));
2228+
lrc.clearAnchors();
2229+
lrc.setLocale(lang);
2230+
lrc.setRules(GenerationRules.VALID_RESOURCE);
2231+
lrc.setSecondaryLang(!first);
2232+
first = false;
22332233
if (isDomainResource(r) && (isRegen || langs.size() > 1 || !hasNarrative(r.getElement()))) {
2234-
ResourceWrapper rw = ResourceWrapper.forResource(lrc, r.getElement());
2234+
ResourceWrapper rw = ResourceWrapper.forResource(lrc, r.getElement());
22352235
ResourceRenderer rr = RendererFactory.factory(rw, lrc);
22362236
if (rr.renderingUsesValidation()) {
22372237
r.setRegenAfterValidation(true);
22382238
needsRegen = true;
22392239
}
22402240
rr.setMultiLangMode(langs.size() > 1).renderResource(rw);
2241-
otherFilesRun.addAll(lrc.getFiles());
2242-
} else if (r.fhirType().equals("Bundle")) {
2243-
lrc.setAddName(true);
2244-
for (Element e : r.getElement().getChildrenByName("entry")) {
2245-
Element res = e.getNamedChild("resource");
2246-
if (res!=null && "http://hl7.org/fhir/StructureDefinition/DomainResource".equals(res.getProperty().getStructure().getBaseDefinition())) {
2247-
ResourceWrapper rw = ResourceWrapper.forResource(lrc, res);
2241+
otherFilesRun.addAll(lrc.getFiles());
2242+
} else if (r.fhirType().equals("Bundle")) {
2243+
lrc.setAddName(true);
2244+
for (Element e : r.getElement().getChildrenByName("entry")) {
2245+
Element res = e.getNamedChild("resource");
2246+
if (res!=null && "http://hl7.org/fhir/StructureDefinition/DomainResource".equals(res.getProperty().getStructure().getBaseDefinition())) {
2247+
ResourceWrapper rw = ResourceWrapper.forResource(lrc, res);
22482248
ResourceRenderer rr = RendererFactory.factory(rw, lrc);
22492249
if (rr.renderingUsesValidation()) {
22502250
r.setRegenAfterValidation(true);
22512251
needsRegen = true;
22522252
}
2253-
if (hasNarrative(res)) {
2253+
if (hasNarrative(res)) {
22542254
rr.checkNarrative(rw);
2255-
} else {
2255+
} else {
22562256
rr.setMultiLangMode(langs.size() > 1).renderResource(rw);
2257-
}
22582257
}
22592258
}
2260-
} else if (isDomainResource(r) && hasNarrative(r.getElement())) {
2261-
checkExistingNarrative(f, r, r.getElement().getNamedChild("text").getNamedChild("div").getXhtml());
22622259
}
2260+
} else if (isDomainResource(r) && hasNarrative(r.getElement())) {
2261+
checkExistingNarrative(f, r, r.getElement().getNamedChild("text").getNamedChild("div").getXhtml());
22632262
}
22642263
}
22652264
}
2266-
} else {
2267-
logDebugMessage(LogCategory.PROGRESS, "skipped narrative for "+f.getName()+" : "+r.getId());
22682265
}
2266+
} else {
2267+
logDebugMessage(LogCategory.PROGRESS, "skipped narrative for "+f.getName()+" : "+r.getId());
22692268
}
22702269
}
2270+
}
22712271
} finally {
22722272
f.finish("generateNarratives");
22732273
}
@@ -9056,6 +9056,8 @@ private void generateSummaryOutputs(DBBuilder db) throws Exception {
90569056
start = System.currentTimeMillis();
90579057
trackedFragment("3", "dependency-table-short", depr.render(publishedIg, false, false, false), otherFilesRun, start, "dependency-table-short", "Cross");
90589058
start = System.currentTimeMillis();
9059+
trackedFragment("3", "dependency-table-nontech", depr.renderNonTech(publishedIg), otherFilesRun, start, "dependency-table-nontech", "Cross");
9060+
start = System.currentTimeMillis();
90599061
trackedFragment("4", "globals-table", depr.renderGlobals(), otherFilesRun, start, "globals-table", "Cross");
90609062

90619063
// now, list the profiles - all the profiles
@@ -11661,7 +11663,7 @@ private String processRefTag(DBBuilder db, String src, FetchedFile f) {
1166111663
private ContextUtilities cu;
1166211664

1166311665
private boolean logLoading;
11664-
11666+
1166511667
private JsonObject approvedIgsForCustomResources;
1166611668
private Set<String> customResourceNames = new HashSet<>();
1166711669
private List<StructureDefinition> customResources = new ArrayList<>();
@@ -12221,7 +12223,7 @@ private byte[] saveNativeResourceOutputs(FetchedFile f, FetchedResource r) throw
1222112223
Element eNN = element;
1222212224
jp.compose(element, bsj, OutputStyle.NORMAL, igpkp.getCanonical());
1222312225
if (!r.isCustomResource()) {
12224-
npm.addFile(isExample(f,r ) ? Category.EXAMPLE : Category.RESOURCE, element.fhirType()+"-"+r.getId()+".json", bsj.toByteArray());
12226+
npm.addFile(isExample(f,r ) ? Category.EXAMPLE : Category.RESOURCE, element.fhirType()+"-"+r.getId()+".json", bsj.toByteArray());
1222512227
} else if ("StructureDefinition".equals(r.fhirType())) {
1222612228
npm.addFile(Category.RESOURCE, element.fhirType()+"-"+r.getId()+".json", bsj.toByteArray());
1222712229
StructureDefinition sdt = (StructureDefinition) r.getResource().copy();
@@ -12238,7 +12240,7 @@ private byte[] saveNativeResourceOutputs(FetchedFile f, FetchedResource r) throw
1223812240
new JsonParser().setOutputStyle(OutputStyle.NORMAL).compose(bsj, bin);
1223912241
npm.addFile(isExample(f,r ) ? Category.EXAMPLE : Category.RESOURCE, "Binary-"+r.getId()+".json", bsj.toByteArray());
1224012242
}
12241-
12243+
1224212244
if (module.isNoNarrative()) {
1224312245
// we don't use the narrative in these resources in _includes, so we strip it - it slows Jekyll down greatly
1224412246
eNN = (Element) element.copy();

0 commit comments

Comments
 (0)