Skip to main content

HS.HC.FHIRSQL.Server.Analysis

class HS.HC.FHIRSQL.Server.Analysis extends %Library.RegisteredObject

Property Inventory

Method Inventory

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)
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
method processResources()

Inherited Members

Inherited Methods

FeedbackOpens in a new tab