我看到TS
和DT
数据类型在默认模式2.3:验证HL7架构中的时间戳吗?
<SegmentStructure name='SMPL' description='Patient Identification'>
<SegmentSubStructure piece='1' description='A sample datetime field' datatype='DT' max_length='12' required='O' ifrepeating='0'/>
</SegmentStructure>
<DataType name='TS' description='time stamp'>
<DataSubType piece='1' description='time of an event' datatype='ST'/>
<DataSubType piece='2' description='degree of precision' datatype='ST'/>
</DataType>
<DataType name='DT' description='Date (2.8.13)'>
<DataSubType piece='1' description='Date (2.8.13)'/>
</DataType>
,但它不会出现,这实际上验证格式。这可能吗?我们最近有一个实例,客户发送带有缺失数字的时间戳(例如,20160503120)。如果可以的话,我想用模式来验证它。
编辑:添加一些澄清希望
我们用intersystems-healthshare当一个ADT进来它通过与扩展.hl7
一个验证。默认情况下,这是2.3.hl7
或类似(取决于版本)。它看起来就像上面的代码。我想知道如果我能以某种方式将正则表达式放在那里。无论是在分段结构定义(SMPL)还是在数据类型定义中。
你显示的不是代码,而是代码正在处理的模式/描述。 Intersystems产品最初基于Mumps和其他编程语言的API。 – sqlab
您可能想要为DateTime邮票构建外部验证过程。 – Sid
我明白这是架构。我正在处理的项目是修复所有模式并在所有名称空间上启用验证警报。使用模式我可以很容易地说“这个字段的值只能是整数和5个字符长”。我只是问我能否比这更详细。 –