[613] | 1 | PXCECPT ;ISL/dee,ISA/Zoltan,esw - Used to edit and display V CPT ;6/22/04 3:27pm
|
---|
| 2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**14,27,73,89,112,121,136,124,170,164,182**;Aug 12, 1996;Build 3
|
---|
| 3 | ;; ;
|
---|
| 4 | Q
|
---|
| 5 | ;
|
---|
| 6 | ;+Structure of Line with the line label "FORMAT"
|
---|
| 7 | ;+;;Long name~File Number~Node Subscripts~Allow Duplicate entries (1=yes, 0=no)~File global name
|
---|
| 8 | ;+ 1 2 3 4 5
|
---|
| 9 | ;+
|
---|
| 10 | ;+Structure of Following lines:
|
---|
| 11 | ;+;;Node~Piece~,Field Number~Edit Label~Display Label~Display Routine~Edit Routine~Help Text for DIR("?")~Set of PXCEKEYS that can Edit~D if Detail Display Only~
|
---|
| 12 | ;+ 1 ~ 2 ~ 3 ~ 4 ~ 5 ~ 6 ~ 7 ~ 8 ~ 9 ~ 10
|
---|
| 13 | ;+The Display & Edit routines are for special cases.
|
---|
| 14 | ;+ (The .01 fields cannot have a special edit.)
|
---|
| 15 | ;
|
---|
| 16 | FORMAT ;;CPT~9000010.18~0,1,12,802,811,812~1~^AUPNVCPT
|
---|
| 17 | ;;0~1~.01~CPT Code: ~CPT Code: ~$$DISPLY01^PXCECPT~ECPTCODE^PXCECPT~^D HELP^PXCEHELP~~B
|
---|
| 18 | ;;0~19~.19~Department Code: ~Department Code: ~~DEPART^PXCECPT1~~~D
|
---|
| 19 | ;;0~17~.17~Order Reference: ~Order Reference: ~~SKIP^PXCECPT~~~D
|
---|
| 20 | ;;1~0~1~CPT Modifier: ~CPT Modifier: ~$$DISPMOD^PXCECPT~ECPTMOD^PXCECPT~Select a Modifier that is valid for the CPT code.~~B
|
---|
| 21 | ;;0~4~.04~Provider Narrative: ~Provider Narrative: ~$$DNARRAT^PXCECPT~ENARRAT^PXCEPOV1(1,1,1,81,2)~~~B
|
---|
| 22 | ;;0~16~.16~Quantity: ~Quantity: ~~EQUAN^PXCECPT~~~D
|
---|
| 23 | ;;0~7~.07~Principal Procedure: ~Principal Procedure: ~~~~~D
|
---|
| 24 | ;;12~2~1202~Ordering Provider: ~Ordering Provider: ~~EPROV12^PXCEPRV~~~D
|
---|
| 25 | ;;12~4~1204~Encounter Provider: ~Encounter Provider: ~~EPROV12^PXCEPRV~~~D
|
---|
| 26 | ;;802~1~80201~Provider Narrative Category: ~Provider Narrative Category: ~$$DNARRAT^PXCECPT~ENARRAT^PXCEPOV1(0,2,0,81,3)~~C~D
|
---|
| 27 | ;;811~1~81101~Comments: ~Comments: ~~~~~D
|
---|
| 28 | ;;0~5~.05~Primary Diagnosis: ~Primary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 29 | ;;0~9~.09~1st Secondary Diagnosis: ~1st Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 30 | ;;0~10~.1~2nd Secondary Diagnosis: ~2nd Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 31 | ;;0~11~.11~3rd Secondary Diagnosis: ~3rd Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 32 | ;;0~12~.12~4th Secondary Diagnosis: ~4th Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 33 | ;;0~13~.13~5th Secondary Diagnosis: ~5th Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 34 | ;;0~14~.14~6th Secondary Diagnosis: ~6th Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 35 | ;;0~15~.15~7th Secondary Diagnosis: ~7th Secondary Diagnosis: ~$$DISPLY01^PXCEPOV~EPOV^PXCECPT~~~
|
---|
| 36 | ;;
|
---|
| 37 | ;
|
---|
| 38 | ;The interface for AICS to get list on form for help.
|
---|
| 39 | INTRFACE ;;DG SELECT CPT PROCEDURE CODES
|
---|
| 40 | ;+
|
---|
| 41 | ;+********************************
|
---|
| 42 | ;+Special cases for display.
|
---|
| 43 | ;
|
---|
| 44 | DISPMOD(PXCECPT) ;
|
---|
| 45 | ;+Display the modifiers associated with this V CPT entry.
|
---|
| 46 | ;+PXCECPT = IEN in V CPT file.
|
---|
| 47 | N MODS,SIEN,MODIEN,SCRATCH,MODSTR,MODNAME,OUTSTR
|
---|
| 48 | I $G(PXCECPT)="" S PXCECPT=IEN
|
---|
| 49 | S OUTSTR=""
|
---|
| 50 | I PXCECPT="" Q OUTSTR
|
---|
| 51 | S SIEN=0
|
---|
| 52 | F MODS=1:1 S SIEN=$O(^AUPNVCPT(PXCECPT,1,SIEN)) Q:'SIEN D
|
---|
| 53 | . S MODIEN=$P($G(^AUPNVCPT(PXCECPT,1,SIEN,0)),"^")
|
---|
| 54 | . S $P(OUTSTR,U,MODS)=$$MODTEXT(MODIEN)
|
---|
| 55 | Q OUTSTR
|
---|
| 56 | DNARRAT(PNAR) ;+Display Provider Narrative for procedure in V CPT file.
|
---|
| 57 | I PNAR="" Q ""
|
---|
| 58 | N PXCEPNAR
|
---|
| 59 | S PXCEPNAR=$P(^AUTNPOV(PNAR,0),"^")
|
---|
| 60 | I $G(VIEW)="B",$D(ENTRY)>0 D
|
---|
| 61 | . ;N DIC,DR,DA,DIQ,PXCEDIQ1
|
---|
| 62 | . ;S DIC=81
|
---|
| 63 | . ;S DR="2"
|
---|
| 64 | . ;S DA=$P(ENTRY(0),"^",1)
|
---|
| 65 | . ;S DIQ="PXCEDIQ1("
|
---|
| 66 | . ;S DIQ(0)="E"
|
---|
| 67 | . ;D EN^DIQ1
|
---|
| 68 | . ;S:PXCEDIQ1(81,DA,2,"E")=PXCEPNAR PXCEPNAR=""
|
---|
| 69 | . N CPTSTR
|
---|
| 70 | . S CPTSTR=$$CPT^ICPTCOD($P(ENTRY(0),U),$P(^AUPNVSIT(PXCEVIEN,0),U))
|
---|
| 71 | . S:$P(CPTSTR,U,3)=PXCEPNAR PXCEPNAR=""
|
---|
| 72 | Q PXCEPNAR
|
---|
| 73 | ;+
|
---|
| 74 | ;+********************************
|
---|
| 75 | ;+Special cases for edit.
|
---|
| 76 | ;+
|
---|
| 77 | ECPTCODE ;+Code to edit CPT Code in V CPT file.
|
---|
| 78 | K DIRUT
|
---|
| 79 | N DIC,DA,PXCPTDT,PXDFLT
|
---|
| 80 | S PXCPTDT=+^TMP("PXK",$J,"VST",1,0,"AFTER")
|
---|
| 81 | S (X,PXDFLT)=""
|
---|
| 82 | I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
|
---|
| 83 | . N DIERR,PXCEDILF,PXCEINT,PXCEEXT
|
---|
| 84 | . S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
| 85 | . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
|
---|
| 86 | . S PXDFLT=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
|
---|
| 87 | S Y=$$GETCODE^PXCPTAPI(PXDFLT,PXCPTDT)
|
---|
| 88 | I Y="@" S X="@" Q
|
---|
| 89 | I Y<0 S DIRUT=1 Q
|
---|
| 90 | S PXCEMOD=$P(Y,"-",2)
|
---|
| 91 | S Y=$P(Y,"-"),X=+Y
|
---|
| 92 | I PXCEDIRB="" Q
|
---|
| 93 | I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=X Q
|
---|
| 94 | Q:$$CHGCPT()
|
---|
| 95 | G ECPTCODE
|
---|
| 96 | ;
|
---|
| 97 | ECPTMOD ;+Prompt for CPT Modifier in V CPT file.
|
---|
| 98 | ;
|
---|
| 99 | ;--If there are no modifiers for CPT code do not prompt
|
---|
| 100 | Q:PXMDCNT'>0
|
---|
| 101 | N DTOUT,DUOUT,DIROUT,DIR,PXSUB,PXSEQ,PXSTR,PXARR
|
---|
| 102 | N DA,DIC,PXLINE,SUBIEN,PXFILE,PXMOD,PXI
|
---|
| 103 | S PXSUB=1,PXSTR=""
|
---|
| 104 | S DA=^TMP("PXK",$J,PXCECATS,1,"IEN")
|
---|
| 105 | S DR=1
|
---|
| 106 | S DIE="^AUPNVCPT("
|
---|
| 107 | S DIC(0)="AELMQ"
|
---|
| 108 | L +@(DIE_"DA)"):10
|
---|
| 109 | I $G(PXCEMOD)]"" D
|
---|
| 110 | . I $L(PXCEMOD,",")=1 S DR="1//"_PXCEMOD Q
|
---|
| 111 | . S PXMOD=""
|
---|
| 112 | . F PXI=1:1 S PXMOD=$P(PXCEMOD,",",PXI) Q:PXMOD="" D
|
---|
| 113 | .. K PXERR
|
---|
| 114 | .. D VAL^DIE(9000010.181,DA,.01,"",PXMOD,.PXERR)
|
---|
| 115 | .. Q:PXERR="^"
|
---|
| 116 | .. S DR="1///^S X=PXMOD"
|
---|
| 117 | .. D ^DIE
|
---|
| 118 | . S DR=1
|
---|
| 119 | D ^DIE
|
---|
| 120 | L -@(DIE_"DA)")
|
---|
| 121 | ; SET NEWLY FILED CPT MODIFIERS INTO LOCAL ARRAY
|
---|
| 122 | K PXCEAFTR(1)
|
---|
| 123 | D GETS^DIQ(9000010.18,^TMP("PXK",$J,PXCECATS,1,"IEN"),"1*","I","PXARR")
|
---|
| 124 | S PXFILE=9000010.181
|
---|
| 125 | S PXSUB=""
|
---|
| 126 | F S PXSUB=$O(PXARR(PXFILE,PXSUB)) Q:PXSUB="" D
|
---|
| 127 | . S PXCEAFTR(1,$P(PXSUB,","))=PXARR(PXFILE,PXSUB,.01,"I")
|
---|
| 128 | I $D(DTOUT)!$D(Y) S (PXCEEND,PXCEQUIT)=1 Q
|
---|
| 129 | Q
|
---|
| 130 | ;
|
---|
| 131 | EQUAN ;+Code to edit Quantity in V CPT file.
|
---|
| 132 | I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
|
---|
| 133 | . N DIERR,PXCEDILF,PXCEINT,PXCEEXT
|
---|
| 134 | . S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
| 135 | . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
|
---|
| 136 | . S DIR("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
|
---|
| 137 | E S DIR("B")=1
|
---|
| 138 | S DIR(0)=PXCEFILE_","_$P(PXCETEXT,"~",3)_"A"
|
---|
| 139 | S DIR("A")=$P(PXCETEXT,"~",4)
|
---|
| 140 | S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
|
---|
| 141 | D ^DIR
|
---|
| 142 | K DIR,DA
|
---|
| 143 | I $D(DTOUT)!$D(DUOUT) S (PXCEEND,PXCEQUIT)=1 Q
|
---|
| 144 | I +Y<1 W !,$C(7),"Quantity is required.",! G EQUAN
|
---|
| 145 | N PXTMPCPT S PXTMPCPT=$P(PXCEAFTR($P(PXCETEXT,"~")),"^")
|
---|
| 146 | I +Y>1,$$GET1^DIQ(357.69,$G(PXCEIN01),.01)>0,$$GET1^DIQ(357.69,$G(PXCEIN01),.06,"I")'="Y" D
|
---|
| 147 | .W !,"E&M code, quantity changed to 1."
|
---|
| 148 | .S $P(Y,"^")=1
|
---|
| 149 | S:$P(Y,"^")="" Y=1
|
---|
| 150 | S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
|
---|
| 151 | Q
|
---|
| 152 | EPOV ;Edit the Associated DX
|
---|
| 153 | I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
|
---|
| 154 | .N DIERR,PXCEDILF,PXCEINT,PXCEEXT
|
---|
| 155 | .S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
| 156 | .S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
|
---|
| 157 | .S DIR("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
|
---|
| 158 | S DIR(0)=PXCEFILE_","_$P(PXCETEXT,"~",3)_"A"
|
---|
| 159 | S DIR("A")=$P(PXCETEXT,"~",4)
|
---|
| 160 | S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
|
---|
| 161 | D ^DIR
|
---|
| 162 | K DIR,DA
|
---|
| 163 | I X="@" S Y="@" S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^") Q
|
---|
| 164 | I $D(DTOUT)!$D(DUOUT) S PXCEEND=1,PXCEQUIT=1 Q
|
---|
| 165 | ;I '+Y S PXCEEND=1 Q ;S:$P(PXCETEXT,"~",3)=".05" PXCEQUIT=1 Q
|
---|
| 166 | I +Y'>0 S PXCEEND=1 Q ;PX*1.0*182 for "^" or null entry from list
|
---|
| 167 | ;See if this diagnosis is in the PXCEAFTR(0)
|
---|
| 168 | I $P(PXCETEXT,"~",2)'=5,(+Y=$P($G(PXCEAFTR(0)),"^",5)) S PXCEEND=1
|
---|
| 169 | I $P(PXCETEXT,"~",2)'=9,(+Y=$P($G(PXCEAFTR(0)),"^",9)) S PXCEEND=1
|
---|
| 170 | I $P(PXCETEXT,"~",2)'=10,(+Y=$P($G(PXCEAFTR(0)),"^",10)) S PXCEEND=1
|
---|
| 171 | I $P(PXCETEXT,"~",2)'=11,(+Y=$P($G(PXCEAFTR(0)),"^",11)) S PXCEEND=1
|
---|
| 172 | I $P(PXCETEXT,"~",2)'=12,(+Y=$P($G(PXCEAFTR(0)),"^",12)) S PXCEEND=1
|
---|
| 173 | I $P(PXCETEXT,"~",2)'=13,(+Y=$P($G(PXCEAFTR(0)),"^",13)) S PXCEEND=1
|
---|
| 174 | I $P(PXCETEXT,"~",2)'=14,(+Y=$P($G(PXCEAFTR(0)),"^",14)) S PXCEEND=1
|
---|
| 175 | I $P(PXCETEXT,"~",2)'=15,(+Y=$P($G(PXCEAFTR(0)),"^",15)) S PXCEEND=1
|
---|
| 176 | I PXCEEND=1 W !,$C(7),"Duplicate Diagnosis on this CPT code is not allowed." D WAIT^PXCEHELP Q
|
---|
| 177 | S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
|
---|
| 178 | D:+Y>0 DIAGNOS^PXCEVFI4(+Y)
|
---|
| 179 | Q
|
---|
| 180 | ;+
|
---|
| 181 | ;+********************************
|
---|
| 182 | ;+Special Reusable Functionality
|
---|
| 183 | DISPLY01(PXCECPT) ;
|
---|
| 184 | ;Display text for the .01 field which is a pointer to ^ICPT.
|
---|
| 185 | ;Also called with the Evaluation and Management Code from the visit
|
---|
| 186 | ; in the parameter.
|
---|
| 187 | ;(Must have is called by ASK^PXCEVFI2 and DEL^PXCEVFI2.)
|
---|
| 188 | ;N DIC,DR,DA,DIQ,PXCEFNUM,PXCEDIQ1
|
---|
| 189 | ;S (DIC,PXCEFNUM)=81
|
---|
| 190 | ;S DR=".01;2"
|
---|
| 191 | ;S DA=+$P(PXCECPT,"^",1)
|
---|
| 192 | ;S DIQ="PXCEDIQ1("
|
---|
| 193 | ;S DIQ(0)="E"
|
---|
| 194 | ;D EN^DIQ1
|
---|
| 195 | ;Q PXCEDIQ1(PXCEFNUM,DA,.01,"E")_" "_PXCEDIQ1(PXCEFNUM,DA,2,"E")
|
---|
| 196 | N CPTSTR
|
---|
| 197 | S CPTSTR=$$CPT^ICPTCOD($P(PXCECPT,U),$P(^AUPNVSIT(PXCEVIEN,0),U))
|
---|
| 198 | Q $P(CPTSTR,U,2)_" "_$P(CPTSTR,U,3)
|
---|
| 199 | EDMOD(MODS,CPT) ;+Edit the Modifiers for a CPT code entry.
|
---|
| 200 | N MNUM S MNUM=0 ; Modifier number.
|
---|
| 201 | N MIEN,MTEXT
|
---|
| 202 | Q
|
---|
| 203 | MODNAME(MODIEN) ;+Return #.02 NAME for this CPT MODIFIER (#81.3)
|
---|
| 204 | Q
|
---|
| 205 | MODTEXT(MODIEN) ;+Return string of text describing modifier.
|
---|
| 206 | ;+MODIEN = IEN in CPT MODIFIER file (#81.3).
|
---|
| 207 | ;+Returns: MODIFIER (#.01) followed by NAME(#.02).
|
---|
| 208 | N MOD,DESC,TEXT,RVAL
|
---|
| 209 | S RVAL=$$MOD^ICPTMOD(MODIEN,"I",$P(^AUPNVSIT(PXCEVIEN,0),U))
|
---|
| 210 | S MOD=$P(RVAL,"^",2)
|
---|
| 211 | S DESC=$P(RVAL,"^",3)
|
---|
| 212 | S TEXT=MOD_" "_DESC
|
---|
| 213 | Q TEXT
|
---|
| 214 | CHGCPT() ;Verify CPT code should be modified
|
---|
| 215 | ;If response is yes remove modifiers on file for CPT code
|
---|
| 216 | N DIR,DA,X,Y,PXIEN
|
---|
| 217 | W !!,$C(7),"WARNING! THIS WILL ALSO DELETE ANY MODIFIERS ASSOCIATED WITH CPT CODE "_PXCEDIRB
|
---|
| 218 | S DIR(0)="Y"
|
---|
| 219 | S DIR("A")="SURE YOU WANT TO CHANGE THE CPT CODE?"
|
---|
| 220 | S DIR("B")="YES"
|
---|
| 221 | D ^DIR
|
---|
| 222 | ;Delete CPT Modifiers from V CPT file for current IEN
|
---|
| 223 | I 'Y Q +Y
|
---|
| 224 | S DA(1)=PXCEFIEN
|
---|
| 225 | S DIK="^AUPNVCPT("_DA(1)_","_1_","
|
---|
| 226 | S PXIEN=""
|
---|
| 227 | F S PXIEN=$O(PXCEAFTR(1,PXIEN)) Q:PXIEN="" D
|
---|
| 228 | . S DA=PXIEN
|
---|
| 229 | . D ^DIK
|
---|
| 230 | Q 1
|
---|
| 231 | ;
|
---|
| 232 | NEWCODE ;
|
---|
| 233 | K DD,DO
|
---|
| 234 | N DIC,X,Y
|
---|
| 235 | S DIC="^AUPNVCPT("
|
---|
| 236 | S DIC(0)=""
|
---|
| 237 | S DIC("DR")=".02////^S X=$P(PXCEAFTR(0),""^"",2);"
|
---|
| 238 | S DIC("DR")=DIC("DR")_".03////^S X=$P(PXCEAFTR(0),""^"",3);"
|
---|
| 239 | S X=PXCEIN01
|
---|
| 240 | D FILE^DICN
|
---|
| 241 | S PXCEFIEN=+Y
|
---|
| 242 | Q
|
---|
| 243 | ;
|
---|
| 244 | SKIP ;
|
---|
| 245 | Q
|
---|