REST Resource: projects.locations.datasets.hl7V2Stores

Resource: Hl7V2Store

Represents an HL7v2 store.

JSON representation
{
  "name": string,
  "notificationConfig": {
    object(NotificationConfig)
  },
  "parserConfig": {
    object(ParserConfig)
  },
  "labels": {
    string: string,
    ...
  },
  "notificationConfigs": [
    {
      object(Hl7V2NotificationConfig)
    }
  ],
  "rejectDuplicateMessage": boolean
}
Fields
name

string

Output only. Resource name of the HL7v2 store, of the form projects/{projectId}/datasets/{datasetId}/hl7V2Stores/{hl7v2_store_id}.

notificationConfig
(deprecated)

object(NotificationConfig)

The notification destination all messages (both Ingest & Create) are published on. Only the message name is sent as part of the notification. If this is unset, no notifications are sent. Supplied by the client.

parserConfig

object(ParserConfig)

The configuration for the parser. It determines how the server parses the messages.

labels

map (key: string, value: string)

User-supplied key-value pairs used to organize HL7v2 stores.

Label keys must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}][\p{Ll}\p{Lo}\p{N}_-]{0,62}

Label values are optional, must be between 1 and 63 characters long, have a UTF-8 encoding of maximum 128 bytes, and must conform to the following PCRE regular expression: [\p{Ll}\p{Lo}\p{N}_-]{0,63}

No more than 64 labels can be associated with a given store.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

notificationConfigs[]

object(Hl7V2NotificationConfig)

A list of notification configs. Each configuration uses a filter to determine whether to publish a message (both Ingest & Create) on the corresponding notification destination. Only the message name is sent as part of the notification. Supplied by the client.

rejectDuplicateMessage

boolean

Determines whether duplicate messages should be rejected. A duplicate message is a message with the same raw bytes as a message that has already been ingested/created in this HL7v2 store. The default value is false, meaning that the store accepts the duplicate messages and it also returns the same ACK message in the IngestMessageResponse as has been returned previously. Note that only one resource is created in the store. When this field is set to true, messages.create/messages.ingest requests with a duplicate message will be rejected by the store, and IngestMessageErrorDetail returns a NACK message upon rejection.

ParserConfig

The configuration for the parser. It determines how the server parses the messages.

JSON representation
{
  "allowNullHeader": boolean,
  "segmentTerminator": string,
  "schema": {
    object(SchemaPackage)
  }
}
Fields
allowNullHeader

boolean

Determines whether messages with no header are allowed.

segmentTerminator

string (bytes format)

Byte(s) to use as the segment terminator. If this is unset, '\r' is used as segment terminator, matching the HL7 version 2 specification.

A base64-encoded string.

schema

object(SchemaPackage)

Schemas used to parse messages in this store, if schematized parsing is desired.

SchemaPackage

A schema package contains a set of schemas and type definitions.

JSON representation
{
  "schematizedParsingType": enum(SchematizedParsingType),
  "schemas": [
    {
      object(Hl7SchemaConfig)
    }
  ],
  "types": [
    {
      object(Hl7TypesConfig)
    }
  ],
  "ignoreMinOccurs": boolean
}
Fields
schematizedParsingType

enum(SchematizedParsingType)

Determines how messages that don't parse successfully are handled.

schemas[]

object(Hl7SchemaConfig)

Schema configs that are layered based on their VersionSources that match the incoming message. Schema configs present in higher indices override those in lower indices with the same message type and trigger event if their VersionSources all match an incoming message.

types[]

object(Hl7TypesConfig)

Schema type definitions that are layered based on their VersionSources that match the incoming message. Type definitions present in higher indices override those in lower indices with the same type name if their VersionSources all match an incoming message.

ignoreMinOccurs

boolean

Flag to ignore all minOccurs restrictions in the schema. This means that incoming messages can omit any group, segment, field, component, or subcomponent.

SchematizedParsingType

Determines the failure mode for schematized parsing.

Enums
SCHEMATIZED_PARSING_TYPE_UNSPECIFIED Unspecified schematized parsing type, equivalent to SOFT_FAIL.
SOFT_FAIL Messages that fail to parse are still stored and ACKed but a parser error is stored in place of the schematized data.
HARD_FAIL Messages that fail to parse are rejected from ingestion/insertion and return an error code.

Hl7SchemaConfig

Root config message for HL7v2 schema. This contains a schema structure of groups and segments, and filters that determine which messages to apply the schema structure to.

JSON representation
{
  "version": [
    {
      object(VersionSource)
    }
  ],
  "messageSchemaConfigs": {
    string: {
      object(SchemaGroup)
    },
    ...
  }
}
Fields
version[]

object(VersionSource)

Each VersionSource is tested and only if they all match is the schema used for the message.

messageSchemaConfigs

map (key: string, value: object(SchemaGroup))

Map from each HL7v2 message type and trigger event pair, such as ADT_A04, to its schema configuration root group.

An object containing a list of "key": value pairs. Example: { "name": "wrench", "mass": "1.3kg", "count": "3" }.

VersionSource

Describes a selector for extracting and matching an MSH field to a value.

JSON representation
{
  "mshField": string,
  "value": string
}
Fields
mshField

string

The field to extract from the MSH segment. For example, "3.1" or "18[1].1".

value

string

The value to match with the field. For example, "My Application Name" or "2.3".

Hl7TypesConfig

Root config for HL7v2 datatype definitions for a specific HL7v2 version.

JSON representation
{
  "version": [
    {
      object(VersionSource)
    }
  ],
  "type": [
    {
      object(Type)
    }
  ]
}
Fields
version[]

object(VersionSource)

The version selectors that this config applies to. A message must match ALL version sources to apply.

type[]

object(Type)

The HL7v2 type definitions.

Type

A type definition for some HL7v2 type (incl. Segments and Datatypes).

JSON representation
{
  "name": string,
  "primitive": enum(Primitive),
  "fields": [
    {
      object(Field)
    }
  ]
}
Fields
name

string

The name of this type. This would be the segment or datatype name. For example, "PID" or "XPN".

primitive

enum(Primitive)

If this is a primitive type then this field is the type of the primitive For example, STRING. Leave unspecified for composite types.

fields[]

object(Field)

The (sub) fields this type has (if not primitive).

Primitive

Enums
PRIMITIVE_UNSPECIFIED Not a primitive.
STRING String primitive.
VARIES Element that can have unschematized children.
UNESCAPED_STRING Like STRING, but all delimiters below this element are ignored.

Field

A (sub) field of a type.

JSON representation
{
  "name": string,
  "type": string,
  "table": string,
  "minOccurs": integer,
  "maxOccurs": integer
}
Fields
name

string

The name of the field. For example, "PID-1" or just "1".

type

string

The type of this field. A Type with this name must be defined in an Hl7TypesConfig.

table

string

The HL7v2 table this field refers to. For example, PID-15 (Patient's Primary Language) usually refers to table "0296".

minOccurs

integer

The minimum number of times this field must be present/repeated.

maxOccurs

integer

The maximum number of times this field can be repeated. 0 or -1 means unbounded.

Hl7V2NotificationConfig

Specifies where and whether to send notifications upon changes to a data store.

JSON representation
{
  "pubsubTopic": string,
  "filter": string
}
Fields
pubsubTopic

string

The Cloud Pub/Sub topic that notifications of changes are published on. Supplied by the client. The notification is a PubsubMessage with the following fields:

  • PubsubMessage.Data contains the resource name.
  • PubsubMessage.MessageId is the ID of this notification. It is guaranteed to be unique within the topic.
  • PubsubMessage.PublishTime is the time at which the message was published.

Note that notifications are only sent if the topic is non-empty. Topic names must be scoped to a project. Cloud Healthcare API service account must have publisher permissions on the given Pub/Sub topic. Not having adequate permissions causes the calls that send notifications to fail.

If a notification cannot be published to Cloud Pub/Sub, errors will be logged to Cloud Logging (see [Viewing logs](/healthcare/docs/how- tos/logging)).

filter

string

Restricts notifications sent for messages matching a filter. If this is empty, all messages are matched. Syntax: https://cloud.google.com/appengine/docs/standard/python/search/query_strings

Fields/functions available for filtering are:

  • messageType, from the MSH-9.1 field. For example, NOT messageType = "ADT".
  • send_date or sendDate, the YYYY-MM-DD date the message was sent in the dataset's timeZone, from the MSH-7 segment. For example, send_date < "2017-01-02".
  • sendTime, the timestamp when the message was sent, using the RFC3339 time format for comparisons, from the MSH-7 segment. For example, sendTime < "2017-01-02T00:00:00-05:00".
  • sendFacility, the care center that the message came from, from the MSH-4 segment. For example, sendFacility = "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":*.

Methods

create

Creates a new HL7v2 store within the parent dataset.

delete

Deletes the specified HL7v2 store and removes all messages that are contained within it.

get

Gets the specified HL7v2 store.

getIamPolicy

Gets the access control policy for a resource.

list

Lists the HL7v2 stores in the given dataset.

patch

Updates the HL7v2 store.

setIamPolicy

Sets the access control policy on the specified resource.

testIamPermissions

Returns permissions that a caller has on the specified resource.