全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 SAS专版
4503 3
2013-11-21

问题是:

病案首页的手术编码有7个。一台手术的手术码可能由几个手术(ssjczbm1 ,ssjczbm2,ssjczbm3,ssjczbm4,ssjczbm5,ssjczbm6,ssjczbm7)编码组成。

我怎么能用更快的方式,用循环等等书写  7个手术码?

变量的意义:

①  JBDN(主要诊断的ICD-10 编码);

②  ssjczbm1 ,ssjczbm2,ssjczbm3,ssjczbm4,ssjczbm5,ssjczbm6,ssjczbm7  ( 手术编码)

例如:

急性心肌梗死的提取条件是:主要诊断为I21、I22编码为急性心肌梗死,排除编码为心脏手术的患者。

(substr(JBDM,1,3)="I21" OR substr(JBDM,3)= "I22")AND (substr手术码,1,2)^="35"  OR substr(手术码,1,2)^="36"  OR substr (手术码,1,2)^="37" )

怎么能快速的从这样的书写


  
        

/*binghzong=1 急性心肌梗死    */

   

data b1;

   

set shuju;

   

if

   

      ( substr(JBDM,1,3)='I21' OR    substr(JBDM,1,3)='I22' )  

   

AND

   

      ( substr(ssjczbm1,1,2)^="35"  OR substr(ssjczbm1,1,2)^="36"  OR substr(ssjczbm1,1,2)^="37"  )

   

AND  cykb="04"   

   

then    bingzhong=1;

   

run;

   

   
   
   


转变成有7个手术码

  
        

/*依次给予病种赋值*/

   

/*binghzong=1 急性心肌梗死    */

   

data b1;

   

set shuju;

   

if

   

      (substr(JBDM,1,3)='I21' OR    substr(JBDM,1,3)='I22' )  

   

AND

   

      ( substr(ssjczbm1,1,2)^="35"  OR substr(ssjczbm1,1,2)^="36"  OR substr(ssjczbm1,1,2)^="37" OR

   

        substr(ssjczbm2,1,2)^="35"  OR substr(ssjczbm2,1,2)^="36"  OR substr(ssjczbm2,1,2)^="37" OR

   

        substr(ssjczbm3,1,2)^="35"  OR substr(ssjczbm3,1,2)^="36"  OR substr(ssjczbm3,1,2)^="37" OR

   

        substr(ssjczbm4,1,2)^="35"  OR substr(ssjczbm4,1,2)^="36"  OR substr(ssjczbm4,1,2)^="37" OR

   

        substr(ssjczbm5,1,2)^="35"  OR substr(ssjczbm5,1,2)^="36"  OR substr(ssjczbm5,1,2)^="37" OR

   

        substr(ssjczbm6,1,2)^="35"  OR substr(ssjczbm6,1,2)^="36"  OR substr(ssjczbm6,1,2)^="37" OR

   

        substr(ssjczbm7,1,2)^="35"  OR substr(ssjczbm7,1,2)^="36"  OR substr(ssjczbm7,1,2)^="37"

   

       )

   

AND  cykb="04"   

   

then    bingzhong=1;

   

run;

   
   
   


因为我有很多病种,

面的胰腺切除术提取的条件是

(SUBSTR(手术码,1,5)>="42.40" AND SUBSTR(手术码,1,5)<="42.42")

OR (SUBSTR(手术码,1,5)>="42.51" AND SUBSTR(手术码,1,5)<="42.56")

OR (SUBSTR(手术码,1,5)>="42.58" AND SUBSTR(手术码,1,5)<="42.59")

OR (SUBSTR(手术码,1,5)>="42.61" AND SUBSTR(手术码,1,5)<="42.69")

/*binghzong=25 胰腺切除术*/

data b25;

set shuju;

if  

(

       ( substr(ssjczbm1,1,5)>="42.40" AND  substr(ssjczbm1,1,5)<="42.42" )

    OR ( substr(ssjczbm1,1,5)>="42.51" AND  substr(ssjczbm1,1,5)<="42.56" )

    OR ( substr(ssjczbm1,1,5)>="42.58" AND  substr(ssjczbm1,1,5)<="42.59" )

    OR ( substr(ssjczbm1,1,5)>="42.61" AND  substr(ssjczbm1,1,5)<="42.69" )

)

AND cykb="04"

then bingzhong=25;

run;

我怎么能快速的写上ssjczbm1 ,ssjczbm2,ssjczbm3,ssjczbm4,ssjczbm5,ssjczbm6,ssjczbm7   这7个手术码?

有些手术的条件很多的,写上一个手术码已经很长了,囊括7个手术码实在很让人抓狂。


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-11-21 11:53:48
变量的意义:
①        JBDN(主要诊断的ICD-10 编码);   错了  ,应该是 JBDM。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-11-22 05:05:13
substr(ssjczbm1,1,2)^="35"  OR substr(ssjczbm1,1,2)^="36"  OR substr(ssjczbm1,1,2)^="37"
这是个永远成立的条件.
京剧
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-11-22 23:11:58
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群