Skip to main content

Pre-2020.2 FHIR Technology

For details about using pre-2020.2 HL7® FHIR® technology, see the legacy FHIR books that are available at InterSystems Legacy DocumentationOpens in a new tab.

Upgrade pre-2020.2 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.TransformOpens in a new tab 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 pre-2020.2 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 pre-2020.2 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 pre-2020.2 HS.FHIR.DTL.Util.API.HC.Callback.Default.SDA3ToSTU3Opens in a new tab class and new overridable methods in HS.FHIR.DTL.Util.API.Transform.SDA3ToFHIROpens in a new tab.

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.STU3ToSDA3Opens in a new tab class and new overridable methods in HS.FHIR.DTL.Util.API.Transform.FHIRToSDA3Opens in a new tab.

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 pre-2020.2 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
}

Upgrading Transformation Productions

The business processes used to perform transformations in a FHIR interoperability production, HS.FHIR.DTL.Util.HC.SDA3.FHIR.ProcessOpens in a new tab and HS.FHIR.DTL.Util.HC.FHIR.SDA3.ProcessOpens in a new tab, 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 FHIRMetadataSet setting of the business process.

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

FeedbackOpens in a new tab