Skip to main content

HS.HC.IHE.XDSb.Registry.Operations

class HS.HC.IHE.XDSb.Registry.Operations extends HS.HC.Util.Trace.Helper, HS.Util.SOAPClient.Operations, HS.Util.BaseHost, HS.HC.IHE.RMU.Validate, HS.HC.IHE.XDSb.RMD

Used to forward registry messages from the BUS to the Registry via XDSbRegistryServiceName

Property Inventory

Method Inventory

Parameters

parameter DOMAIN = HS;
parameter HSDEPLOY = 1;
parameter INVOCATION = Queue;
Inherited description: 2 modes: Queue, InProc
parameter SETTINGS = CustomProcessor:Basic,IHEVersion,XDSbRegistryServiceName,-TargetName,ValidatePatientID,ValidateSourcePatientID,ValidateRepositoryOID,-IgnoreInvalidParameters,IgnoreInvalidClassifications,IgnoreMissingRequiredItems,XDSbQueryConsentTarget,MergeByMPIID,RegisterPostProcessor,Publisher,AffinityDomain,-CreateMPIOnDemand:OnDemand,-OnDemandRepository:OnDemand,-OnDemandRegistryServiceName:OnDemand,-ExtendedOnDemandCleanup:OnDemand,MaximumDocumentsToProcess,MetadataTransform,RegisterToDocumentTransform,RegistryAddResponseTransform,RegistryStoredQueryResponseTransform,RegisterResponseTransform,DocumentTransform,TransformQueryToXDSb,TransformToMetadata,TransformResponseCleanup,QueryMaxRowsLeafClass:Basic,QueryMaxRowsObjectRef:Basic,-QueryMaxCountDateParam:Basic,QueryMaxCountBitmapParam:Basic,RMUPolicy:RMU,LocalRMUPolicy:RMU;
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 [ InitialExpression = ##class(HS.IHE.Util).GetAffinityDomain() ];
Defaults to \IHE\AffinityDomain [##class(HS.IHE.Util).GetAffinityDomain()] if "" any patient will be accepted (versus turning off patient id validation) the AA in the request is sent to the
Property methods: AffinityDomainDisplayToLogical(), AffinityDomainGet(), AffinityDomainIsValid(), AffinityDomainLogicalToDisplay(), AffinityDomainLogicalToOdbc(), AffinityDomainNormalize(), AffinityDomainSet()
property DocumentTransform as %String (MAXLEN = 250) [ InitialExpression = "/IHE/XDSb/Version1/DocumentToProvideAndRegister.xsl" ];
Property methods: DocumentTransformDisplayToLogical(), DocumentTransformGet(), DocumentTransformIsValid(), DocumentTransformLogicalToDisplay(), DocumentTransformLogicalToOdbc(), DocumentTransformNormalize(), DocumentTransformSet()
property Errors as HS.Types.IHE.Errors;
Property methods: ErrorsGet(), ErrorsGetObject(), ErrorsGetObjectId(), ErrorsGetSwizzled(), ErrorsIsEmpty(), ErrorsIsValid(), ErrorsNewObject(), ErrorsSet(), ErrorsSetObject(), ErrorsSetObjectId(), ErrorsUnSwizzle()
property IHEVersion as %Integer [ InitialExpression = 1 ];
Property methods: IHEVersionDisplayToLogical(), IHEVersionGet(), IHEVersionIsValid(), IHEVersionLogicalToDisplay(), IHEVersionNormalize(), IHEVersionSet()
property IgnoreInvalidClassifications as %Boolean [ InitialExpression = 0 ];
Disable strict checking of classification codes
Property methods: IgnoreInvalidClassificationsDisplayToLogical(), IgnoreInvalidClassificationsGet(), IgnoreInvalidClassificationsIsValid(), IgnoreInvalidClassificationsLogicalToDisplay(), IgnoreInvalidClassificationsNormalize(), IgnoreInvalidClassificationsSet()
property IgnoreInvalidParameters as %Boolean [ InitialExpression = 1 ];
***Deprecated*** Disable strict checking of query parameters (the XDS spec says to ignore unknown parameters)
Property methods: IgnoreInvalidParametersDisplayToLogical(), IgnoreInvalidParametersGet(), IgnoreInvalidParametersIsValid(), IgnoreInvalidParametersLogicalToDisplay(), IgnoreInvalidParametersNormalize(), IgnoreInvalidParametersSet()
property IgnoreMissingRequiredItems as %Boolean [ InitialExpression = 0 ];
Disable strict checking of required items
Property methods: IgnoreMissingRequiredItemsDisplayToLogical(), IgnoreMissingRequiredItemsGet(), IgnoreMissingRequiredItemsIsValid(), IgnoreMissingRequiredItemsLogicalToDisplay(), IgnoreMissingRequiredItemsNormalize(), IgnoreMissingRequiredItemsSet()
property MaximumDocumentsToProcess as %Integer [ InitialExpression = 100 ];
A store error will be thrown at some point, the content is available in the response, just not parsed.
Property methods: MaximumDocumentsToProcessDisplayToLogical(), MaximumDocumentsToProcessGet(), MaximumDocumentsToProcessIsValid(), MaximumDocumentsToProcessLogicalToDisplay(), MaximumDocumentsToProcessNormalize(), MaximumDocumentsToProcessSet()
property MergeByMPIID as %Integer (DISPLAYLIST = ",By MRN,By MPIID, By XPID", VALUELIST = ",0,1,2") [ InitialExpression = 0 ];
Default defined by IHE is to merge by the MPIID and not the source MRN
Property methods: MergeByMPIIDDisplayToLogical(), MergeByMPIIDGet(), MergeByMPIIDIsValid(), MergeByMPIIDLogicalToDisplay(), MergeByMPIIDNormalize(), MergeByMPIIDSet()
property MetadataTransform as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/Message-to-MetadataObject.xsl" ];
Property methods: MetadataTransformDisplayToLogical(), MetadataTransformGet(), MetadataTransformIsValid(), MetadataTransformLogicalToDisplay(), MetadataTransformLogicalToOdbc(), MetadataTransformNormalize(), MetadataTransformSet()
property OutputSet as HS.Types.IHE.Submission;
Property methods: OutputSetGet(), OutputSetGetObject(), OutputSetGetObjectId(), OutputSetGetSwizzled(), OutputSetIsEmpty(), OutputSetIsValid(), OutputSetNewObject(), OutputSetSet(), OutputSetSetObject(), OutputSetSetObjectId(), OutputSetUnSwizzle()
property PDQConsumer as Ens.DataType.ConfigName [ InitialExpression = "HS.IHE.PDQv3.Consumer.Operations" ];
Property methods: PDQConsumerDisplayToLogical(), PDQConsumerGet(), PDQConsumerIsValid(), PDQConsumerLogicalToDisplay(), PDQConsumerLogicalToOdbc(), PDQConsumerNormalize(), PDQConsumerParseConfigNameSpec(), PDQConsumerSet()
property Publisher as Ens.DataType.ConfigName;
HS.IHE.DSUB.NotificationBroker.Operations - if not an internal broker, build process to wrap transaction and send to service
Property methods: PublisherDisplayToLogical(), PublisherGet(), PublisherIsValid(), PublisherLogicalToDisplay(), PublisherLogicalToOdbc(), PublisherNormalize(), PublisherParseConfigNameSpec(), PublisherSet()
property QueryMaxCountBitmapParam as %Integer [ InitialExpression = 20000 ];
For Multi-Patient queries (typically), when querying results with bitmapped parameters, the maximum number of results before the query starts using the dates (when available) as the primary search. By increasing the number too high it increases the probability that the system won't respond in the timeout period.
Property methods: QueryMaxCountBitmapParamDisplayToLogical(), QueryMaxCountBitmapParamGet(), QueryMaxCountBitmapParamIsValid(), QueryMaxCountBitmapParamLogicalToDisplay(), QueryMaxCountBitmapParamNormalize(), QueryMaxCountBitmapParamSet()
property QueryMaxCountDateParam as %Integer [ InitialExpression = 10000 ];
***DEPRECATED ***
Property methods: QueryMaxCountDateParamDisplayToLogical(), QueryMaxCountDateParamGet(), QueryMaxCountDateParamIsValid(), QueryMaxCountDateParamLogicalToDisplay(), QueryMaxCountDateParamNormalize(), QueryMaxCountDateParamSet()
property QueryMaxRowsLeafClass as %Integer [ InitialExpression = 100 ];
Default of 100 for performance. Ideally the code querying will utilize parameters to reduce the response.
Property methods: QueryMaxRowsLeafClassDisplayToLogical(), QueryMaxRowsLeafClassGet(), QueryMaxRowsLeafClassIsValid(), QueryMaxRowsLeafClassLogicalToDisplay(), QueryMaxRowsLeafClassNormalize(), QueryMaxRowsLeafClassSet()
property QueryMaxRowsObjectRef as %Integer (MAXVAL = 70000) [ InitialExpression = 10000 ];
Maximum value around 70,000 due to a maxstring on the list of IDS used
Property methods: QueryMaxRowsObjectRefDisplayToLogical(), QueryMaxRowsObjectRefGet(), QueryMaxRowsObjectRefIsValid(), QueryMaxRowsObjectRefLogicalToDisplay(), QueryMaxRowsObjectRefNormalize(), QueryMaxRowsObjectRefSet()
property QueryReturnType as %String;
Property methods: QueryReturnTypeDisplayToLogical(), QueryReturnTypeGet(), QueryReturnTypeIsValid(), QueryReturnTypeLogicalToDisplay(), QueryReturnTypeLogicalToOdbc(), QueryReturnTypeNormalize(), QueryReturnTypeSet()
property RegisterPostProcessor as %String (MAXLEN = 512);
Comma delmited list of business host names for additional processing after document registration.
Property methods: RegisterPostProcessorDisplayToLogical(), RegisterPostProcessorGet(), RegisterPostProcessorIsValid(), RegisterPostProcessorLogicalToDisplay(), RegisterPostProcessorLogicalToOdbc(), RegisterPostProcessorNormalize(), RegisterPostProcessorSet()
property RegisterResponseTransform as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/RegisterResponse.xsl" ];
Property methods: RegisterResponseTransformDisplayToLogical(), RegisterResponseTransformGet(), RegisterResponseTransformIsValid(), RegisterResponseTransformLogicalToDisplay(), RegisterResponseTransformLogicalToOdbc(), RegisterResponseTransformNormalize(), RegisterResponseTransformSet()
property RegisterToDocumentTransform as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/RegisterToDocument.xsl" ];
Property methods: RegisterToDocumentTransformDisplayToLogical(), RegisterToDocumentTransformGet(), RegisterToDocumentTransformIsValid(), RegisterToDocumentTransformLogicalToDisplay(), RegisterToDocumentTransformLogicalToOdbc(), RegisterToDocumentTransformNormalize(), RegisterToDocumentTransformSet()
property RegistryAddResponseTransform as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/RegistryAddResponse.xsl" ];
Property methods: RegistryAddResponseTransformDisplayToLogical(), RegistryAddResponseTransformGet(), RegistryAddResponseTransformIsValid(), RegistryAddResponseTransformLogicalToDisplay(), RegistryAddResponseTransformLogicalToOdbc(), RegistryAddResponseTransformNormalize(), RegistryAddResponseTransformSet()
property RegistryStoredQueryResponseTransform as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/RegistryStoredQueryResponse.xsl" ];
Property methods: RegistryStoredQueryResponseTransformDisplayToLogical(), RegistryStoredQueryResponseTransformGet(), RegistryStoredQueryResponseTransformIsValid(), RegistryStoredQueryResponseTransformLogicalToDisplay(), RegistryStoredQueryResponseTransformLogicalToOdbc(), RegistryStoredQueryResponseTransformNormalize(), RegistryStoredQueryResponseTransformSet()
property TransformQueryToXDSb as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/QueryRequestToXDSbQuery.xsl" ];
Property methods: TransformQueryToXDSbDisplayToLogical(), TransformQueryToXDSbGet(), TransformQueryToXDSbIsValid(), TransformQueryToXDSbLogicalToDisplay(), TransformQueryToXDSbLogicalToOdbc(), TransformQueryToXDSbNormalize(), TransformQueryToXDSbSet()
property TransformResponseCleanup as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/QueryResponseCleanup.xsl" ];
Property methods: TransformResponseCleanupDisplayToLogical(), TransformResponseCleanupGet(), TransformResponseCleanupIsValid(), TransformResponseCleanupLogicalToDisplay(), TransformResponseCleanupLogicalToOdbc(), TransformResponseCleanupNormalize(), TransformResponseCleanupSet()
property TransformToMetadata as %String (MAXLEN = 250) [ InitialExpression = "IHE/XDSb/Version1/Message-to-Metadata.xsl" ];
Property methods: TransformToMetadataDisplayToLogical(), TransformToMetadataGet(), TransformToMetadataIsValid(), TransformToMetadataLogicalToDisplay(), TransformToMetadataLogicalToOdbc(), TransformToMetadataNormalize(), TransformToMetadataSet()
property Transformer as HS.Util.XSLTTransformer;
Property methods: TransformerGet(), TransformerGetSwizzled(), TransformerIsValid(), TransformerNewObject(), TransformerSet()
property ValidatePatientID as %Boolean [ InitialExpression = 1 ];
During testing it is sometimes necessary to turn off patient validation (Existence in the MPI)
Property methods: ValidatePatientIDDisplayToLogical(), ValidatePatientIDGet(), ValidatePatientIDIsValid(), ValidatePatientIDLogicalToDisplay(), ValidatePatientIDNormalize(), ValidatePatientIDSet()
property ValidateRepositoryOID as %Boolean;
When true, lookup OID to ensure that the Repository OID is known
Property methods: ValidateRepositoryOIDDisplayToLogical(), ValidateRepositoryOIDGet(), ValidateRepositoryOIDIsValid(), ValidateRepositoryOIDLogicalToDisplay(), ValidateRepositoryOIDNormalize(), ValidateRepositoryOIDSet()
property ValidateSourcePatientID as %Boolean [ InitialExpression = 1 ];
During testing it is sometimes necessary to turn off source patient validation Validates source patient ID exists and AssigningAuthority OID exists and formatted correctly
Property methods: ValidateSourcePatientIDDisplayToLogical(), ValidateSourcePatientIDGet(), ValidateSourcePatientIDIsValid(), ValidateSourcePatientIDLogicalToDisplay(), ValidateSourcePatientIDNormalize(), ValidateSourcePatientIDSet()
property XDSbQueryConsentTarget as Ens.DataType.ConfigName;
ConfigName of the business host for consent evaluation for query responses. By default, consent is not evaluated for query.
Property methods: XDSbQueryConsentTargetDisplayToLogical(), XDSbQueryConsentTargetGet(), XDSbQueryConsentTargetIsValid(), XDSbQueryConsentTargetLogicalToDisplay(), XDSbQueryConsentTargetLogicalToOdbc(), XDSbQueryConsentTargetNormalize(), XDSbQueryConsentTargetParseConfigNameSpec(), XDSbQueryConsentTargetSet()
property XDSbRegistryServiceName as %String (MAXLEN = 512);
If forwarding the message on (from a bus, for example), the RegistryService entry for the XDSb Registry actor. If this value is defined the message will not be processed by this operation
Property methods: XDSbRegistryServiceNameDisplayToLogical(), XDSbRegistryServiceNameGet(), XDSbRegistryServiceNameIsValid(), XDSbRegistryServiceNameLogicalToDisplay(), XDSbRegistryServiceNameLogicalToOdbc(), XDSbRegistryServiceNameNormalize(), XDSbRegistryServiceNameSet()
property XPIDContentCode as %String [ InitialExpression = ##class(HS.Registry.Config).GetKeyValue("\IHE\Registry\XPID\ContentCode\Code")_"||||"_##class(HS.Registry.Config).GetKeyValue("\IHE\Registry\XPID\ContentCode\Scheme")_"||||"_##class(HS.Registry.Config).GetKeyValue("\IHE\Registry\XPID\ContentCode\Description") ];
Cache the content type code / scheme
Property methods: XPIDContentCodeDisplayToLogical(), XPIDContentCodeGet(), XPIDContentCodeIsValid(), XPIDContentCodeLogicalToDisplay(), XPIDContentCodeLogicalToOdbc(), XPIDContentCodeNormalize(), XPIDContentCodeSet()
property info as %String [ MultiDimensional ];
used to store collected information cleared out at the start of every request
Property methods: infoDisplayToLogical(), infoGet(), infoIsValid(), infoLogicalToDisplay(), infoLogicalToOdbc(), infoNormalize(), infoSet()
property lockedEntries as %String);
internal value for patient id's to lock for parallel processing
Property methods: lockedEntriesDisplayToLogical(), lockedEntriesGet(), lockedEntriesIsValid(), lockedEntriesLogicalToDisplay(), lockedEntriesLogicalToOdbc(), lockedEntriesNormalize(), lockedEntriesSet()
property queryFields as %String [ MultiDimensional ];
used by query code to hold the various field groupings, indexed / non-indexed
Property methods: queryFieldsDisplayToLogical(), queryFieldsGet(), queryFieldsIsValid(), queryFieldsLogicalToDisplay(), queryFieldsLogicalToOdbc(), queryFieldsNormalize(), queryFieldsSet()
property settings as %String [ MultiDimensional ];
various settings defined at startup
Property methods: settingsDisplayToLogical(), settingsGet(), settingsIsValid(), settingsLogicalToDisplay(), settingsLogicalToOdbc(), settingsNormalize(), settingsSet()
property substitutionAry as %String [ MultiDimensional ];
used to store id to guid substitution cleared out at the start of every request
Property methods: substitutionAryDisplayToLogical(), substitutionAryGet(), substitutionAryIsValid(), substitutionAryLogicalToDisplay(), substitutionAryLogicalToOdbc(), substitutionAryNormalize(), substitutionArySet()

Methods

method AddRelatedDocument(pObj As HS.Registry.Document) as %Status
Adding related document to the metadata request - where the original is updated or deleted
method AddToFolders(pSubmission As HS.Types.IHE.Submission, pTargetObject, pSourceObject) as %Status
copy the folder specifications from the target into the source used during a RPLC operation If the Document being replaced is a member of one or more Folders, generate HasMember Associations connecting the replacement Document with each of the Folders holding the original Document. This makes the replacement Document a member of all Folders where the original Document is a member.
method AddToOutputSet(pDocument="", pRegistryPackage="", pAssociation="") as %Status
Export document or object to DocumentsStream
method CheckPatientIDs(pSubmission As HS.Types.IHE.Submission, ByRef pPatientID, pValidatePatientId As %Boolean = 1) as %Status
method DateFieldSQL(pField="CreationTime", pFromTo="To", ByRef pSQLNode, ByRef pParams, pValue)
method FilterByAuthor(tID, pAryItem, tSQL, ByRef pQueryParams, ByRef pFilter) as %Status
method FilterByClassification(tID, pAryItem, pCodedItem, ByRef pQueryParams, pRegistryObject, ByRef pFilter, pObject) as %Status
pObject may be a Document or a SubmissionSet
method FilterByDocumentType(pObject, pAryItem, ByRef pQueryParams, ByRef pFilter) as %Status
method FilterByExternalIdentifier(tID, pAryItem, pCodedItem, ByRef pQueryParams, pRegistryObject, ByRef pFilter) as %Status
method FilterByStatus(pObject, pAryItem, ByRef pQueryParams, ByRef pFilter) as %Status
method FilterDocument(pDocument As HS.Registry.Document, ByRef pQueryParams, ByRef pFilter=0, ByRef pFilterCodes) as %Status
method FilterDocuments(pDocList, pIIDList, ByRef pQueryParams)
method FilterSubmissionSet(pSubmissionSet As HS.Registry.Document.RegistryPackage, ByRef pQueryParams, ByRef pFilter) as %Status
method FilterSubmissionSets(pDocList, pIIDList, ByRef pQueryParams)
method GetFilterCodes(ByRef pFilterCodes) as %Status
/ Classification Codes
method IsMultiPatientOkay(ByRef pQueryParams, pMaxCount, Output pFoundCount) as %Boolean
When Multi-Patient queries require additional processing to ensure we'll return in a timely manner
method ManageXPIDAssociations(pDocumentIID As %String, pSourcePatientID As %String, ByRef pMetadataRequest As HS.Types.IHE.Submission, pNewSourcePatientID As %String) as %Status
Document belongs to a folder which contains other documents of the same or different source patient id's (different fails) Document linked to another document which is the same or different source patient id (different fails) The source patient ID could be changing, so check against both the new and old source patient ID (matching either one is OK) Document in Submission set as a Reference - Create association to document
method MergeByXPID(pRequest As HS.Message.IDUpdateNotificationRequest, pResponse As HS.Message.AddUpdateHubResponse) as %Status
Update Document.PatientID and ID in ExternalIdentifiers for Document/SubmissionSet/Folders this could be called by receiving a ADT^A43 or by setting the MergeMPIID to By XPID (2) setting
method MergeNotification(pRequest As HS.Message.IDUpdateNotificationRequest, pResponse As HS.Message.AddUpdateHubResponse) as %Status
Update Document.PatientID and ID in ExternalIdentifiers for Document/SubmissionSet/Folders
classmethod NormalizeAA(ByRef pArray)
method OnInit() as %Status
Inherited description: Ensure that SAMLCreator exists SendSAMLAssertion is not 0
method OnMessage(pRequest As HS.Message.XMLMessage, Output pResponse As HS.Message.XMLMessage) as %Status
This is the default message handler. All request types not declared in the message map are delivered here
classmethod PaddedDate(pDate, pEval)
classmethod ParseQueryParameters(pRequestStream, Output pAry, ByRef pErrors As HS.Types.IHE.Errors, ByRef pQueryType, ByRef pReturnType) as %Status
This method is also called by XCA.RespondingGateway.Process
method Propagate(pSubmission As HS.Types.IHE.Submission) as %Status
typically we'll be responsible for propagating the Documents/Folders and associations related to changes from MetadataUpdate 3.57.4.1.3.1 Common Rules for Metadata Update build array of tObjects(logicaliid)=object logical to handle multiple object updates and maintaining correct relationships - see 3.57.4.1.3.1.1 Rules for Update Planning
method QueryParameters(pRequestStream, Output pAry, ByRef pQueryType, ByRef pReturnType) as %Status
method QueryPatientID(tPatientID) as %Status
since we have the patient registry always, we can query directly
method QueryRequest(pRequest As HS.Message.XMLMessage, pResponse As HS.Message.XMLMessage) as %Status
method RegisterRequest(pRequest As HS.Message.XMLMessage, pResponse As HS.Message.XMLMessage) as %Status
take the SubmitObjectRequest
method SendToPublisher(pResponse) as %Status
method UpdateConvertedRequestUUIDs()
Update ..info("ConvertedRequest") with same UUID updates as done in registerUpdateUUIDs using substitutionAry
method UpdateDocumentStatus(pSubmission) as %Status
once register is successful mark documents as approved
method UpdateRegistryPackageStatus(pSubmission, tOutputSet As %RegisteredObject) as %Status
once register is successful mark registrypackage as approved
method ValidateAdministratorPropagation(pSubmission As HS.Types.IHE.Submission) as %Status
Transaction is marked as self propagation
method ValidateRegisterRequest(pSubmission As HS.Types.IHE.Submission, pRequestName As %String, pValidatePatientId As %Boolean = 1) as %Status
method ValidateUpdateRequest(pSubmission As HS.Types.IHE.Submission, pRequestName As %String, pValidatePatientId As %Boolean = 1) as %Status
specific requirements for update requests - then call ValidateRegisterRequest
method XDSbQueryParameters(pRequest As HS.Message.IHE.XDSb.QueryRequest, Output pAry, ByRef pQueryType, ByRef pReturnType) as %Status
method addAssociations(ByRef pQueryParams)
method addClassification(pNode, pScheme, pQueryParams, ByRef pSQL, ByRef pParams)
Additional SQL for classification
method addClassificationDocumentAuthorPerson(pNode, pScheme, pQueryParams, ByRef pSQL, ByRef pParams)
Additional SQL for classification
method addCustomSlots(pQueryParams, ByRef pSQL, ByRef pParams)
Additional sql for filtering custom slots
method addReferenceByIdList(pQueryParams, ByRef pSQL, ByRef pParams)
Additional sql for filtering referenceidlist slots
method aryToList(ByRef %pAry, pComplete=0) as %String
build a string with the array values, if pComplete=1 build the string without the array node, just the value
method buildQueryFields()
build a list of query fields which is somewhat dynamic based on new indices
method documentBuildSQL(pListFields As %String, ByRef pQueryParams, Output pNoIndex, Output pSQL, Output pParams, pMaxCount, pInto="", pMulti=0) as %Status
Build query based on pQueryParams, returning pDocList and pIIDS for further processing If the basic criteria return more than QueryMaxRows{type} return an error. The only issue being that the EventCodeList could reduce the number but due to query performance we won't check the EventCodeList if the other criteria exceeds the QueryMaxRows{type}
method documentSQLFromQueryParams(ByRef pQueryParams, ByRef pDocList="", ByRef pIIDS="") as %Status
rewritten to handle large systems executing multipatient queries. Query bitmap indexed fields and using the count (if too high) query dates to try to reduce the number.
The example was 63 million rows in bitmapped fields, and thousands in the creationtime span specified which intersected with 1340 rows. Query the date spans into a temp table and delete the rows from the temp table where they are not in the bitmapped rows, then add the id's in the temp table as a condition when checking the remainder of the query paramters.
method filterAssociation(ByRef pQueryParams, pAssociationID As %String = "", pAssociation As HS.Registry.Document.Association = "") as %Boolean
For consumer not aware of MetadataUpdate filter associations not of status Approved, for those aware, filter by status specified, where not specified, the default is approved
method folderAddClassification(pNode, pScheme, pQueryParams, ByRef pSQL, ByRef pParams)
Additional SQL for classification
method folderAddSQLField(ByRef pQueryParams, Output pParams, Output pSQL, pItem, pPrefix="$XDSFolder", pNoIndex)
method folderSQLFromQueryParams(ByRef pQueryParams) as %Status
classmethod getSingleQueryParamValue(pQueryParams, pType, pExists) as %String
method queryFilterFolders(pFolder, ByRef pQueryParams, ByRef pFilter) as %Status
test 11899
method queryFindDocuments(ByRef pQueryParams) as %Status
method queryFindDocumentsByReferenceId(ByRef pQueryParams) as %Status
method queryFindDocumentsMultiPatients(ByRef pQueryParams) as %Status
Same as Find Documents except may have 0 -> many Patient ID's Must have one of ClassCode, EventCodeList, HealthcareFacilityTypeCode specified returns XDSDocumentEntry or ObjectRef
method queryFindFolders(ByRef pQueryParams) as %Status
method queryFindFoldersMultiPatients(ByRef pQueryParams) as %Status
method queryFindSubmissionSets(ByRef pQueryParams) as %Status
method queryGetAll(ByRef pQueryParams) as %Status
method queryGetAssociations(ByRef pQueryParams) as %Status
test 11903
method queryGetDocsAndAssociations(ByRef pQueryParams) as %Status
test 11904
method queryGetDocuments(ByRef pQueryParams, ByRef pListDocIIDs) as %Status
test 11901
method queryGetFolderAndContents(ByRef pQueryParams) as %Status
test 11907
method queryGetFolders(ByRef pQueryParams) as %Status
test 11902
method queryGetFoldersForDocument(ByRef pQueryParams) as %Status
test 11908 locate folders for specified document using associations
method queryGetRelatedDocuments(ByRef pQueryParams) as %Status
test 11909 find associations for specified document then return documents related to associations (including the document found)
method queryGetSubSetsAndContents(ByRef pQueryParams) as %Status
Locate submission sets based on EntryID or uniqueID of set - Return Documents / Folders / Submission Sets / Associations after filtering docs by format code and confidentiality code test 11906 for the associations: any association submission set any association between document and folder and also the association which links document and folder
method queryGetSubmissionSets(ByRef pQueryParams) as %Status
Retrieve submission sets based on the uuid identifier of document or folder - return submission sets and associations test 11905
method registerProcess(pSubmission As HS.Types.IHE.Submission) as %Status
need to move registry packages to either submission sets or folders
method registerUpdateUUIDs(pSubmission As HS.Types.IHE.Submission) as %Status
Update any object id to be a uuid if not already assigned and move classifications from outside reg package to inside
method validateRequiredQueryParameters(ByRef pQueryParams, pParameters="", Output pType="") as %Boolean
pParameters is a list of requirements for the query in the form of $lb(param,param,param) where each param is a list
param = $lb(parametername, required (1/0/Only1), multivalue (1/0))
the Only1 indicates that only 1 item with "Only1" requirement set can have a value

Inherited Members

Inherited Properties

Inherited Methods

FeedbackOpens in a new tab