Skip to main content

HS.Message.PatientSearchResponse

persistent class HS.Message.PatientSearchResponse extends HS.Util.EnsResponse, HS.Types.RequestInfo, HS.Util.CopyFrom

SQL Table Name: HS_Message.PatientSearchResponse

Response to a PatientSearchRequest. The Results property contains zero or more matching PatientSearchMatch entries.

Property Inventory

Parameters

parameter XMLIGNORENULL = inputonly;
Inherited description: XMLIGNORENULL allows the programmer to override the default XML handling of empty strings for properties of type %String. By default (XMLIGNORENULL = 0), empty strings in the XML input are stored as $c(0) and $c(0) is written to XML as an empty tag. A missing tag in the XML input is always stored as "" and "" is always output to XML as no tag.

If XMLIGNORENULL is set = 1, then both missing tags in the XML and empty strings are input as "", and both "" and $c(0) are output as empty tags (i.e. <tag></tag>).

If XMLIGNORENULL is set = "inputonly", then both missing tags in the XML and empty strings are input as "". Output of "" and $c(0) are for XMLIGNORENULL = 0: $c(0) is output as an empty tag (i.e. <tag></tag>) and "" is output as no tag.

If XMLIGNORENULL = "runtime" (runtime is not case sensitive), then the behavior of XMLIGNORENULL is determined by the format parameter of XMLExport, XMLImport and %XML.Reader.OpenFile. The default behavior for XMLIGNORENULL="runtime is the same as XMLIGNORENULL=0. Adding "ignorenull" to the format argument changes the behavior to that of XMLIGNORENULL=1. "ignorenull" shoud be separated by a comma from literal/encoded part of the format. Example values for format are "", ",ignorenull", "literal,ignorenull" and "encoded,ignorenull". Note that "inputonly" is equivalent to using ,ignorenull for XMLExport and not for %XML.Reader.

Properties

property ClinicianId as %String;
For clinician mode searches - consent will include those with relationships
Property methods: ClinicianIdDisplayToLogical(), ClinicianIdGet(), ClinicianIdGetStored(), ClinicianIdIsValid(), ClinicianIdLogicalToDisplay(), ClinicianIdLogicalToOdbc(), ClinicianIdNormalize(), ClinicianIdSet()
property ConsentApplied as %Boolean [ InitialExpression = 0 ];
True if consent was applied to these search results (i.e. if results were filtered due to consent)
Property methods: ConsentAppliedDisplayToLogical(), ConsentAppliedGet(), ConsentAppliedGetStored(), ConsentAppliedIsValid(), ConsentAppliedLogicalToDisplay(), ConsentAppliedLogicalToXSD(), ConsentAppliedNormalize(), ConsentAppliedSet(), ConsentAppliedXSDToLogical()
property ErrStatus as %Status;
Property methods: ErrStatusGet(), ErrStatusGetStored(), ErrStatusIsValid(), ErrStatusLogicalToOdbc(), ErrStatusLogicalToXSD(), ErrStatusSet(), ErrStatusXSDToLogical()
property InfoTypesFiltered as %Integer;
If results have been removed due to an infotype filter, this will be the number of results removed
Property methods: InfoTypesFilteredDisplayToLogical(), InfoTypesFilteredGet(), InfoTypesFilteredGetStored(), InfoTypesFilteredIsValid(), InfoTypesFilteredLogicalToDisplay(), InfoTypesFilteredNormalize(), InfoTypesFilteredSet(), InfoTypesFilteredXSDToLogical()
property MPIIDList as list of HS.Message.PatientMPIMatch;
This organizes the results by MPIID
Property methods: MPIIDListBuildValueArray(), MPIIDListCollectionToDisplay(), MPIIDListCollectionToOdbc(), MPIIDListDisplayToCollection(), MPIIDListGet(), MPIIDListGetObject(), MPIIDListGetObjectId(), MPIIDListGetStored(), MPIIDListGetSwizzled(), MPIIDListIsValid(), MPIIDListOdbcToCollection(), MPIIDListSet(), MPIIDListSetObject(), MPIIDListSetObjectId()
property ProgramConsent as %Boolean [ InitialExpression = 0 ];
Passed into the consent engine - true if it should apply progam consent to override unconsented demographics
Property methods: ProgramConsentDisplayToLogical(), ProgramConsentGet(), ProgramConsentGetStored(), ProgramConsentIsValid(), ProgramConsentLogicalToDisplay(), ProgramConsentLogicalToXSD(), ProgramConsentNormalize(), ProgramConsentSet(), ProgramConsentXSDToLogical()
property ProxyID as %String;
See comment for RequestLogID.
Property methods: ProxyIDDisplayToLogical(), ProxyIDGet(), ProxyIDGetStored(), ProxyIDIsValid(), ProxyIDLogicalToDisplay(), ProxyIDLogicalToOdbc(), ProxyIDNormalize(), ProxyIDSet()
property ProxyUserID as %String;
See comment for RequestLogID.
Property methods: ProxyUserIDDisplayToLogical(), ProxyUserIDGet(), ProxyUserIDGetStored(), ProxyUserIDIsValid(), ProxyUserIDLogicalToDisplay(), ProxyUserIDLogicalToOdbc(), ProxyUserIDNormalize(), ProxyUserIDSet()
property RequestLogID as %String (MAXLEN = 500);
Original code pathways for patient searching stored this information in the session, but the Patient Banner search does not maintain sessions between search and fetch, so we need to stash some data here in the response object, which is saved.
Property methods: RequestLogIDDisplayToLogical(), RequestLogIDGet(), RequestLogIDGetStored(), RequestLogIDIsValid(), RequestLogIDLogicalToDisplay(), RequestLogIDLogicalToOdbc(), RequestLogIDNormalize(), RequestLogIDSet()
property RequestingFacility as HS.Types.Facility;
The requesting facility
Property methods: RequestingFacilityDisplayToLogical(), RequestingFacilityGet(), RequestingFacilityGetStored(), RequestingFacilityIsValid(), RequestingFacilityLogicalToDisplay(), RequestingFacilityLogicalToOdbc(), RequestingFacilityNormalize(), RequestingFacilitySet()
property Results as list of PatientSearchMatch (STORAGEDEFAULT = "array");
Zero or more matches from the search
Property methods: ResultsBuildValueArray(), ResultsCollectionToDisplay(), ResultsCollectionToOdbc(), ResultsDisplayToCollection(), ResultsGet(), ResultsGetObject(), ResultsGetObjectId(), ResultsGetStored(), ResultsGetSwizzled(), ResultsIsValid(), ResultsOdbcToCollection(), ResultsSet(), ResultsSetObject(), ResultsSetObjectId()
property ResultsCount as %Integer [ InitialExpression = 0 ];
Number of results
Property methods: ResultsCountDisplayToLogical(), ResultsCountGet(), ResultsCountGetStored(), ResultsCountIsValid(), ResultsCountLogicalToDisplay(), ResultsCountNormalize(), ResultsCountSet(), ResultsCountXSDToLogical()

Queries

query SearchResults(id As %String = "")
SQL Query:
SELECT m.%ID,m.MPIID,m.LastName,m.MiddleName,m.FirstName,m.Sex,m.DoB,m.Facility,m.MRN,m.SSN,m.Street,m.City,m.State,m.Zip,m.RankOrScore As Rank, Max(m.RankOrScore %FOREACH(m.MPIID)) as MaxRank, m.InfoTypes, m.LookupError, Count(DISTINCT m.MPIID) As NumMPI FROM PatientSearchMatch m, PatientSearchResponse_Results r WHERE r.PatientSearchResponse = :id AND r.Results = m.%ID ORDER BY MaxRank DESC, m.MPIID, Rank DESC
The Results property is mapped as a child table and this query will return the search results in resultset form for the specified search response [message id], which is more convenient than an list of objects

Inherited Members

Inherited Properties

Inherited Methods

Storage

Gray indicates storage defined by superclasses.

Storage Model: Storage (Ens.MessageBody)

^Ens.MessageBodyD(ID)
=
%%CLASSNAME

Storage Model: Storage (HS.Util.EnsResponse)

^Ens.MessageBodyD(ID,"EnsResponse")
=
HSCoreVersion
HSMinVersionError

Storage Model: Storage (HS.Message.PatientSearchResponse)

^Ens.MessageBodyD(ID,"HS.Message.PatientSearchResponse.AdditionalInfo",n)
=
AdditionalInfo(n)

Storage Model: Storage (HS.Message.PatientSearchResponse)

^Ens.MessageBodyD(ID,"HS.Message.PatientSearchResponse.CustomAuditInfo",n)
=
CustomAuditInfo(n)

Storage Model: Storage (HS.Message.PatientSearchResponse)

^Ens.MessageBodyD(ID,"PatientSearchResponse")
=
ResultsCount
RequestingFacility
BreakTheGlass
Consent
ClinicalTypes
RequestingUser
RequestingUserRoles
Signature
RequestId
Type
ConsentApplied
RequestingGateway
AuthBy
AuthType
BTGReason
ClinicianId
MPIIDList
InfoTypesFiltered
RequestingForProxyUserID
RequestingForProxyID
ProgramConsent
ErrStatus
SAMLData
AuthRole
RequestLogID
ProxyID
ProxyUserID

Storage Model: Storage (HS.Message.PatientSearchResponse)

^Ens.MessageBodyD(ID,"Results",n)
=
Results(n)

Subclasses

FeedbackOpens in a new tab