| 1 | SROCDX2 ;BIR/ADM - ASSOCIATED DIAGNOSIS CODING UTILITIES ;07/27/05
 | 
|---|
| 2 |  ;;3.0; Surgery ;**142**;24 Jun 93
 | 
|---|
| 3 | PRLOOP(SRCHK) N SRDX,SRMATCH,SRXX S (SRDX,SRMATCH)=0,SRXX=X
 | 
|---|
| 4 |  F SRI=1:1 S SRDX=$O(^SRO(136,SRTN,2,SRDX)) Q:'SRDX  D
 | 
|---|
| 5 |  .I X=^SRO(136,SRTN,2,SRDX,0) D
 | 
|---|
| 6 |  ..I 'SRCHK D KPADX(SRTN,SRDX) S X=SRXX
 | 
|---|
| 7 |  ..S:$G(SRNEW) ^SRO(136,SRTN,2,SRDX,0)=SRNEW
 | 
|---|
| 8 |  ..S SRMATCH=1
 | 
|---|
| 9 |  Q SRMATCH
 | 
|---|
| 10 | OTLOOP(SRCHK) N SRDA,OTH,SRMATCH,SRXX S (OTH,SRMATCH)=0,SRXX=X
 | 
|---|
| 11 |  F  S OTH=$O(^SRO(136,SRTN,3,OTH)) Q:'OTH  D
 | 
|---|
| 12 |  .S SRDA=0 F  S SRDA=$O(^SRO(136,SRTN,3,OTH,2,SRDA)) Q:'+SRDA  D
 | 
|---|
| 13 |  ..I X=^SRO(136,SRTN,3,OTH,2,SRDA,0) D  Q
 | 
|---|
| 14 |  ...I 'SRCHK D KOADX(SRTN,OTH,SRDA) S X=SRXX
 | 
|---|
| 15 |  ...S:$G(SRNEW) ^SRO(136,SRTN,3,OTH,2,SRDA,0)=SRNEW
 | 
|---|
| 16 |  ...S SRMATCH=1
 | 
|---|
| 17 |  Q SRMATCH
 | 
|---|
| 18 | DELASOC N DIR,Y,SRPR,SROT,SRXBAK
 | 
|---|
| 19 |  Q:$G(X)=""  S SRXBAK=X
 | 
|---|
| 20 |  S:'$D(SRTN)&$D(DA(1)) SRTN=DA(1) S:'$D(SRTN)&'$D(DA(1)) SRTN=DA
 | 
|---|
| 21 |  S SRPR=$$PRLOOP(1),SROT=$$OTLOOP(1)
 | 
|---|
| 22 |  I 'SRPR,'SROT Q
 | 
|---|
| 23 |  S X=SRXBAK,SRPR=$$PRLOOP(0),SROT=$$OTLOOP(0)
 | 
|---|
| 24 |  Q
 | 
|---|
| 25 | PRINASOD Q:$G(SRTN)=""!($G(X)="")
 | 
|---|
| 26 |  N D0 S D0=0  D DELASOC
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 | SCOND(X1,X2) ; set condition for ADXP x-ref
 | 
|---|
| 29 |  N SRDO S SRDO=0
 | 
|---|
| 30 |  I X1(1)'="",X1(1)'=X2(1) S SRDO=1
 | 
|---|
| 31 |  Q SRDO
 | 
|---|
| 32 | KCOND(X1,X2) ; kill condition for ADXP x-ref
 | 
|---|
| 33 |  N SRDO S SRDO=0
 | 
|---|
| 34 |  I X2(1)="" S SRDO=1
 | 
|---|
| 35 |  Q SRDO
 | 
|---|
| 36 | SADXP ; ADXP x-ref set logic
 | 
|---|
| 37 |  N DIR,Y
 | 
|---|
| 38 |  I '$O(^SRO(136,DA,2,0)) Q
 | 
|---|
| 39 |  S DIR("A",1)="",DIR("A",2)="The Diagnosis to Procedure Associations may no longer be correct.",DIR("A")="Delete all Principal Associated Diagnoses"
 | 
|---|
| 40 |  S DIR(0)="Y",DIR("B")="NO" D ^DIR I $D(DTOUT)!$D(DUOUT)!'Y Q
 | 
|---|
| 41 |  I Y D KADXP
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 | KADXP ; ADXP x-ref kill logic
 | 
|---|
| 44 |  N SRASSD,SRFDA,SRIENU,SRIENF,SRTN
 | 
|---|
| 45 |  S SRTN=DA D AT2 I $P(^SRO(136,SRTN,0),U,3) D
 | 
|---|
| 46 |  .S SRASSD=$P(^SRO(136,SRTN,0),U,3),SRFDA="136.02",SRIENU="+1"_","_SRTN_",",SRIENF=0_","_SRTN_"," D UPDATE^SROCDX1,FILE^SROCDX1
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 | AT2 ; delete principal associated diagnoses
 | 
|---|
| 49 |  N SRDA,SRJ,SRY
 | 
|---|
| 50 |  S SRDA=DA,SRJ=0 F  S SRJ=$O(^SRO(136,SRDA,2,SRJ)) Q:'SRJ  D
 | 
|---|
| 51 |  .S SRY(136.02,SRJ_","_SRDA_",",.01)="@" D FILE^DIE("","SRY")
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 | SADXO ; ADXO x-ref set logic
 | 
|---|
| 54 |  N DIR,Y
 | 
|---|
| 55 |  I '$O(^SRO(136,DA(1),3,DA,2,0)) Q
 | 
|---|
| 56 |  S DIR("A",1)="",DIR("A",2)="The Diagnosis to Procedure Associations may no longer be correct.",DIR("A")="Delete all Other Associated Diagnoses"
 | 
|---|
| 57 |  S DIR(0)="Y",DIR("B")="NO" D ^DIR I $D(DTOUT)!$D(DUOUT)!'Y Q
 | 
|---|
| 58 |  I Y D KADXO
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 | KADXO ; ADXO x-ref kill logic
 | 
|---|
| 61 |  N SRDA,SRJ,SRY
 | 
|---|
| 62 |  S SRDA=DA,SRDA(1)=DA(1),SRJ=0 F  S SRJ=$O(^SRO(136,SRDA(1),3,SRDA,2,SRJ)) Q:'SRJ  D
 | 
|---|
| 63 |  .S SRY(136.32,SRJ_","_SRDA_","_SRDA(1)_",",.01)="@" D FILE^DIE("","SRY")
 | 
|---|
| 64 |  Q
 | 
|---|
| 65 | KPADX(SRCN,SRPDA) ; kill all the principal cpt associated diagnosis codes
 | 
|---|
| 66 |  N DA,DIK,SRX1,Y
 | 
|---|
| 67 |  S SRX1=0,DA(1)=SRCN
 | 
|---|
| 68 |  I '$G(SRPDA) F  S SRX1=$O(^SRO(136,DA(1),2,SRX1)) Q:'SRX1  D
 | 
|---|
| 69 |  .S DA=SRX1,DA(1)=SRCN,DIK="^SRO(136,"_DA(1)_",2," D ^DIK
 | 
|---|
| 70 |  Q:'$G(SRPDA)
 | 
|---|
| 71 |  S DA=SRPDA,DA(1)=SRCN,DIK="^SRO(136,"_DA(1)_",2," D ^DIK
 | 
|---|
| 72 |  Q
 | 
|---|
| 73 | KOADX(SRCN,SRREC,SRPDA) ; kill other cpt associated diagnosis codes
 | 
|---|
| 74 |  N DA,DIK,SRX1,Y
 | 
|---|
| 75 |  S SRX1=0,DA(2)=SRCN
 | 
|---|
| 76 |  I '$G(SRPDA) F  S SRX1=$O(^SRO(136,DA(2),3,SRREC,2,SRX1)) Q:'SRX1  D
 | 
|---|
| 77 |  .S DA=SRX1,DA(1)=SRREC,DA(2)=SRCN,DIK="^SRO(136,"_DA(2)_",3,"_DA(1)_",2," D ^DIK
 | 
|---|
| 78 |  Q:'$G(SRPDA)
 | 
|---|
| 79 |  S DA=SRPDA,DA(1)=SRREC,DA(2)=SRCN,DIK="^SRO(136,"_DA(2)_",3,"_DA(1)_",2," D ^DIK
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 | DELWRN N SRC
 | 
|---|
| 82 |  S SRC(1)="This case cannot be sent to PCE until all procedures have at",SRC(1,"F")="!!?3"
 | 
|---|
| 83 |  S SRC(2)="least one associated diagnosis code entered.",SRC(2,"F")="!?3"
 | 
|---|
| 84 |  D EN^DDIOL(.SRC)
 | 
|---|
| 85 |  Q
 | 
|---|