HS.HC.FHIRSQL.Server.Analysis
class HS.HC.FHIRSQL.Server.Analysis extends %Library.RegisteredObject
Property Inventory
Method Inventory
- AddElement()
- AddElementsList()
- CalculatePercentageCompleted()
- GetLock()
- GetPropertyNames()
- GetResourceItems()
- ProcessExtension()
- ProcessNonPrimitive()
- StartAnalysis()
- UpdateSetCounts()
- generateResourceList()
- iterate()
- logValue()
- processResources()
Properties
property Evaluated as %Integer [ InitialExpression = 0 ];
Property methods: EvaluatedDisplayToLogical(), EvaluatedGet(), EvaluatedIsValid(), EvaluatedLogicalToDisplay(), EvaluatedNormalize(), EvaluatedSet()
property FHIRRepository as %DynamicObject;
Property methods: FHIRRepositoryGet(), FHIRRepositoryGetObject(), FHIRRepositoryGetObjectId(), FHIRRepositoryGetSwizzled(), FHIRRepositoryIsValid(), FHIRRepositoryNewObject(), FHIRRepositorySet(), FHIRRepositorySetObject(), FHIRRepositorySetObjectId(), FHIRRepositoryUnSwizzle()
property Parameters as %DynamicObject;
Property methods: ParametersGet(), ParametersGetObject(), ParametersGetObjectId(), ParametersGetSwizzled(), ParametersIsValid(), ParametersNewObject(), ParametersSet(), ParametersSetObject(), ParametersSetObjectId(), ParametersUnSwizzle()
property ResourceStatus as %DynamicObject;
Property methods: ResourceStatusGet(), ResourceStatusGetObject(), ResourceStatusGetObjectId(), ResourceStatusGetSwizzled(), ResourceStatusIsValid(), ResourceStatusNewObject(), ResourceStatusSet(), ResourceStatusSetObject(), ResourceStatusSetObjectId(), ResourceStatusUnSwizzle()
property Scan as %DynamicObject;
Property methods: ScanGet(), ScanGetObject(), ScanGetObjectId(), ScanGetSwizzled(), ScanIsValid(), ScanNewObject(), ScanSet(), ScanSetObject(), ScanSetObjectId(), ScanUnSwizzle()
property ScanId as %Integer;
Property methods: ScanIdDisplayToLogical(), ScanIdGet(), ScanIdIsValid(), ScanIdLogicalToDisplay(), ScanIdNormalize(), ScanIdSet()
property ThisStartTime as %String [ InitialExpression = $ZHOROLOG ];
Property methods: ThisStartTimeDisplayToLogical(), ThisStartTimeGet(), ThisStartTimeIsValid(), ThisStartTimeLogicalToDisplay(), ThisStartTimeLogicalToOdbc(), ThisStartTimeNormalize(), ThisStartTimeSet()
property meta as HS.FHIRMeta.API [ Transient ];
Property methods: metaGet(), metaGetSwizzled(), metaIsValid(), metaNewObject(), metaSet()
Methods
method AddElement(pResource As %String, pBaseObject As %DynamicObject, pJSONType As %String, pProperty, pReference, pRepetitions=0, Output pElement)
pResource - String value of Resource Type (ie Patient)
pBaseObject - Dynamic object where the new element will be inserted into the elements collection
pJSONType - String value of json type "s,x,b,n,o,alias"
pProperty - Name of property
pReference - Full path reference to just before property
pRepetitions- Number of values for an array
pElement - Output of the element value being created (used for extensions on primitives)
method AddElementsList(pResource, pBaseObject, pFHIRType, pReference="")
classmethod CalculatePercentageCompleted(pScan As %DynamicObject)
classmethod GetLock(pClass, pLockManager="", pTimeout=5) as %Status
method GetPropertyNames(pName As %String)
for a Resource build the property names to a temp global
method GetResourceItems(pIndex As %Integer, pResourceObject As %DynamicObject)
method ProcessExtension(pBaseObject, pResource, pReference, pFType)
Process the extensions at this level handling multiple nested extensions
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1","r")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.url","dv")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.url","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.url","v","ombCategory")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.code","dv")=2
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.code","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.code","v","2135-2")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.code","v","2186-5")=6
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.display","dv")=2
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.display","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.display","v","hispanic")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.display","v","non-hispanic")=6
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3","r")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3.url","dv")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3.url","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3.url","v","http://intersystems.com/fhir/extn/sda3/lib/code-table-translated-s-d-a-coding-standard")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3.valueString","dv")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3.valueString","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##2.valueCoding.extension##3.valueString","v","Race & Ethnicity - CDC")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4","r")=2
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.url","dv")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.url","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.url","v","text")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.valueString","dv")=2
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.valueString","tl")=7
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.valueString","v","hispanic")=1
^IRIS.Temp.FHIRSQL("JB","Patient","extension##1.extension##4.valueString","v","non-hispanic")=6
method ProcessNonPrimitive(pResource As %String, pIsArray As %Boolean, pValue As %String, pFHIRType As %String, pProperty As %String, pStorageString As %String)
pResource - string of ResourceType
pIsArray - boolean whether item is an array
pValue - value of property
pFHIRType - fhirType
pProperty - property name
pStorageString- Full reference up to property
classmethod StartAnalysis(pRequestId As %String)
Debugging an analysis can be done by pasting the following lines into terminal of the repo namespace (assuming a standard repo url)
Set obj = {"requestId":"JB","version":1,"maxDistinct":400,"selectivityPercentage":100,"maxRecords":"","url":("/csp/healthshare/"_$zcvt($namespace,"l")_"/fhir/r4"),"namespace":($namespace),"percentageCompleted":0,"version":1},^HS.HC.FHIRSQL.AnalysisD(obj.requestId,"Analysis")=obj.%ToJSON()
d ##class(HS.HC.FHIRSQL.Server.Analysis).StartAnalysis(obj.requestId)
method UpdateSetCounts(pResourceObject As %DynamicObject)
method generateResourceList()
method iterate(pResource As %String, pStorageString As %String, pFHIRType As %String, pJSONObject As %DynamicObject, pRepetitions As %Integer)
Gathering data from the FHIR repo resource by resource iterate the properties, store into Temp which will be used by AddElementsList to build the analysis result
pResource - string name of the resourceType
pStorageString - string containing the storage node ie address.line.extension##001
pFHIRType - anything from Patient, Claim, Extension, HumanName, etc
pJSONObject -
pRepetitions- Nubmer of items in the array
method logValue(pResource As %String, pStorageString As %String, pValue, pRepetitions As %Integer = 0, pFHIRType As %String, pPropertyType As %String = "")
Log property value
pResource - string of ResourceType
pStorageString- Full reference up to property (modified updating primitive _birthDate to birthDate)
pValue - value of property
pRepetitions- max count of array items
pFHIRType - fhirType
pPropertyType -
method processResources()
Inherited Members
Inherited Methods
- %AddToSaveSet()
- %ClassIsLatestVersion()
- %ClassName()
- %ConstructClone()
- %DispatchClassMethod()
- %DispatchGetModified()
- %DispatchGetProperty()
- %DispatchMethod()
- %DispatchSetModified()
- %DispatchSetMultidimProperty()
- %DispatchSetProperty()
- %Extends()
- %GetParameter()
- %IsA()
- %IsModified()
- %New()
- %NormalizeObject()
- %ObjectModified()
- %OriginalNamespace()
- %PackageName()
- %RemoveFromSaveSet()
- %SerializeObject()
- %SetModified()
- %ValidateObject()