| 1 | PXCPTAPI ;ALB/EW - PCE CPT CODE API ; 9/3/99
 | 
|---|
| 2 |  ;;1.0;PCE PATIENT CARE ENCOUNTER;**73**;Aug 12, 1996
 | 
|---|
| 3 | GETCODE(PXDFLT,PXCPTDT) ;Read in CPT Code
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 |  ;    INPUT:   PXDFLT - Default CPT code
 | 
|---|
| 6 |  ;             PXCPTDT - Visit date
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;   OUTPUT:  CPT CODE - Modifier string
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | PROMPT N DIR,DIRUT,DUOUT,DTOUT,PXDATA,X,Y
 | 
|---|
| 12 |  S DIR(0)="FAO^^K:'$$VALCPT^PXCPTAPI(X,PXCPTDT,.PXDATA) X"
 | 
|---|
| 13 |  S DIR("A")="CPT Code: "
 | 
|---|
| 14 |  S DIR("?")="^D CPTHLP^PXCPTAPI"
 | 
|---|
| 15 |  S DIR("??")="^S X=$$VALCPT^PXCPTAPI(.X,PXCPTDT,.PXDATA)"
 | 
|---|
| 16 |  S:PXDFLT]"" DIR("B")=PXDFLT
 | 
|---|
| 17 |  D ^DIR
 | 
|---|
| 18 |  I $D(DIRUT),X="@" Q X
 | 
|---|
| 19 |  I $D(DIRUT)!($D(DUOUT))!($D(DTOUT))!(Y="") Q -1
 | 
|---|
| 20 |  I PXDATA<0 D CPTHLP^PXCPTAPI G PROMPT
 | 
|---|
| 21 |  Q PXDATA
 | 
|---|
| 22 |  ;
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 | VALCPT(PXTEXT,PXCPTDT,PXVAL) ;
 | 
|---|
| 25 |  ;Validate freetext responce entered for CPT Code question
 | 
|---|
| 26 |  ;Input:  PXTEXT - CPT Code or CPT Code and CPT Modifier Code
 | 
|---|
| 27 |  ;           format: CPT or CPT-MOD,MOD,...
 | 
|---|
| 28 |  ;              where CPT = valid CPT Code
 | 
|---|
| 29 |  ;                    MOD = valid Modifier Code
 | 
|---|
| 30 |  ;        PXCPTDT - visit date
 | 
|---|
| 31 |  ;        
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 |  ;Output:  1 - Valid
 | 
|---|
| 35 |  ;         0 - Invalid
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  N DIC,X,Y
 | 
|---|
| 38 |  S X=$P(PXTEXT,"-")
 | 
|---|
| 39 |  S DIC=81
 | 
|---|
| 40 |  S DIC(0)="EMQ"
 | 
|---|
| 41 |  S DIC("S")="I $$CPTSCREN^PXBUTL(Y,PXCPTDT)"
 | 
|---|
| 42 |  D ^DIC
 | 
|---|
| 43 |  S PXVAL=Y_$S($P(PXTEXT,"-",2)]"":"-"_$P(PXTEXT,"-",2),1:"")
 | 
|---|
| 44 |  Q Y
 | 
|---|
| 45 |  ;
 | 
|---|
| 46 | CPTMOD(PXIEN,PXMOD,PXHELP) ;Validate selected modifier
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  ;     INPUT:  PXIEN - IEN for CPT code in V CPT file
 | 
|---|
| 49 |  ;             PXMOD - IEN for CPT modifier
 | 
|---|
| 50 |  ;             PXHELP - Flag to determing if help text should display
 | 
|---|
| 51 |  ;                       when an invalid modifier is entered.
 | 
|---|
| 52 |  ;                where 1 = Display help text
 | 
|---|
| 53 |  ;                      0 = Do not display help text
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  N PXVST,PXVSTDT,PXSTAT
 | 
|---|
| 56 |  S PXCPT=$P(^AUPNVCPT(PXIEN,0),U)
 | 
|---|
| 57 |  S PXVST=$P(^AUPNVCPT(PXIEN,0),U,3)
 | 
|---|
| 58 |  S PXVSTDT=$P($G(^AUPNVSIT(PXVST,0)),U)
 | 
|---|
| 59 |  S PXSTAT=$$MODP^ICPTMOD(PXCPT,PXMOD,"I",PXVSTDT)
 | 
|---|
| 60 |  D:PXSTAT'>0 MODHLP
 | 
|---|
| 61 |  Q PXSTAT
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 | CPTHLP ;CPT code help text display
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  W !,"Enter CPT code or partial name for lookup."
 | 
|---|
| 66 |  Q
 | 
|---|
| 67 | MODHLP ;CPT modifier help text display
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 |  Q:'$G(PXHELP)
 | 
|---|
| 70 |  W !,"You can only enter a modifier that is valid for the selected CPT code."
 | 
|---|
| 71 |  Q
 | 
|---|