Skip to main content

HS.FHIRServer.Storage.JsonAdvSQL.Indexer

class HS.FHIRServer.Storage.JsonAdvSQL.Indexer extends %Library.RegisteredObject, HS.FHIRServer.Util.FHIRQueryUtils

Property Inventory

Method Inventory

Properties

property CommonSearchTableEntry as %Persistent;
Current instance of the common Resource search table class to populate
Property methods: CommonSearchTableEntryGet(), CommonSearchTableEntryGetObject(), CommonSearchTableEntryGetObjectId(), CommonSearchTableEntryGetSwizzled(), CommonSearchTableEntryIsValid(), CommonSearchTableEntryNewObject(), CommonSearchTableEntrySet(), CommonSearchTableEntrySetObject(), CommonSearchTableEntrySetObjectId(), CommonSearchTableEntryUnSwizzle()
property Context [ MultiDimensional ];
When a search column can have more than more value for a given resource, we store the collection of values in a sub-table This MVArray allows holding the set of values so they can be added to the correct sub-tables
Property methods: ContextDisplayToLogical(), ContextGet(), ContextIsValid(), ContextLogicalToDisplay(), ContextLogicalToOdbc(), ContextNormalize(), ContextSet()
property IsBaseResourceProperty as %Boolean;
flag to know when a particular search column is a base Resource param or for a specific resource-type
Property methods: IsBaseResourcePropertyDisplayToLogical(), IsBaseResourcePropertyGet(), IsBaseResourcePropertyIsValid(), IsBaseResourcePropertyLogicalToDisplay(), IsBaseResourcePropertyNormalize(), IsBaseResourcePropertySet()
property RelatedObjectsToUpdate as %ArrayOfObjects;
When we do an update we need to also update values in related tables without doing a delete/recreate. Track the objects for related tables for each search param.
Property methods: RelatedObjectsToUpdateGet(), RelatedObjectsToUpdateGetObject(), RelatedObjectsToUpdateGetObjectId(), RelatedObjectsToUpdateGetSwizzled(), RelatedObjectsToUpdateIsEmpty(), RelatedObjectsToUpdateIsValid(), RelatedObjectsToUpdateNewObject(), RelatedObjectsToUpdateSet(), RelatedObjectsToUpdateSetObject(), RelatedObjectsToUpdateSetObjectId(), RelatedObjectsToUpdateUnSwizzle()
property RelatedPointer as %String;
Pointer for RelatedObjectsToUpdate so we can track our position in the array while updating rows.
Property methods: RelatedPointerDisplayToLogical(), RelatedPointerGet(), RelatedPointerIsValid(), RelatedPointerLogicalToDisplay(), RelatedPointerLogicalToOdbc(), RelatedPointerNormalize(), RelatedPointerSet()
property SearchTableEntry as %Persistent;
Current instance of the search table class to populate
Property methods: SearchTableEntryGet(), SearchTableEntryGetObject(), SearchTableEntryGetObjectId(), SearchTableEntryGetSwizzled(), SearchTableEntryIsValid(), SearchTableEntryNewObject(), SearchTableEntrySet(), SearchTableEntrySetObject(), SearchTableEntrySetObjectId(), SearchTableEntryUnSwizzle()
property Update as %Boolean [ InitialExpression = 0 ];
Flag to know if this is a new row or an update to an existing search table row.
Property methods: UpdateDisplayToLogical(), UpdateGet(), UpdateIsValid(), UpdateLogicalToDisplay(), UpdateNormalize(), UpdateSet()
Interactions instance to use
Property methods: interactionsGet(), interactionsGetSwizzled(), interactionsIsValid(), interactionsNewObject(), interactionsSet()
property json as %DynamicObject;
Json for the resource to index
Property methods: jsonGet(), jsonGetObject(), jsonGetObjectId(), jsonGetSwizzled(), jsonIsValid(), jsonNewObject(), jsonSet(), jsonSetObject(), jsonSetObjectId(), jsonUnSwizzle()
property keyBeingIndexed as %String [ Transient ];
Key of the resource being indexed by this indexer
Property methods: keyBeingIndexedDisplayToLogical(), keyBeingIndexedGet(), keyBeingIndexedIsValid(), keyBeingIndexedLogicalToDisplay(), keyBeingIndexedLogicalToOdbc(), keyBeingIndexedNormalize(), keyBeingIndexedSet()
property mdAPI as HS.FHIRMeta.API;
Metadata API to evaluate FHIR Path expressions. Taken from provided interactions instance
Property methods: mdAPIGet(), mdAPIGetSwizzled(), mdAPIIsValid(), mdAPINewObject(), mdAPISet()
property paramBeingIndexed as %String [ Transient ];
Search column param name, used for error messages primarily
Property methods: paramBeingIndexedDisplayToLogical(), paramBeingIndexedGet(), paramBeingIndexedIsValid(), paramBeingIndexedLogicalToDisplay(), paramBeingIndexedLogicalToOdbc(), paramBeingIndexedNormalize(), paramBeingIndexedSet()
property silenceIndexErrors as %Boolean [ InitialExpression = 0 ];
opt in setting, configured from the strategy config settings. Recommended to keep this off unless temporarily needed while an issue is resolved.
Property methods: silenceIndexErrorsDisplayToLogical(), silenceIndexErrorsGet(), silenceIndexErrorsIsValid(), silenceIndexErrorsLogicalToDisplay(), silenceIndexErrorsNormalize(), silenceIndexErrorsSet()

Methods

method %OnNew(json As %DynamicObject, interactions As HS.FHIRServer.Storage.JsonAdvSQL.Interactions) as %Status
Inherited description: This callback method is invoked by the %New() method to provide notification that a new instance of an object is being created.

If this method returns an error then the object will not be created.

It is passed the arguments provided in the %New call. When customizing this method, override the arguments with whatever variables and types you expect to receive from %New(). For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:

Method %OnNew(dob as %Date = "", name as %Name = "") as %Status If instead of returning a %Status code this returns an oref and this oref is a subclass of the current class then this oref will be the one returned to the caller of %New method.

method AddToSearchTableEntry(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pValue As %String)
method IndexAddress(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexBoolean(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexCanonical(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexCode(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexCodeableConcept(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexCoding(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pCoding)
method IndexContactPoint(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pContactPoint)
method IndexDate(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexDecimal(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexHumanName(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexIdentifier(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pIdentifier)
method IndexInteger(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexMoney(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pQuantity)
method IndexPeriod(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexQuantity(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pQuantity)
method IndexRange(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pQuantity)
method IndexReference(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, pReference)
method IndexString(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexTiming(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
method IndexTypeDate(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Basic Parameter Types: date, number, quantity, reference, string, token, uri Handle each possible date data type: "date", "dateTime", "instant", "Period", "Timing"
method IndexTypeNumber(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Handle each possible number data type: "decimal", "integer", "positiveInt", "unsignedInt"
method IndexTypeQuantity(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Handle each possible quantity data type: "Age", "Duration", "Money", "Quantity", "Range"
method IndexTypeReference(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Handle each possible reference data type: "canonical", "uri", "Reference"
method IndexTypeString(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Handle each possible string data type: "markdown", "string", "Address", "HumanName"
method IndexTypeToken(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Handle each possible token data type: "boolean", "canonical", "code", "id", "string", "CodeableConcept", "Coding", "ContactPoint", "Identifier"
method IndexTypeUri(searchColumn As HS.FHIRServer.Storage.Json.SearchColumn, pColumnDataType As %String, value)
Handle each possible uri data type: "canonical", "uri"
method IndexValues()

Inherited Members

Inherited Methods

FeedbackOpens in a new tab