210 likes | 308 Views
Query Adaptor. New Registry actor feature to enable efficient queries. Registry and its Interfaces. Registry. Life Cycle Manager Interface. Query Manager Interface.
E N D
Query Adaptor New Registry actor feature to enable efficient queries
Registry and its Interfaces Registry Life Cycle Manager Interface Query Manager Interface The is the configuration of the ebXML Registry standard. All interaction with the Registry is through one of the two interfaces.
Registry Adaptor Function Registry Registry Adaptor Function Life Cycle Manager Interface Query Manager Interface XDS adds the Registry Adaptor Function to simplify the implementation of the Document Source actor and to allow integration with the Patient Identify Feed for validation of Patient IDs.
What about queries? Registry Registry Adaptor Function Life Cycle Manager Interface ??? Query Manager Interface The biggest complaint from vendors at Connectathon was the number of queries were required to get useful work done. A review of newer work in ebXML Registry found parameterized stored queries on the the Registry. These are still restricted to returning a single registry object type. We need something significantly more powerful, on the order of sophistication found in the registry submissions to the LCM.
Query Adaptor Function Registry Registry Adaptor Function Life Cycle Manager Interface Query Manager Interface Query Adaptor Function We propose a new element in the architecture, the Query Adaptor Function. It would be capable of executing many local queries to construct a query response that is meaningful to XDS. The query response could be as complicated as the metadata found in Register transactions.
Issues (Technology) Query response could be quite complicated, requiring significant evaluation of the XML. This is the trade-off for not having to send multiple simple queries. Require addition to the ebRS Schema controlling query requests. A new XML element would be introduced for specifying Query Adaptor queries. Standard queries could still be used. Require addition to the ebRS Scheme controlling query responses. A new XML element would be introduced as a wrapper for these expanded queries.
Issues (Standard) This introduces new technology beyond the standard. The issue of inefficient queries is acknowledged by the OASIS committee. Will present our solution and propose it to OASIS as a new optional query interface to the ebXML Registry standard. Other option is for IHE to accept that we need to go beyond the standard in this area.
Query Functions Need a name for this functionality: Query Functions Purpose of Query Adaptor is to support Query Functions: Input is XML coded function call Output is arbitrary collection of metadata
Query Request <Query name=“Query_Name”> <Parm name=“Query_Parm_1” value=“value 1”/> <Parm name=“Query_Parm_2” value=“value 2”/> </Query>
Query Response Create new XML element as wrapper for results of query functions. Returned content takes form of submission, arbitrary mixture of registry objects. <RegistryResponse> <QueryFunctionResponse> <!-- NEW ELEMENT --> … arbitrary collection of ebRIM elements… </QueryFunctionResponse> </RegistryResponse>
Query Registration XDS profile would define and document Query Functions to be implemented in the Query Adaptor Each Query Function would be named and have named parameters. Parameters can be labeled as optional.
Next Steps Go forward with this proposal? Present to OASIS REGREP - negotiate generic form of proposal that is acceptable to registry community Write CP for XDS Ready for this season? What are deadlines for review?
Proposed New Queries GetAllByPatient(patientId, deprecatedFlag) • Example: Obvious - get the entire object graph of all XDSSubmissionSet, XDSDocumentEntry, and XDSFolder instances associated with the specified patient and the associations between these instances.
Proposed New Queries • GetDocumentsByPatient(patientId, classCode|*, fromDateTime|*, toDateTime|*, practiceSettingCode|*, healthcareFacilityTypeCode|*, DeprecatedFlag) • a. Example: show me all the [lab reports] documents for my patient over the past 3 years. • b. Returns a sequence of XDSDocumentEntry metadata for approved. If Document has/is an addendum, it includes relationships. • c. Dates need to be defined: dates of submission (either by value or reference) seem most useful. Ordered in reverse chronological order.
Proposed New Queries • GetDocumentsbyID(XDSDocument.UUID|*, XDSDocument.uniqueId|*) • a. Example: show the metadata (including the URI) of a specific document for which I only have the UniqueID (e.g. reference within a document) or the UUID of the registry entry. • Returns a sequence of XDSDocumentEntry metadata for the document.
Proposed New Queries • GetDocumentsByKeywords(patientId, eventCodeList|*, fromDateTime|*, toDateTime|*, deprecatedFlag) • a. Example: show me all the documents with certain “key word” for my patient over the past 3 years. • b. Returns a sequence of XDSDocumentEntry metadata for approved and non-deprecated documents matching the parameters. If Document has/is an addendum, it includes relationships. • c. Dates need to be defined: dates of document creation seem most useful.
Proposed New Queries • GetSubmissions(authorPersonId|*, sourceId|*, patientId , fromDateTime|*, toDateTime|*) • a. Example: what have I submitted in the past 6 months (auther personId) ? What have been submitted from this EHR-CR in the past year (SourceId) ? Show me what’s been submitted on my patient in the past year (Patient Id). • b. This query returns a sequence of XDSSubmissionSet metadata only. Use GetSubmissionAll () to drill down.
Proposed New Queries • GetSubmissionAll(XDSSubmissionSet.uniqueId) • a. Example: what did Dr Winston submit on my patient via a specific submission request March 7th? • b. This query returns an object graph of the specified submission set and all of its documents, folders and their associations to each other.
Proposed New Queries • GetFoldersByPatient(patientId, withinDaysSinceLastUpdate|*) • a. Example: what disease-oriented folders are there for my patient? • b. This query returns a list of XDSFolder metadata for each folder associated with a specified patient that has been updated within the specified number of days.
Proposed New Queries • GetFolder(XDSFolder.uniqueId) • a. show me all the documents in my patient’s cardiac treatment folder. • This query returns an XDSFolder, the XDSSubmissionSet it is associated with and a list of XDSDocumentEntry metadata currently associated with the folder.
Proposed New Queries • GetFoldersByDocument(XDSDocument.UUID|*, XDSDocument.uniqueId|*) • a. Example: In what folders is this document ? • b. This query returns a list of XDSFolder metadata for each folder associated with a specified document.