HS.FHIR.DTL.Util.HC.FHIR.SDA3.Process

persistent class HS.FHIR.DTL.Util.HC.FHIR.SDA3.Process extends Ens.BusinessProcess, HS.HC.Util.Trace.Helper

SQL Table Name: HS_FHIR_DTL_Util_HC_FHIR_SDA3.Process

This business process takes a FHIR resource or Bundle as input. The FHIR input can only be of the configured FHIR version. This business process transforms the FHIR data into SDA3, forwards the SDA3 stream to a specified business host, receives the response from the business host, and returns a FHIR response.

Property Inventory

Method Inventory

Parameters

parameter HSDEPLOY = 1;
parameter SETTINGS = TargetConfigName:Basic:selector?context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId},CallbackClass,OutputToQuickStream,TransformClass::selector?context={HS.HC.Util.ContextSearch/SubclassOf?class=HS.FHIR.DTL.Util.API.Transform.FHIRToSDA3},FHIRMetadataSet::selector?context={HS.FHIRServer.Util.ContextSearch/FHIRMetadataSets};
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names

Properties

deprecated property CallbackClass as %String (MAXLEN = 256);
THIS SETTING IS UNUSED AS OF 2020.2 - It is retained to provide user visibility for reference during conversion of existing code customizations.

(LEGACY COMMENT) Class to use for the callback object that is invoked during the DTL transformation process. If this setting is left blank, at run-time it is defaulted to "HS.FHIR.DTL.Util.API.HC.Callback.Default."+FHIRVersion+"ToSDA3". FHIRVersion is to be derived from the incoming FHIR request message FHIRVersion property.
Property methods: CallbackClassDisplayToLogical(), CallbackClassGet(), CallbackClassGetStored(), CallbackClassIsValid(), CallbackClassLogicalToDisplay(), CallbackClassLogicalToOdbc(), CallbackClassNormalize(), CallbackClassSet()
property FHIRMetadataSet as %String (MAXLEN = 256);
FHIR Metadata Set. These are defined in HS_FHIRServer.FHIRMetadataSet.
Property methods: FHIRMetadataSetDisplayToLogical(), FHIRMetadataSetGet(), FHIRMetadataSetGetStored(), FHIRMetadataSetIsValid(), FHIRMetadataSetLogicalToDisplay(), FHIRMetadataSetLogicalToOdbc(), FHIRMetadataSetNormalize(), FHIRMetadataSetSet()
property OutputToQuickStream as %Boolean [ InitialExpression = 0 ];
The output of this business process is an HS.Message.XMLMessage message.

If OutputToQuickStream is not checked, the SDA3 output of the transformation will be placed in the HS.Message.XMLMessage ContentStream property.

If this setting is checked, the SDA3 output will be placed in an HS.SDA3.QuickStream, and the QuickStreamId property of the HS.Message.XMLMessage will be set to the id of that QuickStream.
Property methods: OutputToQuickStreamDisplayToLogical(), OutputToQuickStreamGet(), OutputToQuickStreamGetStored(), OutputToQuickStreamIsValid(), OutputToQuickStreamLogicalToDisplay(), OutputToQuickStreamNormalize(), OutputToQuickStreamSet()
property TargetConfigName as Ens.DataType.ConfigName;
Business host to which to forward the XMLMessage message (which includes the SDA3 stream) after it is built by the FHIR to SDA3 transformation.
Property methods: TargetConfigNameDisplayToLogical(), TargetConfigNameGet(), TargetConfigNameGetStored(), TargetConfigNameIsValid(), TargetConfigNameLogicalToDisplay(), TargetConfigNameLogicalToOdbc(), TargetConfigNameNormalize(), TargetConfigNameParseConfigNameSpec(), TargetConfigNameSet()
property TransformClass as %Dictionary.Classname [ InitialExpression = "HS.FHIR.DTL.Util.API.Transform.FHIRToSDA3" ];
FHIR to SDA3 transformation API class. Must be or extend HS.FHIR.DTL.Util.API.Transform.FHIRToSDA3.
Property methods: TransformClassGet(), TransformClassGetStored(), TransformClassIsValid(), TransformClassSet()

Methods

method OnInit() as %Status
Inherited description: This user callback method is called via initConfig() from %OnNew() or in the case of SOAP Services from OnPreSOAP()
method OnRequest(pRequest As %Library.Persistent, Output pResponse As %Library.Persistent) as %Status
Inherited description: Handle a 'Request'
method ProcessFHIRInteropRequest(pRequest As HS.FHIRServer.Interop.Request, ByRef pResponse As HS.FHIRServer.Interop.Response) as %Status
ProcessFHIRInteropRequest uses HS.FHIRServer.Interop.Request as its vehicle for input, and returns HS.FHIRServer.Interop.Response to return the status.
Input:
- Either pRequest.QuickStreamId OR pRequest.Request.Json is required. If both are populated, then QuickStreamId is used. No other request property is required. - pRequest.Request.RequestFormatCode is optional, however, providing it as input provides a minor performance gain.
Output:
- pResponse.Response.Status is populated with 200 upon successful completion. Otherwise, this method will Throw an error which will be caught by OnRequest() and returned as a %Status.
method ProcessFHIRRequest(pFHIRRequest As HS.Message.FHIR.Request, Output pFHIRResponse As HS.Message.FHIR.Response) as %Status
ProcessFHIRRequest is retained to provide compatibility with the HS.Message.FHIR.Request message input. This method does NOT provide compatibility with the pre-2020.2 transformation API or customization mechanisms.

Inherited Members

Inherited Properties

Inherited Methods

Storage

Gray indicates storage defined by superclasses.

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"pending",n)
=
%MasterPendingResponses(n)

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"received",n)
=
%MessagesReceived(n)

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"sent",n)
=
%MessagesSent(n)

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID)
=
%%CLASSNAME
%ConfigQueueName
%IsCompleted
%MasterPendingResponsesOld
%PrimaryRequestHeader
%PrimaryResponseHeader
%RepliedStatus
%responseId
Adapter
%SessionId
%TimeCompleted
%TimeCreated
%ConfigName
%QuitTask
AlertOnError
%responseClassName
%IsTimerInterrupted
%IsTerminated
%StatusCode
%MessagesReceivedOld
%MessagesSentOld
ReplyCodeActions
RetryInterval
AlertRetryGracePeriod
FailureTimeout
Retry
SuspendMessage
QueueCountAlert
QueueWaitAlert
InactivityTimeout
BusinessPartner
AlertGroups
%SuperSession

Storage Model: Storage (HS.FHIR.DTL.Util.HC.FHIR.SDA3.Process)

^Ens.BusinessProcessD(ID,"Process")
=
TraceOperations
TargetConfigName
CallbackClass
OutputToQuickStream
TransformClass
FHIRMetadataSet
Feedback