Query Adaptor New Registry actor feature to enable efficient queries.
-
Upload
reynold-price -
Category
Documents
-
view
220 -
download
0
Transcript of Query Adaptor New Registry actor feature to enable efficient queries.
Query Adaptor
New Registry actor feature to enable efficient queries
Registry and its Interfaces
Registry
LifeCycle
ManagerInterface
QueryManagerInterface
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
LifeCycle
ManagerInterface
QueryManagerInterface
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.
RegistryAdaptorFunction
What about queries?
Registry
LifeCycle
ManagerInterface
QueryManagerInterface
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.
RegistryAdaptorFunction
???
Query Adaptor Function
Registry
LifeCycle
ManagerInterface
QueryManagerInterface
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.
RegistryAdaptorFunction
QueryAdaptorFunction
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.