| [613] | 1 | IBDFN4 ;ALB/CJM - ENCOUNTER FORM - (entry points for selection routines);5/21/93
 | 
|---|
 | 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;**38,51**;APR 24, 1997
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | CPT ;select ambulatory procedures
 | 
|---|
 | 5 |  N NAME,CODE,SCREEN,IBDESCR,IBDESCLG,QUIT
 | 
|---|
 | 6 |  S QUIT=0
 | 
|---|
 | 7 |  ;;I '$D(@IBARY@("SCREEN")) D CPTSCRN Q:QUIT
 | 
|---|
 | 8 |  ;;E  S SCREEN=$G(@IBARY@("SCREEN"))
 | 
|---|
 | 9 |  S SCREEN="I $P($$CPT^ICPTCOD(Y),U,7)=1" ;List only active codes
 | 
|---|
 | 10 |  K DIC S DIC=81,DIC(0)="AEMQZ",DIC("S")=SCREEN
 | 
|---|
 | 11 |  I $D(^ICPT) D ^DIC K DIC I +Y>0 D
 | 
|---|
 | 12 |  .;;change to api cpt;dhh
 | 
|---|
 | 13 |  .S CODE=$P(Y(0),U)
 | 
|---|
 | 14 |  .S CODE=$$CPT^ICPTCOD(CODE)
 | 
|---|
 | 15 |  .I +CODE=-1 K @IBARY Q
 | 
|---|
 | 16 |  .S NAME=$P(CODE,"^",3)
 | 
|---|
 | 17 |  .S IBDESCLG=$$CPTD^ICPTCOD(+CODE,.IBCPTD)
 | 
|---|
 | 18 |  .S IBDESCR=$G(IBCPTD(1))_" "_$G(IBCPTD(2))
 | 
|---|
 | 19 |  .S @IBARY=$P(CODE,"^",2)_"^"_NAME_"^"_IBDESCR
 | 
|---|
 | 20 |  E  K @IBARY ;kill either if file doesn't exist or nothing chosen
 | 
|---|
 | 21 |  Q
 | 
|---|
 | 22 | CPTSCRN ;This code is probably not called, but will modify to be safe.
 | 
|---|
 | 23 |  ;;S SCREEN="I '$P(^(0),U,4)"
 | 
|---|
 | 24 |  S SCREEN="I $P($$CPT^ICPTCOD(Y),U,7)=1"
 | 
|---|
 | 25 |  ;
 | 
|---|
 | 26 |  ;don't ask the user about categories - it doesn't work well 
 | 
|---|
 | 27 |  ;K DIR S DIR(0)="YA",DIR("A")="Do you want to select a CPT from a particular CPT category? ",DIR("?")="Answer YES if you want to screen out all CPT codes that do not belong to a particular category",DIR("B")="NO"
 | 
|---|
 | 28 |  ;I $D(^DIC(81.1)) D ^DIR K DIR S:$D(DIRUT) QUIT=1 Q:$D(DIRUT)  I +Y D
 | 
|---|
 | 29 |  ;.K DIC S DIC="81.1",DIC(0)="AEQ",DIC("S")="I $P(^(0),U,2)=""m"""
 | 
|---|
 | 30 |  ;.D ^DIC K DIC I +Y>0 S SCREEN=SCREEN_",$P($G(^DIC(81.1,+$P(^(0),U,3),0)),U,3)="_+Y
 | 
|---|
 | 31 |  S @IBARY@("SCREEN")=SCREEN
 | 
|---|
 | 32 |  Q
 | 
|---|
 | 33 |  ;
 | 
|---|
 | 34 | ICD9 ;select ICD-9 codes
 | 
|---|
 | 35 |  N IBDX,CODE,SCREEN,IBDESCR,QUIT
 | 
|---|
 | 36 |  S QUIT=0
 | 
|---|
 | 37 |  ;;I $D(@IBARY@("SCREEN")) S SCREEN=$G(@IBARY@("SCREEN"))
 | 
|---|
 | 38 |  ;;E  D ICD9SCRN Q:QUIT
 | 
|---|
 | 39 |  S SCREEN="I $P($$ICDDX^ICDCODE(Y),U,10)=1" ;List only active codes
 | 
|---|
 | 40 |  S DIC=80,DIC(0)="AEMQZI",DIC("S")=SCREEN
 | 
|---|
 | 41 |  I $D(^ICD9) D ^DIC K DIC I +Y>0 D
 | 
|---|
 | 42 |  .S CODE=$P(Y(0),U),IBDX=$P(Y(0),U,3),IBDESCR=$P($G(^ICD9(+Y,1)),"^")
 | 
|---|
 | 43 |  .S @IBARY=CODE_"^"_IBDX_"^"_IBDESCR
 | 
|---|
 | 44 |  E  K @IBARY ;kill if either file doesn't exist or nothing chosen - this is how to let the encounter form utilities know nothing was selected
 | 
|---|
 | 45 |  Q
 | 
|---|
 | 46 | ICD9SCRN ;This code is probably not called, but will modify to be safe.
 | 
|---|
 | 47 |  ;;S SCREEN="I '$P(^(0),U,9)"
 | 
|---|
 | 48 |  S SCREEN="I $P($$ICDDX^ICDCODE(Y),U,10)=1"
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 |  ;don't ask the user about categories - it doesn't work well 
 | 
|---|
 | 51 |  ;K DIR S DIR(0)="YA",DIR("A")="Do you want to select an ICD diagnosis from a particular diagnostic category? ",DIR("B")="NO"
 | 
|---|
 | 52 |  ;S DIR("?")="Answer YES if you want to screen out all diagnosis codes that do not belong to a particular category"
 | 
|---|
 | 53 |  ;I $D(^DIC(80.3)) D ^DIR K DIR S:$D(DIRUT) QUIT=1 Q:$D(DIRUT)  I +Y D
 | 
|---|
 | 54 |  ;.K DIC S DIC="80.3",DIC(0)="AEQ"
 | 
|---|
 | 55 |  ;.D ^DIC K DIC I +Y>0 S SCREEN=SCREEN_",+$P(^(0),U,5)="_+Y
 | 
|---|
 | 56 |  S @IBARY@("SCREEN")=SCREEN
 | 
|---|
 | 57 |  Q
 | 
|---|
 | 58 | NULL ;returns NOTHING for selection
 | 
|---|
 | 59 |  S @IBARY=""
 | 
|---|
 | 60 |  Q
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 | VSIT ; -- Select only visit cpt codes
 | 
|---|
 | 63 |  N NAME,CODE,IBDESCR,QUIT,DIC,X,Y,IBHDR,IBTXT
 | 
|---|
 | 64 |  S QUIT=0
 | 
|---|
 | 65 |  ;
 | 
|---|
 | 66 |  ;;S DIC="^IBE(357.69,",DIC(0)="AEMQZ",DIC("S")="I '$P(^(0),U,4)"
 | 
|---|
 | 67 |  S DIC="^IBE(357.69,",DIC(0)="AEMQZ"
 | 
|---|
 | 68 |  S DIC("S")="I $P($$CPT^ICPTCOD(Y),U,7)=1" ;List only active codes
 | 
|---|
 | 69 |  D ^DIC K DIC I +Y>0 D
 | 
|---|
 | 70 |  .;;----change to api cpt;dhh
 | 
|---|
 | 71 |  .S CODE=$P(Y(0),U),IBHDR=$P(Y(0),U,2),IBTXT=$P(Y(0),U,3)
 | 
|---|
 | 72 |  .S NODE=$$CPT^ICPTCOD(CODE)
 | 
|---|
 | 73 |  .I +NODE=-1 S IBSNM="" Q
 | 
|---|
 | 74 |  .S IBSNM=$P(NODE,U,3)
 | 
|---|
 | 75 |  .S @IBARY=CODE_"^"_IBTXT_"^"_IBHDR_"^"_IBSNM
 | 
|---|
 | 76 |  E  K @IBARY ;kill if nothing chosen
 | 
|---|
 | 77 |  Q
 | 
|---|
 | 78 |  ;
 | 
|---|
 | 79 | PRVDR ;for selecting provider
 | 
|---|
 | 80 |  D GETPRO^IBDF18B(IBCLINIC,IBARY)
 | 
|---|
 | 81 |  Q
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 | IBPFID ;for printing the form # assigned by form tracking
 | 
|---|
 | 84 |  S @IBARY=$G(IBPFID)
 | 
|---|
 | 85 |  Q
 | 
|---|
 | 86 |  ;
 | 
|---|
 | 87 | PCPR ; -- get primary care provider for a patient
 | 
|---|
 | 88 |  S @IBARY=$P($$OUTPTPR^SDUTL3(DFN,DT),"^",2)
 | 
|---|
 | 89 |  Q
 | 
|---|
 | 90 |  ;
 | 
|---|
 | 91 | PCTM ; -- get primary care team for a patient
 | 
|---|
 | 92 |  S @IBARY=$P($$OUTPTTM^SDUTL3(DFN,DT),"^",2)
 | 
|---|
 | 93 |  Q
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 | SCCOND ; -- display sc conditions
 | 
|---|
 | 96 |  Q:'$G(DFN)
 | 
|---|
 | 97 |  D DIS^DGRPDB
 | 
|---|
 | 98 |  W !
 | 
|---|
 | 99 |  Q
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 |  ;
 | 
|---|
 | 102 | CPTMOD ;- Select active CPT Modifiers
 | 
|---|
 | 103 |  ;- (used in selecting CPT Modifier(s) when creating the CPT Modifier
 | 
|---|
 | 104 |  ;   Display ToolKit Block)
 | 
|---|
 | 105 |  ;
 | 
|---|
 | 106 |  N CODE,DIC,NAME,SCREEN
 | 
|---|
 | 107 |  Q:$G(IBARY)=""
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 |  ;- Screen out inactive CPT modifiers
 | 
|---|
 | 110 |  ;;S SCREEN="I '$P(^(0),U,5)"
 | 
|---|
 | 111 |  ;;I '$D(@IBARY@("SCREEN")) S @IBARY@("SCREEN")=SCREEN
 | 
|---|
 | 112 |  ;
 | 
|---|
 | 113 |  ;List only active modifiers
 | 
|---|
 | 114 |  S SCREEN="I $P($$MOD^ICPTMOD(Y,""I""),U,7)=1"
 | 
|---|
 | 115 |  S DIC=81.3
 | 
|---|
 | 116 |  S DIC(0)="AEMQZ"
 | 
|---|
 | 117 |  S DIC("S")=SCREEN
 | 
|---|
 | 118 |  D ^DIC
 | 
|---|
 | 119 |  I +Y>0 D
 | 
|---|
 | 120 |  . ;- Use first 35 chars of modifier description
 | 
|---|
 | 121 |  . S CODE=$P(Y(0),"^"),NAME=$E($P(Y(0),"^",2),1,35)
 | 
|---|
 | 122 |  . S @IBARY=CODE_"^"_NAME
 | 
|---|
 | 123 |  ;
 | 
|---|
 | 124 |  ;- Kill if file doesn't exist or nothing chosen
 | 
|---|
 | 125 |  E  K @IBARY
 | 
|---|
 | 126 |  Q
 | 
|---|