拆分 HIPAA 子文档

正如 ST/SE 标头所限定的,用于 HIPAA 的 EDI 交换通常在单个事务集内具有多个子文档。 EDI 接收管道支持从这样的事务集创建单独的 HIPAA 子文档。 这不同于将单个事务集作为单个消息进行处理的非 HIPAA EDI 交换。

子文档拆分架构

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

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

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

    BizTalk Server为这三种文档类型中的每一种提供两个版本的架构。 对于每一种文档类型,通过文件名中的“Mulitple”标签对支持拆分的架构进行标识。 其他架构不支持子文档拆分。

    在某些情况下,拆分和非拆分架构可能都是必需的。 通过为架构的一种变体使用自定义目标命名空间可以对此提供支持。

如何启用子文档拆分

可以通过 HIPAA 架构中的三个批注项启用 HIPAA 子文档的拆分。 前两个是 appinfo 注释中架构的条目,必须将其设置为 yes

subdocument_break = "yes" Split_Without_Sibling_Data = "Yes"  

第三个批注项位于 HIPAA 架构内的相应记录级别。 此属性还必须设置为 yes

subdocument_creation_break = "yes"  

仅当 HIPAA 架构中的子文档创建中断批注设置为“yes”,并且入站批处理选项参与方属性设置为“将交换拆分为事务集”时,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) AA AA AA AA
BB loop (1,n)

BB1 (1,n)

CC loop (1,n) - subdocument_break = "yes"

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
SE SE SE SE SE