数据保存在Oracle 12c数据库中,每个ICD-10-CM代码一行,带有类似的病人ID (外键)(请注意还有许多其他代码,以下就是与此问题相关的代码):
ID ICD10CODE
1 S72.91XB
1 S72.92XB
2 S72.211A
3 S72.414A
3 S72.415A
4 S32.509A
5 S32.301A
5 S32.821A
6 S32.421A
6 S32.422A
7 S32.421A
8 S32.421A
8 S32.509A当前的任务是选择与匹配的不同患者(使用标准正则表达式语法),只匹配以下几点中的一个:
S32\.1\w\w\w,S32\.2\w\w\w,S32\.3\w\w\w,S32\.5\w\w\w,S32\.6\w\w\w,S32\.7\w\w\w,S32\.8\w\w\wS32\.4\w1\w,S32\.4\w3\w,S32\.4\w4\w,S32\.4\w6\w,S32\.4\w7\w,S32\.4\w8\w,S32\.4\w9\wS32\.4\w2\w,S32\.4\w3\w,S32\.4\w5\w,S32\.4\w6\w,S32\.4\w7\w,S32\.4\w8\w,S32\.4\w9\wS72\.[0-8]\w1\w,S72\.[0-8]\w3\w,S72\.[0-8]\w4\w,S72\.[0-8]\w6\w,S72\.[0-8]\w7\w,S72\.[0-8]\w8\w,S72\.[0-8]\w9\wS72\.[0-8]\w2\w,S72\.[0-8]\w3\w,S72\.[0-8]\w5\w,S72\.[0-8]\w6\w,S72\.[0-8]\w7\w,S72\.[0-8]\w8\w,S72\.[0-8]\w9\wS72\.91\w\w,S72\.93\w\w,S72\.94\w\w,S72\.96\w\w,S72\.97\w\w,S72\.98\w\w,S72\.99\w\wS72\.92\w\w,S72\.93\w\w,S72\.95\w\w,S72\.96\w\w,S72\.97\w\w,S72\.98\w\w,S72\.99\w\w在子弹中列出的代码的任何排列或组合(包括重复)对于每个病人都是允许的,但是排之间的排列或组合应该只发生在病人身上。我的方法是将LISTAGG应用于GROUP BY ID
ID LISTAGG(ICD10CODE, ',')
1 S72.91XB,S72.92XB
2 S72.211A
3 S72.414A,S72.415A
4 S32.509A
5 S32.301A,S32.821A
6 S32.421A,S32.422A
7 S32.421A
8 S32.421A,S32.509A然后使用这个正则表达式(S32\.(([1-3]|[5-8])|(4\w((1|4)|(2|5)|(3)|([5-9]))))\w+)|(S72\.(([0-8]\w((1|4)|(2|5)|(3)|([5-9])))|(9((1|4)|(2|5)|(3)|([5-9]))))\w+)进行筛选,它几乎是上面的符号的文字表示。我的表达方式来自于这个答案中的思想,似乎((RB\s+)+|(JJ\s+)+)会自动选择"RB"或"JJ",而不是两者兼而有之。
我不能让它起作用。答案应该只包含I 2、4、5和7。但是,我开发的表达式匹配所有I。
这个问题的解决办法是什么?
编辑更多信息:
以上S码均与下肢骨损伤有关:S32为骨盆骨折(髋骨),S72为股骨骨折(大腿骨)。注意,我们有两个股骨,和两个髋臼(股骨连接的骨盆窝)。S32.4代码表示髋臼( S32.[1235678]\w{3}系列的其余部分表示骨盆的其他部分)。右侧股骨和髋臼在第6个字符中分别用1|4或2|5表示,除非代码以S72.9开头,当这些数字出现在第5个字符时。
包括在研究人群中的病人只应该有一根骨头断了。这意味着,两个股骨之一,一个髋臼,或骨盆,但不是它们的组合。单一骨骨折的组合并不重要。例如,正确的单股可以在10个不同的地方和方式(膝盖面积,中轴,头部等,每一个产生不同的S72.\w[1|4]\w{2}代码),仍然应该被选择。
发布于 2022-02-25 18:16:05
好的,我把你的断骨代码添加到了S32和S72系列中。
这才是真正需要做的。
可以随意将,?更改为(,|$),但不要更改任何其他内容。
告诉我断骨密码是否正确。
S32\.\w[25]\w\w、S32.1\w\w、S32.2\w\w、S32.3\w\w\w、S32.5\w\w、S32.6\w\w\w、S32.7\w\w、S32.8 w\w\w)S32\.\w[25]\w\w,S32.4\w1\w,S32.4\w3\w,S32.4\w4\w,S32.4\w6\w,S32.4\w7\w,S32.4\w8\w,S32.4\w9\wS32\.\w[25]\w\w,S32.4\w2\w,S32.4\w3\w,S32.4\w5\w,S32.4\w6\w,S32.4\w7\w,S32.4\w8\w,S32.4\w9\wS72\.\w[14]\w\w,S72.0-8 W1\w,S72.0-8 w3\w,S72.0-8 w4\w,S72.0-8 w6\w,S72.0-8 w7\w,S72.0-8 w8\w,S72.0-8 w9\wS72\.\w[14]\w\w、S72.0w2\w、S72.0w3\w、S72.0w5、S72.0w6、S72.0w7、S72.08w8、S72.0w9S72\.[14]\w\w\w,S72.91\w\w,S72.93\w\w,S72.94\w\w,S72.96\w\w,S72.97\w\w,S72.98\w\w,S72.99\w\wS72\.[14]\w\w\w,S72.92\w\w,S72.93\w\w,S72.95\w\w,S72.96\w\w,S72.97\w\w,S72.98\w\w,S72.99\w\w新的正则表达式是
^((S32\.(\w[25]|[1-35-8]\w)\w\w,?)+|(S32\.(\w[25]\w|4\w[1346-9])\w,?)+|(S32\.(\w[25]\w|4\w[235-9])\w,?)+|(S72\.(\w[14]\w|[0-8]\w[1346-9])\w,?)+|(S72\.(\w[14]\w|[0-8]\w[235-9])\w,?)+|(S72\.([14]\w|9[1346-9])\w\w,?)+|(S72\.([14]\w|9[235-9])\w\w,?)+)$https://regex101.com/r/OAHdCO/1
^
(
( S32 \. ( \w [25] | [1-35-8] \w ) \w\w ,? )+
| ( S32 \. ( \w [25] \w | 4 \w [1346-9] ) \w ,? )+
| ( S32 \. ( \w [25] \w | 4 \w [235-9] ) \w ,? )+
| ( S72 \. ( \w [14] \w | [0-8] \w [1346-9] ) \w ,? )+
| ( S72 \. ( \w [14] \w | [0-8] \w [235-9] ) \w ,? )+
| ( S72 \. ( [14] \w | 9 [1346-9] ) \w\w ,? )+
| ( S72 \. ( [14] \w | 9 [235-9] ) \w\w ,? )+
)
$https://stackoverflow.com/questions/71259357
复制相似问题