Skip to main content
Previous section

Legacy FHIR Technology

For details about using legacy FHIR technology, see the legacy FHIR books that are available at InterSystems Legacy Documentation.

Upgrading Legacy Transformations

The strategy for customizing bi-directional SDA-FHIR transformations in InterSystems products was different in the legacy FHIR technology (pre-2020.2). This section discusses how to convert code developed to customize transformation in legacy FHIR implementations to the new FHIR architecture.

The APIs called by an application to perform transformations have changed. In the legacy implementation, applications called methods of the HS.FHIR.DTL.Util.API.HC.Transform class to invoke the transformation. This class is obsolete and direct calls to its methods will not work with the new FHIR architecture. Now, transformations are invoked with methods of the HS.FHIR.DTL.Util.API.Transform.SDA3ToFHIR and HS.FHIR.DTL.Util.API.Transform.FHIRToSDA3 classes.

The legacy FHIR technology used callback objects to implement custom logic controlling how transformations were executed. In the new architecture, customization is accomplished by subclassing the transformation API class and overriding its methods. For information about customizing these transformation methods, see Customizing Transformation API Classes.

When upgrading from your legacy callback classes, you need to migrate the logic in your callback methods to the overridable methods in the new transformation classes. The following table summarizes the relationship between callback methods in the legacy HS.FHIR.DTL.Util.API.HC.Callback.Default.SDA3ToSTU3 class and new overridable methods in HS.FHIR.DTL.Util.API.Transform.SDA3ToFHIR.

Legacy Callback Method New Overridable Method
IsDuplicate IsDuplicate
AssignResourceId GetId
GetIdByIdentifier GetId
GetPatientId GetId
GetURLPrefix GetBaseURL

The following table summarizes the relationship between callback methods in the legacy HS.FHIR.DTL.Util.API.HC.Callback.Default.STU3ToSDA3 class and new overridable methods in HS.FHIR.DTL.Util.API.Transform.FHIRToSDA3.

Legacy Callback Method New Overridable Method
AssignEncounterNumber GetIdentifier
AssignExternalId GetIdentifier
GetSendingFacility GetSendingFacility
GetSendingFacilityFromReference GetSendingFacility

One of the methods in the new transformation classes, GetDTL, can be overridden to select a custom DTL class that was written for the legacy FHIR technology. In this case, the GetDTL method should call the old method GetDTLPackageAndClass. For example:

Method GetDTL(source As HS.SDA3.DataType, DTL As %Dictionary.Classname = "") As %Dictionary.Classname
{
  // Get the standard product DTL class name for this SDA3 data type.
  Set className = ##super(source, DTL)

  Set className = ##class(HS.FHIR.DTL.Util.API.ExecDefinition).GetDTLPackageAndClass(className)

  Quit className
}
Copy code to clipboard

Upgrading Transformation Productions

The business processes used to perform transformations in a FHIR interoperability production, HS.FHIR.DTL.Util.HC.SDA3.FHIR.Process and HS.FHIR.DTL.Util.HC.FHIR.SDA3.Process, have been updated to use the new transformation API. If your legacy implementation used the standard business processes, you must complete the following tasks before starting the production after the upgrade:

  • Specify a value for the FHIRMetadatSet setting of the business process.

  • If the TransmissionMode setting was set to Batch, you must change the setting to specify transaction or individual.HS.FHIRServer.Interop.Operation