Skip to main content

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

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

SQL Table Name: HS_FHIR_DTL_Util_HC_SDA3_FHIR.Process

This business process takes an SDA3 stream as input, enclosed in either an Ens.StreamContainer message or in an HS.Message.XMLMessage message. It transforms the SDA3 into a FHIR Bundle, using the SDA3 to FHIR transformation API class. The version of FHIR to output is determined by the "FHIRMetadataSet" setting on this business process. If TransmissionMode is "transaction", then the Bundle is added to a FHIR request message and forwarded to the business host indicated by Target Config Name. Otherwise, if TransmissionMode is "individual", then the individual resources within the Bundle are each added to separate FHIR request messages and forwarded to Target Config Name.

Property Inventory

Method Inventory

Parameters

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

Properties

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.SDA3To"+FHIRVersion. FHIRVersion is to be derived from the FHIRVersion setting on this business host.
Property methods: CallbackClassDisplayToLogical(), CallbackClassGet(), CallbackClassGetStored(), CallbackClassIsValid(), CallbackClassLogicalToDisplay(), CallbackClassLogicalToOdbc(), CallbackClassNormalize(), CallbackClassSet()
property FHIREndpoint as %String (MAXLEN = 512);
FHIRServer Service endpoint to use when sending the FHIR request message to a FHIRServer Interop host.

Not applicable when sending to a FHIRServer HTTP Interop host.
Property methods: FHIREndpointDisplayToLogical(), FHIREndpointGet(), FHIREndpointGetStored(), FHIREndpointIsValid(), FHIREndpointLogicalToDisplay(), FHIREndpointLogicalToOdbc(), FHIREndpointNormalize(), FHIREndpointSet()
property FHIRFormat as %String (DISPLAYLIST = ",JSON,XML", VALUELIST = ",JSON,XML") [ InitialExpression = "JSON" ];
The FHIR format to use for FHIR request message payload.
Property methods: FHIRFormatDisplayToLogical(), FHIRFormatGet(), FHIRFormatGetStored(), FHIRFormatIsValid(), FHIRFormatLogicalToDisplay(), FHIRFormatLogicalToOdbc(), FHIRFormatNormalize(), FHIRFormatSet()
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()
deprecated property FHIRVersion as %String (MAXLEN = 128);
THIS SETTING IS UNUSED AS OF 2020.2 - FHIR version key of FHIR output. Examples: "STU3", "R4".
FHIRMetadataSet must be configured.
Property methods: FHIRVersionDisplayToLogical(), FHIRVersionGet(), FHIRVersionGetStored(), FHIRVersionIsValid(), FHIRVersionLogicalToDisplay(), FHIRVersionLogicalToOdbc(), FHIRVersionNormalize(), FHIRVersionSet()
property FormatFHIROutput as %Boolean [ InitialExpression = 0 ];
If checked, causes any created FHIR payload to include indent and line end formatting characters to enhance the readability of the raw content.

This setting should be left unchecked except during debugging, as requesting this option will increase the time taken to generate the FHIR output.
Property methods: FormatFHIROutputDisplayToLogical(), FormatFHIROutputGet(), FormatFHIROutputGetStored(), FormatFHIROutputIsValid(), FormatFHIROutputLogicalToDisplay(), FormatFHIROutputNormalize(), FormatFHIROutputSet()
property FullTransactionResponse as %Boolean [ InitialExpression = 0 ];
If checked, the FHIR request message that this process sends to the target config will be created with a "PREFER" header value set to "return=representation". Per the FHIR spec, this header indicates to a FHIR server that every created or updated resource should be returned in its entirety as it is saved (ie, with any modifications applied by the server). Whether the server actually does this depends on the server.

This setting should be left unchecked except during debugging, as requesting this information will increase response time from the target config.
Property methods: FullTransactionResponseDisplayToLogical(), FullTransactionResponseGet(), FullTransactionResponseGetStored(), FullTransactionResponseIsValid(), FullTransactionResponseLogicalToDisplay(), FullTransactionResponseNormalize(), FullTransactionResponseSet()
property OutputToQuickStream as %Boolean [ InitialExpression = 0 ];
As of 2020.2, this setting is applicable only when Target Config Name points to a config item that is NOT a FHIRServer Interop business operation. When sending to a FHIRServer Interop operation, the generated request message is always placed in a QuickStream. To see the contents of the QuickStream in an Interoperability message trace, add HS.Util.TraceOperations to your production and set the TraceOperations setting of this business process to FULL beforehand.

When sending to non-FHIRServer Interop operation:

The output of this business process is a FHIR request message.

If OutputToQuickStream is not checked, the FHIR output of the transformation will be placed in the request message Payload property.

If this setting is checked, the FHIR output will be placed in an HS.SDA3.QuickStream, and the QuickStreamId property of the request message 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 FHIR request message that is generated by this business process.
Property methods: TargetConfigNameDisplayToLogical(), TargetConfigNameGet(), TargetConfigNameGetStored(), TargetConfigNameIsValid(), TargetConfigNameLogicalToDisplay(), TargetConfigNameLogicalToOdbc(), TargetConfigNameNormalize(), TargetConfigNameParseConfigNameSpec(), TargetConfigNameSet()
property TransformClass as %Dictionary.Classname [ InitialExpression = "HS.FHIR.DTL.Util.API.Transform.SDA3ToFHIR" ];
SDA3 to FHIR transformation API class. Must be or extend HS.FHIR.DTL.Util.API.Transform.SDA3ToFHIR. This business process only calls method TransformStream() in the API class.
Property methods: TransformClassGet(), TransformClassGetStored(), TransformClassIsValid(), TransformClassSet()
property TransmissionMode as %String (DISPLAYLIST = ",transaction,individual", VALUELIST = ",transaction,individual") [ InitialExpression = "transaction" ];
transaction = Send all generated FHIR resources in a single transaction interaction in a Bundle of type "transaction".
individual = Send each generated FHIR resource in its own individual create or update interaction.
Property methods: TransmissionModeDisplayToLogical(), TransmissionModeGet(), TransmissionModeGetStored(), TransmissionModeIsValid(), TransmissionModeLogicalToDisplay(), TransmissionModeLogicalToOdbc(), TransmissionModeNormalize(), TransmissionModeSet()
property ValidResourceRequired as %Boolean [ InitialExpression = 1 ];
THIS PROPERTY IS UNUSED AND REMOVED AS A SETTING AS OF 2020.2 - If checked, then the FHIR that is generated by the SDA3 to FHIR DTL transformation must be valid FHIR. If it fails validation, then it will not be forwarded. Regardless of the value of this setting, validation failures will be logged in the Event Log as alert messages.
Property methods: ValidResourceRequiredDisplayToLogical(), ValidResourceRequiredGet(), ValidResourceRequiredGetStored(), ValidResourceRequiredIsValid(), ValidResourceRequiredLogicalToDisplay(), ValidResourceRequiredNormalize(), ValidResourceRequiredSet()

Methods

method CreateAndSendFHIRMessage(pFHIRObj As %Library.DynamicObject, pSchema As HS.FHIRServer.Schema, pLocalHostAndPort As %String, pContentType As %String, pFormatter As %JSON.Formatter, pIndentChars As %String, pLineTerminator As %String, pSessionApplication As %String, pSessionId As %String)
For a given Bundle or Bundle entry, create an HS.Message.FHIR.Request object and forward it to ..TargetConfigName.
method CreateAndSendInteropMessage(pFHIRObj As %Library.DynamicObject, pSchema As HS.FHIRServer.Schema, pContentType As %String, pFormatter As %JSON.Formatter, pIndentChars As %String, pLineTerminator As %String, pSessionApplication As %String, pSessionId As %String)
For a given Bundle or Bundle entry, create an HS.FHIRServer.Interop.Request object and forward it to ..TargetConfigName.
classmethod GetHostAndPort(Output pHost As %String, Output pPort As %String)
classmethod GetResourceStream(pResourceObj, pFHIRFormat, pFormatFHIROutput, pSchema, pFormatter, pIndentChars, pLineTerminator) as %Stream.Object
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 Ens.Request, Output pResponse As Ens.Response) as %Status
Inherited description: Handle a 'Request'
method ProcessFHIRResponse(pFHIRResponse As HS.Message.FHIR.Response, ByRef pFHIRSC As %Status, pSchema As HS.FHIRServer.Schema) as %Status
ProcessFHIRResponse evaluates the FHIR response message and formulates a return status code.
method ProcessSDARequest(pSDAStream, pSessionApplication As %String, pSessionId As %String, pPatientResourceId As %String = "") as %Status
This is an instance method because it needs to SendSync to a business host and get the response from the host.

Inherited Members

Inherited Properties

Inherited Methods

Storage

Gray indicates storage defined by superclasses.

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.SDA3.FHIR.Process)

^Ens.BusinessProcessD(ID,"Process")
=
TraceOperations
TargetConfigName
FHIRVersion
TransmissionMode
FullTransactionResponse
FHIRFormat
FormatFHIROutput
CallbackClass
ValidResourceRequired
OutputToQuickStream
TransformClass
FHIRMetadataSet
FHIREndpoint
FeedbackOpens in a new tab