【问题标题】:Smooks EDI Parsing - Repeated SegmentsSmooks EDI 解析 - 重复段
【发布时间】:2014-09-20 04:24:02
【问题描述】:

我正在尝试构建一个通用 EDI 解析器,它可以在给定文件中不存在任何情境段时进行处理。在 XML 映射中使用 minOccurs="0" 属性很容易,但是当多个段使用相同的标签重复时,我正在努力弄清楚如何处理这个问题。例如:

CAS*PR*1*793~
NM1*QC*1*SHEPHARD*SAM*O***HN*666666666A~    --PatientName
NM1*IL*1*SHEPARD*JESSICA****HN*999887777A~  --InsuredName
MIA*0***138018.4~

使用以下 XML 映射:

<medi:segment segcode="NM1" xmltag="PatientNameSegment" minOccurs="0" truncatable="true">
    <medi:field xmltag="EntityIdentifierCode" />
    <medi:field xmltag="EntityTypeQualifier" />
    <medi:field xmltag="LastName" />
    <medi:field xmltag="FirstName" />
    <medi:field xmltag="MiddleName" />
    <medi:field xmltag="NamePrefix" />
    <medi:field xmltag="NameSuffix" />
    <medi:field xmltag="IdentificationCodeQualifer" />
    <medi:field xmltag="IdentificationCode" />
</medi:segment>
<medi:segment segcode="NM1" xmltag="InsuredNameSegment" minOccurs="0" truncatable="true">
    <medi:field xmltag="EntityIdentifierCode" />
    <medi:field xmltag="EntityTypeQualifier" />
    <medi:field xmltag="LastName" />
    <medi:field xmltag="FirstName" />
    <medi:field xmltag="MiddleName" />
    <medi:field xmltag="NamePrefix" />
    <medi:field xmltag="NameSuffix" />
    <medi:field xmltag="IdentificationCodeQualifer" />
    <medi:field xmltag="IdentificationCode" />
</medi:segment>

但是当从输入文件中删除患者姓名的第一行时,它只会将被保险人姓名加载到患者姓名中并跳过加载被保险人姓名,而不是将患者姓名留空。

基本上,我想要的相当于将“NM1*QC”指定为段码(实际上将其设置为会杀死解析器)。我看到 Smooks 文档也允许进行正则表达式匹配,但我不确定它是比较的,并且还没有尝试过它。

谢谢!

【问题讨论】:

  • 如果所有段都在单行中(不是格式化的 EDI 文件),您是否能够读取 EDI 文件。您在此处发布的示例片段是格式化的片段。请问您可以发布您的分隔符配置吗?

标签: java xml edi smooks


【解决方案1】:

您需要让您的解析器限定符(第一个元素中的 QCIL)知道。我不知道您的特定产品是否以及如何做到这一点,但我很确定这通常是一项基本要求。五秒钟的谷歌告诉我你可以使用segcode="NM1\*IL.*",但我怀疑这是正确的做法。

【讨论】:

  • 叹息...我也确实遇到过这个问题,并且在尝试实现它时遇到了解析错误,但刚才再次尝试似乎解决了这个问题。我以前一定是胖手指了。超级尴尬!
  • 现在 smooks(1.6 版本) 有更好的方法来处理重复的片段。我们可以使用segmentGroups来处理重复的segment。
猜你喜欢
  • 2012-09-29
  • 2015-09-13
  • 2012-03-14
  • 2012-02-10
  • 2017-06-26
  • 2018-02-10
  • 2012-03-04
  • 2011-04-29
  • 2017-06-08
相关资源
最近更新 更多