From f6f7f71beff65d7e802b6937b7603a98040efa0b Mon Sep 17 00:00:00 2001 From: sms-dchen Date: Wed, 11 Sep 2024 16:01:17 -0300 Subject: [PATCH 1/4] Added 4.3 files --- hl7/4.3/antora.yml | 18 + .../images/hl7-connector-flow-in-studio.png | Bin 0 -> 40838 bytes hl7/4.3/modules/ROOT/nav.adoc | 8 + .../pages/hl7-connector-config-topics.adoc | 269 ++ .../ROOT/pages/hl7-connector-examples.adoc | 282 ++ .../ROOT/pages/hl7-connector-reference.adoc | 355 +++ .../ROOT/pages/hl7-connector-studio.adoc | 110 + .../ROOT/pages/hl7-connector-xml-maven.adoc | 80 + hl7/4.3/modules/ROOT/pages/hl7-schemas.adoc | 2341 +++++++++++++++++ hl7/4.3/modules/ROOT/pages/index.adoc | 176 ++ 10 files changed, 3639 insertions(+) create mode 100644 hl7/4.3/antora.yml create mode 100644 hl7/4.3/modules/ROOT/images/hl7-connector-flow-in-studio.png create mode 100644 hl7/4.3/modules/ROOT/nav.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/hl7-connector-examples.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/hl7-connector-studio.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/hl7-connector-xml-maven.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/hl7-schemas.adoc create mode 100644 hl7/4.3/modules/ROOT/pages/index.adoc diff --git a/hl7/4.3/antora.yml b/hl7/4.3/antora.yml new file mode 100644 index 0000000000..43e2181029 --- /dev/null +++ b/hl7/4.3/antora.yml @@ -0,0 +1,18 @@ +name: hl7-connector +version: '4.2' +display_version: 4.2 (Mule 4) +title: HL7 EDI Connector +nav: +- modules/ROOT/nav.adoc +asciidoc: + attributes: + page-component-desc: This connector enables you to convert HL7 ER7 messages to and from DataWeave-compatible representations using lists and maps. + page-connector-type: Connector + page-connector-level: Premium + page-exchange-group-id: com.mulesoft.connectors + page-exchange-asset-id: mule-hl7-extension + page-icon-extension: png + page-runtime-version: 4.1.1 + page-release-notes-page: release-notes::connector/hl7-connector-release-notes-mule-4.adoc + page-vendor-name: hl7 + page-vendor-title: HL7 diff --git a/hl7/4.3/modules/ROOT/images/hl7-connector-flow-in-studio.png b/hl7/4.3/modules/ROOT/images/hl7-connector-flow-in-studio.png new file mode 100644 index 0000000000000000000000000000000000000000..88dc0fb6040f3ad12fe60e4b8e95969a1610fe7b GIT binary patch literal 40838 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 literal 0 HcmV?d00001 diff --git a/hl7/4.3/modules/ROOT/nav.adoc b/hl7/4.3/modules/ROOT/nav.adoc new file mode 100644 index 0000000000..a12d22af63 --- /dev/null +++ b/hl7/4.3/modules/ROOT/nav.adoc @@ -0,0 +1,8 @@ +.xref:index.adoc[HL7 EDI Connector] +* xref:index.adoc[HL7 EDI Connector Overview] +* xref:hl7-connector-reference.adoc[HL7 EDI Connector Reference] +* xref:hl7-connector-studio.adoc[Using Anypoint Studio to Configure HL7 EDI Connector] +* xref:hl7-connector-config-topics.adoc[HL7 Schema Configuration] +* xref:hl7-connector-examples.adoc[HL7 EDI Examples] +* xref:hl7-connector-xml-maven.adoc[HL7 EDI XML and Maven Support] +* xref:hl7-schemas.adoc[HL7 Supported Schemas] diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc new file mode 100644 index 0000000000..62f5b12acd --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc @@ -0,0 +1,269 @@ += HL7 EDI - Customizing Schemas and Mapping Message Types - Mule 4 + +Use these options to: + +* Customize your schema definitions + +* Define a mapping from the HL7 event and message types to message structures + +* Customize global elements + +== Copy and Edit Schema Definitions + +HL7 schema definitions are located in the `hl7-schemas-4.0.0.jar` file, +embedded inside the HL7 EDI Connector update site, and within the standard MuleSoft enterprise Maven repositories +(under group ID `com.mulesoft.connectors`). You can copy a message structure schema +from the `hl7-schemas-4.0.0.jar` file and edit it to match your specific needs. + +To make changes at the segment level, copy the message structure +schema. To change segment definitions, copy the `basedefs.esl` schema of the same version, as that file contains the segment, composite, and element definitions. + +The xref:x12-edi-connector::x12-edi-schema-language-reference.adoc[EDI Schema Language Reference] provides an overview of the ESL schema structure used by all the EDI connectors, including HL7 EDI Connector. + +The following is an example HL7 message structure schema for the +standard v2.5.1 ADT_A05 message structure: + +[source,yaml,linenums] +---- +form: HL7 +version: '2.5.1' +imports: [ '/hl7/v2_5_1/basedefs.esl' ] +id: 'ADT_A05' +name: 'ADT_A05' +data: +- { idRef: 'MSH', position: '01', usage: M } +- { idRef: 'SFT', position: '02', usage: O, count: '>1' } +- { idRef: 'EVN', position: '03', usage: M } +- { idRef: 'PID', position: '04', usage: M } +- { idRef: 'PD1', position: '05', usage: O } +- { idRef: 'ROL', position: '06', usage: O, count: '>1' } +- { idRef: 'NK1', position: '07', usage: O, count: '>1' } +- { idRef: 'PV1', position: '08', usage: M } +- { idRef: 'PV2', position: '09', usage: O } +- { idRef: 'ROL', position: '10', usage: O, count: '>1' } +- { idRef: 'DB1', position: '11', usage: O, count: '>1' } +- { idRef: 'OBX', position: '12', usage: O, count: '>1' } +- { idRef: 'AL1', position: '13', usage: O, count: '>1' } +- { idRef: 'DG1', position: '14', usage: O, count: '>1' } +- { idRef: 'DRG', position: '15', usage: O } +- groupId: 'PROCEDURE' + count: '>1' + usage: O + items: + - { idRef: 'PR1', position: '17', usage: M } + - { idRef: 'ROL', position: '18', usage: O, count: '>1' } +- { idRef: 'GT1', position: '20', usage: O, count: '>1' } +- groupId: 'INSURANCE' + count: '>1' + usage: O + items: + - { idRef: 'IN1', position: '22', usage: M } + - { idRef: 'IN2', position: '23', usage: O } + - { idRef: 'IN3', position: '24', usage: O, count: '>1' } + - { idRef: 'ROL', position: '25', usage: O, count: '>1' } +- { idRef: 'ACC', position: '27', usage: O } +- { idRef: 'UB1', position: '28', usage: O } +- { idRef: 'UB2', position: '29', usage: O } +---- + +This shows the list of segments that compose the `ADT_A05` message structure, +including the segment groups PROCEDURE and INSURANCE. Because this example illustrates +the standard definition (not the lax version), it includes both mandatory +segments (indicated with `usage: M`) and optional segments +(indicated with `usage: O`). The full set of usage codes used for HL7 includes: + +* `C` for Conditional ++ +Equivalent to Optional +* `M` for Mandatory +* `O` for Optional +* `U` for Unused ++ +Accepted without warning when reading, but not present +in the data passed on from the read operation and ignored when writing + +The possible number of occurrences of a segment or group is defined by the +count value. This defaults to a value of `1`. + +To delete segments from the message structure or change segment requirements from mandatory to optional (or vice versa), make the change in your copy of the schema and use the modified version in your application. + +You can add segments that are not present in the original message +structure definition. Remove the position values from all existing segment and group definition lines in the schema; otherwise, you must renumber everything following an added segment. +If you remove the explicit position numbers, segments and groups are assigned +position numbers sequentially, and for most purposes these numbers are not +seen by HL7 EDI Connector applications. + +If you want to add a standard HL7 segment to a message structure, +reference it with an `idRef` line at the appropriate place, and HL7 obtains +the definition from the `basedefs.esl` file referenced as an import. + +The following partial example shows `CON` segments added to an ADT_A05 message structure: + +[source,yaml,linenums] +---- +form: HL7 +version: '2.5.1' +imports: [ '/hl7/v2_5_1/basedefs.esl' ] +id: 'ADT_A05' +name: 'ADT_A05' +data: +- { idRef: 'MSH', usage: M } +- { idRef: 'SFT', usage: O, count: '>1' } +- { idRef: 'EVN', usage: M } +- { idRef: 'PID', usage: M } +- { idRef: 'PD1', usage: O } +- { idRef: 'CON', usage: O, count: '>1' } +- { idRef: 'NTE', usage: O } +- { idRef: 'ROL', usage: O, count: '>1' } +- { idRef: 'NK1', usage: O, count: '>1' } +- { idRef: 'PV1', usage: M } +- { idRef: 'PV2', usage: O } +- { idRef: 'CON', usage: O, count: '>1' } +- { idRef: 'ROL', usage: O, count: '>1' } +... +---- + +If you want to define a nonstandard segment for your message structure, +add the segment definition to the schema. This is more complex than just +modifying the segment structure, because you need to list all components +in the segment. The easiest starting point is to find a similar +standard HL7 segment and copy the definition used for that standard +segment from the `basedefs.esl` file. You can then add the segment's key, +following your message structure definition, followed by one or more +segment definitions. + +=== Set Your Schema Locations + +You can configure schema locations in the Anypoint Studio XML view. + +. Select the XML view by clicking *Configuration XML*. + +. Modify your HL7 EDI configuration to include a list of all the schemas to include by adding an `++` element for each document type: ++ +[source,xml,linenums] +---- + + + hl7/v2_6/ADT_A01.esl + + +---- ++ +. After you create a global element for your HL7 EDI, configure the event and message structure. + +== Event and Message-to-Message Structure Map + +If you configure the connector with multiple message structure schemas +(whether in separate schema definitions files, as with the provided schemas, +or in a single file), you must define a mapping from the HL7 event +and message types to message structures. + +HL7 defines the message type in the component values of `MSH-09`, a composite +structure of type MSG. HL7 EDI Connector uses these component values to find the structure schema to use for processing a receive message, according to the following rules: + +* If the MSG-01 Message Code value is `ACK`, always use the predefined ACK schema. +* If the MSG-03 Message Structure value is present (a value such +as `ADT_A01`), use the schema structure with that ID. +* If neither of these, then use a configured Event and Message-to-Message Structure Map to determine +the message structure from the specified Trigger Event (`MSG-02`) and Message Code (`MSG-01`) values. + +The Event and Message-to-Message Structure Map is an optional configuration parameter. +It must be a YAML file consisting of a map from each Event Type to a map for each +supported Message Code to the actual Message Structure. + +Here's an example: + +[source,yaml,linenums] +---- +A01: { XYZ: ADT_A01, ACK: ACK } +A02: { XYZ: ADT_A02, ACK: ACK } +A03: { XYZ: ADT_A03, ACK: ACK } +A04: { XYZ: ADT_A01, ACK: ACK } +A05: { XYZ: ADT_A05, ACK: ACK } +A06: { XYZ: ADT_A06, ACK: ACK } +A07: { XYZ: ADT_A06, ACK: ACK } +A08: { XYZ: ADT_A01, ACK: ACK } +---- + +Each version of HL7 defines a different set of mappings from the event type and +message code to the message structure. The default mappings are provided in the +same JAR file as the standard HL7 schema definitions, in files named `event-message.yaml`. +You use the same type of paths for these mapping definitions as for the actual message structure schemas. + +=== Uses for the General Tab + +Use the *General* tab to configure settings for reading and writing HL7 messages: + +* HL7 character encoding ++ +Always used for writing messages and used when reading messages unless a different encoding is specified by the MSH-18 (Character Set). +* Disable numeric prefixes for data keys ++ +This option is true by default, which turns off numeric prefixes for segment data. The +only reason to set this option as false is to achieve compatibility with mappings defined for HL7 EDI Connector 3.0.0. +* Manually create or edit the list of schemas + +=== Set Your HL7 Identification in the Visual Editor + +You can configure the Message Header (MSH) application and facility +identification for you and your trading partner in the HL7 EDI Connector configuration. + +The values you set are used when writing HL7 messages to supply the +namespace ID, universal ID, and universal ID type, and are verified +in receive messages. If you don't want to restrict incoming messages, +then leave these blank and set the values for outgoing messages +on the write operation or the actual outgoing message. Values set on +the write operation override the connector configuration, and values +set directly on the message override both the connector configuration +and any values set on the write operation. + +In Studio, these values are set in the following Global Element Properties: + +* Self identification parameters identify your side of the trading partner relationship. These are some self identification settings: ++ +[source,text,linenums] +---- +Mule Application Namespace ID (MSH-03/HD-01 when sending, MSH-05/HD-01 when receiving) +Mule Application Universal ID (MSH-03/HD-02 when sending, MSH-05/HD-02 when receiving) +Mule Application Universal ID Type (MSH-03/HD-03 when sending, MSH-05/HD-03 when receiving) +---- ++ +* Partner identification parameters identify your trading partner. These are some partner identification settings: ++ +[source,text,linenums] +---- +Partner Application Namespace ID (MSH-03/HD-01 when receiving, MSH-05/HD-01 when sending) +Partner Application Universal ID (MSH-03/HD-02 when receiving, MSH-05/HD-02 when sending) +Partner Application Universal ID Type (MSH-03/HD-03 when receiving, MSH-05/HD-03 when sending) +---- + +=== Parser Tab + +You can set the following options if needed: + +[%header%autowidth.spread] +|=== +|XML Value |Studio Option +|eventMessageMap="/hl7/v2_5_1/event-message.yaml" |Event and message-to-message structure map path (required if using multiple message structures, unless the MSH-09 and MSG-03 message structure values are always present in the received messages) +|genericExtensionPattern="Z.." |Java regular pattern for generic extension segment names (to allow handling of extension segments as maps of field values) +|invalidCharacterInValueFail="true" |Fail when an invalid character is in a value +|missingRequiredValueFail="true" |Fail when a required value is missing +|processingId="PRODUCTION" |Required processing ID (to specify a particular processing ID required on receive messages, such as `P` for Production) +|segmentOutOfOrderFail="true" |Fail when a segment is out of order in a message +|unknownSegmentFail="true" |Fail when an unknown segment is in a message +|unusedSegmentPresentFail="true" |Fail when an unused segment is included in a message +|validateHL7Version="true" |Validate the HL7 message version +|valueLengthErrorFail="true" |Fail when a value length is outside an allowed range +|wrongSegmentsRepeatsFail="true" |Fail when there are too many repeats of a segment +|wrongValuesRepeatsFail="true" |Fail when there are too many repetitions of a value +|=== + +== Next Step + +After you complete connector configuration, you can try +the xref:hl7-connector-examples.adoc[Examples]. + +== See Also + +* xref:connectors::introduction/introduction-to-anypoint-connectors.adoc[Introduction to Anypoint Connectors] +* https://help.mulesoft.com[MuleSoft Help Center] diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-examples.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-examples.adoc new file mode 100644 index 0000000000..331f4c409e --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-examples.adoc @@ -0,0 +1,282 @@ += HL7 EDI - Examples - Mule 4 + +Use the following examples to see how to customize a schema, configure the Message Header (MSH) application and facility identification for you and your trading partner, and view a test flow with an HTTP Listener that initiates a flow. + +== Simplify a Schema Using Example Messages + +The HL7 standard definitions are very complex, with segments often +having twenty or more components. Many of these components are broken down into subcomponents. This component nesting can +make mapping HL7 difficult, since the DataSense view of the message +has to contain all these subcomponents. + +In practice, most users of HL7 populate only a small fraction of the +total HL7 standard definitions. To take advantage of this, HL7 +EDI Connector provides a console-based Java tool you can use to +simplify your schema definitions by eliminating components that +are not normally used in your messages. + +The schema simplification tool is in the +`hl7-simplify-4.0.0.jar` file, which is found in the standard +MuleSoft enterprise Maven repositories (under group ID `com.mulesoft.connectors`). +The tool accepts a message structure schema and one or more example messages +(as separate files) as input, and generates an output schema reduced to only those segments and components present in one or more of +the sample messages. + +To use this tool, download the `JAR` and open a command line console, then type: + +[source,console] +---- +java -jar hl7-simplify-4.0.0.jar {input-schema} {output-schema} {sample1} {sample2} ... +---- + +The placeholders in this syntax represent the following values: + +* `input-schema` ++ +Message structure schema used to read the messages, +which can be a file or a classpath reference to a supplied schema +such as the `/hl7/v2_5_1/ADT_A05.esl` path. +* `output-schema` ++ +File path for the simplified schema output. +* `sample1...n` ++ +File paths to the sample messages. + +Ensure that each sample message file is saved with a carriage return (CR) +line ending, which is the required HL7 segment delimiter. Text editors +generally use the default line ending for your operating system, and this might not be correct. + +Here's a partial example of a simplified schema generated using this tool: + +[source,yaml,linenums] +---- +form: HL7 +version: '2.5.1' +structures: +- id: 'SIU_S12' + name: 'SIU_S12' + data: + - { idRef: 'MSH', position: '01', usage: O } + - { idRef: 'SCH', position: '02', usage: O } + - groupId: 'PATIENT' + count: '>1' + usage: O + items: + - { idRef: 'PID', position: '06', usage: O } + - { idRef: 'PV1', position: '08', usage: O } + - groupId: 'RESOURCES' + count: '>1' + usage: O + items: + - { idRef: 'RGS', position: '14', usage: O } + - groupId: 'SERVICE' + count: '>1' + usage: O + items: + - { idRef: 'AIS', position: '16', usage: O } + - groupId: 'GENERAL_RESOURCE' + count: '>1' + usage: O + items: + - { idRef: 'AIG', position: '20', usage: O } + - groupId: 'LOCATION_RESOURCE' + count: '>1' + usage: O + items: + - { idRef: 'AIL', position: '24', usage: O } + - groupId: 'PERSONNEL_RESOURCE' + count: '>1' + usage: O + items: + - { idRef: 'AIP', position: '28', usage: O } +segments: +- id: 'AIG' + name: 'Appointment Information - General Resource' + varTag: 'AIG' + values: + - { idRef: 'SI', name: 'Set ID - AIG', usage: O } + - { idRef: 'varies', name: 'Segment Action Code', usage: U, count: '>1' } + - { idRef: 'CE_2', name: 'Resource ID', usage: O } + - { idRef: 'varies', name: 'Resource Type', usage: U, count: '>1' } + - { idRef: 'varies', name: 'Resource Group', usage: U, count: '>1' } + - { idRef: 'varies', name: 'Resource Quantity', usage: U, count: '>1' } + - { idRef: 'varies', name: 'Resource Quantity Units', usage: U, count: '>1' } + - { idRef: 'TS', name: 'Start Date/Time', usage: O } +- id: 'AIL' + name: 'Appointment Information - Location Resource' + varTag: 'AIL' + values: + - { idRef: 'SI', name: 'Set ID - AIL', usage: O } + - { idRef: 'varies', name: 'Segment Action Code', usage: U, count: '>1' } + - { idRef: 'PL', name: 'Location Resource ID', usage: O, count: '>1' } + - { idRef: 'CE', name: 'Location Type-AIL', usage: O } + - { idRef: 'varies', name: 'Location Group', usage: U, count: '>1' } + - { idRef: 'TS', name: 'Start Date/Time', usage: O } +- id: 'AIP' + name: 'Appointment Information - Personnel Resource' + varTag: 'AIP' + values: + - { idRef: 'SI', name: 'Set ID - AIP', usage: O } + - { idRef: 'varies', name: 'Segment Action Code', usage: U, count: '>1' } + - { idRef: 'XCN_2', name: 'Personnel Resource ID', usage: O, count: '>1' } + - { idRef: 'CE_1', name: 'Resource Type', usage: O } + - { idRef: 'varies', name: 'Resource Group', usage: U, count: '>1' } + - { idRef: 'TS', name: 'Start Date/Time', usage: O } +... +composites: +- id: 'CE' + name: 'Coded Element' + values: + - { idRef: 'ST', name: 'Identifier', usage: O } + - { idRef: 'ST', name: 'Text', usage: O } +- id: 'CE_1' + name: 'Coded Element' + values: + - { idRef: 'ST', name: 'Identifier', usage: O } +- id: 'CE_2' + name: 'Coded Element' + values: + - { idRef: 'ST', name: 'Identifier', usage: O } + - { idRef: 'ST', name: 'Text', usage: O } + - { idRef: 'ID', name: 'Name of Coding System', usage: O } +... +---- + +Because unused components of a segment cannot be dropped from the segment +definition unless they're at the end of the segment, the simplification +tool substitutes a `varies` data type for the component and marks it +with `Usage: U` for Unused. The repetition count for `varies` remains the +same as for the original component, but it does not display +in the DataSense view of the data you see in DataWeave. + +When the schema simplification tool checks for data present in the +messages, it handles each occurrence of a composite in context. Different +uses of the same composite might have different values present in your samples. When this happens, the composite is defined more than once, using different identifiers. + +The simplified schema retains the segment positions from the original schema. +You can delete these position values from the simplified schema, +because they're not used by HL7 EDI Connector unless you use position +prefixes on segment keys (one of the connector configuration options). + +=== Example: HL7 Studio + +The following flow can be loaded from the XML. +//// +image::hl7-connector-flow-in-studio.png[Example flow in Studio] +//// + +[source,xml,linenums] +---- + + + + + + + + + + + + + + + + + + + + + + + +---- + +== Set Your HL7 Identification in XML + +You can configure the Message Header (MSH) application and facility identification for you and your trading partner in the HL7 EDI connector configuration. + +The values you set are used when writing HL7 messages to supply the namespace ID, universal ID, and universal ID type, and are verified in receive messages. If you don't want to restrict incoming messages you can leave these blank, and set the values for outgoing messages on the write operation or the actual outgoing message. Values set on the write operation override the connector configuration, and values set directly on the message override both the connector configuration and any values set on the write operation. + +* Self-identification parameters identify your side of the trading partner relationship. ++ +Self-identification parameters: ++ +[source,text,linenums] +---- +appNamespaceIdSelf="" +appUniversalIdSelf="" +appUniversalIdTypeSelf="" +---- ++ +* Partner-identification parameters identify your trading partner. ++ +Partner-identification parameters: ++ +[source,text,linenums] +---- +appNamespaceIdPartner="" +appUniversalIdPartner="" +appUniversalIdTypePartner="" +---- + +== Reading and Validating HL7 ER7 Messages + +To read an HL7 message: + +. Search the palette for *HL7 EDI* and drag it into a flow. + +. From the properties view, select the previously created connector configuration and then the `Read` operation. ++ +This operation reads any byte stream into the structure as described by your HL7 schemas. ++ + +HL7 EDI validates the message structure when read: + +* Checking the syntax and content of the MSH and all component segments of the message. + +* The generated ACK message logs, accumulates, and reports errors provided in the generated data structure. + +* All messages, whether error-free or with non-fatal errors, are passed on for processing as part of the output message map. + +* Reading input data errors can throw exceptions. + +Error data entered in the receive data map uses the HL7Error class, a read-only JavaBean with the following properties: + +[%header,cols="30a,70a"] +|=== +|Property |Description +|`segment` |Zero-based index within the input of the segment causing the error +|`fatal` |Flag for a fatal error, meaning the associated message was rejected as a result of the error +|`errorType` |Enumeration for the different types of errors defined by the HL7 standards (ERR-3 values) +|`errorCode` |Error code, as defined by the HL7 standard for the indicated type of error +|`errorText` |Text description of the error +|=== + +The `Read` operation returns error data as an optional list with the `Errors` key. + +== See Also + +* xref:connectors::introduction/introduction-to-anypoint-connectors.adoc[Introduction to Anypoint Connectors] +* https://help.mulesoft.com[MuleSoft Help Center] diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc new file mode 100644 index 0000000000..73f803f529 --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc @@ -0,0 +1,355 @@ += HL7 EDI Connector 4.2 Reference +:page-aliases: connectors::hl7/hl7-connector-reference.adoc + +== Configurations +--- +[[config]] +=== Config + + +==== Parameters + +[%header%autowidth.spread] +|=== +| Name | Type | Description | Default Value | Required +|Name | String | Name for this configuration. Connectors reference the configuration with this name. | |x +| Connection a| Connection + | Connection type for this configuration.| |x +| Expiration Policy a| ExpirationPolicy | Configures the minimum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration. This does not mean that the instance expires at the exact moment that it becomes eligible. Mule purges the instances when appropriate. | | +| Mule application namespace ID (MSH-3-1/MSH-5-1) a| String a| Application namespace ID for Mule in the message header (MSH segment). If set, this value affects both receive and send message handling: + +* On the receive side, the MSH receiving application namespace ID must match this value. +* On the send side, the connector uses this value as the MSH sending application namespace ID unless the send configuration or message parameters override it. | | +| Mule Application universal ID (MSH-3-2/MSH-5-2) a| String a| Application universal ID for Mule in the message header (MSH segment). If set, this value affects both receive and send message handling: + +* On the receive side, the MSH receiving application universal ID must match this value. +* On the send side, the connector uses this value as the MSH sending application universal ID unless it is overridden in the send configuration or message parameters. | | +| Mule Application universal ID Type (MSH-3-3/MSH-5-3) a| String a| Application universal ID type for Mule in the message header (MSH segment). If set, this value affects both receive and send message handling: + +* On the receive side, the MSH receiving application universal ID type must match this value. +* On the send side, the connector uses this value as the MSH sending application universal ID type unless it is overridden in the send configuration or message parameters. | | +| Partner Application Namespace ID (MSH-3-1/MSH-5-1) a| String a| Application namespace ID for the partner in the message header (MSH segment). If set, this value affects both receive and send message handling: + +* On the receive side, the MSH sending application namespace ID must match this value. +* On the send side, the connector uses this value as the MSH sending application namespace ID unless it is overridden in the send configuration or message parameters. | | +| Partner Application universal ID (MSH-3-2/MSH-5-2) a| String a| Application universal ID for the partner in the message header (MSH segment). If set, this value affects both receive and send message handling: + +* On the receive side, the MSH sending application universal ID must match this value. +* On the send side, the connector uses this value as the MSH sending application universal ID unless it is overridden in the send configuration or message parameters. | | +| Partner Application universal ID Type (MSH-3-3/MSH-5-3) a| String a| Application universal ID type for the partner in the message header (MSH segment). If set, this value affects both receive and send message handling: + +* On the receive side, the MSH sending application universal ID type must match this value. +* On the send side, the connector uses this value as the MSH sending application universal ID type unless it is overridden in the send configuration or message parameters. | | +| Schema definitions a| Array of String | List of schema paths for the connector to use. The paths can be filesystem paths or classpaths. | |x +| Event and message to message structure map path a| String a| Path to a YAML file that defines the mapping of the event code and message code to the message structure ID: + +* If working with multiple message structures, this mapping definition supports using MSH-9-1 and MSH-9-2 to determine the message structure when MSH-9-3 is not present in a message. +* If only a single message structure is present in the schemas for which this message structure is used, the connector uses the message structure to parse all messages. +* If MSH-9-3 is present in a message, the connector ignores the MSH-9-1 and MSH-9-2 values. | | +| HL7 Message character encoding a| Enumeration, one of: + +** ASCII +** BIG_5 +** EUC_KR +** EUC_TW +** GB_18030 +** ISO_8859_1 +** ISO_8859_15 +** ISO_8859_2 +** ISO_8859_3 +** ISO_8859_4 +** ISO_8859_5 +** ISO_8859_6 +** ISO_8859_7 +** ISO_8859_8 +** ISO_8859_9 +** JIS0208 +** JIS_X0201 +** JIS_X0212 +** UTF_16 +** UTF_32 +** UTF_8 +| Character encoding for HL7 messages. This is the default for receive messages when MSH-18 is not present and for send messages when MSH-18 is not present in the send message data. | ASCII | +| Disable numeric prefixes for data keys a| Boolean | Uses segment and group IDs directly as keys in the data, rather than prefixing the segment and group IDs with position values. | true | +| Required processing ID a| Enumeration, one of: + +** DEBUGGING +** PRODUCTION +** TRAINING | Value to match the MSH-11-1 processing ID. If set, only messages with the specified processing ID are accepted for processing. Messages with other processing ID values or with no processing ID specified are rejected with an exception. | | +| Pattern for generic extension segment names a| String | Java regular pattern for segment names to treat as generic extension segments. If specified, segment names matching this pattern are allowed anywhere in the message and are converted to maps of string values for elements and composites. | | +| Fail when required value missing a| Boolean a| Whether to reject a message if a required value is missing: + +* If `true`, a message with this error is rejected. +* If `false`, the value is ignored and the message is accepted. + +In either case, the error is logged and reported in an ERR segment. | false | +| Fail when value length outside allowed range a| Boolean a| Whether to reject a message if the receive value length is outside of allowed the range: + +* If `true`, a message with this error is rejected. +* If `false`, the value is used and the message is accepted. + +In either case, the error is logged and reported in an ERR segment. | false | +| Fail when invalid character in value a| Boolean a| Whether to reject a message if the receive value contains an invalid character: + +* If `true`, a message with this error is rejected. +* If `false`, the character is either passed through or substituted, and the message is accepted. + +In either case the error is reported in an ERR segment. | false | +| Fail when too many repeats of value a| Boolean a| Whether to reject a message if the receive value is repeated too many times: + +* If `true`, a message with this error is rejected. +* If `false`, the value is accepted and the message is accepted. + +In either case the error is reported in an ERR segment. | false | +| Fail when unknown segment in message a| Boolean a| Whether to reject a message if it contains an unknown segment: + +* If `true`, a message with this error is rejected. +* If `false`, the segment is ignored and the message is accepted. + +In either case the error is reported in an ERR segment. | false | +| Fail when segment out of order in message set a| Boolean a| Whether to reject a message when a segment in a message set is out of order: + +* If `true`, a message with this error is rejected. +* If `false` and the segment can be reordered, the message is accepted. + +In either case the error is reported in an ERR segment. | false | +| Fail when unused segment included in message set a| Boolean a| Whether to reject a message when a segment marked as unused is included in a message set: + +* If `true`, a message with this error is rejected. +* If `false`, the message is accepted and the unused segment is ignored. + +In either case the error is reported in an ERR segment. | false | +| Fail when too many repeats of segment a| Boolean a| Whether to reject a message when a segment occurs too many times in a message set: + +* If `true`, a message with this error is rejected. +* If `false`, the message is accepted. + +In either case, the error is reported in an ERR segment. | false | +| HL7 Message segment terminator a| Enumeration, one of: + +** CR +** LF | Value for the segment terminator. | CR | + +|=== + +[[config_connection]] +== Connection Type + +=== Parameters + +[%header%autowidth.spread] +|=== +| Name | Type | Description | Default Value | Required +| Reconnection a| <> | Configures a reconnection strategy to use when a connector operation fails to connect to an external server. + | | +|=== + +== Operations + +* <> +* <> + +[[read]] +=== Read + +`` + +==== Parameters + +[%header%autowidth.spread] +|=== +| Name | Type | Description | Default Value | Required +| Configuration | String | Name of the configuration to use. | |x +| Read Content a| Binary | Input payload.| `#[payload]` | +| Target Variable a| String | Name of the variable that stores the operation's output.| | +| Target Value a| String | Expression that evaluates the operation’s output. The outcome of the expression is stored in the *Target Variable* field. | `#[payload]` | +| Reconnection Strategy a| +* None +* <> +* <> | Reconnection strategy to use. | | +|=== + +==== Output + +[cols=".^50%,.^50%"] +|=== +| Type a| Object +|=== + +==== For Configurations + +* config + +==== Throws + +* HL7:RETRY_EXHAUSTED +* HL7:UNKNOWN +* HL7:PARSE +* HL7:SCHEMA +* HL7:CONNECTIVITY +* HL7:WRITE + + +[[write]] +=== Write + +`` + +==== Parameters + +[%header%autowidth.spread] +|=== +| Name | Type | Description | Default Value | Required +| Configuration | String | Name of the configuration to use. | |x +| Write Content a| Object | Output payload. | `#[payload]` | +| Streaming Strategy a| * <> +* <> +* <> | Configures how Mule processes streams. Repeatable streams are the default behavior. | | +| Target Variable a| String | The name of a variable that stores the output of the operation. | | +| Target Value a| String | Expression that evaluates the operation’s output. The outcome of the expression is stored in the *Target Variable* field. | `#[payload]` | +| Reconnection Strategy a| +* None +* <> +* <> | Reconnection strategy to use. | | +|=== + +==== Output + +[cols=".^50%,.^50%"] +|=== +| Type a| Binary +|=== + +==== For Configurations + +* config + +==== Throws + +* HL7:RETRY_EXHAUSTED +* HL7:UNKNOWN +* HL7:PARSE +* HL7:SCHEMA +* HL7:CONNECTIVITY +* HL7:WRITE + + + +== Types + +[[ExpirationPolicy]] +=== Expiration Policy + +Configures the maximum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration. + +[%header%autowidth.spread] +|=== +| Field | Type | Description | Default Value | Required +| Max Idle Time a| Number | Maximum amount of time that a dynamic configuration instance can remain idle before Mule considers it eligible for expiration. | | +| Time Unit a| Enumeration, one of: + +** NANOSECONDS +** MICROSECONDS +** MILLISECONDS +** SECONDS +** MINUTES +** HOURS +** DAYS | A time unit that qualifies the *Max Idle Time* field. | | +|=== + +[[forever]] +=== Forever + +Configures a forever reconnection strategy by which the connector operation attempts to reconnect at a specified frequency for as long as the Mule app runs. + +[%header%autowidth.spread] +|=== +| Field | Type | Description | Default Value | Required +| Frequency | Number| How often to attempt to reconnect, in milliseconds.| | +|=== + +[[non-repeatable-stream]] +=== Non-Repeatable Stream + +Disables the repeatable stream functionality and uses non-repeatable streams to have lower performance overhead, memory use, and cost. + +[[reconnection]] +=== Reconnection + +Configures reconnection options. + +[%header%autowidth.spread] +|=== +| Field | Type | Description | Default Value | Required +| Fails deployment when test connection fails a| Boolean a| What to do if, when an app is deployed, a connectivity test does not pass after exhausting the associated reconnection strategy: + +* true ++ +Allow the deployment to fail. ++ +* false ++ +Ignore the results of the connectivity test. +| | +| Reconnection Strategy a| +* None +* <> +* <> | Reconnection strategy to use. | | +|=== + +[[repeatable-file-store-stream]] +=== Repeatable File Store Stream + +Configures the repeatable file store streaming strategy by which Mule keeps a portion of the stream content in memory. If the stream content is larger than the configured buffer size, Mule backs up the buffer’s content to disk and then clears the memory. + +[%header%autowidth.spread] +|=== +| Field | Type | Description | Default Value | Required +| Max In Memory Size a| Number a| Maximum amount of memory that the stream can use for data. If the amount of memory exceeds this value, Mule buffers the content to disk. To optimize performance: + +* Configure a larger buffer size to avoid the number of times Mule needs to write the buffer on disk. This increases performance, but it also limits the number of concurrent requests your application can process, because it requires additional memory. + +* Configure a smaller buffer size to decrease memory load at the expense of response time. | | +| Buffer Unit a| Enumeration, one of: + +** BYTE +** KB +** MB +** GB | Unit for the *Max In Memory Size* field. | | +|=== + +[[repeatable-in-memory-stream]] +=== Repeatable In Memory Stream + +Configures the in-memory streaming strategy by which the request fails if the data exceeds the maximum buffer size. Always run performance tests to find the optimal buffer size for your specific use case. + +[%header%autowidth.spread] +|=== +| Field | Type | Description | Default Value | Required +| Initial Buffer Size a| Number | Initial amount of memory to allocate to the data stream. If the streamed data exceeds this value, the buffer expands by the *Buffer Size Increment*, with an upper limit of the *Max Buffer Size* value. | | +| Buffer Size Increment a| Number | Amount by which the buffer size expands if it exceeds its initial size. Setting a value of `0` or lower specifies that the buffer can't expand. | | +| Max Buffer Size a| Number | Maximum size of the buffer. If the buffer size exceeds this value, Mule raises a `STREAM_MAXIMUM_SIZE_EXCEEDED` error. A value of less than or equal to `0` means no limit.| | +| Buffer Unit a| Enumeration, one of: + +** BYTE +** KB +** MB +** GB | Unit for the *Initial Buffer Size*, *Buffer Size Increment*, and *Max Buffer Size* fields.| | +|=== + +[[standard]] +=== Standard + +Configures a standard reconnection strategy, which specifies how often to reconnect and how many reconnection attempts the connector operation can make. + +[%header%autowidth.spread] +|=== +| Field | Type | Description | Default Value | Required +| Frequency a| Number | How often to attempt to reconnect, in milliseconds. | | +| Reconnection Attempts a| Number | How many reconnection attempts the Mule app can make. | | +|=== + +== See Also + +* xref:connectors::introduction/introduction-to-anypoint-connectors.adoc[Introduction to Anypoint Connectors] +* https://help.mulesoft.com[MuleSoft Help Center] diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-studio.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-studio.adoc new file mode 100644 index 0000000000..fe939aee34 --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-studio.adoc @@ -0,0 +1,110 @@ += Using Anypoint Studio to Configure HL7 EDI Connector - Mule 4 +ifndef::env-site,env-github[] +include::_attributes.adoc[] +endif::[] + +Anypoint Studio (Studio) editors help you design and update your Mule applications, properties, and configuration files. + +To add and configure a connector in Studio: + +. <>. +. <>. +. <>. +. <>. +. <>. +. <>. + +When you run the connector, you can view the app log to check for problems in real time, as described in <>. + +If you are new to configuring connectors in Studio, see xref:connectors::introduction/intro-config-use-studio.adoc[Using Anypoint Studio to Configure a Connector]. If, after reading this topic, you need additional information about the connector fields, see the xref:hl7-connector-reference.adoc[HL7 EDI Reference]. + +[[create-mule-project]] +== Create a Mule Project + +In Studio, create a new Mule project in which to add and configure the connector: + +. In Studio, select *File > New > Mule Project*. +. Enter a name for your Mule project and click *Finish*. + +[[add-connector-to-project]] +== Add the Connector to Your Mule Project + +Add HL7 EDI Connector to your Mule project to automatically populate the XML code with the connector's namespace and schema location and add the required dependencies to the project's `pom.xml` file: + +. In the *Mule Palette* view, click *(X) Search in Exchange*. +. In the *Add Dependencies to Project* window, type `HL7` in the search field. +. Click HL7 EDI in *Available modules*. +. Click *Add*. +. Click *Finish*. + +Adding a connector to a Mule project in Studio does not make that connector available to other projects in your Studio workspace. + +[[configure-source]] +== Configure a Source + +A source initiates a flow when a specified condition is met. +You can configure HTTP Listener as the source for the HL7 EDI Connector to initiate a flow each time the listener receives a request on the configured host and port. + +To configure an HTTP Listener source, follow these steps: + +. In the *Mule Palette* view, select *HTTP > Listener*. +. Drag *Listener* to the Studio canvas. +. On the *Listener* configuration screen, optionally change the value of the *Display Name* field. +. Specify a value for the *Path* field. +. Click the plus sign (*+*) next to the *Connector configuration* field to configure a global element that can be used by all instances of the HTTP Listener source in the app. +. On the *General* tab, specify connection information for the connector. +. On the *TLS* tab, optionally specify the TLS information for the connector. +. On the *Advanced* tab, optionally specify reconnection information, including a reconnection strategy. +. Click *Test Connection* to confirm that Mule can connect with the specified server. +. Click *OK*. + +[[add-connector-operation]] +== Add a Connector Operation to the Flow + +When you add a connector operation to your flow, you are specifying an action for that connector to perform. + +To add an operation for HL7 EDI Connector, follow these steps: + +. In the *Mule Palette* view, select *HL7* and then select the desired operation. +. Drag the operation onto the Studio canvas to the right of the input source. + +[[configure-global-element]] +== Configure a Global Element for the Connector + +When you configure a connector, configure a global element that all instances of that connector in the app can use. Configuring a global element requires you to provide the authentication credentials that the connector requires to access the target HL7 EDI system. + +To configure the global element for HL7 EDI Connector, follow these steps: + +. Select the operation in the Studio canvas. +. In the configuration screen for the operation, click the plus sign (*+*) next to the *Connector configuration* field to access the global element configuration fields. ++ +You can reference a configuration file that contains ANT-style property placeholders (recommended), or you can enter your authorization credentials in the global configuration properties. + +. On the *Advanced* tab, optionally specify reconnection information, including a reconnection strategy. +. Click *Test Connection* to confirm that Mule can connect with the specified server. +. Click *OK*. + +[[configure-other-fields]] +== Configure Additional Connector Fields + +After you configure a global element for HL7, configure the other required fields for the connector. The required fields vary depending on which connector operation you use. + +[[view-app-log]] + +== View the App Log + +To check for problems, you can view the app log as follows: + +* If you’re running the app from Anypoint Platform, the output is visible in the Anypoint Studio console window. +* If you’re running the app using Mule from the command line, the app log is visible in your OS console. + +Unless the log file path is customized in the app’s log file (`log4j2.xml`), you can also view the app log in the default location `MULE_HOME/logs/.log`. + +== Next Step + +See xref:hl7-connector-config-topics.adoc[Additional Configuration Information] for more configuration steps. + +== See Also + +* xref:hl7-connector-reference.adoc[HL7 EDI Connector Reference] +* https://help.mulesoft.com[MuleSoft Help Center] diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-xml-maven.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-xml-maven.adoc new file mode 100644 index 0000000000..8ecfe0da81 --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-xml-maven.adoc @@ -0,0 +1,80 @@ += HL7 EDI - XML and Maven Support - Mule 4 +ifndef::env-site,env-github[] +include::_attributes.adoc[] +endif::[] + +Although you can manually code a Mule app in XML, it is more efficient to use Anypoint Studio: + +* If you manually code a Mule runtime engine (Mule) app in XML either from the Anypoint Studio XML editor or from a text editor, you can access the connector from your app by adding reference statements to both your XML Mule flow and the Apache Maven `pom.xml` file. +* If you add the connector in Studio, Studio automatically populates the XML code with the connector's namespace and schema location and it also adds a dependency to the `pom.xml` file. + +== Add a Namespace for the Connector + +Paste the following code inside the `mule` tag of the header of your configuration XML: + +[source,xml,linenums] +---- +http://www.mulesoft.org/schema/mule/hl7 +http://www.mulesoft.org/schema/mule/hl7/current/mule-hl7.xsd +---- + +This example shows how the namespace statements are placed in the XML: + +[source,xml,linenums] +---- + +---- + +// Ensure that XML code examples have line breaks after XML elements +// to reduce the need for users to scroll the code horizontally to read it. + +== Add a POM File Dependency + +The Apache Maven `pom.xml` file generated by Anypoint Studio contains dependencies +for a Mule app. When you code a Mule app manually, include this XML snippet in +your `pom.xml` file to enable access to this connector: + +[source,xml,linenums] +---- + + com.mulesoft.connectors + mule-hl7-extension + x.x.x + mule-plugin + +---- + +Replace `` with the version that corresponds to the connector you are using. + +To obtain the most up-to-date `pom.xml` file information: + +. Go to https://www.mulesoft.com/exchange/[Anypoint Exchange]. +. In Exchange, click *Login* and supply your Anypoint Platform username and password. +. In Exchange, search for `HL7 EDI`. +. Select the connector. +. Click *Dependency Snippets* near the upper right of the screen. + +== Next Step + +After completing your namespace and `pom.xml` file, you can try the xref:hl7-connector-examples.adoc[Examples]. + +== See Also + +* xref:connectors::introduction/introduction-to-anypoint-connectors.adoc[Introduction to Anypoint Connectors] +* https://help.mulesoft.com[MuleSoft Help Center] diff --git a/hl7/4.3/modules/ROOT/pages/hl7-schemas.adoc b/hl7/4.3/modules/ROOT/pages/hl7-schemas.adoc new file mode 100644 index 0000000000..7a36cf1ea2 --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/hl7-schemas.adoc @@ -0,0 +1,2341 @@ += HL7 Supplied Schemas +:page-aliases: connectors::hl7/hl7-schemas.adoc + +These are the message structures included in the schema +definitions for each version of HL7. + +== Version 2.1 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A04 +ADT_A05 +ADT_A06 +ADT_A07 +ADT_A08 +ADT_A09 +ADT_A10 +ADT_A11 +ADT_A12 +ADT_A13 +ADT_A14 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A22 +ADT_A23 +ADT_A24 + +BAR_P01 +BAR_P02 + +DFT_P03 +DSR_Q01 +DSR_Q03 + +MCF_Q02 + +ORM_O01 +ORR_O02 +ORU_R01 +ORU_R03 + +QRY_A19 +QRY_Q01 +QRY_Q02 + +UDM_Q05 + +== Version 2.2 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A04 +ADT_A05 +ADT_A06 +ADT_A07 +ADT_A08 +ADT_A09 +ADT_A10 +ADT_A11 +ADT_A12 +ADT_A13 +ADT_A14 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A22 +ADT_A23 +ADT_A24 +ADT_A25 +ADT_A26 +ADT_A27 +ADT_A28 +ADT_A29 +ADT_A30 +ADT_A31 +ADT_A32 +ADT_A33 +ADT_A34 +ADT_A35 +ADT_A36 +ADT_A37 + +BAR_P01 +BAR_P02 + +DFT_P03 +DSR_P04 +DSR_Q01 +DSR_Q03 +DSR_R03 + +MFD_M01 +MFD_M02 +MFD_M03 +MFK_M01 +MFK_M02 +MFK_M03 +MFN_M01 +MFN_M02 +MFN_M03 +MFQ_M01 +MFQ_M02 +MFQ_M03 +MFR_M01 +MFR_M02 +MFR_M03 +NMD_N01 +NMQ_N02 +NMR_N02 + +ORD_O02 +ORF_R04 +ORM_O01 +ORN_O02 +ORR_O02 +ORU_R01 +ORU_R03 + +QRY_A19 +QRY_P04 +QRY_Q01 +QRY_Q02 +QRY_R02 + +UDM_Q05 + +== Version 2.3 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A04 +ADT_A05 +ADT_A06 +ADT_A07 +ADT_A08 +ADT_A09 +ADT_A10 +ADT_A11 +ADT_A12 +ADT_A13 +ADT_A14 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A22 +ADT_A23 +ADT_A24 +ADT_A25 +ADT_A26 +ADT_A27 +ADT_A28 +ADT_A29 +ADT_A30 +ADT_A31 +ADT_A32 +ADT_A33 +ADT_A34 +ADT_A35 +ADT_A36 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A40 +ADT_A41 +ADT_A42 +ADT_A43 +ADT_A44 +ADT_A45 +ADT_A46 +ADT_A47 +ADT_A48 +ADT_A49 +ADT_A50 +ADT_A51 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 + +CRM_C01 +CRM_C02 +CRM_C03 +CRM_C04 +CRM_C05 +CRM_C06 +CRM_C07 +CRM_C08 +CSU_C09 +CSU_C10 +CSU_C11 +CSU_C12 + +DFT_P03 +DOC_T12 +DSR_Q01 +DSR_Q02 +DSR_Q03 + +EDR_Q01 +EQQ_Q01 +ERP_Q01 + +MDM_T01 +MDM_T02 +MDM_T03 +MDM_T04 +MDM_T05 +MDM_T06 +MDM_T07 +MDM_T08 +MDM_T09 +MDM_T10 +MDM_T11 +MFK_M01 +MFK_M02 +MFK_M03 +MFK_M04 +MFK_M05 +MFK_M07 +MFN_M01 +MFN_M02 +MFN_M03 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 + +OMD_O01 +OMN_O01 +OMS_O01 +ORD_O02 +ORF_R02 +ORF_R04 +ORM_O01 +ORN_O02 +ORR_O02 +ORU_R01 +OSQ_Q06 +OSR_Q06 + +PEX_P07 +PEX_P08 +PGL_PC6 +PGL_PC7 +PGL_PC8 +PIN_I07 +PPG_PCG +PPG_PCH +PPG_PCJ +PPP_PCB +PPP_PCC +PPP_PCD +PPR_PC1 +PPR_PC2 +PPR_PC3 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QCK_Q02 +QRY_A19 +QRY_PC4 +QRY_PC9 +QRY_PCE +QRY_PCK +QRY_Q01 +QRY_Q02 +QRY_R02 +QRY_T12 + +RAR_RAR +RAS_O01 +RAS_O02 +RCI_I05 +RCL_I06 +RDE_O01 +RDO_O01 +RDR_RDR +RDS_O01 +REF_I12 +REF_I13 +REF_I14 +REF_I15 +RER_RER +RGR_RGR +RGV_O01 +ROR_ROR +RPA_I08 +RPA_I09 +RPA_I10 +RPA_I11 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQA_I09 +RQA_I10 +RQA_I11 +RQC_I05 +RQC_I06 +RQI_I01 +RQI_I02 +RQI_I03 +RQP_I04 +RQQ_Q01 +RRA_O02 +RRD_O02 +RRE_O01 +RRG_O02 +RRI_I12 +RRI_I13 +RRI_I14 +RRI_I15 +RRO_O02 + +SIU_S12 +SIU_S13 +SIU_S14 +SIU_S15 +SIU_S16 +SIU_S17 +SIU_S18 +SIU_S19 +SIU_S20 +SIU_S21 +SIU_S22 +SIU_S23 +SIU_S24 +SIU_S26 +SPQ_Q01 +SQM_S25 +SQR_S25 +SRM_S01 +SRM_S02 +SRM_S03 +SRM_S04 +SRM_S05 +SRM_S06 +SRM_S07 +SRM_S08 +SRM_S09 +SRM_S10 +SRM_S11 +SRR_S01 +SRR_S02 +SRR_S03 +SRR_S04 +SRR_S05 +SRR_S06 +SRR_S07 +SRR_S08 +SRR_S09 +SRR_S10 +SRR_S11 +SUR_P09 + +TBR_Q01 + +UDM_Q05 + +VQQ_Q01 +VXQ_V01 +VXR_V03 +VXU_V04 +VXX_V02 + +== Version 2.3.1 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A04 +ADT_A05 +ADT_A06 +ADT_A07 +ADT_A08 +ADT_A09 +ADT_A10 +ADT_A11 +ADT_A12 +ADT_A13 +ADT_A14 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A22 +ADT_A23 +ADT_A24 +ADT_A25 +ADT_A26 +ADT_A27 +ADT_A28 +ADT_A29 +ADT_A30 +ADT_A31 +ADT_A32 +ADT_A33 +ADT_A34 +ADT_A35 +ADT_A36 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A40 +ADT_A41 +ADT_A42 +ADT_A43 +ADT_A44 +ADT_A45 +ADT_A46 +ADT_A47 +ADT_A48 +ADT_A49 +ADT_A50 +ADT_A51 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 + +CRM_C01 +CSU_C09 + +DFT_P03 +DOC_T12 +DSR_Q01 +DSR_Q03 + +EDR_R07 +EQQ_Q04 +ERP_R09 + +MDM_T01 +MDM_T02 +MDM_T03 +MDM_T04 +MDM_T05 +MDM_T06 +MDM_T07 +MDM_T08 +MDM_T09 +MDM_T10 +MDM_T11 +MFK_M01 +MFK_M04 +MFK_M05 +MFK_M06 +MFN_M01 +MFN_M02 +MFN_M03 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFQ_M01 +MFR_M01 + +NMD_N02 +NMQ_N01 +NMR_N01 + +OMD_O01 +OMN_O01 +OMS_O01 +ORD_O02 +ORF_R04 +ORM_O01 +ORN_O02 +ORR_O02 +ORS_O02 +ORU_R01 +OSQ_Q06 +OSR_Q06 + +PEX_P07 +PGL_PC6 +PIN_I07 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QCK_Q02 +QRY_A19 +QRY_PC4 +QRY_PC9 +QRY_PCE +QRY_PCK +QRY_Q01 +QRY_Q02 +QRY_R02 +QRY_T12 + +RAR_RAR +RAS_O01 +RCI_I05 +RCL_I06 +RDE_O01 +RDO_O01 +RDR_RDR +RDS_O01 +REF_I12 +RER_RER +RGR_RGR +RGV_O01 +ROR_R0R +ROR_ROR +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQC_I06 +RQI_I01 +RQI_I02 +RQI_I03 +RQP_I04 +RQQ_Q09 +RRA_O02 +RRD_O02 +RRE_O02 +RRG_O02 +RRI_I12 +RRO_O02 + +SIU_S12 +SPQ_Q08 +SQM_S25 +SQR_S25 +SRM_S01 +SRR_S01 +SUR_P09 + +TBR_R08 + +UDM_Q05 + +VQQ_Q07 +VXQ_V01 +VXR_V03 +VXU_V04 +VXX_V02 + +== Version 2.4 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A30 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 + +CRM_C01 +CSU_C09 + +DFT_P03 +DFT_P11 +DOC_T12 +DSR_Q01 +DSR_Q03 + +EAC_U07 +EAN_U09 +EAR_U08 +EDR_R07 +EQQ_Q04 +ERP_R09 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M01 +MFN_M02 +MFN_M03 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFQ_M01 +MFR_M01 + +NMD_N02 +NMQ_N01 +NMR_N01 + +OMD_O03 +OMG_O19 +OML_O21 +OMN_O07 +OMP_O09 +OMS_O05 +ORD_O04 +ORF_R04 +ORG_O20 +ORL_O22 +ORM_O01 +ORN_O08 +ORP_O10 +ORR_O02 +ORS_O06 +ORU_R01 +OSQ_Q06 +OSR_Q06 +OUL_R21 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QBP_K13 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCK_Q02 +QCN_J01 +QRY_A19 +QRY_PC4 +QRY_Q01 +QRY_Q02 +QRY_R02 +QRY_T12 +QSB_Q16 +QVR_Q17 + +RAR_RAR +RAS_O17 +RCI_I05 +RCL_I06 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +REF_I12 +RER_RER +RGR_RGR +RGV_O15 +ROR_ROR +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQI_I01 +RQP_I04 +RQQ_Q09 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_K11 +RSP_K13 +RSP_K15 +RSP_K21 +RSP_K22 +RSP_K23 +RSP_K24 +RSP_K25 +RSP_Z82 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RTB_K13 +RTB_Knn +RTB_Q13 +RTB_Z74 + +SIU_S12 +SPQ_Q08 +SQM_S25 +SQR_S25 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +SUR_P09 + +TBR_R08 +TCU_U10 + +UDM_Q05 + +VQQ_Q07 +VXQ_V01 +VXR_V03 +VXU_V04 +VXX_V02 + +== Version 2.5 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A30 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CRM_C01 +CSU_C09 + +DFT_P03 +DFT_P11 +DOC_T12 +DSR_Q01 +DSR_Q03 + +EAC_U07 +EAN_U09 +EAR_U08 +EDR_R07 +EQQ_Q04 +ERP_R09 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M01 +MFN_M02 +MFN_M03 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_Znn +MFQ_M01 +MFR_M01 +MFR_M04 +MFR_M05 +MFR_M06 +MFR_M07 + +NMD_N02 +NMQ_N01 +NMR_N01 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OMN_O07 +OMP_O09 +OMS_O05 +ORB_O28 +ORD_O04 +ORF_R04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORM_O01 +ORN_O08 +ORP_O10 +ORR_O02 +ORS_O06 +ORU_R01 +ORU_R30 +OSQ_Q06 +OSR_Q06 +OUL_R21 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QBP_K13 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCK_Q02 +QCN_J01 + +QRY + +QRY_A19 +QRY_PC4 +QRY_Q01 +QRY_Q02 +QRY_R02 +QSB_Q16 +QVR_Q17 + +RAR_RAR +RAS_O17 +RCI_I05 +RCL_I06 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +REF_I12 +RER_RER +RGR_RGR +RGV_O15 +ROR_ROR +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQI_I01 +RQP_I04 +RQQ_Q09 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_K11 +RSP_K21 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_Q11 +RSP_Z82 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RTB_K13 +RTB_Knn +RTB_Z74 + +SIU_S12 +SPQ_Q08 +SQM_S25 +SQR_S25 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +SUR_P09 + +TBR_R08 +TCU_U10 + +UDM_Q05 + +VQQ_Q07 +VXQ_V01 +VXR_V03 +VXU_V04 +VXX_V02 + +== Version 2.5.1 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A30 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CRM_C01 +CSU_C09 + +DFT_P03 +DFT_P11 +DOC_T12 +DSR_Q01 +DSR_Q03 + +EAC_U07 +EAN_U09 +EAR_U08 +EDR_R07 +EQQ_Q04 +ERP_R09 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M01 +MFN_M02 +MFN_M03 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_Znn +MFQ_M01 +MFR_M01 +MFR_M04 +MFR_M05 +MFR_M06 +MFR_M07 + +NMD_N02 +NMQ_N01 +NMR_N01 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OMN_O07 +OMP_O09 +OMS_O05 +ORB_O28 +ORD_O04 +ORF_R04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORM_O01 +ORN_O08 +ORP_O10 +ORR_O02 +ORS_O06 +ORU_R01 +ORU_R30 +OSQ_Q06 +OSR_Q06 +OUL_R21 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCK_Q02 +QCN_J01 + +QRY + +QRY_A19 +QRY_PC4 +QRY_Q01 +QRY_Q02 +QRY_R02 +QSB_Q16 +QVR_Q17 + +RAR_RAR +RAS_O17 +RCI_I05 +RCL_I06 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +REF_I12 +RER_RER +RGR_RGR +RGV_O15 +ROR_ROR +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQI_I01 +RQP_I04 +RQQ_Q09 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_K11 +RSP_K21 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_Q11 +RSP_Z82 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RTB_K13 +RTB_Knn +RTB_Z74 + +SIU_S12 +SPQ_Q08 +SQM_S25 +SQR_S25 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +SUR_P09 + +TBR_R08 +TCU_U10 + +UDM_Q05 + +VQQ_Q07 +VXQ_V01 +VXR_V03 +VXU_V04 +VXX_V02 + +== Version 2.6 + +ACK + +ADR_A19 +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A18 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A30 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CRM_C01 +CSU_C09 + +DFT_P03 +DFT_P11 +DOC_T12 +DSR_Q01 +DSR_Q03 + +EAC_U07 +EAN_U09 +EAR_U08 +EHC_E01 +EHC_E02 +EHC_E04 +EHC_E10 +EHC_E12 +EHC_E13 +EHC_E15 +EHC_E20 +EHC_E21 +EHC_E24 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M01 +MFN_M02 +MFN_M03 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_M16 +MFN_M17 +MFN_Znn +MFQ_M01 +MFR_M01 +MFR_M04 +MFR_M05 +MFR_M06 +MFR_M07 +NMD_N02 +NMQ_N01 +NMR_N01 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OMN_O07 +OMP_O09 +OMS_O05 +OPL_O37 +OPR_O38 +OPU_R25 +ORB_O28 +ORD_O04 +ORF_R04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORM_O01 +ORN_O08 +ORP_O10 +ORR_O02 +ORS_O06 +ORU_R01 +ORU_R30 +OSQ_Q06 +OSR_Q06 +OUL_R21 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QBP_E03 +QBP_E22 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCK_Q02 +QCN_J01 +QRY_A19 +QRY_PC4 +QRY_Q01 +QRY_Q02 +QRY_R02 +QRY_T12 +QSB_Q16 +QVR_Q17 + +RAR_RAR +RAS_O17 +RCI_I05 +RCL_I06 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +REF_I12 +RER_RER +RGR_RGR +RGV_O15 +ROR_ROR +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQI_I01 +RQP_I04 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_E03 +RSP_E22 +RSP_K11 +RSP_K21 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_Q11 +RSP_Z82 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RTB_K13 +RTB_Z74 + +SDR_S31 +SDR_S32 +SIU_S12 +SLR_S28 +SQM_S25 +SQR_S25 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +STC_S33 +SUR_P09 + +TCU_U10 + +UDM_Q05 + +VXQ_V01 +VXR_V03 +VXU_V04 +VXX_V02 + +== Version 2.7 + +ACK + +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A44 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CCF_I22 +CCI_I22 +CCM_I21 +CCQ_I19 +CCR_I16 +CCU_I20 +CQU_I19 +CRM_C01 +CSU_C09 + +DFT_P03 +DFT_P11 + +EAC_U07 +EAN_U09 +EAR_U08 +EHC_E01 +EHC_E02 +EHC_E04 +EHC_E10 +EHC_E12 +EHC_E13 +EHC_E15 +EHC_E20 +EHC_E21 +EHC_E24 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M02 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_M16 +MFN_M17 +MFN_Znn + +NMD_N02 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OML_O39 +OMN_O07 +OMP_O09 +OMS_O05 +OPL_O37 +OPR_O38 +OPU_R25 +ORA_R33 +ORB_O28 +ORD_O04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORL_O40 +ORN_O08 +ORP_O10 +ORS_O06 +ORU_R01 +ORU_R30 +OSM_R26 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QBP_E03 +QBP_E22 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCN_J01 +QRY_PC4 +QSB_Q16 +QVR_Q17 + +RAS_O17 +RCI_I05 +RCL_I06 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +REF_I12 +RGV_O15 +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQI_I01 +RQP_I04 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_E03 +RSP_E22 +RSP_K11 +RSP_K21 +RSP_K22 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_K32 +RSP_Z82 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RTB_K13 +RTB_Knn +RTB_Z74 + +SDR_S31 +SDR_S32 +SIU_S12 +SLR_S28 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +STC_S33 + +TCU_U10 + +UDM_Q05 + +VXU_V04 + +== Version 2.7.1 + +ACK + +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A44 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CCF_I22 +CCI_I22 +CCM_I21 +CCQ_I19 +CCR_I16 +CCU_I20 +CQU_I19 +CRM_C01 +CSU_C09 + +DFT_P03 +DFT_P11 + +EAC_U07 +EAN_U09 +EAR_U08 +EHC_E01 +EHC_E02 +EHC_E04 +EHC_E10 +EHC_E12 +EHC_E13 +EHC_E15 +EHC_E20 +EHC_E21 +EHC_E24 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M02 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_M16 +MFN_M17 +MFN_Znn + +NMD_N02 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OML_O39 +OMN_O07 +OMP_O09 +OMS_O05 +OPL_O37 +OPR_O38 +OPU_R25 +ORA_R33 +ORB_O28 +ORD_O04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORL_O40 +ORN_O08 +ORP_O10 +ORS_O06 +ORU_R01 +ORU_R30 +OSM_R26 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 +PPT_PCL +PPV_PCA +PRR_PC5 +PTR_PCF + +QBP_E03 +QBP_E22 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCN_J01 +QRY_PC4 +QSB_Q16 +QVR_Q17 + +RAS_O17 +RCI_I05 +RCL_I06 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +REF_I12 +RGV_O15 +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQC_I05 +RQI_I01 +RQP_I04 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_E03 +RSP_E22 +RSP_K11 +RSP_K21 +RSP_K22 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_K32 +RSP_Z82 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RTB_K13 +RTB_Knn +RTB_Z74 + +SDR_S31 +SDR_S32 +SIU_S12 +SLR_S28 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +STC_S33 + +TCU_U10 +UDM_Q05 + + +VXU_V04 + +== Version 2.8 + +ACK + +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A44 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CCF_I22 +CCI_I22 +CCM_I21 +CCQ_I19 +CCR_I16 +CCU_I20 +CQU_I19 +CRM_C01 +CSU_C09 + +DBC_O41 +DBC_O42 +DEL_O46 +DEO_O45 +DER_O44 +DFT_P03 +DFT_P11 +DPR_O48 +DRC_O47 +DRG_O43 + +EAC_U07 +EAN_U09 +EAR_U08 +EHC_E01 +EHC_E02 +EHC_E04 +EHC_E10 +EHC_E12 +EHC_E13 +EHC_E15 +EHC_E20 +EHC_E21 +EHC_E24 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M02 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_M16 +MFN_M17 +MFN_Znn + +NMD_N02 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OML_O39 +OMN_O07 +OMP_O09 +OMQ_O42 +OMS_O05 +OPL_O37 +OPR_O38 +OPU_R25 +ORA_R33 +ORA_R41 +ORB_O28 +ORD_O04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORL_O40 +ORN_O08 +ORP_O10 +ORS_O06 +ORU_R01 +ORU_R30 +ORX_O43 +OSM_R26 +OSU_O41 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 + +QBP_E03 +QBP_E22 +QBP_O33 +QBP_O34 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCN_J01 +QSB_Q16 +QVR_Q17 + +RAS_O17 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +RDY_Z80 +REF_I12 +RGV_O15 +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQI_I01 +RQP_I04 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_E03 +RSP_E22 +RSP_K11 +RSP_K21 +RSP_K22 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_K32 +RSP_O33 +RSP_O34 +RSP_Z82 +RSP_Z84 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RSP_Znn +RTB_K13 +RTB_Knn +RTB_Z74 + +SDR_S31 +SDR_S32 +SIU_S12 +SLR_S28 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +STC_S33 + +TCU_U10 + +UDM_Q05 + +VXU_V04 + +== Version 2.8.1 + +ACK + +ADT_A01 +ADT_A02 +ADT_A03 +ADT_A05 +ADT_A06 +ADT_A09 +ADT_A12 +ADT_A15 +ADT_A16 +ADT_A17 +ADT_A20 +ADT_A21 +ADT_A24 +ADT_A37 +ADT_A38 +ADT_A39 +ADT_A43 +ADT_A44 +ADT_A45 +ADT_A50 +ADT_A52 +ADT_A54 +ADT_A60 +ADT_A61 + +BAR_P01 +BAR_P02 +BAR_P05 +BAR_P06 +BAR_P10 +BAR_P12 +BPS_O29 +BRP_O30 +BRT_O32 +BTS_O31 + +CCF_I22 +CCI_I22 +CCM_I21 +CCQ_I19 +CCR_I16 +CCU_I20 +CQU_I19 +CRM_C01 +CSU_C09 + +DBC_O41 +DBC_O42 +DEL_O46 +DEO_O45 +DER_O44 +DFT_P03 +DFT_P11 +DPR_O48 +DRC_O47 +DRG_O43 + +EAC_U07 +EAN_U09 +EAR_U08 +EHC_E01 +EHC_E02 +EHC_E04 +EHC_E10 +EHC_E12 +EHC_E13 +EHC_E15 +EHC_E20 +EHC_E21 +EHC_E24 +ESR_U02 +ESU_U01 + +INR_U06 +INU_U05 + +LSU_U12 + +MDM_T01 +MDM_T02 +MFK_M01 +MFN_M02 +MFN_M04 +MFN_M05 +MFN_M06 +MFN_M07 +MFN_M08 +MFN_M09 +MFN_M10 +MFN_M11 +MFN_M12 +MFN_M13 +MFN_M15 +MFN_M16 +MFN_M17 +MFN_Znn + +NMD_N02 + +OMB_O27 +OMD_O03 +OMG_O19 +OMI_O23 +OML_O21 +OML_O33 +OML_O35 +OML_O39 +OMN_O07 +OMP_O09 +OMQ_O42 +OMS_O05 +OPL_O37 +OPR_O38 +OPU_R25 +ORA_R33 +ORA_R41 +ORB_O28 +ORD_O04 +ORG_O20 +ORI_O24 +ORL_O22 +ORL_O34 +ORL_O36 +ORL_O40 +ORL_O41 +ORL_O42 +ORL_O43 +ORL_O44 +ORN_O08 +ORP_O10 +ORS_O06 +ORU_R01 +ORU_R30 +ORX_O43 +OSM_R26 +OSU_O41 +OUL_R22 +OUL_R23 +OUL_R24 + +PEX_P07 +PGL_PC6 +PMU_B01 +PMU_B03 +PMU_B04 +PMU_B07 +PMU_B08 +PPG_PCG +PPP_PCB +PPR_PC1 + +QBP_E03 +QBP_E22 +QBP_O33 +QBP_O34 +QBP_Q11 +QBP_Q13 +QBP_Q15 +QBP_Q21 +QBP_Qnn +QBP_Z73 +QCN_J01 +QSB_Q16 +QVR_Q17 + +RAS_O17 +RDE_O11 +RDR_RDR +RDS_O13 +RDY_K15 +RDY_Z80 +REF_I12 +RGV_O15 +RPA_I08 +RPI_I01 +RPI_I04 +RPL_I02 +RPR_I03 +RQA_I08 +RQI_I01 +RQP_I04 +RRA_O18 +RRD_O14 +RRE_O12 +RRG_O16 +RRI_I12 +RSP_E03 +RSP_E22 +RSP_K11 +RSP_K21 +RSP_K22 +RSP_K23 +RSP_K25 +RSP_K31 +RSP_K32 +RSP_O33 +RSP_O34 +RSP_Z82 +RSP_Z84 +RSP_Z86 +RSP_Z88 +RSP_Z90 +RSP_Znn +RTB_K13 +RTB_Knn +RTB_Z74 + +SDR_S31 +SDR_S32 +SIU_S12 +SLR_S28 +SRM_S01 +SRR_S01 +SSR_U04 +SSU_U03 +STC_S33 + +TCU_U10 + +UDM_Q05 + +VXU_V04 diff --git a/hl7/4.3/modules/ROOT/pages/index.adoc b/hl7/4.3/modules/ROOT/pages/index.adoc new file mode 100644 index 0000000000..7f3195f94a --- /dev/null +++ b/hl7/4.3/modules/ROOT/pages/index.adoc @@ -0,0 +1,176 @@ += HL7 EDI Connector 4.2 - Mule 4 +:page-aliases: connectors::hl7/hl7-connector.adoc + + + +Anypoint Connector for HL7 EDI (HL7 EDI Connector) is a collection of features that facilitate integration with healthcare systems by providing the tools needed to easily create, read, and transform HL7 version v2.x messages within Mule. Health Level Seven International (HL7) is a standards development organization that defines a set of standards for the transport and communication of healthcare information. + +For compatibility information and fixed issues, see the HL7 EDI Connector Release Notes. + +Standard schema definitions are included in HL7 EDI Connector for +HL7 versions 2.1, 2.2, 2.3.1, 2.3, 2.4, 2.5, 2.5.1, 2.6, 2.7, +2.7.1, 2.8, 2.8.1. The schemas are provided in two forms: + +* Standard HL7 ++ +Uses required or optional status data types, +field lengths, and repetition counts (as listed) for each HL7 version. + + +* Lax HL7 ++ +All segments and value items are optional. These +low-level data types are treated as simple strings. Field lengths and repetition counts are not enforced. + +Both forms of schemas are available in the connector's `classpath`. Standard HL7 +schemas use the path `/hl7/v2_5_1/ADT_A01.esl`. + +Lax schemas use the path `/hl7lax/v2_5_1/ADT_A01.esl`. + +The schema definitions you need for xref:hl7-schemas.adoc[HL7 supplied schemas] are included. + +For complete information about schemas, see xref:x12-edi-connector::x12-edi-schema-language-reference.adoc[EDI Schema Language Reference]. + +== Before You Begin + +To use this connector, you must be familiar with: + +* Anypoint Connectors +* Mule runtime engine (Mule) +* Elements and global elements in a Mule flow +* Creating a Mule app using Anypoint Studio (Studio) +* HL7 EDI Connector + +To use HL7 EDI Connector, you must have: + +* Purchased a MuleSoft license for HL7. Contact your Account Representative about purchasing a license. +* Anypoint Studio 7.0 or later. + +=== Understanding the EDI Schema Language + +HL7 EDI Connector uses a YAML format called EDI Schema Language (ESL) to represent EDI schemas. +Basic ESLs define the structure of Electronic Data Interchange (EDI) messages in terms of: + +* structures (_message structures_, in HL7 terminology) + +* groups + +* segments, composites, and elements + +You can customize the HL7 schema definitions to suit your data by +copying and editing the schema definitions directly or by using a +console tool to generate a simplified schema based on one or more +sample documents. Alternatively, you can use an overlay schema for +HL7, as with other EDI formats, but this option is not recommended +due to the complexity of HL7 definitions. + +You can define your own schemas from scratch, or you can copy and edit a base HL7 schema definition to suit your data as shown in the xref:x12-edi-connector::x12-edi-schema-language-reference.adoc[EDI Schema Language Reference]. + +=== Finding the HL7 Schema Location + +To use the connector, you must know the locations of the schemas +in your project. If you're using the out-of-the-box HL7 schemas and +not customizing anything, the standard schema location follows the +`/hl7/{version}/{message structure}.esl` pattern and the lax schema +location follows the `/hl7lax/{version}/{message structure}.esl` pattern. + +For example, if you're using the 2.5.1 schema version and the ADT_A01 message +structure, your schema location is `/hl7/v2_5_1/ADT_A01.esl` for the +standard version or `/hl7lax/v2_5_1/ADT_A01.esl` for the lax version. + +If you're using one or more custom schemas, put these in a directory in `src/main/mule` and refer to the location using `${app.home}`. +For example, if you put your ADT_A01 schema under `src/main/mule/mypartner/ADT_A01.esl, +your schema location is `${app.home}/mypartner/ADT_A01.esl`. + +The Mule runtime engine automatically checks `src/main/mule` for any locations +that contain the `${app.home}` value. + +== The Hierarchy of X12 EDI Connector Message Structure + +Use this connector to read or write HL7 documents into (or from) the canonical ER7 message structure. +This structure is a hierarchy of Java Maps and Lists. You use either DataWeave or code to manipulate them. +Each transaction structure is defined in the schemas. + +The message itself contains the following keys, some of which apply only to either the read operation or the write operation, as indicated: + +[%header%autowidth.spread] +|=== +|Key Name |Description +|ACK (read only) |Message generated by the module during the read operation. The `MSA-01` acknowledgment code value is based on the parser configuration settings. +|Data (read or write) |Wrapper for message data, with a key matching the message structure ID value that links to the actual data. Allows different messages to be included in the metadata and handled in DataWeave mappings. +|Delimiters (read or write) |The delimiters used for the message. +The characters in the string of delimiters are interpreted based on their position in string, in the following order: component separator, repetition separator, escape character, and subcomponent separator, with a value of `U` indicating no value in that position. +|Errors (read only) |A list of errors associated with the input message. +|Id |Message structure ID. +|MSH (read only) |Link that receives MSH segment data. +|Name (read only) |Message structure name. +|=== + +Individual messages have their own maps, with keys matching the segments of the message. For example, an ACK message uses the message structure ID ACK, and the data for the sent or received ACK message is an ACK value in the data map. The ACK message is itself a map, and the segments and groups of the message are represented as maps (in the case of singleton instances) or lists of maps (for repeating instances) with positional keys. + +In two special cases, use generic handling for data that is not included in a schema definition. + +The first case is HL7 values of the `varies` type. Because these values consist of any structure of components and subcomponents that can be repeated, the parser uses a list of map representations for each `varies` of type. The keys in each map are generated as the value is parsed, matching standard HL7 value names with two digits used for each nesting level. +For example, a simple text value for an `OBX-05 Observation Value` field would use the key `OBX-05` in a map. If there are two components present, they use keys `OBX-05-01` and `OBX-05-02`. + +The second case is when extension segments have tags that match a pattern configured under parser options. These are similar in structure to the `varies` values, with the exception of only being within a single map for the entire segment. + +The maps containing extension segment data are added to the basic message map in lists with the key `ExtensionSegs`. In addition to the actual extension segment data, the map for the extension segment contains two other keys: + +[%header%autowidth.spread] +|=== +|Key |Description +|Ident |The extension segment identifier (tag). +|Position |The position of the segment within the message structure, as a two-digit string. This is the same as the position of the immediately preceding defined segment, as defined in the schema. If a `ZVN` extension segment is used following the `EVN` segment in an `ADT_A01` message structure, the `ZVN` is at position `03)`. +|=== + +If extension segments are used in nested groups, the list containing those segments are included in the map representing that group. Extension segments are ordered by position in the lists created by the parser, and must also be ordered by position when writing. + +=== About Sending Acknowledgments + +An ACK (acknowledgment) message is an HL7 message that enables you to acknowledge to a message sender that your application has received a message. ACK messages are the same as any other HL7 message write operations, except that you set the ACK message to what was generated during the read operation as the output message under a `Data` key. + +Here is an example: + +[source,xml,linenums] +---- + \ + ... + + + + + ... + +---- + +The generated ACK messages have MSH data set up for sending back to the sender of the original message, so you don't need to change anything in the data to perform the send. + +If you include an ACK message schema in your configuration, that schema is used to both receive and generate ACK messages. If you don't specify an ACK schema, the standard `hl7/v2_5_1/ACK.esl` schema default is used. + +== Exchange Templates and Examples + +https://www.mulesoft.com/exchange/[Anypoint Exchange] provides both templates and examples that you can use as starting points for your apps and examples that illustrate a complete solution. + +//// +List and link to up to 10 Exchange templates and examples. +Use the Integration Pattern categories (broadcast, migration, bidirectional sync, aggregation). +//// + +== Next Step + +After you complete the prerequisites, you are ready to create your own app and configure the connector using xref:hl7-connector-studio.adoc[Anypoint Studio]. + +== See Also + +xref:connectors::introduction/introduction-to-anypoint-connectors.adoc[Introduction to Anypoint Connectors] +xref:connectors::introduction/intro-use-exchange.adoc[Use Exchange to Discover Connectors, Templates, and Examples] +https://help.mulesoft.com[MuleSoft Help Center] From 31bd3abbc4ffbf9f93e049cdf400206d581856ef Mon Sep 17 00:00:00 2001 From: sms-dchen Date: Wed, 11 Sep 2024 16:16:25 -0300 Subject: [PATCH 2/4] Changed 4.2 to the current version --- hl7/4.3/antora.yml | 4 ++-- hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc | 2 +- hl7/4.3/modules/ROOT/pages/index.adoc | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hl7/4.3/antora.yml b/hl7/4.3/antora.yml index 43e2181029..da2a6f723b 100644 --- a/hl7/4.3/antora.yml +++ b/hl7/4.3/antora.yml @@ -1,6 +1,6 @@ name: hl7-connector -version: '4.2' -display_version: 4.2 (Mule 4) +version: '4.3' +display_version: 4.3 (Mule 4) title: HL7 EDI Connector nav: - modules/ROOT/nav.adoc diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc index 73f803f529..a824d3c539 100644 --- a/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc @@ -1,4 +1,4 @@ -= HL7 EDI Connector 4.2 Reference += HL7 EDI Connector 4.3 Reference :page-aliases: connectors::hl7/hl7-connector-reference.adoc == Configurations diff --git a/hl7/4.3/modules/ROOT/pages/index.adoc b/hl7/4.3/modules/ROOT/pages/index.adoc index 7f3195f94a..d691230902 100644 --- a/hl7/4.3/modules/ROOT/pages/index.adoc +++ b/hl7/4.3/modules/ROOT/pages/index.adoc @@ -1,4 +1,4 @@ -= HL7 EDI Connector 4.2 - Mule 4 += HL7 EDI Connector 4.3 - Mule 4 :page-aliases: connectors::hl7/hl7-connector.adoc From 445efee23fb3f5be3f26f3e56af4b651a7d75ff7 Mon Sep 17 00:00:00 2001 From: sms-dchen Date: Wed, 11 Sep 2024 16:22:22 -0300 Subject: [PATCH 3/4] Added new HL7 field and description --- hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc | 1 + hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc index 62f5b12acd..59ffb24723 100644 --- a/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-config-topics.adoc @@ -256,6 +256,7 @@ You can set the following options if needed: |valueLengthErrorFail="true" |Fail when a value length is outside an allowed range |wrongSegmentsRepeatsFail="true" |Fail when there are too many repeats of a segment |wrongValuesRepeatsFail="true" |Fail when there are too many repetitions of a value +|enforceERRSegmentRepeatability="true"|Enforces the ERR Segment repeatability (count) in the Acknowledgment. |=== == Next Step diff --git a/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc b/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc index a824d3c539..eaddb11f71 100644 --- a/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc +++ b/hl7/4.3/modules/ROOT/pages/hl7-connector-reference.adoc @@ -129,7 +129,12 @@ In either case, the error is reported in an ERR segment. | false | ** CR ** LF | Value for the segment terminator. | CR | +| Enforce Acknowledgment ERR Segment repeatability a| Boolean a| Whether to enforce the ERR Segment repeatability (count) in the Acknowledgment: +* If `true` and the ERR segment count is not 1, errors will be added to the ERR-01 (ELD) in a single ERR segment. +* If `false`, every error will be added to the ERR list. + +In either case, the error is reported in an ERR segment. | false | |=== [[config_connection]] From 3d982c76ee0577f71828529af067cfce32a0c450 Mon Sep 17 00:00:00 2001 From: sms-dchen Date: Mon, 16 Sep 2024 12:03:43 -0300 Subject: [PATCH 4/4] Adjusted the HL7 Sending Acknowledgments information --- hl7/4.3/modules/ROOT/pages/index.adoc | 41 ++++++++++++++++----------- 1 file changed, 24 insertions(+), 17 deletions(-) diff --git a/hl7/4.3/modules/ROOT/pages/index.adoc b/hl7/4.3/modules/ROOT/pages/index.adoc index d691230902..d06b7567bf 100644 --- a/hl7/4.3/modules/ROOT/pages/index.adoc +++ b/hl7/4.3/modules/ROOT/pages/index.adoc @@ -132,29 +132,36 @@ Here is an example: [source,xml,linenums] ---- - \ + + + + + + + ... - - - - + + + + + ... - + ---- The generated ACK messages have MSH data set up for sending back to the sender of the original message, so you don't need to change anything in the data to perform the send. -If you include an ACK message schema in your configuration, that schema is used to both receive and generate ACK messages. If you don't specify an ACK schema, the standard `hl7/v2_5_1/ACK.esl` schema default is used. +If you include an ACK message schema in your configuration, that schema is used to both receive and generate ACK messages, you also need to specify include the `eventMessageMap` to use the ACK structure in the parser. If you don't specify an ACK schema, the standard `hl7/v2_5_1/ACK.esl` schema default is used. == Exchange Templates and Examples