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

PXCPTAPI.m

Go to the documentation of this file.
  1. PXCPTAPI ;ALB/EW - PCE CPT CODE API ; 12/15/2020
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**73,211**;Aug 12, 1996;Build 454
  1. GETCODE(HELP) ;
  1. N CODE,CODEIEN,CODESYS,EVENTDT,PXCEDT,SERVCAT,SRCHTERM,TEMP
  1. S CODESYS="CPT^CPC"
  1. ;Prompt the user for the Lexicon search term.
  1. S SRCHTERM=$$GETST^PXLEX
  1. I SRCHTERM="" Q -1
  1. ;Prompt the user for the Event Date and Time. This is only
  1. ;for new entries because it is used in the Lexicon search
  1. ;to ensure only codes active on that date are returned.
  1. S TEMP=^AUPNVSIT(PXCEVIEN,0)
  1. S SERVCAT=$P(TEMP,U,7)
  1. S EVENTDT=$$EVENTDT^PXDATE("",HELP)
  1. S PXCEDT=EVENTDT
  1. ;If the Event Date and Time is null use the Visit Date.
  1. I PXCEDT="" S PXCEDT=$P(TEMP,U,1)
  1. ;Let the user select the code(s), only return active codes.
  1. S CODE=$$GETCODE^PXLEXS(CODESYS,SRCHTERM,PXCEDT,1)
  1. I CODE="" Q -1
  1. S CODEIEN=$$CODEN^ICPTCOD(CODE)
  1. S $P(PXCEAFTR(12),U,1)=EVENTDT
  1. Q CODEIEN_U_CODE
  1. ;
  1. ;GETCODE(PXDFLT,PXCPTDT) ;Read in CPT Code.
  1. ;This is replaced by above search in PX*1.0*211
  1. ;
  1. ; INPUT: PXDFLT - Default CPT code
  1. ; PXCPTDT - Visit date
  1. ;
  1. ; OUTPUT: CPT CODE - Modifier string
  1. ;
  1. ;
  1. ;PROMPT N DIR,DIRUT,DUOUT,DTOUT,PXDATA,X,Y
  1. ;S DIR(0)="FAO^^K:'$$VALCPT^PXCPTAPI(X,PXCPTDT,.PXDATA) X"
  1. ;S DIR("A")="CPT Code: "
  1. ;S DIR("?")="^D CPTHLP^PXCPTAPI"
  1. ;S DIR("??")="^S X=$$VALCPT^PXCPTAPI(.X,PXCPTDT,.PXDATA)"
  1. ;S:PXDFLT]"" DIR("B")=PXDFLT
  1. ;D ^DIR
  1. ;I $D(DIRUT),X="@" Q X
  1. ;I $D(DIRUT)!($D(DUOUT))!($D(DTOUT))!(Y="") Q -1
  1. ;I PXDATA<0 D CPTHLP^PXCPTAPI G PROMPT
  1. ;Q PXDATA
  1. ;
  1. ;
  1. ;VALCPT(PXTEXT,PXCPTDT,PXVAL) ;
  1. ;Validate free text response entered for CPT Code question
  1. ;Input: PXTEXT - CPT Code or CPT Code and CPT Modifier Code
  1. ; format: CPT or CPT-MOD,MOD,...
  1. ; where CPT = valid CPT Code
  1. ; MOD = valid Modifier Code
  1. ; PXCPTDT - visit date
  1. ;
  1. ;
  1. ;
  1. ;Output: 1 - Valid
  1. ; 0 - Invalid
  1. ;
  1. ;N DIC,X,Y
  1. ;S X=$P(PXTEXT,"-")
  1. ;S DIC=81
  1. ;S DIC(0)="EMQ"
  1. ;S DIC("S")="I $$CPTSCREN^PXBUTL(Y,PXCPTDT)"
  1. ;D ^DIC
  1. ;S PXVAL=Y_$S($P(PXTEXT,"-",2)]"":"-"_$P(PXTEXT,"-",2),1:"")
  1. ;Q Y
  1. ;
  1. CPTMOD(PXIEN,PXMOD,PXHELP) ;Validate selected modifier
  1. ;
  1. ; INPUT: PXIEN - IEN for CPT code in V CPT file
  1. ; PXMOD - IEN for CPT modifier
  1. ; PXHELP - Flag to determine if help text should display
  1. ; when an invalid modifier is entered.
  1. ; where 1 = Display help text
  1. ; 0 = Do not display help text
  1. ;
  1. N PXVST,PXVSTDT,PXSTAT
  1. S PXCPT=$P(^AUPNVCPT(PXIEN,0),U)
  1. ;If Event Date and Time exists, use it otherwise use Visit Date.
  1. S PXVSTDT=$P($G(^AUPNVCPT(PXIEN,12)),U,1)
  1. I PXVSTDT="" D
  1. . S PXVST=$P(^AUPNVCPT(PXIEN,0),U,3)
  1. . S PXVSTDT=$P($G(^AUPNVSIT(PXVST,0)),U)
  1. S PXSTAT=$$MODP^ICPTMOD(PXCPT,PXMOD,"I",PXVSTDT)
  1. D:PXSTAT'>0 MODHLP
  1. Q PXSTAT
  1. ;
  1. CPTHLP ;CPT code help text display
  1. ;
  1. W !,"Enter CPT code or partial name for lookup."
  1. Q
  1. MODHLP ;CPT modifier help text display
  1. ;
  1. Q:'$G(PXHELP)
  1. W !,"You can only enter a modifier that is valid for the selected CPT code."
  1. Q