
001package org.hl7.fhir.r5.renderers; 002 003import java.io.IOException; 004import java.io.UnsupportedEncodingException; 005 006import org.hl7.fhir.exceptions.DefinitionException; 007import org.hl7.fhir.exceptions.FHIRException; 008import org.hl7.fhir.exceptions.FHIRFormatError; 009import org.hl7.fhir.r5.model.ActorDefinition; 010import org.hl7.fhir.r5.model.CapabilityStatement; 011import org.hl7.fhir.r5.model.Library; 012import org.hl7.fhir.r5.model.UrlType; 013import org.hl7.fhir.r5.renderers.utils.RenderingContext; 014import org.hl7.fhir.r5.renderers.utils.ResourceWrapper; 015import org.hl7.fhir.r5.utils.EOperationOutcome; 016import org.hl7.fhir.utilities.MarkedToMoveToAdjunctPackage; 017import org.hl7.fhir.utilities.xhtml.XhtmlNode; 018 019@MarkedToMoveToAdjunctPackage 020public class ActorDefinitionRenderer extends ResourceRenderer { 021 022 023 public ActorDefinitionRenderer(RenderingContext context) { 024 super(context); 025 } 026 027 @Override 028 public void buildNarrative(RenderingStatus status, XhtmlNode x, ResourceWrapper r) throws FHIRFormatError, DefinitionException, IOException, FHIRException, EOperationOutcome { 029 renderResourceTechDetails(r, x); 030 genSummaryTable(status, x, r); 031 render(status, x, r); 032 } 033 034 @Override 035 public String buildSummary(ResourceWrapper r) throws UnsupportedEncodingException, IOException { 036 return canonicalTitle(r); 037 } 038 039 public void render(RenderingStatus status, XhtmlNode x, ResourceWrapper acd) throws FHIRFormatError, DefinitionException, IOException { 040 XhtmlNode tbl = x.table("grid", false); 041 XhtmlNode tr = tbl.tr(); 042 tr.td().b().tx(context.formatPhrase(RenderingContext.ACTOR_DEF_ACT, context.getTranslated(acd.child("name"))) + " "); 043 tr.td().tx(context.getTranslated(acd.child("title"))); 044 tr.td().tx(context.formatPhrase(RenderingContext.ACTOR_DEF_TYP, acd.primitiveValue("type")) + " "); 045 XhtmlNode td = tbl.tr().td().colspan("3"); 046 addMarkdown(td, context.getTranslated(acd.child("documentation"))); 047 if (acd.has("reference")) { 048 tbl.tr().td().tx(context.formatPhrase(RenderingContext.GENERAL_REFS)); 049 td = tr.td().colspan("2"); 050 boolean first = true; 051 for (ResourceWrapper t : acd.children("reference")) { 052 if (first) first = false; else x.br(); 053 renderUri(status, td, t); 054 } 055 } 056 if (acd.has("capabilities")) { 057 tr = tbl.tr(); 058 tr.td().tx(context.formatPhrase(RenderingContext.ACTOR_DEF_CAP)); 059 td = tr.td().colspan("2"); 060 renderCanonical(status, td, acd.child("capabilities")); 061 } 062 if (acd.has("derivedFrom")) { 063 tbl.tr().td().tx(context.formatPhrase(RenderingContext.ACTOR_DEF_DER)); 064 td = tr.td().colspan("2"); 065 boolean first = true; 066 for (ResourceWrapper t : acd.children("reference")) { 067 if (first) first = false; else x.br(); 068 renderUri(status, td, t); 069 } 070 } 071 } 072 073 public void describe(XhtmlNode x, Library lib) { 074 x.tx(display(lib)); 075 } 076 077 public String display(Library lib) { 078 return lib.present(); 079 } 080 081}