
Package org.hl7.fhir.r4.utils.sql
Class Runner
java.lang.Object
org.hl7.fhir.r4.utils.sql.Runner
- All Implemented Interfaces:
IHostApplicationServices
How to use the Runner:
create a resource, and fill out:
the context (supports the FHIRPathEngine)
a store that handles the output
a tracker - if you want
Once it's created, you either run it as a batch, or in trickle mode
(1) Batch Mode
* provide a provider
* call execute() with a ViewDefinition
* wait... (watch with an observer if you want to track progress)
(2) Trickle Mode
* call 'prepare', and keep the WorkContext that's returned
* each time there's a resource to process, call processResource and pass in the workContext and the resource
* when done, call finish(WorkContext)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
class
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncheckFunction
(FHIRPathEngine engine, Object appContext, String functionName, TypeDetails focus, List<TypeDetails> parameters) Check the function parameters, and throw an error if they are incorrect, or return the type for the functionboolean
conformsToProfile
(FHIRPathEngine engine, Object appContext, Base item, String url) void
void
execute
(org.hl7.fhir.utilities.json.model.JsonObject viewDefinition) executeFunction
(FHIRPathEngine engine, Object appContext, List<Base> focus, String functionName, List<List<Base>> parameters) void
List
<org.hl7.fhir.utilities.validation.ValidationMessage> boolean
when the .log() function is calledboolean
paramIsType
(String name, int index) For the moment, there can only be one parameter if it's a type parametervoid
resolveConstant
(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) A constant reference - e.g. a reference to a name that must be resolved in context.resolveConstantType
(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) Compile time support for a constant reference - e.g. a reference to a name that must be resolved in context.resolveFunction
(FHIRPathEngine engine, String functionName) resolveReference
(FHIRPathEngine engine, Object appContext, String url, Base refContext) Implementation of resolve() function.resolveValueSet
(FHIRPathEngine engine, Object appContext, String url) void
setContext
(IWorkerContext context) void
setProvider
(Provider provider) void
setStorage
(Storage storage)
-
Constructor Details
-
Runner
public Runner()
-
-
Method Details
-
getContext
-
setContext
-
getProvider
-
setProvider
-
getStorage
-
setStorage
-
getProhibitedNames
-
execute
-
execute
-
prepare
public Runner.WorkContext prepare(String path, org.hl7.fhir.utilities.json.model.JsonObject viewDefinition) -
processResource
-
finish
-
resolveConstant
public List<Base> resolveConstant(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) throws org.hl7.fhir.exceptions.PathEngineException Description copied from interface:IHostApplicationServices
A constant reference - e.g. a reference to a name that must be resolved in context. resolveConstant is invoked under 3 different circumstances, which are reflected in the mode parameter: * an explicit constant of the form %{token}, where the token isn't a known internal constant * every evaluation of any expression to allow the Host Application to decide whether to interpret the expression as a constant even if it is not explicitly a constant * at the start of evaluating an expression if the focus provided by the application when invoking the expression is {} The return value is a List- a collection, though most constants are singleton values note that variables created using defineVariable() in the FHIRPath expressions will not be processed by resolveConstant (or resolveConstantType) - Specified by:
resolveConstant
in interfaceIHostApplicationServices
- Parameters:
appContext
- - application context passed into the FHIRPath engine when first executedname
- - name reference to resolve. if mode = EXPLICIT, the % will NOT be in the namemode
- - what situation the reference comes from - see the documentation for @FHIRPathConstantEvaluationMode- Returns:
- the value of the constant , or an empty list, though the host application can choose to throw an exception
- Throws:
org.hl7.fhir.exceptions.PathEngineException
-
resolveConstantType
public TypeDetails resolveConstantType(FHIRPathEngine engine, Object appContext, String name, org.hl7.fhir.utilities.fhirpath.FHIRPathConstantEvaluationMode mode) throws org.hl7.fhir.exceptions.PathEngineException Description copied from interface:IHostApplicationServices
Compile time support for a constant reference - e.g. a reference to a name that must be resolved in context. resolveConstant is invoked under 3 different circumstances, which are reflected in the mode parameter: * an explicit constant of the form %{token}, where the token isn't a known internal constant * every evaluation of any expression to allow the Host Application to decide whether to interpret the expression as a constant even if it is not explicitly a constant * at the start of evaluating an expression if the focus provided by the application when invoking the expression is {} The return value is a TypeDetails - a collection, though most constants are singleton values note that variables created using defineVariable() in the FHIRPath expressions will not be processed by resolveConstant (or resolveConstantType)- Specified by:
resolveConstantType
in interfaceIHostApplicationServices
- Parameters:
appContext
- - application context passed into the FHIRPath engine when first executedname
- - name reference to resolve. if mode = EXPLICIT, the % will NOT be in the namemode
- - what situation the reference comes from - see the documentation for @FHIRPathConstantEvaluationMode- Returns:
- the type of the constant, or null, though the host application can choose to throw an exception
- Throws:
org.hl7.fhir.exceptions.PathEngineException
-
log
Description copied from interface:IHostApplicationServices
when the .log() function is called- Specified by:
log
in interfaceIHostApplicationServices
- Parameters:
argument
-focus
-- Returns:
-
resolveFunction
public FHIRPathUtilityClasses.FunctionDetails resolveFunction(FHIRPathEngine engine, String functionName) - Specified by:
resolveFunction
in interfaceIHostApplicationServices
- Parameters:
functionName
-- Returns:
- null if the function is not known
-
checkFunction
public TypeDetails checkFunction(FHIRPathEngine engine, Object appContext, String functionName, TypeDetails focus, List<TypeDetails> parameters) throws org.hl7.fhir.exceptions.PathEngineException Description copied from interface:IHostApplicationServices
Check the function parameters, and throw an error if they are incorrect, or return the type for the function- Specified by:
checkFunction
in interfaceIHostApplicationServices
- Parameters:
functionName
-parameters
-- Returns:
- Throws:
org.hl7.fhir.exceptions.PathEngineException
-
executeFunction
public List<Base> executeFunction(FHIRPathEngine engine, Object appContext, List<Base> focus, String functionName, List<List<Base>> parameters) - Specified by:
executeFunction
in interfaceIHostApplicationServices
- Parameters:
appContext
-functionName
-parameters
-- Returns:
-
resolveReference
public Base resolveReference(FHIRPathEngine engine, Object appContext, String url, Base refContext) throws org.hl7.fhir.exceptions.FHIRException Description copied from interface:IHostApplicationServices
Implementation of resolve() function. Passed a string, return matching resource, if one is known - else null- Specified by:
resolveReference
in interfaceIHostApplicationServices
- Parameters:
url
- the reference (Reference.reference or the value of the canonical- Returns:
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
conformsToProfile
public boolean conformsToProfile(FHIRPathEngine engine, Object appContext, Base item, String url) throws org.hl7.fhir.exceptions.FHIRException - Specified by:
conformsToProfile
in interfaceIHostApplicationServices
- Throws:
org.hl7.fhir.exceptions.FHIRException
-
resolveValueSet
- Specified by:
resolveValueSet
in interfaceIHostApplicationServices
-
paramIsType
Description copied from interface:IHostApplicationServices
For the moment, there can only be one parameter if it's a type parameter- Specified by:
paramIsType
in interfaceIHostApplicationServices
- Parameters:
name
-- Returns:
- true if it's a type parameter
-
getIssues
-