Home > Class Reference > HSLIB namespace > HS.IHE.PIX.Manager.Process

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 (Including Private)

Method Inventory (Including Private)

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 (Including Private)

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(), AffinityDomainIsMPIIDDisplayToLogical(), AffinityDomainIsMPIIDGet(), AffinityDomainIsMPIIDGetStored(), AffinityDomainIsMPIIDIsValid(), AffinityDomainIsMPIIDLogicalToDisplay(), AffinityDomainIsMPIIDNormalize(), AffinityDomainIsMPIIDSet(), 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 (Including Private)

method AddOrUpdateResponseToHL7(pSource As HS.Message.AddUpdateHubResponse, ByRef pTarget As EnsLib.HL7.Message, pOriginalRequest As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
method AddPatientv2(pHL7Request As EnsLib.HL7.Message, Output pHL7Response As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
method AddPatientv3(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status [ Language = objectscript ]
new patient, also called by RevisePatient code
classmethod AddUpdateGetValueAt(pSource As EnsLib.HL7.Message, pField As %String) as %String [ Language = objectscript ]
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 [ Language = objectscript ]
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 [ Language = objectscript ]
method HL7ToAddOrUpdateRequest(pSource As EnsLib.HL7.Message, ByRef pTarget As HS.Message.AddUpdateHubRequest) as %Status [ Language = objectscript ]
method HL7ToMergePatientRequest(pSource As EnsLib.HL7.Message, ByRef pTarget As HS.Message.MergePatientRequest) as %Status [ Language = objectscript ]
method HL7ToPatientSearchRequest(pSource As EnsLib.HL7.Message, ByRef pTarget As HS.Message.PatientSearchRequest) as %Status [ Language = objectscript ]
method IDUpdateNotificationToHL7(pEndPointv2 As HS.Registry.Service.Abstract, pSource As HS.Message.PatientSearchMatch, pTarget As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
method MergePatientResponseToHL7(pSource As HS.Message.MergePatientResponse, ByRef pTarget As EnsLib.HL7.Message, pOriginalRequest As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
method MergePatientv2(pHL7Request As EnsLib.HL7.Message, Output pHL7Response As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
method MergePatientv3(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status [ Language = objectscript ]
method OnRequest(pRequest As %Library.Persistent, Output pResponse As %Library.Persistent) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
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 [ Language = objectscript ]
method ProcessHL7Message(pRequest As EnsLib.HL7.Message, Output pResponse As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
method ProcessXMLMessage(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status [ Language = objectscript ]
method QueryRequestv2(pHL7Request As EnsLib.HL7.Message, Output pHL7Response As EnsLib.HL7.Message) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
Take 201309 request run query and return 201310
method RevisedPatient(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status [ Language = objectscript ]
call addpatient for revise
method SendAddPatient(pAddRequest As HS.Message.AddUpdateHubRequest, Output pAddResponse As HS.Message.AddUpdateHubResponse, pv2 As %Boolean = 0) as %Status [ Language = objectscript ]
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 [ Language = objectscript ]
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 [ Language = objectscript ]
method ValidateMergeAndSend(pMergeRequest As HS.Message.MergePatientRequest, Output pMergeResponse As HS.Message.MergePatientResponse, pv2 As %Boolean = 0) as %Status [ Language = objectscript ]
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) [ Language = objectscript ]

Inherited Members

Inherited Properties (Including Private)

Inherited Methods (Including Private)

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