internal static string ForHtml(this Profile.ElementDefinitionBindingComponent binding, ProfileKnowledgeProvider pkp = null) { if (binding.Reference == null || pkp == null) { return(binding.Description); } var reference = binding.Reference is FhirUri ? ((FhirUri)binding.Reference).Value : ((ResourceReference)binding.Reference).Reference; var vs = pkp.GetValueSet(reference); if (vs != null) { return(binding.Description + "<br/>" + conf(binding) + "<a href=\"" + reference + "\">" + vs.Name + "</a>" + confTail(binding)); } if (reference.StartsWith("http:") || reference.StartsWith("https:")) { return(binding.Description + "<br/>" + conf(binding) + " <a href=\"" + reference + "\">" + reference + "</a>" + confTail(binding)); } else { return(binding.Description + "<br/>" + conf(binding) + " ?? Broken Reference to " + reference + " ??" + confTail(binding)); } }
private static String confTail(Profile.ElementDefinitionBindingComponent def) { //TODO: Note: I think the Java implmentation assumes a default of "false" here for IsExtensible... if (def.Conformance == Profile.BindingConformance.Preferred || (def.Conformance == Profile.BindingConformance.Required && def.IsExtensible.GetValueOrDefault(false))) { return("; other codes may be used where these codes are not suitable"); } else { return(""); } }
private static String conf(Profile.ElementDefinitionBindingComponent def) { if (def.Conformance == null) { return("For codes, see "); } switch (def.Conformance) { case Profile.BindingConformance.Example: return("For example codes, see "); case Profile.BindingConformance.Preferred: return("The codes SHOULD be taken from "); case Profile.BindingConformance.Required: return("The codes SHALL be taken from "); default: return("??"); } }