拆分 HIPAA 子文档

HIPAA 的 EDI 交换通常在一个事务集内包含多个子文档,由 ST/SE 标头界定。 EDI 接收管道支持从此类事务集创建单独的 HIPAA 子文档。 这不同于非 HIPAA EDI 交换,其中单个事务集作为单个消息进行处理。

子文档拆分架构

BizTalk Server 支持通过本机架构拆分以下 HIPAA 文档类型:

  • HIPAA 版本 4010 文档:834 注册、835 索赔付款和 837 声明的三个变体

  • HIPAA 版本 5010 文档:276/277 声明状态 - 请求和响应、834 注册和 837 声明的三个变体

    BizTalk Server 为每个这三种文档类型提供两个版本的架构。 对于每个文档类型,支持拆分的架构由文件名中的“Multiple”标记标识。 其他架构不支持子文档拆分。

    在某些情况下,可能需要拆分架构和非拆分架构。 将通过使用自定义目标命名空间来支持架构的一个变体,从而实现这一点。

子文档拆分的实现方式

HIPAA 子文档的拆分由 HIPAA 架构中的三个批注条目启用。 前两个是 appinfo 注释中架构的条目,必须设置为 “是”:

subdocument_break = "yes" Split_Without_Sibling_Data = "Yes"  

第三个批注条目位于 HIPAA 架构中的相应记录级别。 此属性还必须设置为 “是”。

subdocument_creation_break = "yes"  

仅当 HIPAA 架构中的子文档创建中断批注设置为“是”时,HIPAA 交换才会拆分为子文档,并且入站批处理选项组属性设置为“将交换拆分为事务集”。 如果将入站批处理选项群属性设置为保留交换,EDI 反汇编程序将不会将交换拆分为子文档。 在这种情况下,EDI 反汇编程序将忽略批注。 如果发生这种情况,事件查看器中不会引发任何警告。

注释

无法嵌套子文档创建中断批注。 如果架构包含应用了子文档注释的循环,该循环不能包含应用了子文档注释的另一个循环。

如何处理子文档

EDI 接收管道中的 EDI 反汇编程序拆分了子文档。 接收管道验证传入交换并生成相应的确认后,它会将每个单独的子文档路由到 MessageBox。 每个子文档在结构上和语法上都是有效的;但是,业务级别摘要、事务集总计和事务集控制编号预计不会同步。 发送管道会将每个子文档(来自原始事务集)中 SE01 的现有段计数的值替换为子文档中实际包含的段数。 接收管道还将重置每个子文档中的事务集控制编号,以便子文档没有重复的控制编号。 这可确保发送端处理不会失败。

如果在子文档拆分期间,事务集在 EDI 或扩展验证中失败,那么该失败的事务集将被挂起。

订阅子文档的发送端口将从 MessageBox 中选取每个子文档,序列化 XML 子文档,对其进行批处理(如果已启用),验证它们,然后发送它们。 发送管道更新段数据元素(SE01)的计数。

如何拆分子文档

子文档创建中断批注通常应用于包含 HIPAA 架构中的一个或多个元素的循环。 架构中的中断循环前后的其他元素将在每个子文档中复制。

下表显示了子文档拆分的示例。 在此示例中,CC 元素循环的子文档创建中断标注设置为“yes”。 因此,事务集中的 CC 元素分为单独的子文档,而事务集中的 AA、BB 和 DD 元素都包含在每个单独的子文档中。

架构(最小和最大出现次数) 原始实例 子文档 #1 子文档 #2 子文档 #3
ST (1,0) ST ST ST ST
AA (1,1) 美国航空公司 美国航空公司 美国航空公司 美国航空公司
BB 循环 (1,n)

BB1 (1,n)

CC 循环(1,n) - 子文档中断 = “是”

CC1 (1,n)

CC2 (0,n)

BB2 (0,n)
BB1*1

CC1*1

CC2*1

BB2*1

BB1*2

CC1*2

CC2*2

BB1*3

CC1*3

CC2*3
BB1*1

CC1*1

CC2*1

BB2*1
BB1*2

CC1*2

CC2*2
BB1*3

CC1*3

CC2*3
DD (0,n) DD DD DD DD
硒 (if "SE" refers to Selenium). SE SE