Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: SROCDX1

SROCDX1.m

Go to the documentation of this file.
  1. SROCDX1 ;BIR/ADM,BAJ - ASSOCIATED DIAGNOSIS FOR CODER SCREENS ; 4/17/07 11:04am
  1. ;;3.0;Surgery;**142,161,177**;24 Jun 93;Build 89
  1. OTHADX ;Display ASDX for OTHER PROCS
  1. N SRTMP,SRASSD,SROICD
  1. S SRPADX=0,SROCNTR=1 F SRI=1:1 S SRPADX=$O(^SRO(136,SRTN,3,OTH,2,SRPADX)) Q:'SRPADX D
  1. .S SRICD9=^SRO(136,SRTN,3,OTH,2,SRPADX,0)
  1. .S:SRICD9 SROICD=$$ICDSTR
  1. .S SRTMP(SRI)=SROICD,SROCNTR=SROCNTR+1
  1. S SROCNTR=0
  1. D ADXDISP I '$O(^SRO(136,SRTN,3,OTH,2,0)) W "NOT ENTERED",!
  1. D PASSDIAG,ASSDIAG
  1. Q
  1. ASDX ;Display ASDX for PRIN Procs
  1. N SRI,SRFIRST,SRICD9,SRPRIN,SRPADX,SRASSD K SRTMP
  1. S SRI=0,SRFIRST=1 F S SRI=$O(^SRO(136,SRTN,1,SRI)) Q:'SRI S SRM=$P(^SRO(136,SRTN,1,SRI,0),U)
  1. S SRPADX=0,SROCNTR=2 F SRI=1:1 S SRPADX=$O(^SRO(136,SRTN,2,SRPADX)) Q:'SRPADX D
  1. .S SRICD9=^SRO(136,SRTN,2,SRPADX,0) Q:'SRICD9
  1. .S:SRICD9 SROICD=$$ICDSTR
  1. .S SRTMP(SRI)=$G(SROICD),SROCNTR=$G(SROCNTR)+1
  1. D ADXDISP I '$O(^SRO(136,SRTN,2,0)) W !,?5,SRMSG
  1. D PASSDIAG,ASSDIAG
  1. Q
  1. AASDX S SROICD=""
  1. S:SRASSD SRICD9=$P($G(^SRO(136,SRTN,4,SRASSD,0)),U)
  1. S:'SRASSD SRICD9=$P($G(^SRO(136,SRTN,0)),U,3)
  1. S:SRICD9 SROICD=$$ICDSTR
  1. Q
  1. PASSDIAG N ADCNT,SRICD9,SRFLG,SRCNTR,SRASSD ;List PRIN DX to assoc.
  1. K SRADX,SRDIRX,SRADIAG S SRICD9=$P($G(^SRO(136,SRTN,0)),U,3)
  1. I SRICD9'="" S SRDIRX(1)=$$ICDSTR,SRADX(1)=$P(SRDIRX(1),U,2),SRADIAG(1)=$P($G(^SRO(136,SRTN,0)),U,3)
  1. I SRICD9="" S SRDIRX(1)="",SRADIAG(1)=""
  1. Q
  1. ASSDIAG N SRDCNT,SRADCNT,SRQ ;DXs for assoc.
  1. S (ADCNT,SRASSD)=0 S SRCNT=$S($G(SRDIRX(1))'="":1,1:0)
  1. F S ADCNT=$O(^SRO(136,SRTN,4,ADCNT)) Q:ADCNT="" D
  1. .S SRICD9=$P(^SRO(136,SRTN,4,ADCNT,0),U)
  1. .S:SRICD9'="" SRCNT=SRCNT+1,SRDIRX(SRCNT)=$$ICDSTR,SRADX(SRCNT)=$P(SRDIRX(SRCNT),U,2)
  1. .S:SRICD9="" SRDIRX(SRCNT)=$P(^SRO(136,SRTN,4,ADCNT,0),U)
  1. .S SRADIAG(SRCNT)=$P(^SRO(136,SRTN,4,ADCNT,0),U)
  1. ;modified to use 1 as lower limit, SRCNT as upper (SRO*3.0*161)
  1. S:$D(SRDIRX) SRDX2="LO^1:"_SRCNT
  1. Q
  1. SRDIAGS() N SRDIAGS,SRDGCNT
  1. S (SRDIAGS,SRDGCNT)=0 S:$D(^SRF(SRTN,34)) SRDIAGS=1
  1. F I=1:1 S SRDGCNT=$O(^SRF(SRTN,15,SRDGCNT)) Q:SRDGCNT="" S SRDIAGS=SRDIAGS+1
  1. Q SRDIAGS
  1. ICDSTR() N SRICDSTR
  1. S SRICDSTR=$$ICD^SROICD(SRTN,SRICD9),SRICDSTR=$P(SRICDSTR,U,2)_"-"_$P(SRICDSTR,U,4)
  1. Q SRICDSTR
  1. PASSDS() N SRDX,SRI,SRJ,SRPADX,SRASSDS,SRPX
  1. S SRASSDS="",SRPADX=0 F S SRPADX=$O(^SRO(136,SRTN,2,SRPADX)) Q:'SRPADX D
  1. .S SRDX=$P(^SRO(136,SRTN,2,SRPADX,0),"^")
  1. .S SRJ=0 F S SRJ=$O(SRADIAG(SRJ)) Q:'SRJ I SRADIAG(SRJ)=SRDX S SRPX=SRJ Q
  1. .S SRASSDS=$S($L(SRASSDS)<1:SRPX,1:SRASSDS_","_SRPX)
  1. Q SRASSDS
  1. OASSDS() N SRDX,SRI,SRJ,SRPADX,SRASSDS,SRPX
  1. S SRASSDS="",SRPADX=0 F S SRPADX=$O(^SRO(136,SRTN,3,SRPOTH,2,SRPADX)) Q:'SRPADX D
  1. .S SRDX=$P(^SRO(136,SRTN,3,SRPOTH,2,SRPADX,0),"^")
  1. .S SRJ=0 F S SRJ=$O(SRADIAG(SRJ)) Q:'SRJ I SRADIAG(SRJ)=SRDX S SRPX=SRJ Q
  1. .S SRASSDS=$S($L(SRASSDS)<1:SRPX,1:SRASSDS_","_SRPX)
  1. Q SRASSDS
  1. OTHADXD N SRCOMMA,SROADX,SRICD9,SROADX1,SROODX,SRASSD,SRSUB ;OTHER PROCS ADXs
  1. I '$O(^SRO(136,SRTN,3,OTH,2,0)) W !,?5,SRMSG Q
  1. S SRSUB=1 D OTHADX
  1. Q
  1. PADXD N SRCOMMA,SRPADX,SRICD9,SRPDX,SRPDX1,SROPRIN,SRSUB
  1. S SRPADX=0,SROCNTR=2,SRSUB=1
  1. I '$O(^SRO(136,SRTN,2,0)),$P(^SRO(136,SRTN,0),U,3) D
  1. .S SRASSD=$P(^SRO(136,SRTN,0),U,3),SRFDA="136.02",SRIENU="+1"_","_SRTN_",",SRIENF=0_","_SRTN_"," D UPDATE,FILE
  1. D ASDX
  1. Q
  1. ADXDISP N SROCNTR ;ADXS for PROC
  1. W !,?5,"Assoc. DX"_$$ICDSTR^SROICD(SRTN)_": " N SRFIRST
  1. S (SROCNTR,SRDXCNT)=0,SRFIRST=1
  1. F I=1:1 S SROCNTR=$O(SRTMP(SROCNTR)) Q:'SROCNTR D
  1. .I $D(SRSUB) D
  1. ..W:'(I#2) ?48 W:I#2 ?16 W $E(SRTMP(SROCNTR),1,28)
  1. ..I '(I#2),($O(SRTMP(SROCNTR))) W !
  1. .I '$D(SRSUB) W:'SRFIRST ! W ?16,$E(SRTMP(SROCNTR),1,28) S SRFIRST=0
  1. S SRDXCNT=I,SRDX1="LO^:"_SRDXCNT S:SRDXCNT>0 SRDX1="LO^:"_SRDXCNT
  1. Q
  1. PADD1 ;PRIN ADX
  1. N SRY,SRY0,SRY1,SRY2,SRC,REC,DIE,DA,DR,SRASSD
  1. S SRY(0)=Y(0)
  1. D KPADX^SROCDX2(SRTN)
  1. S SRCNTR=0,SRASSD=SRADIAG($P(SRY(0),",",1)),SRFDA="136.02",SRIENU="+1"_","_SRTN_",",SRIENF=SRCNTR_","_SRTN_"," D UPDATE,FILE
  1. S SRY(0)=$E(SRY(0),2,$L(SRY(0)))
  1. F SRY2=1:1:$P(SRDX2,":",2) D
  1. .S SRY0=$P(SRY(0),",",SRY2)
  1. .Q:SRY0<1
  1. .S SRCNTR=$P(^SRO(136,SRTN,2,0),U,3)+1,SRASSD=SRADIAG(SRY0),SRFDA="136.02",SRIENU="+1"_","_SRTN_",",SRIENF=SRCNTR_","_SRTN_"," D UPDATE,FILE
  1. S Y(0)=SRY(0)
  1. Q
  1. OADD1 N SRY,SRY0,SRY1,SRY2,SRCNTR,SRASSD ;Associate 1 Diagnosis to OTHER Procedure
  1. S SRY(0)=Y(0),SRCNTR=0
  1. S:$D(^SRO(136,SRTN,3,OTH,2)) SRCNTR=$P(^SRO(136,SRTN,3,OTH,2,0),U,3)+1
  1. D KOADX^SROCDX2(SRTN,OTH)
  1. S:'$D(^SRO(136,SRTN,3,OTH,2)) SRCNTR=1
  1. S SRFDA="136.32",SRIENU="+1"_","_OTH_","_SRTN_","
  1. F SRY2=1:1:$P(SRDX2,":",2) D
  1. .S SRY0=$P(SRY(0),",",SRY2)
  1. .Q:'SRY0
  1. .S SRASSD=SRADIAG(SRY0),SRIENF=SRCNTR_","_OTH_","_SRTN_"," K SRY1 D UPDATE,FILE
  1. .S SRCNTR=SRCNTR+1
  1. S Y(0)=SRY(0)
  1. Q
  1. UPDATE ;
  1. S SRY1(SRFDA,SRIENU,".01")=SRASSD
  1. D UPDATE^DIE("","SRY1")
  1. Q
  1. FILE ;
  1. S SRY1(SRFDA,SRIENF,".01")=SRASSD D FILE^DIE("","SRY1") K SRY1
  1. Q
  1. CONT N DIR S DIR(0)="FO^",DIR("A")="Press RETURN to continue " D ^DIR
  1. Q