Skip to main content

HS.IHE.PIX.Manager.Process

persistent class HS.IHE.PIX.Manager.Process extends Ens.BusinessProcess, HS.HC.Util.Trace.Helper

SQL Table Name: HS_IHE_PIX_Manager.Process

Property Inventory

Method Inventory

Parameters

parameter HSDEPLOY = 1;
parameter SETTINGS = MPIOperations,IHEVersion,DeviceID,PIXv2Operations,PIXv3Operations,AffinityDomain,AffinityDomainIsMPIID,HUB,TransformPIXToPatientSearch,NotifyWithDemographics,ApplyConsent,ExcludeIdentifierTypes,MatchCodeWithOID;
Inherited description: List of properties can be set as settings in the configuration file format is a comma separated list of property names

Properties

property AffinityDomain as %String;
Used in a testing environment allows setting of the AffinityDomain Code (which must be defined in the OID Registry) if not set the value from ##class(HS.IHE.Util).GetAffinityDomain() is used
Property methods: AffinityDomainDisplayToLogical(), AffinityDomainGet(), AffinityDomainGetStored(), AffinityDomainIsValid(), AffinityDomainLogicalToDisplay(), AffinityDomainLogicalToOdbc(), AffinityDomainNormalize(), AffinityDomainSet()
property AffinityDomainIsMPIID as %Boolean [ InitialExpression = 1 ];
Used to determine whether AffinityDomain is the MPIID (true - general scenario) or whether the MPIID is in the results (typically IHE testing)
Property methods: AffinityDomainIsMPIIDDisplayToLogical(), AffinityDomainIsMPIIDGet(), AffinityDomainIsMPIIDGetStored(), AffinityDomainIsMPIIDIsValid(), AffinityDomainIsMPIIDLogicalToDisplay(), AffinityDomainIsMPIIDNormalize(), AffinityDomainIsMPIIDSet()
property ApplyConsent as %Boolean [ InitialExpression = 0 ];
If true, patient search requests generated by this process will be processed by consent.
Property methods: ApplyConsentDisplayToLogical(), ApplyConsentGet(), ApplyConsentGetStored(), ApplyConsentIsValid(), ApplyConsentLogicalToDisplay(), ApplyConsentNormalize(), ApplyConsentSet()
property DeviceID as %String;
Used as the sender or receiver device ID - PIXv3 only
Property methods: DeviceIDDisplayToLogical(), DeviceIDGet(), DeviceIDGetStored(), DeviceIDIsValid(), DeviceIDLogicalToDisplay(), DeviceIDLogicalToOdbc(), DeviceIDNormalize(), DeviceIDSet()
property Errors as HS.Types.IHE.Errors;
Property methods: ErrorsGet(), ErrorsGetObject(), ErrorsGetObjectId(), ErrorsGetStored(), ErrorsGetSwizzled(), ErrorsIsEmpty(), ErrorsIsValid(), ErrorsNewObject(), ErrorsSet(), ErrorsSetObject(), ErrorsSetObjectId(), ErrorsUnSwizzle()
property ExcludeIdentifierTypes as %String [ InitialExpression = "DL,DN" ];
When the identifier type is unknown, a lookup is done against in HS_AssignAuth.Config for the Code (AssigningAuthority Code),
looking for a single type. If a code is used for multiple types, it is possible to exclude specific types using a comma delimited
list so that a single value is identified.
Property methods: ExcludeIdentifierTypesDisplayToLogical(), ExcludeIdentifierTypesGet(), ExcludeIdentifierTypesGetStored(), ExcludeIdentifierTypesIsValid(), ExcludeIdentifierTypesLogicalToDisplay(), ExcludeIdentifierTypesLogicalToOdbc(), ExcludeIdentifierTypesNormalize(), ExcludeIdentifierTypesSet()
property HUB as Ens.DataType.ConfigName [ InitialExpression = "HS.Hub.Management.Operations" ];
Used when dynamic registration is enabled.
Property methods: HUBDisplayToLogical(), HUBGet(), HUBGetStored(), HUBIsValid(), HUBLogicalToDisplay(), HUBLogicalToOdbc(), HUBNormalize(), HUBParseConfigNameSpec(), HUBSet()
property IHEExtension as %String;
Property methods: IHEExtensionDisplayToLogical(), IHEExtensionGet(), IHEExtensionGetStored(), IHEExtensionIsValid(), IHEExtensionLogicalToDisplay(), IHEExtensionLogicalToOdbc(), IHEExtensionNormalize(), IHEExtensionSet()
property IHEVersion as %Integer [ InitialExpression = 1 ];
Property methods: IHEVersionDisplayToLogical(), IHEVersionGet(), IHEVersionGetStored(), IHEVersionIsValid(), IHEVersionLogicalToDisplay(), IHEVersionNormalize(), IHEVersionSet()
property MPIOperations as Ens.DataType.ConfigName [ InitialExpression = "HS.Hub.MPI.Manager" ];
Config Item where the Add/Update Operations will be sent
Property methods: MPIOperationsDisplayToLogical(), MPIOperationsGet(), MPIOperationsGetStored(), MPIOperationsIsValid(), MPIOperationsLogicalToDisplay(), MPIOperationsLogicalToOdbc(), MPIOperationsNormalize(), MPIOperationsParseConfigNameSpec(), MPIOperationsSet()
property MatchCodeWithOID as %Boolean [ InitialExpression = 0 ];
Applies to HL7 PIXv2 only. When this is checked (true), if an ISO-formatted assigning authority or facility in an incoming HL7 message includes both a code (NamespaceID) and an OID (UniversalID), then the code must match the IdentityCode defined for the OID in the OID Registry. Otherwise, if this setting is not checked and both code and OID are included in the identifier, then OID is considered to be the authoritative value.
Property methods: MatchCodeWithOIDDisplayToLogical(), MatchCodeWithOIDGet(), MatchCodeWithOIDGetStored(), MatchCodeWithOIDIsValid(), MatchCodeWithOIDLogicalToDisplay(), MatchCodeWithOIDNormalize(), MatchCodeWithOIDSet()
property NotifyWithDemographics as %Boolean [ InitialExpression = 0 ];
Property methods: NotifyWithDemographicsDisplayToLogical(), NotifyWithDemographicsGet(), NotifyWithDemographicsGetStored(), NotifyWithDemographicsIsValid(), NotifyWithDemographicsLogicalToDisplay(), NotifyWithDemographicsNormalize(), NotifyWithDemographicsSet()
property PIXv2Operations as Ens.DataType.ConfigName [ InitialExpression = "PIXv2.Notification.Operations" ];
Property methods: PIXv2OperationsDisplayToLogical(), PIXv2OperationsGet(), PIXv2OperationsGetStored(), PIXv2OperationsIsValid(), PIXv2OperationsLogicalToDisplay(), PIXv2OperationsLogicalToOdbc(), PIXv2OperationsNormalize(), PIXv2OperationsParseConfigNameSpec(), PIXv2OperationsSet()
property PIXv3Operations as Ens.DataType.ConfigName [ InitialExpression = "PIXv3.Notification.Operations" ];
Property methods: PIXv3OperationsDisplayToLogical(), PIXv3OperationsGet(), PIXv3OperationsGetStored(), PIXv3OperationsIsValid(), PIXv3OperationsLogicalToDisplay(), PIXv3OperationsLogicalToOdbc(), PIXv3OperationsNormalize(), PIXv3OperationsParseConfigNameSpec(), PIXv3OperationsSet()
property TransformMatchToUpdateNotification as %String) [ InitialExpression = "IHE/PIX/Version1/PatientSearchMatchToPRPAIN201302UV.xsl" ];
Property methods: TransformMatchToUpdateNotificationDisplayToLogical(), TransformMatchToUpdateNotificationGet(), TransformMatchToUpdateNotificationGetStored(), TransformMatchToUpdateNotificationIsValid(), TransformMatchToUpdateNotificationLogicalToDisplay(), TransformMatchToUpdateNotificationLogicalToOdbc(), TransformMatchToUpdateNotificationNormalize(), TransformMatchToUpdateNotificationSet()
property TransformPIXToAddUpdateHubRequest as %String) [ InitialExpression = "IHE/PIX/Version1/PRPAIN201301UVToAddUpdateHubRequest.xsl" ];
Property methods: TransformPIXToAddUpdateHubRequestDisplayToLogical(), TransformPIXToAddUpdateHubRequestGet(), TransformPIXToAddUpdateHubRequestGetStored(), TransformPIXToAddUpdateHubRequestIsValid(), TransformPIXToAddUpdateHubRequestLogicalToDisplay(), TransformPIXToAddUpdateHubRequestLogicalToOdbc(), TransformPIXToAddUpdateHubRequestNormalize(), TransformPIXToAddUpdateHubRequestSet()
property TransformPIXToMergePatientRequest as %String) [ InitialExpression = "IHE/PIX/Version1/PRPAIN201304UVToMergePatientRequest.xsl" ];
Property methods: TransformPIXToMergePatientRequestDisplayToLogical(), TransformPIXToMergePatientRequestGet(), TransformPIXToMergePatientRequestGetStored(), TransformPIXToMergePatientRequestIsValid(), TransformPIXToMergePatientRequestLogicalToDisplay(), TransformPIXToMergePatientRequestLogicalToOdbc(), TransformPIXToMergePatientRequestNormalize(), TransformPIXToMergePatientRequestSet()
property TransformPIXToPatientSearch as %String) [ InitialExpression = "IHE/PIX/Version1/PRPAIN201309UVToPatientSearchRequest.xsl" ];
PIXQuery to PatientSearchRequest (201309)
Property methods: TransformPIXToPatientSearchDisplayToLogical(), TransformPIXToPatientSearchGet(), TransformPIXToPatientSearchGetStored(), TransformPIXToPatientSearchIsValid(), TransformPIXToPatientSearchLogicalToDisplay(), TransformPIXToPatientSearchLogicalToOdbc(), TransformPIXToPatientSearchNormalize(), TransformPIXToPatientSearchSet()
property TransformPatientSearchResponseToPIX as %String) [ InitialExpression = "IHE/PIX/Version1/PatientSearchResponseToPRPAIN201310UV.xsl" ];
Property methods: TransformPatientSearchResponseToPIXDisplayToLogical(), TransformPatientSearchResponseToPIXGet(), TransformPatientSearchResponseToPIXGetStored(), TransformPatientSearchResponseToPIXIsValid(), TransformPatientSearchResponseToPIXLogicalToDisplay(), TransformPatientSearchResponseToPIXLogicalToOdbc(), TransformPatientSearchResponseToPIXNormalize(), TransformPatientSearchResponseToPIXSet()
property TransformToMCCI as %String) [ InitialExpression = "IHE/PIX/Version1/MCCI000002UV.xsl" ];
Property methods: TransformToMCCIDisplayToLogical(), TransformToMCCIGet(), TransformToMCCIGetStored(), TransformToMCCIIsValid(), TransformToMCCILogicalToDisplay(), TransformToMCCILogicalToOdbc(), TransformToMCCINormalize(), TransformToMCCISet()
property Transformer as HS.Util.XSLTTransformer;
Property methods: TransformerGet(), TransformerGetStored(), TransformerGetSwizzled(), TransformerIsValid(), TransformerNewObject(), TransformerSet()

Methods

method AddOrUpdateResponseToHL7(pSource As HS.Message.AddUpdateHubResponse, ByRef pTarget As EnsLib.HL7.Message, pOriginalRequest As EnsLib.HL7.Message) as %Status
method AddPatientv2(pHL7Request As EnsLib.HL7.Message, Output pHL7Response As EnsLib.HL7.Message) as %Status
method AddPatientv3(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status
new patient, also called by RevisePatient code
classmethod AddUpdateGetValueAt(pSource As EnsLib.HL7.Message, pField As %String) as %String
AddUpdateGetValueAt is used only by the PIXv2 add and update transactions, to provide for using double double quote to blank out demographics fields. This method can be called for multi-valued fields (e.g., "PID:3(1).4").
classmethod ConvertAddressUse(pUse As %String) as %String
Convert the address use field from HL7v2 code (which is what the incoming PIX message will use) to HL7v3 code (which is what we use for HS.Types.Address).
If the HL7v2 code has no HL7v3 code analog, default to an address use type of "H" for home address.
method HL7ErrorResponse(pOriginalRequest As EnsLib.HL7.Message, Output pTarget As EnsLib.HL7.Message) as %Status
method HL7ToAddOrUpdateRequest(pSource As EnsLib.HL7.Message, ByRef pTarget As HS.Message.AddUpdateHubRequest) as %Status
method HL7ToMergePatientRequest(pSource As EnsLib.HL7.Message, ByRef pTarget As HS.Message.MergePatientRequest) as %Status
method HL7ToPatientSearchRequest(pSource As EnsLib.HL7.Message, ByRef pTarget As HS.Message.PatientSearchRequest) as %Status
method IDUpdateNotificationToHL7(pEndPointv2 As HS.Registry.Service.Abstract, pSource As HS.Message.PatientSearchMatch, pTarget As EnsLib.HL7.Message) as %Status
method MergePatientResponseToHL7(pSource As HS.Message.MergePatientResponse, ByRef pTarget As EnsLib.HL7.Message, pOriginalRequest As EnsLib.HL7.Message) as %Status
method MergePatientv2(pHL7Request As EnsLib.HL7.Message, Output pHL7Response As EnsLib.HL7.Message) as %Status
method MergePatientv3(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status
method OnRequest(pRequest As %Library.Persistent, Output pResponse As %Library.Persistent) as %Status
Inherited description: Handle a 'Request'
method OnResponse(pRequest As Ens.Request, ByRef pResponse As Ens.Response, pCallrequest As Ens.Request, pCallresponse As Ens.Response, pCompletionKey As %String) as %Status
OnResponse must be overridden here to avoid error upon response from async request.
method PatientSearchResponseToHL7(pSource As HS.Message.PatientSearchResponse, ByRef pTarget As EnsLib.HL7.Message, pOriginalRequest As EnsLib.HL7.Message) as %Status
method ProcessHL7Message(pRequest As EnsLib.HL7.Message, Output pResponse As EnsLib.HL7.Message) as %Status
method ProcessXMLMessage(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status
method QueryRequestv2(pHL7Request As EnsLib.HL7.Message, Output pHL7Response As EnsLib.HL7.Message) as %Status
QueryRequestv2 takes the HL7 QBP^Q23 and returns the HL7 RSP^K23.
method QueryRequestv3(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status
Take 201309 request run query and return 201310
method RevisedPatient(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status
call addpatient for revise
method SendAddPatient(pAddRequest As HS.Message.AddUpdateHubRequest, Output pAddResponse As HS.Message.AddUpdateHubResponse, pv2 As %Boolean = 0) as %Status
SendAddPatient is called by AddPatientv2 and AddPatientv3. It sends AddUpdateHubRequest to the MPIOperations and does other logic that is common to v2 and v3. Input parameter pv2 indicates that this method is being called as part of a PIXv2 AddPatient. It is used for logging to ..Errors. For AddPatient, the contents of the request have already been validated by HL7ToAddPatientRequest. So pv2 is used here only post-query.
method SendAndFilter(pSearchRequest As HS.Message.PatientSearchRequest, pFilteredSearchResponse As HS.Message.PatientSearchResponse, pMsgFormat As %String = "v3") as %Status
SendAndFilter is called by QueryRequestv2 and QueryRequestv3. It sends the PatientSearchRequest to the MPIOperations config item, gets the response, and applies domain filters as needed. Input parameter pMsgFormat indicates the message format (v2, v3) for the current Query request. It is used for determining what kind of data to log to ..Errors.
method UpdateNotification(pRequest As HS.Message.IDUpdateNotificationRequest) as %Status
method ValidateMergeAndSend(pMergeRequest As HS.Message.MergePatientRequest, Output pMergeResponse As HS.Message.MergePatientResponse, pv2 As %Boolean = 0) as %Status
ValidateMergeAndSend is called by MergePatientv2 and MergePatientv3. It validates the MergePatientRequest, sends it to the MPIOperations and gets the response from the MPIOperations. Input parameter pv2 indicates that this method is being called as part of a PIXv2 MergePatient. It is used for logging to ..Errors, because of the differing requirements for error logging between v2 and v3.
method ValidateOIDAndCode(pHL7Message, pPath As %String, pMatchCode As %Boolean, pType As %String, ByRef pCode As %String, ByRef pOID As %String)

Inherited Members

Inherited Properties

Inherited Methods

Storage

Gray indicates storage defined by superclasses.

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"pending",n)
=
%MasterPendingResponses(n)

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"received",n)
=
%MessagesReceived(n)

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID,"sent",n)
=
%MessagesSent(n)

Storage Model: Storage (Ens.BusinessProcess)

^Ens.BusinessProcessD(ID)
=
%%CLASSNAME
%ConfigQueueName
%IsCompleted
%MasterPendingResponsesOld
%PrimaryRequestHeader
%PrimaryResponseHeader
%RepliedStatus
%responseId
Adapter
%SessionId
%TimeCompleted
%TimeCreated
%ConfigName
%QuitTask
AlertOnError
%responseClassName
%IsTimerInterrupted
%IsTerminated
%StatusCode
%MessagesReceivedOld
%MessagesSentOld
ReplyCodeActions
RetryInterval
AlertRetryGracePeriod
FailureTimeout
Retry
SuspendMessage
QueueCountAlert
QueueWaitAlert
InactivityTimeout
BusinessPartner
AlertGroups
%SuperSession

Storage Model: Storage (HS.IHE.PIX.Manager.Process)

^Ens.BusinessProcessD(ID,"Process")
=
MPIOperations
PIXv3ManagerOperations
DeviceID
EDGEIHE
HubOperations
IHEVersion
PIXv3Operations
DefaultAssigningAuthority
TraceOperations
IHEExtension
Transformer
XDSbOperations
AffinityDomain
InternalMPI
AffinityDomainIsMPIID
HUB
DynamicAssigningAuthorityRegistration
DynamicFacilityRegistration
Errors
ExcludeSenders
TransformPIXToPatientSearch
TransformMatchToUpdateNotification
TransformPIXToAddUpdateHubRequest
TransformToMCCI
TransformPatientSearchResponseToPIX
TransformPIXToMergePatientRequest
PIXv2Operations
NotifyWithDemographics
ApplyConsent
ExcludeIdentifierTypes
MatchCodeWithOID

Storage Model: Storage (HS.IHE.PIX.Manager.Process)

^Ens.BusinessProcessD(ID,"HS.IHE.PIXv3.Manager.Process.ValueSet",n)
=
ValueSet(n)

Subclasses

FeedbackOpens in a new tab