Home > Class Reference > HSLIB namespace > 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 DTL classes. The version of FHIR to output is determined by the "FHIRVersion" setting on this business process. If TransmissionMode is "transaction" or "batch", then the Bundle is added to a FHIR request message and forwarded to the business host indicated by TargetConfigName. Otherwise, if TransmissionMode is "individual", then the individual resources within the Bundle are each added to separate FHIR request messages and forwarded to TargetConfigName. The SDA3 to FHIR conversion does not invoke the Bundle-level DTL class. It directly invokes only the Bundle-entry-level DTL classes.

Property Inventory

Method Inventory


parameter HSDEPLOY = 1;
parameter SETTINGS = TargetConfigName:Basic:selector?context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId},FHIRVersion,TransmissionMode,FullTransactionResponse,FHIRFormat,FormatFHIROutput,CallbackClass,ValidResourceRequired,OutputToQuickStream;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names


property CallbackClass as %String (MAXLEN = 256);
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 FHIRFormat as %String (DISPLAYLIST = ",JSON,XML", VALUELIST = ",application/fhir+json,application/fhir+xml") [ InitialExpression = "application/fhir+json" ];
The FHIR format to use for FHIR request message payload.
Property methods: FHIRFormatDisplayToLogical(), FHIRFormatGet(), FHIRFormatGetStored(), FHIRFormatIsValid(), FHIRFormatLogicalToDisplay(), FHIRFormatLogicalToOdbc(), FHIRFormatNormalize(), FHIRFormatSet()
property FHIRVersion as %String (DISPLAYLIST = ",STU3", VALUELIST = ",STU3") [ InitialExpression = "STU3" ];
FHIR version to use for the FHIR output.
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.
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. In general, this setting should be left unchecked except during debugging or if the FHIR client has a specific need to receive back the created/updated resources, as requesting this information is likely to increase response time from the FHIR server.
Property methods: FullTransactionResponseDisplayToLogical(), FullTransactionResponseGet(), FullTransactionResponseGetStored(), FullTransactionResponseIsValid(), FullTransactionResponseLogicalToDisplay(), FullTransactionResponseNormalize(), FullTransactionResponseSet()
property OutputToQuickStream as %Boolean [ InitialExpression = 0 ];
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 after it is built by the DTL transformation.
Property methods: TargetConfigNameDisplayToLogical(), TargetConfigNameGet(), TargetConfigNameGetStored(), TargetConfigNameIsValid(), TargetConfigNameLogicalToDisplay(), TargetConfigNameLogicalToOdbc(), TargetConfigNameNormalize(), TargetConfigNameParseConfigNameSpec(), TargetConfigNameSet()
property TransmissionMode as %String (DISPLAYLIST = ",batch,transaction,individual", VALUELIST = ",batch,transaction,individual") [ InitialExpression = "transaction" ];
batch = Send all generated FHIR resources in a single transaction interaction in a Bundle of type "batch".
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 interaction.
Property methods: TransmissionModeDisplayToLogical(), TransmissionModeGet(), TransmissionModeGetStored(), TransmissionModeIsValid(), TransmissionModeLogicalToDisplay(), TransmissionModeLogicalToOdbc(), TransmissionModeNormalize(), TransmissionModeSet()
property ValidResourceRequired as %Boolean [ InitialExpression = 1 ];
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()


method OnRequest(pRequest As Ens.Request, Output pResponse As Ens.Response) as %Status [ Language = objectscript ]
Inherited description: Handle a 'Request'
method ProcessFHIRResponse(pFHIRResponse As HS.Message.FHIR.Response, ByRef pFHIRSC As %Status) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
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


Gray indicates storage defined by superclasses.

Storage Model: Storage (Ens.BusinessProcess)


Storage Model: Storage (Ens.BusinessProcess)


Storage Model: Storage (Ens.BusinessProcess)


Storage Model: Storage (Ens.BusinessProcess)


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

FeedbackOpens in a new window