| [613] | 1 | IBDFN12 ;ALB/CJM - ENCOUNTER FORM - SELECTORS;MAY 10, 1995
 | 
|---|
 | 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;**12,38,40,51**;APR 24, 1997
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | LOOKUP(FILE,SCREEN,X,NODE) ;
 | 
|---|
 | 5 |  ; -- lookup X in file using SCREEN
 | 
|---|
 | 6 |  ; -- kills X if lookup not successful, else sets X to the ien and returns NODE as the 0 node
 | 
|---|
 | 7 |  ; -- pass X and NODE by reference
 | 
|---|
 | 8 |  ;
 | 
|---|
 | 9 |  I +$G(FILE)<1 K X Q
 | 
|---|
 | 10 |  N Y
 | 
|---|
 | 11 |  S (NODE,Y)=""
 | 
|---|
 | 12 |  K DIC S DIC=FILE,DIC("S")=SCREEN
 | 
|---|
 | 13 |  S DIC(0)="EMQZ"
 | 
|---|
 | 14 |  I $D(^DIC(FILE)) D ^DIC K DIC
 | 
|---|
 | 15 |  I +Y>0 D
 | 
|---|
 | 16 |  .S X=Y,NODE=Y(0)
 | 
|---|
 | 17 |  E  K X
 | 
|---|
 | 18 |  Q
 | 
|---|
 | 19 |  ;
 | 
|---|
 | 20 | SLCTCPT(X) ;for CPT codes
 | 
|---|
 | 21 |  ;pass X by reference
 | 
|---|
 | 22 |  ;example of use: D SLCTCPT^IBDFN12(.X)
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 |  N NODE,SCRN
 | 
|---|
 | 25 |  ;;D LOOKUP(81,"I '$P(^(0),U,4)",.X,.NODE)
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  ;List only active code. (CSV)
 | 
|---|
 | 28 |  S SCRN="I $P($$CPT^ICPTCOD(Y),U,7)=1" ;Check status for CPT (CSV)
 | 
|---|
 | 29 |  D LOOKUP(81,SCRN,.X,.NODE)
 | 
|---|
 | 30 |  I $D(X) S IBLABEL=$P(NODE,"^",2),(IBID,X)=$P(NODE,"^",1)
 | 
|---|
 | 31 |  Q
 | 
|---|
 | 32 |  ;
 | 
|---|
 | 33 | SLCTDX(X) ;for ICD9 diagnosis codes
 | 
|---|
 | 34 |  ;pass X by reference
 | 
|---|
 | 35 |  ;example of use: D SLCTICD^IBDFN12(.X)
 | 
|---|
 | 36 |  ;
 | 
|---|
 | 37 |  N NODE,SCRN
 | 
|---|
 | 38 |  ;;D LOOKUP(80,"I '$P(^(0),U,9)",.X,.NODE)
 | 
|---|
 | 39 |  ;
 | 
|---|
 | 40 |  ;List only active code. (CSV)
 | 
|---|
 | 41 |  S SCRN="I $P($$ICDDX^ICDCODE(Y),U,10)=1" ;Check status for ICD (CSV)
 | 
|---|
 | 42 |  D LOOKUP(80,SCRN,.X,.NODE)
 | 
|---|
 | 43 |  I $D(X) S IBLABEL=$P(NODE,"^",3),(IBID,X)=$P(NODE,"^",1)
 | 
|---|
 | 44 |  Q
 | 
|---|
 | 45 |  ;
 | 
|---|
 | 46 | SLCTVST(X) ;for VISIT TYPE codes
 | 
|---|
 | 47 |  ;pass X by reference
 | 
|---|
 | 48 |  ;example of use: D SLCTVST^IBDFN12(.X)
 | 
|---|
 | 49 |  ;
 | 
|---|
 | 50 |  N NODE,SCREEN
 | 
|---|
 | 51 |  ;;D LOOKUP(357.69,"I '$P(^(0),U,4)",.X,.NODE)
 | 
|---|
 | 52 |  ;
 | 
|---|
 | 53 |  ;List only active code. (CSV)
 | 
|---|
 | 54 |  S SCRN="I $P($$CPT^ICPTCOD(Y),U,7)=1" ;Check status for CPT (CSV)
 | 
|---|
 | 55 |  D LOOKUP(357.69,SCRN,.X,.NODE)
 | 
|---|
 | 56 |  ;
 | 
|---|
 | 57 |  ;; --change to api cpt ; dhh
 | 
|---|
 | 58 |  I $G(X) S NODE=$$CPT^ICPTCOD(+NODE),NODE=$G(NODE),(IBID,X)=$P(NODE,"^",2),IBLABEL=$P(NODE,"^",3)
 | 
|---|
 | 59 |  Q
 | 
|---|
 | 60 |  ;
 | 
|---|
 | 61 | SLCTED(X) ;for Education Topics
 | 
|---|
 | 62 |  ;pass X by reference
 | 
|---|
 | 63 |  ;example of use: D SLCTED^IBDFN12(.X)
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 |  N NODE
 | 
|---|
 | 66 |  D LOOKUP(9999999.09,"",.X,.NODE)
 | 
|---|
 | 67 |  I $D(X) S IBLABEL=$P(NODE,"^"),IBID=+X,X=IBLABEL
 | 
|---|
 | 68 |  Q
 | 
|---|
 | 69 |  ;
 | 
|---|
 | 70 | SLCTIMM(X) ;for Immunizations
 | 
|---|
 | 71 |  ;pass X by reference
 | 
|---|
 | 72 |  ;example of use: D SLCTIMM^IBDFN12(.X)
 | 
|---|
 | 73 |  ;
 | 
|---|
 | 74 |  N NODE
 | 
|---|
 | 75 |  D LOOKUP(9999999.14,"",.X,.NODE)
 | 
|---|
 | 76 |  I $D(X) S IBLABEL=$P(NODE,"^",2),IBID=+X,X=IBLABEL
 | 
|---|
 | 77 |  Q
 | 
|---|
 | 78 |  ;
 | 
|---|
 | 79 | SLCTEX(X) ;for Exams
 | 
|---|
 | 80 |  ;pass X by reference
 | 
|---|
 | 81 |  ;example of use: D SLCTEX^IBDFN12(.X)
 | 
|---|
 | 82 |  ;
 | 
|---|
 | 83 |  N NODE
 | 
|---|
 | 84 |  D LOOKUP(9999999.15,"",.X,.NODE)
 | 
|---|
 | 85 |  I $D(X) S IBLABEL=$P(NODE,"^"),IBID=+X,X=IBLABEL
 | 
|---|
 | 86 |  Q
 | 
|---|
 | 87 |  ;
 | 
|---|
 | 88 | SLCTSKN(X) ;for Skin Tests
 | 
|---|
 | 89 |  ;pass X by reference
 | 
|---|
 | 90 |  ;example of use: D SLCTSKN^IBDFN12(.X)
 | 
|---|
 | 91 |  ;
 | 
|---|
 | 92 |  N NODE
 | 
|---|
 | 93 |  D LOOKUP(9999999.28,"",.X,.NODE)
 | 
|---|
 | 94 |  I $D(X) S IBLABEL=$P(NODE,"^"),IBID=+X,X=IBLABEL
 | 
|---|
 | 95 |  Q
 | 
|---|
 | 96 |  ;
 | 
|---|
 | 97 | SLCTHF(X) ;for Health Factors
 | 
|---|
 | 98 |  ;pass X by reference
 | 
|---|
 | 99 |  ;example of use: D SLCTHF^IBDFN12(.X)
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 |  N NODE
 | 
|---|
 | 102 |  D LOOKUP(9999999.64,"I $P(^(0),U,10)=""F"",'$P(^(0),U,11)",.X,.NODE)
 | 
|---|
 | 103 |  I $D(X) S IBLABEL=$P(NODE,"^"),IBID=+X,X=IBLABEL
 | 
|---|
 | 104 |  Q
 | 
|---|
 | 105 | SLCTTR(X) ;for Treatments
 | 
|---|
 | 106 |  ;pass X by reference
 | 
|---|
 | 107 |  ;example of use: D SLCTTR^IBDFN12(.X)
 | 
|---|
 | 108 |  ;
 | 
|---|
 | 109 |  N NODE
 | 
|---|
 | 110 |  D LOOKUP(9999999.17,"",.X,.NODE)
 | 
|---|
 | 111 |  I $D(X) S IBLABEL=$P(NODE,"^"),IBID=+X,X=IBLABEL
 | 
|---|
 | 112 |  Q
 | 
|---|
 | 113 |  ;
 | 
|---|
 | 114 | SLCTYN(X) ;for selecting YES or NO
 | 
|---|
 | 115 |  ;
 | 
|---|
 | 116 |  I "Yy"[$E(X) S X="YES",IBID=1 Q
 | 
|---|
 | 117 |  I "Nn"[$E(X) S X="NO",IBID=0 Q
 | 
|---|
 | 118 |  W "Enter YES or NO."
 | 
|---|
 | 119 |  K X
 | 
|---|
 | 120 |  Q
 | 
|---|
 | 121 |  ;
 | 
|---|
 | 122 | SLCTCLS(PI,X) ;for visit classification
 | 
|---|
 | 123 |  ;pass X by reference
 | 
|---|
 | 124 |  ;*NOTE: if interactive sets IBQUAL to the qualifier, IBLABEL to the recommended label, for use in the input template
 | 
|---|
 | 125 |  ;example of use: D INPUTCLS^IBDFN12(PI,.X)
 | 
|---|
 | 126 |  ;
 | 
|---|
 | 127 |  N NODE
 | 
|---|
 | 128 |  D LOOKUP(357.98,"I $$DQGOOD^IBDFU9(PI,Y)",.X,.NODE)
 | 
|---|
 | 129 |  I $D(X) S IBID="",IBLABEL=$P(NODE,"^",3),IBQUAL=+X,X=$P(NODE,"^")
 | 
|---|
 | 130 |  Q
 | 
|---|