HS.FHIRServer.DefaultBundleProcessor

class HS.FHIRServer.DefaultBundleProcessor extends HS.FHIRServer.Util.Bundle

Method Inventory

Parameters

parameter BundleValidatorClass = HS.FHIRServer.Util.BundleValidator;
Class that provides the FHIR Bundle resource validation logic for this Bundle processing class. The class is intended to handle Bundle-specific validation, i.e., the rules applying to transaction, batch, document, and message Bundles.

Methods

classmethod AddToPostOrder(entryId As %String, ByRef visitContext, ByRef postContext, path As %CacheString = "") [ Language = objectscript ]
This is a function that recurses on all entries that the specified entry needs to have POST'd, then it adds itself to the list. NOTE: This tries to minimize updates of newly posted resources. If a circular reference is detected, then reposting may be necessary and is handled later.
classmethod BuildDependencyCallback(ByRef visitContext, pRefObj As %DynamicObject) [ Language = objectscript ]
This method is a callback from the VisitAll method. It is called for each Reference object in the resource. If the reference is bundle-internal, we capture it.
classmethod ExecuteBundle(pService As HS.FHIRServer.API.Service, pRequest As HS.FHIRServer.API.Data.Request, pResponse As HS.FHIRServer.API.Data.Response, pBundleType As %String, ByRef visitContext) [ Language = objectscript ]
ExecuteBundle processes a batch or transaction Bundle according to the FHIR specification at:
http://hl7.org/fhir/http.html#transaction

Inputs:
  • pService : The FHIR Service instance that invoked this processor
  • pRequest : FHIR request message.
  • pResponse : FHIR response object to receive the result
  • pBundleType : String specifying the bundle type ("batch" or "transaction")
  • visitContext : The context multidimensional that is controlling this operation
  • classmethod ExecuteBundleMain(pService As HS.FHIRServer.API.Service, pRequest As HS.FHIRServer.API.Data.Request, pResponse As HS.FHIRServer.API.Data.Response, pBundleType As %String, ByRef visitContext) [ Language = objectscript ]
    classmethod ExtractUUID(pString As %String, pPrefixRequired As %Boolean = 0) as %String [ Language = objectscript ]
    API IsUUID returns the UUID-portion of the input string if the specified string is a UUID, returns 0 if not. Requirement for the presence of the "urn:uuid:" prefix is determined by the pPrefixRequired input parameter. Once prefix is verified per the requirement, the remainder of validation takes place with the prefix stripped.
    classmethod ProcessBundle(pService As HS.FHIRServer.API.Service, pRequest As HS.FHIRServer.API.Data.Request, pResponse As HS.FHIRServer.API.Data.Response) [ Language = objectscript ]
    Context layout ctx("entry") : Count of entries ctx("entry", n) : The n-th input bundle entry ctx("entry", n, "response") : The response bundle entry for the n-th input bundle entry ctx("entry", n, "fullUrl") : The temporary id (used only for POST entries) to allow references from other : resources in the bundle. Used only for transaction interactions ctx("ByFullUrl", fullUrl) : The actual id associated with the refkey. Used to resolve references to this resource. ctx("ByFullUrl", fullUrl, "entry") : The entry Index associated with the refkey. : resources in the bundle. Used only for transaction interactions ctx("ByFullUrl", fullUrl, "from", iEntry) : EntryId of a resource referencing the fullUrl ctx("ByFullUrl", fullUrl, "refObj") : Count of References to fullUrl within the bundle ctx("ByFullUrl", fullUrl, "refObj", n) : n-th Reference Object referring to fullUrl ctx("ByMethod", method) : The count of operations to execute for the specified method ctx("ByMethod", method, n) : The entry Index of the n-th operation to execute for the specified method ctx("Depends", entryId, postedId) : Present if the specified entry requires the posted entry to be processed first. ctx("Posted", entryId ) : Present when a POST entry has been processed (used for circular reference management) ctx("Circular", entryId ) : Present when a POST entry has been processed but a prerequisite has not. It will be updated at the end
    classmethod dispatchRequest(pService As HS.FHIRServer.API.Service, pRequest As HS.FHIRServer.API.Data.Request, pResponse As HS.FHIRServer.API.Data.Response, pBundleType As %String, ByRef visitContext) [ Language = objectscript ]
    classmethod prepareRequest(pService As HS.FHIRServer.API.Service, pTransRequest As HS.FHIRServer.API.Data.Request, ByRef visitContext, entryObj As %DynamicObject) as HS.FHIRServer.API.Data.Request [ Language = objectscript ]

    Inherited Members

    Inherited Methods

    Subclasses

    Feedback