Skip to main content

HS.FHIR.DTL.Util.API.ExecDefinition

abstract class HS.FHIR.DTL.Util.API.ExecDefinition

Method Inventory

Methods

classmethod GetCustomDTLPackage() as %String
API Method Returns a configuration value that has been set via the Public API method HS.FHIR.DTL.Util.API.ExecDefinition::SetCustomDTLPackage. This is the root package under which you will place any customized DTL classes for transforming FHIR STU3 to SDA3, or SDA3 to FHIR STU3.
classmethod GetDTLPackageAndClass(className As %String) as %String
API Method This method checks className to see if it arrives prefixed with the configured standard DTL package name or with the configured custom DTL package name.

No other package names are acceptable at the start of the className.

Regardless of which name prefix enters the method in the className, this method first looks in the custom DTL package (if there is one configured) and if the corresponding DTL class is not found in the custom package, the method looks in the standard package.

The method returns the full package and class name of the first class it finds. If neither DTL class is found, or if the name prefix is unacceptable, it returns an empty string.

classmethod GetStandardDTLPackage() as %String
API Method Returns the configured standard product DTL package name for this namespace.
classmethod GetStandardLibDTLPackage() as %String
API Method Returns the configured standard product DTL package name for this namespace.
classmethod PreviewDTLCustomClass(className As %String) as %String
API Method Similar to GetDTLPackageAndClass(), but intended for manual use, to "preview" the custom class name for a specified standard class name. If no custom DTL package is defined in the current namespace then an error message is returned. If the specified standard class is invalid or does not exist, then empty string is returned.
classmethod SetCustomDTLPackage(packageName As %String = "") as %Status
API Method This method sets the name of the custom DTL package to be used in this namespace. This is the root package under which you will place any customized DTL classes for transforming FHIR STU3 to SDA3, or SDA3 to FHIR STU3. You can clear this package name by providing an empty string as the packageName.

When packageName is empty, transformation code ignores all custom DTLs and always uses the standard DTLs.

Otherwise, at runtime, before executing any DTL class, the transformation code looks to see if a class by that name exists in the custom DTL package. If so, it executes the custom DTL class. If not, the transformation code executes the corresponding standard DTL class.

Essentially, the custom package name is intended to replace the standard package name when looking for a customized version of a given DTL class. For example, if the standard package name is "HS.FHIR.DTL", and the custom package name is "HS.Local.FHIR.DTL", then at run-time if the specified standard class is HS.FHIR.DTL.SDA3.vSTU3.Patient.Patient, the framework will first look for HS.Local.FHIR.DTL.SDA3.vSTU3.Patient.Patient.

The packageName value may not be the same as the standard DTL package name for the product, may not be a sub-package of the standard package, and may not occupy a reserved product package - the exception being HS.Local which is within HS.

FeedbackOpens in a new tab