list method
Lists all the messages in the given HL7v2 store with support for filtering.
Note: HL7v2 messages are indexed asynchronously, so there might be a slight delay between the time a message is created and when it can be found through a filter.
Request parameters:
parent
- Required. Name of the HL7v2 store to retrieve messages from.
Value must have pattern
^projects/\[^/\]+/locations/\[^/\]+/datasets/\[^/\]+/hl7V2Stores/\[^/\]+$
.
filter
- Restricts messages returned to those matching a filter. The
following syntax is available: * A string field value can be written as
text inside quotation marks, for example "query text"
. The only valid
relational operation for text fields is equality (=
), where text is
searched within the field, rather than having the field be equal to the
text. For example, "Comment = great"
returns messages with great
in
the comment field. * A number field value can be written as an integer, a
decimal, or an exponential. The valid relational operators for number
fields are the equality operator (=
), along with the less than/greater
than operators (<
, <=
, >
, >=
). Note that there is no inequality
(!=
) operator. You can prepend the NOT
operator to an expression to
negate it. * A date field value must be written in yyyy-mm-dd
form.
Fields with date and time use the RFC3339 time format. Leading zeros are
required for one-digit months and days. The valid relational operators for
date fields are the equality operator (=
) , along with the less
than/greater than operators (<
, <=
, >
, >=
). Note that there is no
inequality (!=
) operator. You can prepend the NOT
operator to an
expression to negate it. * Multiple field query expressions can be
combined in one query by adding AND
or OR
operators between the
expressions. If a boolean operator appears within a quoted string, it is
not treated as special, it's just another part of the character string to
be matched. You can prepend the NOT
operator to an expression to negate
it. Fields/functions available for filtering are: * message_type
, from
the MSH-9.1 field. For example, NOT message_type = "ADT"
. * send_date
or sendDate
, the YYYY-MM-DD date the message was sent in the dataset's
time_zone, from the MSH-7 segment. For example, send_date < "2017-01-02"
. * send_time
, the timestamp when the message was sent,
using the RFC3339 time format for comparisons, from the MSH-7 segment. For
example, send_time < "2017-01-02T00:00:00-05:00"
. * create_time
, the
timestamp when the message was created in the HL7v2 store. Use the RFC3339
time format for comparisons. For example, create_time < "2017-01-02T00:00:00-05:00"
. * send_facility
, the care center that the
message came from, from the MSH-4 segment. For example, send_facility = "ABC"
. * PatientId(value, type)
, which matches if the message lists a
patient having an ID of the given value and type in the PID-2, PID-3, or
PID-4 segments. For example, PatientId("123456", "MRN")
. * labels.x
, a
string value of the label with key x
as set using the Message.labels
map. For example, labels."priority"="high"
. The operator :*
can be
used to assert the existence of a label. For example,
labels."priority":*
.
orderBy
- Orders messages returned by the specified order_by clause.
Syntax: https://cloud.google.com/apis/design/design_patterns#sorting_order
Fields available for ordering are: * send_time
pageSize
- Limit on the number of messages to return in a single
response. If not specified, 100 is used. May not be larger than 1000.
pageToken
- The next_page_token value returned from the previous List
request, if any.
view
- Specifies the parts of the Message to return in the response.
When unspecified, equivalent to BASIC. Setting this to anything other than
BASIC with a page_size
larger than the default can generate a large
response, which impacts the performance of this method.
Possible string values are:
- "MESSAGE_VIEW_UNSPECIFIED" : Not specified, equivalent to FULL.
- "RAW_ONLY" : Server responses include all the message fields except parsed_data field, and schematized_data fields.
- "PARSED_ONLY" : Server responses include all the message fields except data field, and schematized_data fields.
- "FULL" : Server responses include all the message fields.
- "SCHEMATIZED_ONLY" : Server responses include all the message fields except data and parsed_data fields.
- "BASIC" : Server responses include only the name field.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a ListMessagesResponse.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<ListMessagesResponse> list(
core.String parent, {
core.String? filter,
core.String? orderBy,
core.int? pageSize,
core.String? pageToken,
core.String? view,
core.String? $fields,
}) async {
final queryParams_ = <core.String, core.List<core.String>>{
if (filter != null) 'filter': [filter],
if (orderBy != null) 'orderBy': [orderBy],
if (pageSize != null) 'pageSize': ['${pageSize}'],
if (pageToken != null) 'pageToken': [pageToken],
if (view != null) 'view': [view],
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/messages';
final response_ = await _requester.request(
url_,
'GET',
queryParams: queryParams_,
);
return ListMessagesResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>);
}