
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
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classclassclassstatic interfaceclassclassclassNested classes/interfaces inherited from class org.hl7.fhir.r4.utils.TranslatingUtilities
TranslatingUtilities.TranslationServices -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionProfileUtilities(IWorkerContext context, List<org.hl7.fhir.utilities.validation.ValidationMessage> messages, ProfileUtilities.ProfileKnowledgeProvider pkp) -
Method Summary
Modifier and TypeMethodDescriptionstatic StringvoidvoidcloseDifferential(StructureDefinition base, StructureDefinition derived) static StringvoidgenerateCsvs(OutputStream dest, StructureDefinition structure, boolean asXml) generateExamples(StructureDefinition sd, boolean evenWhenNoExamples) org.hl7.fhir.utilities.xhtml.XhtmlNodegenerateExtensionTable(String defFile, StructureDefinition ed, String imageFolder, boolean inlineGraphics, boolean full, String corePath, String imagePath, Set<String> outputTracker) org.hl7.fhir.utilities.xhtml.XhtmlNodegenerateGrid(String defFile, StructureDefinition profile, String imageFolder, boolean inlineGraphics, String profileBaseFileName, String corePath, String imagePath, Set<String> outputTracker) voidgenerateSchematrons(OutputStream dest, StructureDefinition structure) voidgenerateSnapshot(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.XhtmlNodegenerateSpanningTable(StructureDefinition profile, String imageFolder, boolean onlyConstraints, String constraintPrefix, Set<String> outputTracker) org.hl7.fhir.utilities.xhtml.XhtmlNodegenerateTable(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) voidgenerateXlsx(OutputStream dest, StructureDefinition structure, boolean asXml, boolean hideMustSupportFalse) voidgenTargetLink(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.TerminologyServiceOptionsorg.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator.TableModelinitSpanningTable(org.hl7.fhir.utilities.xhtml.HierarchicalTableGenerator gen, String prefix, boolean isLogical, String id) interpretR2Discriminator(String discriminator, boolean isExists) static booleanstatic booleanbooleanisIgmode()static booleanbooleanbooleanisPrimitive(String value) static booleanbooleanstatic StructureDefinitionmakeExtensionForVersionedURL(IWorkerContext context, String url) voidstatic StringvoidsetIds(StructureDefinition sd, boolean checkFirst) voidsetIgmode(boolean igmode) voidsetNewSlicingProcessing(boolean newSlicingProcessing) voidsetTerminologyServiceOptions(org.hl7.fhir.utilities.TerminologyServiceOptions terminologyServiceOptions) voidsetThrowException(boolean exception) voidsortDifferential(StructureDefinition base, StructureDefinition diff, String name, List<String> errors) static StringvoidupdateMaps(StructureDefinition base, StructureDefinition derived) Methods inherited from class org.hl7.fhir.r4.utils.TranslatingUtilities
egt, gtMethods 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.FHIRExceptionorg.hl7.fhir.exceptions.DefinitionExceptionException
-
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:
IOExceptionorg.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:
IOExceptionorg.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:
IOExceptionorg.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.FHIRExceptionError
-
sdNs
-
generateSchematrons
public void generateSchematrons(OutputStream dest, StructureDefinition structure) throws IOException, org.hl7.fhir.exceptions.DefinitionException - Throws:
IOExceptionorg.hl7.fhir.exceptions.DefinitionException
-
generateCsvs
public void generateCsvs(OutputStream dest, StructureDefinition structure, boolean asXml) throws IOException, org.hl7.fhir.exceptions.DefinitionException, Exception - Throws:
IOExceptionorg.hl7.fhir.exceptions.DefinitionExceptionException
-
generateXlsx
public void generateXlsx(OutputStream dest, StructureDefinition structure, boolean asXml, boolean hideMustSupportFalse) throws IOException, org.hl7.fhir.exceptions.DefinitionException, Exception - Throws:
IOExceptionorg.hl7.fhir.exceptions.DefinitionExceptionException
-
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:
IOExceptionorg.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
-
isExtensionDefinition
-
isSimpleExtension
-
isComplexExtension
-
isModifierExtension
-