| [613] | 1 | SROADX2 ;BIR/RJS - ASSOCIATED DIAGNOSIS FOR CODER AND VERIFY SCREENS ;09/12/05 12:01pm
 | 
|---|
 | 2 |  ;;3.0; Surgery ;**119,150,142**;24 Jun 93
 | 
|---|
 | 3 | PDXCHK(SRCODE) N SRYBAK,SRXBAK,DIR,SRQUIT,SRTEMP,DA
 | 
|---|
 | 4 |  Q:'$D(D0)
 | 
|---|
 | 5 |  I '$D(SRTN) N SRTN S SRTN=D0
 | 
|---|
 | 6 |  Q:D0=SRTN
 | 
|---|
 | 7 |  S ^TMP($J,"SRASOC",SRTN)=""
 | 
|---|
 | 8 |  M SRYBAK=Y
 | 
|---|
 | 9 |  I SRYBAK=1 S SRYBAK=""
 | 
|---|
 | 10 |  S DIR(0)="Y",SRXBAK=X,SRQUIT=0,SRKALL=0,Y=0
 | 
|---|
 | 11 |  S DIR("A",1)="The Procedure Associations may no longer be correct,"
 | 
|---|
 | 12 |  I SRCODE D
 | 
|---|
 | 13 |  .Q:$$PRLOOP(1)=0
 | 
|---|
 | 14 |  .I $P(XQY0,U)'="SROVER"&($P(XQY0,U)'="SRCODING EDIT") S DIR("A",2)="Please update the Associations in the PHYSICIAN'S VERIFY menu"
 | 
|---|
 | 15 |  .S DIR("A")="Delete PRINCIPAL Procedure Associations for this DX",DIR("B")="NO"
 | 
|---|
 | 16 |  .S:$$GET1^DIQ(130.18,D0_","_SRTN_",",3) DIR("B")="YES"
 | 
|---|
 | 17 |  .D ^DIR
 | 
|---|
 | 18 |  I 'SRCODE D
 | 
|---|
 | 19 |  .I $$PRLOOP(1)=0,$$OTLOOP(1)=0 Q
 | 
|---|
 | 20 |  .S DIR("A")="All Procedure Associations for this DX will be deleted. Continue",DIR("B")="NO"
 | 
|---|
 | 21 |  .D ^DIR S:'Y SRXBAK=SRYBAK,SRQUIT=1
 | 
|---|
 | 22 |  .S:Y SRKALL=1
 | 
|---|
 | 23 |  S:Y SRTEMP=$$PRLOOP(0)
 | 
|---|
 | 24 |  M Y=SRYBAK S X=SRXBAK
 | 
|---|
 | 25 |  I SRQUIT W !! Q
 | 
|---|
 | 26 |  K DIR
 | 
|---|
 | 27 |  D OTHCHK(SRCODE)
 | 
|---|
 | 28 |  K SRKALL,SRMATCH,DIR
 | 
|---|
 | 29 |  Q
 | 
|---|
 | 30 | OTHCHK(SRCODE) N OTH,DA,SRY,SRQUIT,SRYBAK,SRXBAK,DIR
 | 
|---|
 | 31 |  M SRYBAK=Y
 | 
|---|
 | 32 |  S SRQUIT=0,SRXBAK=X
 | 
|---|
 | 33 |  I 'SRKALL W ! D
 | 
|---|
 | 34 |  .Q:$$OTLOOP(1)=0
 | 
|---|
 | 35 |  .S DIR(0)="Y",DIR("A",1)="The OTHER Prodecure Associations may no longer be correct."
 | 
|---|
 | 36 |  .I SRCODE D
 | 
|---|
 | 37 |  ..I $P(XQY0,U)'="SROVER"&($P(XQY0,U)'="SRCODING EDIT") S DIR("A",2)="Please update the Associations in the PHYSICIAN'S VERIFY menu"
 | 
|---|
 | 38 |  ..S DIR("A")="Delete OTHER Procedure Associations for this DX",DIR("B")="NO"
 | 
|---|
 | 39 |  ..S:$$GET1^DIQ(130.18,D0_","_SRTN_",",3) DIR("B")="YES"
 | 
|---|
 | 40 |  ..D ^DIR W !!
 | 
|---|
 | 41 |  I Y!SRKALL D
 | 
|---|
 | 42 |  .N DA S OTH=0
 | 
|---|
 | 43 |  .F  S OTH=$O(^SRF(SRTN,13,OTH)) Q:'OTH  D
 | 
|---|
 | 44 |  ..S DA=0
 | 
|---|
 | 45 |  ..F  S DA=$O(^SRF(SRTN,13,OTH,"OADX",DA)) Q:'+DA  D
 | 
|---|
 | 46 |  ...I D0=^SRF(SRTN,13,OTH,"OADX",DA,0) D  Q
 | 
|---|
 | 47 |  ....D KOADX(SRTN,OTH)
 | 
|---|
 | 48 |  M Y=SRYBAK S X=SRXBAK
 | 
|---|
 | 49 |  Q
 | 
|---|
 | 50 | MSG Q:$D(SRFLG)
 | 
|---|
 | 51 |  Q:'$D(EMILY)
 | 
|---|
 | 52 |  D SRCMSG^SROADX1
 | 
|---|
 | 53 |  D SRCWRT^SROADX1
 | 
|---|
 | 54 |  Q
 | 
|---|
 | 55 | PRLOOP(SRCHK) N SRDX,SRMATCH S (SRDX,SRMATCH)=0
 | 
|---|
 | 56 |  F SRI=1:1 S SRDX=$O(^SRF(SRTN,"PADX",SRDX)) Q:'SRDX  D
 | 
|---|
 | 57 |  .I (D0=^SRF(SRTN,"PADX",SRDX,0))!($G(DA)=^SRF(SRTN,"PADX",SRDX,0)) S SRMATCH=1 Q
 | 
|---|
 | 58 |  I SRMATCH,'SRCHK D KPADX(SRTN)
 | 
|---|
 | 59 |  Q SRMATCH
 | 
|---|
 | 60 | OTLOOP(SRCHK) N SRDA,OTH,SRMATCH S (OTH,SRMATCH)=0
 | 
|---|
 | 61 |  F  S OTH=$O(^SRF(SRTN,13,OTH)) Q:'OTH  D
 | 
|---|
 | 62 |  .S SRDA=0
 | 
|---|
 | 63 |  .F  S SRDA=$O(^SRF(SRTN,13,OTH,"OADX",SRDA)) Q:'+SRDA  D
 | 
|---|
 | 64 |  ..I (D0=^SRF(SRTN,13,OTH,"OADX",SRDA,0))!($G(DA)=^SRF(SRTN,13,OTH,"OADX",SRDA,0)) D  Q
 | 
|---|
 | 65 |  ...I 'SRCHK D KOADX(SRTN,SRDA)
 | 
|---|
 | 66 |  ...S SRMATCH=1
 | 
|---|
 | 67 |  Q SRMATCH
 | 
|---|
 | 68 | DELASOC N DIR,Y,SRPR,SROT,SRXBAK
 | 
|---|
 | 69 |  S:'$D(SRTN)&$D(DA(1)) SRTN=DA(1)
 | 
|---|
 | 70 |  S:'$D(SRTN)&'$D(DA(1)) SRTN=DA
 | 
|---|
 | 71 |  I $D(^TMP($J,"SRASOC",SRTN)) K ^TMP($J,"SRASOC",SRTN) Q
 | 
|---|
 | 72 |  Q:$G(D0)=""
 | 
|---|
 | 73 |  S SRPR=$$PRLOOP(1),SROT=$$OTLOOP(1),SRXBAK=X
 | 
|---|
 | 74 |  I 'SRPR,'SROT Q
 | 
|---|
 | 75 |  S DIR(0)="FO",DIR("A")="Procedure Associations for this Diagnosis will be deleted. Continue"
 | 
|---|
 | 76 |  D ^DIR
 | 
|---|
 | 77 |  S SRPR=$$PRLOOP(0),SROT=$$OTLOOP(0)
 | 
|---|
 | 78 |  S X=SRXBAK
 | 
|---|
 | 79 |  Q
 | 
|---|
 | 80 | PRINASO(SRCODE) Q:$G(SRTN)=""!($G(X)="")
 | 
|---|
 | 81 |  N D0 S D0=0  D PDXCHK(SRCODE) K SRCODE Q
 | 
|---|
 | 82 | PRINASOD Q:$G(SRTN)=""!($G(X)="")
 | 
|---|
 | 83 |  I $D(^TMP($J,"SRASOC",SRTN)) K ^TMP($J,"SRASOC",SRTN) Q
 | 
|---|
 | 84 |  N D0 S D0=0  D DELASOC Q
 | 
|---|
 | 85 | PCPTASO(SRCODE) Q:$G(SRTN)=""!($G(X)="")
 | 
|---|
 | 86 |  I $G(D0)=""!('+$G(X)&(SRCODE))!('$D(^SRF(SRTN,"PADX"))) Q
 | 
|---|
 | 87 |  D:$$EDITWARN(SRCODE) KPADX(SRTN)
 | 
|---|
 | 88 |  K SRCODE
 | 
|---|
 | 89 |  Q
 | 
|---|
 | 90 | OCPTASO(SRCODE) Q:$G(SRTN)=""!($G(DA)="")!($G(X)="")
 | 
|---|
 | 91 |  I $G(D0)=""!('+$G(X)&(SRCODE))!('$D(^SRF(SRTN,13,DA,"OADX",0))) Q
 | 
|---|
 | 92 |  D:$$EDITWARN(SRCODE) KOADX(SRTN,DA)
 | 
|---|
 | 93 |  K SRCODE
 | 
|---|
 | 94 |  Q
 | 
|---|
 | 95 | EDITWARN(SRCODE) N SRYBAK,SRXBAK,DIR,SRY
 | 
|---|
 | 96 |  M SRYBAK=Y,SRDABAK=DA
 | 
|---|
 | 97 |  S DIR(0)="Y",DIR("B")="NO",SRXBAK=X,SRQUIT=0
 | 
|---|
 | 98 |  S DIR("A",1)="The Diagnosis to Procedure Associations may no longer be correct."
 | 
|---|
 | 99 |  I SRCODE D
 | 
|---|
 | 100 |  .I $P(XQY0,U)'="SROVER"&($P(XQY0,U)'="SRCODING EDIT") S DIR("A",2)="Please update the Associations in the PHYSICIAN'S VERIFY menu."
 | 
|---|
 | 101 |  .S DIR("A")="Delete Diagnosis Associations for this Procedure"
 | 
|---|
 | 102 |  .D ^DIR
 | 
|---|
 | 103 |  I 'SRCODE D
 | 
|---|
 | 104 |  .S DIR("A")="All DX Associations for this Procedure will be deleted. Continue"
 | 
|---|
 | 105 |  .D ^DIR
 | 
|---|
 | 106 |  .S:'Y SRXBAK=SRYBAK
 | 
|---|
 | 107 |  S X=SRXBAK,SRY=Y
 | 
|---|
 | 108 |  M Y=SRYBAK,DA=SRDABAK
 | 
|---|
 | 109 |  W !!
 | 
|---|
 | 110 |  Q SRY
 | 
|---|
 | 111 | KPADX(SRCN) ; kill all the principal cpt associated diagnosis codes
 | 
|---|
 | 112 |  N DA,DIK,SRX1,Y,SRXBAK
 | 
|---|
 | 113 |  S SRX1=0,DA(1)=SRCN,SRXBAK=X
 | 
|---|
 | 114 |  F  S SRX1=$O(^SRF(DA(1),"PADX",SRX1)) Q:'SRX1  D
 | 
|---|
 | 115 |  .S DA=SRX1,DA(1)=SRCN,DIK="^SRF("_DA(1)_",""PADX""," D ^DIK
 | 
|---|
 | 116 |  S X=SRXBAK
 | 
|---|
 | 117 |  Q
 | 
|---|
 | 118 | KOADX(SRCN,SRREC) ; kill other cpt associated diagnosis codes
 | 
|---|
 | 119 |  N DA,DIK,SRX1,Y,SRXBAK
 | 
|---|
 | 120 |  S SRX1=0,DA(2)=SRCN,SRXBAK=X
 | 
|---|
 | 121 |  F  S SRX1=$O(^SRF(DA(2),13,SRREC,"OADX",SRX1)) Q:'SRX1  D
 | 
|---|
 | 122 |  .S DA=SRX1,DA(1)=SRREC,DA(2)=SRCN,DIK="^SRF("_DA(2)_",13,"_DA(1)_",""OADX""," D ^DIK
 | 
|---|
 | 123 |  S X=SRXBAK
 | 
|---|
 | 124 |  Q
 | 
|---|
 | 125 | ADXCHK ; check the validity of associations and remove if diagnosis missing
 | 
|---|
 | 126 |  N SRDX,SRX,SRY,SRZ
 | 
|---|
 | 127 |  S SRDX=0
 | 
|---|
 | 128 |  I $D(^SRF(SRTN,13)) S SRX=0 D
 | 
|---|
 | 129 |  .F  S SRX=$O(^SRF(SRTN,13,SRX)) Q:'SRX  D
 | 
|---|
 | 130 |  ..I $D(^SRF(SRTN,13,SRX,"OADX")) S SRY=0 D
 | 
|---|
 | 131 |  ...F  S SRY=$O(^SRF(SRTN,13,SRX,"OADX",SRY)) Q:'SRY  D
 | 
|---|
 | 132 |  ....S SRDX=^SRF(SRTN,13,SRX,"OADX",SRY,0)
 | 
|---|
 | 133 |  ....I (SRDX'=0),'$D(^SRF(SRTN,15,SRDX,0)) D KOADX(SRTN,SRX)
 | 
|---|
 | 134 |  ....I (SRDX=0),($P($G(^SRF(SRTN,34)),U)=""),('$P($G(^SRF(SRTN,34)),U,2)) D KOADX(SRTN,SRX)
 | 
|---|
 | 135 |  I $D(^SRF(SRTN,"PADX")) S SRX=0 D
 | 
|---|
 | 136 |  .F  S SRX=$O(^SRF(SRTN,"PADX",SRX)) Q:'SRX  D
 | 
|---|
 | 137 |  ..S SRDX=^SRF(SRTN,"PADX",SRX,0)
 | 
|---|
 | 138 |  ..I (SRDX'=0),'$D(^SRF(SRTN,15,SRDX,0)) D KPADX(SRTN)
 | 
|---|
 | 139 |  I $O(^SRF(SRTN,"PADX",0)),(($P($G(^SRF(SRTN,34)),U)="")&('$P($G(^SRF(SRTN,34)),U,2)))!(($P($G(^SRF(SRTN,"OP")),U)="")&('$P($G(^SRF(SRTN,"OP")),U,2))) D KPADX(SRTN)
 | 
|---|
 | 140 |  Q
 | 
|---|