是否有人为ICD-10-CM编写了验证(regex或其他)?
我对琐碎的解决方案(3-7个字母数字)不感兴趣,我想知道7位数字的合并是如何处理的。
发布于 2014-10-20 01:00:18
我没有为ICD-10-CM编写正则表达式,但我编写了一个查找引擎。您可以通过将official XML file解析到SQL数据库中,并在数据库中搜索代码来执行相同的操作(如果没有找到结果,则代码无效)。不幸的是,由于不同的NDA,我不能在这里发布我的代码,但做同样的事情应该是微不足道的。这样做的好处是,您将只获得有效的代码(而不是像使用正则表达式那样“看起来”像ICD-10-CM但无效的代码)。
或者(我不建议这样做),您可以在一个简单的正则表达式之上对XML文件本身进行全文搜索,但这样做会有but (根据经验)。
发布于 2016-06-16 05:46:48
我刚刚为所有2016年的ICD10代码编写了一个正则表达式:
/^[A-TV-Z]\d[0-9AB](?:\.([\dA-KXZ]|[\dA-KXZ][\dAX-Z]|[\dA-KXZ][\dAX-Z][\dX]|[\dA-KXZ][\dAX-Z][\dX][0-59A-HJKMNP-S]))?$/
这个正则表达式假设点出现在第三个字符之后,而实际上它应该出现在第三个字符之后;CDC分发代码列表时省略了点。
在我所做的关于ICD10代码结构的研究中,并没有记录所有的规则和陷阱。这个正则表达式是根据实际存在的代码构造的,因为在线找到的ICD10 structure文档并不能说明整个故事。
第一个字符是字母,U除外。
第二个字符是数字。
第三个字符是数字、A或B(这些字母是最近添加的)。
对于长度超过3个字符的代码,点(在任何代码规则的描述中都不称为字符)。
第四个字符是数字或字母ABCDEFGHIJKXZ。
第五个字符是数字或字母AXYZ。
第六个字符是数字或X。
当X显示为第四个、第五个或第六个字符(但不是最后一个字符)时,X作为占位符出现。
第七个字符比任何参考资料都要复杂。A,D,S代表后遗症。某些其他代码集有自己的扩展名;对于骨折,这些是ABCDEFGHJKMNPQRS,其中ADS仍然表示后遗症,但可能提供额外的信息。存在在此位置使用数字01234的代码。
侧向性一点也不简单。文档说明1 == right,2 == left,这通常是正确的。然而,3个==双边,9个==未指定(第5个字符)和0个==未指定(第6个字符)并不总是正确的。
有许多代码中,侧向性与其他东西一起表示,通常是哪一条肢体。在这些代码中,左、右、未指定使用1,2,3;4,5,6;7,8,9来表示另一个因子。也可以存在使用0的双重非特定代码。
此外,表示侧向性的字符并不总是前六个字符中的最后一个字符。
一些横向代码的描述暗示了额外的“另一个”方面。
发布于 2015-07-08 02:13:10
ICD10实际上是一棵代码树,其中可用代码是树叶,每个节点都包含应用于其自身和所有后代的元数据。
正如在其他答案中所说,一些代码可能看起来像ICD10代码,但实际上是无效的。但是,它们确实包含了一个包含所有代码的平面列表
http://www.cdc.gov/nchs/icd/icd10cm.htm
此代码列表不包含~50个代码上的UTF-8编码字符,例如
H81.01 Ménière's disease, right ear
包含非ascii字符,但包含所有69823
可用代码的描述。因此,您可以立即看出,26*10*10*10*10*10*26
的最大可能代码基数比69823
大得多,所以正则表达式是非常好用的。
为了获取所有的第7个字符信息,需要对XML进行解析并基于“规则”进行扩展。如果您要查找每个代码上的元数据,平面代码文件中就没有元数据。您必须为该元数据解析XML (或使用API等)
最好的例子是:
<diag>
<name>H40.11</name>
<desc>Primary open-angle glaucoma</desc>
<inclusionTerm>
<note>Chronic simple glaucoma</note>
</inclusionTerm>
<sevenChrNote>
<note>One of the following 7th characters is to be assigned to code H40.11 to designate the stage of glaucoma</note>
</sevenChrNote>
<sevenChrDef>
<extension char="0">stage unspecified</extension>
<extension char="1">mild stage</extension>
<extension char="2">moderate stage</extension>
<extension char="3">severe stage</extension>
<extension char="4">indeterminate stage</extension>
</sevenChrDef>
</diag>
在解析过程中,为了正确地获得第7个字符,必须解析字符串One of the following 7th characters is to be assigned to code H40.11 to designate the stage of glaucoma
并将代码H40.11
扩展到<sevenChrDef></>
下的每个<extension>
。因此,在上面的示例中,您将获得每个代码:
H40.11X0 Primary open-angle glaucoma, stage unspecified
H40.11X1 Primary open-angle glaucoma, mild stage
H40.11X2 Primary open-angle glaucoma, moderate stage
H40.11X3 Primary open-angle glaucoma, severe stage
H40.11X4 Primary open-angle glaucoma, indeterminate stage
X
是一个“占位符”,以确保7个字符的代码长度。
更糟的是..。
考虑以T64
开头的代码分支
<diag>
<name>T64</name>
<desc>Toxic effect of aflatoxin and other mycotoxin food contaminants</desc>
<sevenChrNote>
<note>The appropriate 7th character is to be added to each code from category T64</note>
</sevenChrNote>
<sevenChrDef>
<extension char="A">initial encounter</extension>
<extension char="D">subsequent encounter</extension>
<extension char="S">sequela</extension>
</sevenChrDef>
<diag>
<name>T64.0</name>
<desc>Toxic effect of aflatoxin</desc>
<diag>
<name>T64.01</name>
<desc>Toxic effect of aflatoxin, accidental (unintentional)</desc>
</diag>
<diag>
<name>T64.02</name>
<desc>Toxic effect of aflatoxin, intentional self-harm</desc>
</diag>
<diag>
<name>T64.03</name>
<desc>Toxic effect of aflatoxin, assault</desc>
</diag>...
T64
不是叶节点,因此不能计费。但是,它仍然有第7个字符元数据。这意味着您必须将每个子代码与其<sevenCharDef>
或A
、D
和S
相乘,以获得代码:
T6401XA Toxic effect of aflatoxin, accidental (unintentional), initial encounter
T6401XD Toxic effect of aflatoxin, accidental (unintentional), subsequent encounter
T6401XS Toxic effect of aflatoxin, accidental (unintentional), sequela
T6402XA Toxic effect of aflatoxin, intentional self-harm, initial encounter
T6402XD Toxic effect of aflatoxin, intentional self-harm, subsequent encounter
T6402XS Toxic effect of aflatoxin, intentional self-harm, sequela
T6403XA Toxic effect of aflatoxin, assault, initial encounter
T6403XD Toxic effect of aflatoxin, assault, subsequent encounter
T6403XS Toxic effect of aflatoxin, assault, sequela
我们希望得到许可,以JSON格式重新打印/补充ICD10代码,其中每个代码都有显式的元数据,但在此之前,这是您最好的选择。
如果您所需要的只是确定ICD10代码的有效性,只需加载平面文件的第一列(用\r
分隔)。
https://stackoverflow.com/questions/26259238
复制相似问题