Package org.hl7.fhir.r4.conformance
Class ProfileUtilities
java.lang.Object
org.hl7.fhir.utilities.TranslatingUtilities
org.hl7.fhir.r4.utils.TranslatingUtilities
org.hl7.fhir.r4.conformance.ProfileUtilities
This class provides a set of utility operations for working with Profiles.
Key functionality: * getChildMap --? * getChildList * generateSnapshot: Given
a base (snapshot) profile structure, and a differential profile, generate a
new snapshot profile * closeDifferential: fill out a differential by
excluding anything not mentioned * generateExtensionsTable: generate the HTML
for a hierarchical table presentation of the extensions * generateTable:
generate the HTML for a hierarchical table presentation of a structure *
generateSpanningTable: generate the HTML for a table presentation of a
network of structures, starting at a nominated point * summarize: describe
the contents of a profile
note to maintainers: Do not make modifications to the snapshot generation
without first changing the snapshot generation test cases to demonstrate the
grounds for your change
- Author:
- Grahame
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
static class
class
class
static interface
class
class
class
Nested classes/interfaces inherited from class org.hl7.fhir.r4.utils.TranslatingUtilities
TranslatingUtilities.TranslationServices
-
Field Summary
-
Constructor Summary
ConstructorDescriptionProfileUtilities
(IWorkerContext context, List<org.hl7.fhir.utilities.validation.ValidationMessage> messages, ProfileUtilities.ProfileKnowledgeProvider pkp) -
Method Summary
Modifier and TypeMethodDescriptionstatic String
void
void
closeDifferential
(StructureDefinition base, StructureDefinition derived) static String
void
generateCsvs
(OutputStream dest, StructureDefinition structure, boolean asXml) generateExamples
(StructureDefinition sd, boolean evenWhenNoExamples) org.hl7.fhir.utilities.xhtml.XhtmlNode
generateExtensionTable
(String defFile, StructureDefinition ed, String imageFolder, boolean inlineGraphics, boolean full, String corePath, String imagePath, Set<String> outputTracker) org.hl7.fhir.utilities.xhtml.XhtmlNode
generateGrid
(String defFile, StructureDefinition profile, String imageFolder, boolean inlineGraphics, String profileBaseFileName, String corePath, String imagePath, Set<String> outputTracker) void
generateSchematrons
(OutputStream dest, StructureDefinition structure) void
generateSnapshot
(StructureDefinition base, StructureDefinition derived, String url, String webUrl, String profileName) Given a base (snapshot) profile structure, and a differential profile, generate a new snapshot profileorg.hl7.fhir.utilities.xhtml.XhtmlNode
generateSpanningTable
(StructureDefinition profile, String imageFolder, boolean onlyConstraints, String constraintPrefix, Set<String> outputTracker) org.hl7.fhir.utilities.xhtml.XhtmlNode
generateTable
(String defFile, StructureDefinition profile, boolean diff, String imageFolder, boolean inlineGraphics, String profileBaseFileName, boolean snapshot, String corePath, String imagePath, boolean logicalModel, boolean allInvariants, Set<String> outputTracker) void
generateXlsx
(OutputStream dest, StructureDefinition structure, boolean asXml, boolean hideMustSupportFalse) void
genTargetLink
(org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator gen, String profileBaseFileName, String corePath, org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.Cell c, ElementDefinition.TypeRefComponent t, String u) static List
<ElementDefinition> getChildList
(StructureDefinition profile, String path, String id) Given a Structure, navigate to the element given by the path and return the direct children of that elementstatic List
<ElementDefinition> getChildList
(StructureDefinition profile, String path, String id, boolean diff) static List
<ElementDefinition> getChildList
(StructureDefinition structure, ElementDefinition element) static List
<ElementDefinition> getChildList
(StructureDefinition structure, ElementDefinition element, boolean diff) static List
<ElementDefinition> getChildMap
(StructureDefinition profile, ElementDefinition element) getComparer
(ProfileUtilities.ElementDefinitionComparer cmp, ProfileUtilities.ElementDefinitionHolder child) getProfile
(StructureDefinition source, String url) static List
<ElementDefinition> getSliceList
(StructureDefinition profile, ElementDefinition element) org.hl7.fhir.utilities.TerminologyServiceOptions
org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.TableModel
initSpanningTable
(org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator gen, String prefix, boolean isLogical, String id) interpretR2Discriminator
(String discriminator, boolean isExists) static boolean
boolean
isDebug()
static boolean
boolean
isIgmode()
static boolean
boolean
boolean
isPrimitive
(String value) static boolean
boolean
static StructureDefinition
makeExtensionForVersionedURL
(IWorkerContext context, String url) void
static String
void
setDebug
(boolean debug) void
setIds
(StructureDefinition sd, boolean checkFirst) void
setIgmode
(boolean igmode) void
setNewSlicingProcessing
(boolean newSlicingProcessing) void
setTerminologyServiceOptions
(org.hl7.fhir.utilities.TerminologyServiceOptions terminologyServiceOptions) void
setThrowException
(boolean exception) void
sortDifferential
(StructureDefinition base, StructureDefinition diff, String name, List<String> errors) static String
void
updateMaps
(StructureDefinition base, StructureDefinition derived) Methods inherited from class org.hl7.fhir.r4.utils.TranslatingUtilities
egt, gt
Methods inherited from class org.hl7.fhir.utilities.TranslatingUtilities
getTranslator, hasTranslator, setTranslator, toStr, toStr, translate, translate
-
Field Details
-
STATUS_OK
- See Also:
-
STATUS_HINT
- See Also:
-
STATUS_WARNING
- See Also:
-
STATUS_ERROR
- See Also:
-
STATUS_FATAL
- See Also:
-
DERIVATION_POINTER
- See Also:
-
IS_DERIVED
- See Also:
-
UD_ERROR_STATUS
- See Also:
-
-
Constructor Details
-
ProfileUtilities
public ProfileUtilities(IWorkerContext context, List<org.hl7.fhir.utilities.validation.ValidationMessage> messages, ProfileUtilities.ProfileKnowledgeProvider pkp)
-
-
Method Details
-
isIgmode
-
setIgmode
-
getChildMap
public static List<ElementDefinition> getChildMap(StructureDefinition profile, ElementDefinition element) throws org.hl7.fhir.exceptions.DefinitionException - Throws:
org.hl7.fhir.exceptions.DefinitionException
-
getSliceList
public static List<ElementDefinition> getSliceList(StructureDefinition profile, ElementDefinition element) throws org.hl7.fhir.exceptions.DefinitionException - Throws:
org.hl7.fhir.exceptions.DefinitionException
-
getChildList
public static List<ElementDefinition> getChildList(StructureDefinition profile, String path, String id) Given a Structure, navigate to the element given by the path and return the direct children of that element- Parameters:
path
- The path of the element within the structure to get the children forstructure
- The structure to navigate into- Returns:
- A List containing the element children (all of them are Elements)
-
getChildList
public static List<ElementDefinition> getChildList(StructureDefinition profile, String path, String id, boolean diff) -
getChildList
public static List<ElementDefinition> getChildList(StructureDefinition structure, ElementDefinition element, boolean diff) -
getChildList
public static List<ElementDefinition> getChildList(StructureDefinition structure, ElementDefinition element) -
updateMaps
public void updateMaps(StructureDefinition base, StructureDefinition derived) throws org.hl7.fhir.exceptions.DefinitionException - Throws:
org.hl7.fhir.exceptions.DefinitionException
-
generateSnapshot
public void generateSnapshot(StructureDefinition base, StructureDefinition derived, String url, String webUrl, String profileName) throws org.hl7.fhir.exceptions.DefinitionException, org.hl7.fhir.exceptions.FHIRException Given a base (snapshot) profile structure, and a differential profile, generate a new snapshot profile- Parameters:
base
- - the base structure on which the differential will be appliedurl
- - where the base has relative urls for profile references, these need to be converted to absolutes by prepending this URL (e.g. the canonical URL)webUrl
- - where the base has relative urls in markdown, these need to be converted to absolutes by prepending this URL (this is not the same as the canonical URL)differential
- - the differential to apply to the basetrimDifferential
- - if this is true, then the snap short generator will remove any material in the element definitions that is not different to the base- Throws:
org.hl7.fhir.exceptions.FHIRException
org.hl7.fhir.exceptions.DefinitionException
Exception
-
typeCode
-
closeDifferential
public void closeDifferential(StructureDefinition base, StructureDefinition derived) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
generateExtensionTable
public org.hl7.fhir.utilities.xhtml.XhtmlNode generateExtensionTable(String defFile, StructureDefinition ed, String imageFolder, boolean inlineGraphics, boolean full, String corePath, String imagePath, Set<String> outputTracker) throws IOException, org.hl7.fhir.exceptions.FHIRException - Throws:
IOException
org.hl7.fhir.exceptions.FHIRException
-
genTargetLink
public void genTargetLink(org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator gen, String profileBaseFileName, String corePath, org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.Cell c, ElementDefinition.TypeRefComponent t, String u) -
describeExtensionContext
-
generateTable
public org.hl7.fhir.utilities.xhtml.XhtmlNode generateTable(String defFile, StructureDefinition profile, boolean diff, String imageFolder, boolean inlineGraphics, String profileBaseFileName, boolean snapshot, String corePath, String imagePath, boolean logicalModel, boolean allInvariants, Set<String> outputTracker) throws IOException, org.hl7.fhir.exceptions.FHIRException - Throws:
IOException
org.hl7.fhir.exceptions.FHIRException
-
generateGrid
public org.hl7.fhir.utilities.xhtml.XhtmlNode generateGrid(String defFile, StructureDefinition profile, String imageFolder, boolean inlineGraphics, String profileBaseFileName, String corePath, String imagePath, Set<String> outputTracker) throws IOException, org.hl7.fhir.exceptions.FHIRException - Throws:
IOException
org.hl7.fhir.exceptions.FHIRException
-
describeSlice
-
isPrimitive
-
getProfile
-
sortDifferential
public void sortDifferential(StructureDefinition base, StructureDefinition diff, String name, List<String> errors) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
getComparer
public ProfileUtilities.ElementDefinitionComparer getComparer(ProfileUtilities.ElementDefinitionComparer cmp, ProfileUtilities.ElementDefinitionHolder child) throws org.hl7.fhir.exceptions.FHIRException, Error - Throws:
org.hl7.fhir.exceptions.FHIRException
Error
-
sdNs
-
generateSchematrons
public void generateSchematrons(OutputStream dest, StructureDefinition structure) throws IOException, org.hl7.fhir.exceptions.DefinitionException - Throws:
IOException
org.hl7.fhir.exceptions.DefinitionException
-
generateCsvs
public void generateCsvs(OutputStream dest, StructureDefinition structure, boolean asXml) throws IOException, org.hl7.fhir.exceptions.DefinitionException, Exception - Throws:
IOException
org.hl7.fhir.exceptions.DefinitionException
Exception
-
generateXlsx
public void generateXlsx(OutputStream dest, StructureDefinition structure, boolean asXml, boolean hideMustSupportFalse) throws IOException, org.hl7.fhir.exceptions.DefinitionException, Exception - Throws:
IOException
org.hl7.fhir.exceptions.DefinitionException
Exception
-
setIds
public void setIds(StructureDefinition sd, boolean checkFirst) throws org.hl7.fhir.exceptions.DefinitionException - Throws:
org.hl7.fhir.exceptions.DefinitionException
-
generateExamples
public List<Element> generateExamples(StructureDefinition sd, boolean evenWhenNoExamples) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
populateLogicalSnapshot
public void populateLogicalSnapshot(StructureDefinition sd) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
cleanUpDifferential
-
generateSpanningTable
public org.hl7.fhir.utilities.xhtml.XhtmlNode generateSpanningTable(StructureDefinition profile, String imageFolder, boolean onlyConstraints, String constraintPrefix, Set<String> outputTracker) throws IOException, org.hl7.fhir.exceptions.FHIRException - Throws:
IOException
org.hl7.fhir.exceptions.FHIRException
-
initSpanningTable
public org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.TableModel initSpanningTable(org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator gen, String prefix, boolean isLogical, String id) -
interpretR2Discriminator
public static ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent interpretR2Discriminator(String discriminator, boolean isExists) -
buildR2Discriminator
public static String buildR2Discriminator(ElementDefinition.ElementDefinitionSlicingDiscriminatorComponent t) throws org.hl7.fhir.exceptions.FHIRException - Throws:
org.hl7.fhir.exceptions.FHIRException
-
makeExtensionForVersionedURL
-
isThrowException
-
setThrowException
-
getTerminologyServiceOptions
-
setTerminologyServiceOptions
public void setTerminologyServiceOptions(org.hl7.fhir.utilities.TerminologyServiceOptions terminologyServiceOptions) -
isNewSlicingProcessing
-
setNewSlicingProcessing
-
isDebug
-
setDebug
-
isExtensionDefinition
-
isSimpleExtension
-
isComplexExtension
-
isModifierExtension
-