Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/PCE_PATIENT_CARE_ENCOUNTER-AUTN-EFDP-PX-VSIT--PXRM/PXBPCPT.m

    r613 r623  
    1 PXBPCPT ;ISL/JVS,ESW - PROMPT CPT ;3/18/05 12:55pm
    2         ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,73,89,112,121,132,149,124,190**;Aug 12, 1996;Build 9
    3         ;
    4         ;
    5         ;
    6 CPT     ;--CPT CODE
    7         ;SELINE=LINE NUMBER OF SELECTED ITEM
    8         N TIMED,PXBUT,EDATA,DIC,LINE,XFLAG,SELINE
    9         N I,X,Y,Q,DOUBLEQQ,NF,BAD,OK,CPT,PXEDIT
    10         I '$D(^DISV(DUZ,"PXBCPT-1")) S ^DISV(DUZ,"PXBCPT-1")=" "
    11         I '$D(IOSC) D TERM^PXBCC
    12         S DOUBLEQQ=0,PXEDIT=""
    13         S TIMED="I '$T!(DATA[""^"")!(DATA="""")"
    14         S DIC("S")="I $$CPTSCREN^PXBUTL(Y,IDATE)"
    15 C       ;--SECOND ENTRY POINT
    16         W IOSC
    17         ;---DYNAMIC  HEADER-----------------
    18         I '$D(CYCL) D
    19         .I PXBCNT=0,DOUBLEQQ=0 D LOC^PXBCC(2,10) W IOUON,"...There are "_$G(PXBCNT)_" PROCEDURES associated with this encounter.",IOUOFF,IOELEOL
    20         .I PXBCNT=1,DOUBLEQQ=0 D LOC^PXBCC(2,10) W IOUON,"...There is "_$G(PXBCNT)_" PROCEDURE associated with this encounter.",IOUOFF,IOELEOL
    21         .I PXBCNT>1,DOUBLEQQ=0 D LOC^PXBCC(2,10) W IOUON,"...There are "_$G(PXBCNT)_" PROCEDURES associated with this encounter.",IOUOFF,IOELEOL
    22         ;
    23         D LOC^PXBCC(15,0)
    24         ;I PXBCNT>30
    25         ;W IOCUU,IOELEOL,
    26         W:PXTLNS>10 !,"Enter '+' for next page, '-' for last page." ;,IORC
    27         D WIN17^PXBCC(PXBCNT)
    28         I '$D(^TMP("PXK",$J,"CPT")) W !,"Enter PROCEDURE (CPT CODE): "
    29         I $D(^TMP("PXK",$J,"CPT")) W !,"Enter ",IOINHI,"NEXT",IOINLOW," PROCEDURE (CPT CODE): "
    30         W IOELEOL R DATA:DTIME S EDATA=DATA
    31 C1      ;----Third entry point
    32         X TIMED I  S PXBUT=1 S:DATA="^^" PXBEXIT=0 S:DATA="^^^" PXBRRR="" G CPTX
    33         I DATA?1.N1"E".NAP S DATA=" "_DATA
    34         I $L(DATA)>200 S (DATA,EDATA)=$E(DATA,1,199)
    35         I DATA?24.N S (DATA,EDATA)=$E(DATA,1,24)
    36         ; ----- Check & remove control character PX*190 -----
    37         S ZZDATA=""
    38         S ZDATA="" F J=1:1:$L(DATA) S ZDATA=$E(DATA,J)  D
    39         .I $A(ZDATA)>31,($A(ZDATA)'=127) S ZZDATA=ZZDATA_ZDATA
    40         I $L(ZZDATA)=0 W $C(7),"??" D HELP^PXBUTL0("CPTM") G C
    41         S (DATA,EDATA)=ZZDATA
    42         K ZZDATA,ZDATA,J
    43         ;
    44         D CASE^PXBUTL
    45         ;----SPACE BAR---
    46         I DATA=" ",$D(^DISV(DUZ,"PXBCPT-1")) S DATA=^DISV(DUZ,"PXBCPT-1") W DATA
    47         ;---------------
    48         I DATA["^P" G CPTX
    49         I DATA["^C" G CPTX
    50         ;
    51         I ((DATA="+")!(DATA="-")) D DISCPT4^PXBDCPT(DATA) G C
    52         ;
    53 M       ;--------If Multiple entries have been entered
    54         D ADDM^PXBPCPT1
    55         I $G(NF) G C1
    56         ;
    57 DEL     ;--------If Multiple deleting
    58         D DELM^PXBPCPT1
    59         I DATA["^C" G CPTX
    60         I $G(NF) G C1
    61         ;
    62         D MOD
    63         ;
    64 LI      ;--------If picked a line number display
    65         ;
    66         I (DATA>0)&(DATA<(PXBCNT+1))&($L(DATA)'>$L(PXBCNT)) D
    67         .S XFLAG=1
    68         .D DISCPT4^PXBDCPT(PXBSAM(DATA,"LINE"))
    69         .D REVCPT^PXBCC(DATA,1)
    70         .S SELINE=DATA
    71         .F I=1:1:$L(DATA) W IOCUB,IOECH
    72         .S CPTQUA=$P($G(PXBSAM(DATA)),"^",2)
    73         .S DATA=$P($G(PXBSAM(DATA)),"^",1)
    74         .;I $G(Q)'>1 W DATA
    75         I $D(XFLAG),XFLAG=1 S Y=DATA G FIN
    76         ;
    77         ;
    78         ;--------If CPT is already in the file
    79         I $D(PXBKY(DATA)) D  I +PXEDIT<0 S DATA="^C" G C1
    80         .D DISCPT4^PXBDCPT(PXBSAM($O(PXBKY(DATA,0)),"LINE"))
    81         .K Q
    82         .D TIMES^PXBUTL(DATA)
    83         .S PXEDIT=$$MULTI(DATA) Q:+PXEDIT<0
    84         .I Q=1 D
    85         ..S LINE=$O(PXBKY(DATA,0))
    86         ..S XFLAG=1
    87         ..Q:PXEDIT="A"
    88         ..D REVCPT^PXBCC(LINE,1)
    89         ..S CPTQUA=$P($G(PXBSAM(LINE)),"^",2)
    90         ..S SELINE=$O(Q(0))
    91         .I Q>1,PXEDIT="E" D
    92         ..N PXPG
    93         ..S NLINE=0
    94         ..S PXPG=+$G(^TMP("PXBDCPT",$J,"START"))+10
    95         ..F  S NLINE=$O(Q(NLINE)) Q:NLINE=""  Q:PXBSAM(NLINE,"LINE")>PXPG  D
    96         ...D REVCPT^PXBCC(NLINE,1)
    97         I '$G(Q) K SELINE
    98         I PXEDIT="E",$D(Q),Q>1 D  G:DATA="^C" C1 G LI
    99         .D WHICH^PXBPWCH S:DATA["^" DATA="^C"
    100         I $D(XFLAG),XFLAG=1 S Y=DATA G FIN
    101         ;
    102         ;--------Need to do a DIC lookup on data
    103         I DATA'="??" D  G:DATA="^C" C I DATA="?" G C
    104         .D:DATA="?" EN1^PXBHLP0("PXB","CPT",1,"",1)
    105         I DATA="??" D  G:UDATA="^C" C1 G FIN
    106         .S DOUBLEQQ=1
    107         .D EN1^PXBHLP0("PXB","CPT","",1,2)
    108         .I $L(DATA,"^")>1 D
    109         ..S DATA=+$P(DATA,"^",2)_$S($P(DATA,U,3)]"":"-"_$P(DATA,U,3),1:"")
    110         ..D MOD
    111         ..S Y=DATA
    112         .S:$G(UDATA)="" UDATA="^C"
    113         .S:UDATA="^C" (DATA,EDATA,Y)=UDATA
    114         ;
    115         ;--If a "?" is NOT entered during lookup
    116         S FROM="CPT",(VAL,Y)=$P($P($$DOUBLE1^PXBGCPT2(FROM),"^",2),"--",1)
    117         S (X,DATA,EDATA)=VAL,DIC=81,DIC(0)="MZ",DIC("S")="I $P($$CPT^ICPTCOD(Y,IDATE),U,7)" D ^DIC
    118         I Y<1 S DATA="^C" G C1
    119         ;
    120         ;--If Y is good and already in file...
    121         I $D(Y),$D(PXBKY(Y)) W IORC,IOCUU,IOEDEOP,! D
    122         .D DISCPT4^PXBDCPT($O(PXBKY($P(Y,"^",2),0)))
    123         .S LINE=$O(PXBKY($P(Y,"^",2),0)) D REVCPT^PXBCC(LINE,1)
    124         .S CPTQUA=$P($G(PXBSAM(LINE)),"^",2)
    125         ;
    126         ;
    127 FIN     ;--FINISH CPT
    128         I $G(SELINE) S $P(REQE,"^",1)=$P($G(PXBSAM(SELINE)),"^",3)
    129         I $P(REQE,"^",1)="" S $P(REQE,"^",1)="...No Provider Selected..."
    130         I $L(Y,"^")'>1 S X=Y,DIC=81,DIC(0)="ZM",DIC("S")="I $P($$CPT^ICPTCOD(Y,IDATE),U,7)" D ^DIC
    131         I Y<0 D HELP^PXBUTL0("CPTM") G C
    132         S OK=$$CPTOK^PXBUTL(+Y,IDATE) D  G:+OK=0 C
    133         .I +OK=0 W IOCUF,IOCUF,IORVON,"INACTIVE!--",IORVOFF D HELP1^PXBUTL1("CPTI") ;--HELP
    134         S CPT=Y(0)
    135         N PXINF S PXINF=$$CPT^ICPTCOD(+Y,IDATE),$P(CPT,U,2)=$P(PXINF,U,3)
    136         S ^DISV(DUZ,"PXBCPT-1")=$P(CPT,"^",1)
    137         I $D(PXBNCPT) S PXBNCPTF=1
    138         I $D(PXBKY(Y(0,0))),$G(SELINE) D
    139         .S $P(REQI,"^",8)=$O(PXBSKY(SELINE,0))
    140         .S PREDOC=$P(PXBSAM(SELINE),"^",3)
    141         .I $D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) D
    142         ..Q:$P(REQI,"^",8)]""
    143         ..S $P(REQI,"^",8)=$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0))
    144         .I $D(PXBPRV($P(REQE,"^",1))) D
    145         ..S CPTQUA=$P(PXBSAM($O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0)),0))),"^",2)
    146         I $D(PXBKY(Y(0,0))),'$G(SELINE) D
    147         .;S $P(REQI,"^",8)=$O(PXBSKY($O(PXBKY(Y(0,0),0)),0))
    148         .S PREDOC=$P(PXBSAM($O(PXBKY(Y(0,0),0))),"^",3)
    149         .I $D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) D
    150         ..S $P(REQI,"^",8)=$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0))
    151         .I $D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) D
    152         ..S CPTQUA=$P(PXBSAM($O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0)),0))),"^",2)
    153         S $P(REQI,"^",3)=+Y
    154         S $P(REQE,"^",3)=$P(CPT,"^",1)_"-- "_$P(CPT,"^",2)
    155         S PXBNCPT($P(CPT,"^",1))=$P(REQI,"^",8)
    156         S:$P(REQI,"^",8)]"" PXBNCPT($P(CPT,"^",1),$P(REQI,"^",8))=""
    157         ;PX124 adds to REQ*
    158 REST    I $P(REQI,U,8) D
    159         .N CTR,VAL,IEN
    160         .S IEN=$P(REQI,U,8)
    161         .S $P(REQI,U,13,19)=$P($G(^AUPNVCPT(IEN,0)),U,9,15)
    162         .S $P(REQI,U,12)=$P($G(^AUPNVCPT(IEN,0)),U,5)
    163         .F CTR=12:1:19 D
    164         ..S VAL=$P(REQI,U,CTR)
    165         ..S:VAL VAL=$$ICDDX^ICDCODE(VAL,IDATE),$P(REQE,U,CTR)=$P($G(VAL),U,2)_" --"_$P($G(VAL),U,4)
    166         .S VAL=$P($G(^AUPNVCPT(IEN,12)),U,2),$P(REQI,U,22)=VAL
    167         .S:VAL $P(REQE,U,22)=$P($G(^VA(200,VAL,0)),U,1)
    168         ;
    169 CPTX    ;--CPT Exit and cleanup
    170         I $P(REQE,"^",1)="" S $P(REQE,"^",1)="...No Provider Selected..."
    171         I $G(WHAT)="INTV",DATA="^" S PXBEXIT="^^"
    172         I $D(PXBRRR) S DATA="^"
    173         I $D(PREDOC) D
    174         .I PREDOC]""&($P(REQE,"^",1)'[PREDOC) W !,IOINHI,"--WARNING!",IOINLOW," Currently stored Provider of service:-",IOINHI,PREDOC,IOINLOW D
    175         ..I '$D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) S $P(REQI,"^",8)=""
    176         K PXBDPRV,PREDOC
    177         W IOEDEOP
    178         Q
    179 MOD     ;---Separate CPT modifiers from CPT codes in entry string, if entered
    180         I DATA?1.N1"-".NE D
    181         .S PXMODSTR=$P(DATA,"-",2)
    182         .S (DATA,EDATA)=$P(DATA,"-",1)
    183         Q
    184         ;
    185 MULTI(CPTCD)    ;--Prompt user to Edit existing CPT code or Add as new entry
    186         ;
    187         N DIR,DA,X,Y
    188         S DIR(0)="SB^E:EDIT;A:ADD"
    189         S DIR("A")="Do you wish to (E)dit or (A)dd"
    190         ;PX*2.0*132
    191         I (($E(CPTCD)?1N)&($D(^IBE(357.69,+CPTCD))))!(($E(CPTCD)?1A)&($D(^IBE(357.69,CPTCD)))) D
    192         .S DIR(0)="SB^E:EDIT",DIR("A")="You may only (E)dit this code, no duplicate E&M codes allowed."
    193         S DIR("A",1)="CPT "_CPTCD_" already on file for this Encounter"
    194         D ^DIR
    195         I Y']""!(Y="^") Q -1
    196         Q Y
     1PXBPCPT ;ISL/JVS,ESW - PROMPT CPT ;3/18/05 12:55pm
     2 ;;1.0;PCE PATIENT CARE ENCOUNTER;**11,73,89,112,121,132,149,124**;Aug 12, 1996
     3 ;
     4 ;
     5 ;
     6CPT ;--CPT CODE
     7 ;SELINE=LINE NUMBER OF SELECTED ITEM
     8 N TIMED,PXBUT,EDATA,DIC,LINE,XFLAG,SELINE
     9 N I,X,Y,Q,DOUBLEQQ,NF,BAD,OK,CPT,PXEDIT
     10 I '$D(^DISV(DUZ,"PXBCPT-1")) S ^DISV(DUZ,"PXBCPT-1")=" "
     11 I '$D(IOSC) D TERM^PXBCC
     12 S DOUBLEQQ=0,PXEDIT=""
     13 S TIMED="I '$T!(DATA[""^"")!(DATA="""")"
     14 S DIC("S")="I $$CPTSCREN^PXBUTL(Y,IDATE)"
     15C ;--SECOND ENTRY POINT
     16 W IOSC
     17 ;---DYNAMIC  HEADER-----------------
     18 I '$D(CYCL) D
     19 .I PXBCNT=0,DOUBLEQQ=0 D LOC^PXBCC(2,10) W IOUON,"...There are "_$G(PXBCNT)_" PROCEDURES associated with this encounter.",IOUOFF,IOELEOL
     20 .I PXBCNT=1,DOUBLEQQ=0 D LOC^PXBCC(2,10) W IOUON,"...There is "_$G(PXBCNT)_" PROCEDURE associated with this encounter.",IOUOFF,IOELEOL
     21 .I PXBCNT>1,DOUBLEQQ=0 D LOC^PXBCC(2,10) W IOUON,"...There are "_$G(PXBCNT)_" PROCEDURES associated with this encounter.",IOUOFF,IOELEOL
     22 ;
     23 D LOC^PXBCC(15,0)
     24 ;I PXBCNT>30
     25 ;W IOCUU,IOELEOL,
     26 W:PXTLNS>10 !,"Enter '+' for next page, '-' for last page." ;,IORC
     27 D WIN17^PXBCC(PXBCNT)
     28 I '$D(^TMP("PXK",$J,"CPT")) W !,"Enter PROCEDURE (CPT CODE): "
     29 I $D(^TMP("PXK",$J,"CPT")) W !,"Enter ",IOINHI,"NEXT",IOINLOW," PROCEDURE (CPT CODE): "
     30 W IOELEOL R DATA:DTIME S EDATA=DATA
     31C1 ;----Third entry point
     32 X TIMED I  S PXBUT=1 S:DATA="^^" PXBEXIT=0 S:DATA="^^^" PXBRRR="" G CPTX
     33 I DATA?1.N1"E".NAP S DATA=" "_DATA
     34 I $L(DATA)>200 S (DATA,EDATA)=$E(DATA,1,199)
     35 I DATA?24.N S (DATA,EDATA)=$E(DATA,1,24)
     36 D CASE^PXBUTL
     37 ;----SPACE BAR---
     38 I DATA=" ",$D(^DISV(DUZ,"PXBCPT-1")) S DATA=^DISV(DUZ,"PXBCPT-1") W DATA
     39 ;---------------
     40 I DATA["^P" G CPTX
     41 I DATA["^C" G CPTX
     42 ;
     43 I ((DATA="+")!(DATA="-")) D DISCPT4^PXBDCPT(DATA) G C
     44 ;
     45M ;--------If Multiple entries have been entered
     46 D ADDM^PXBPCPT1
     47 I $G(NF) G C1
     48 ;
     49DEL ;--------If Multiple deleting
     50 D DELM^PXBPCPT1
     51 I DATA["^C" G CPTX
     52 I $G(NF) G C1
     53 ;
     54 D MOD
     55 ;
     56LI ;--------If picked a line number display
     57 ;
     58 I (DATA>0)&(DATA<(PXBCNT+1))&($L(DATA)'>$L(PXBCNT)) D
     59 .S XFLAG=1
     60 .D DISCPT4^PXBDCPT(PXBSAM(DATA,"LINE"))
     61 .D REVCPT^PXBCC(DATA,1)
     62 .S SELINE=DATA
     63 .F I=1:1:$L(DATA) W IOCUB,IOECH
     64 .S CPTQUA=$P($G(PXBSAM(DATA)),"^",2)
     65 .S DATA=$P($G(PXBSAM(DATA)),"^",1)
     66 .;I $G(Q)'>1 W DATA
     67 I $D(XFLAG),XFLAG=1 S Y=DATA G FIN
     68 ;
     69 ;
     70 ;--------If CPT is already in the file
     71 I $D(PXBKY(DATA)) D  I +PXEDIT<0 S DATA="^C" G C1
     72 .D DISCPT4^PXBDCPT(PXBSAM($O(PXBKY(DATA,0)),"LINE"))
     73 .K Q
     74 .D TIMES^PXBUTL(DATA)
     75 .S PXEDIT=$$MULTI(DATA) Q:+PXEDIT<0
     76 .I Q=1 D
     77 ..S LINE=$O(PXBKY(DATA,0))
     78 ..S XFLAG=1
     79 ..Q:PXEDIT="A"
     80 ..D REVCPT^PXBCC(LINE,1)
     81 ..S CPTQUA=$P($G(PXBSAM(LINE)),"^",2)
     82 ..S SELINE=$O(Q(0))
     83 .I Q>1,PXEDIT="E" D
     84 ..N PXPG
     85 ..S NLINE=0
     86 ..S PXPG=+$G(^TMP("PXBDCPT",$J,"START"))+10
     87 ..F  S NLINE=$O(Q(NLINE)) Q:NLINE=""  Q:PXBSAM(NLINE,"LINE")>PXPG  D
     88 ...D REVCPT^PXBCC(NLINE,1)
     89 I '$G(Q) K SELINE
     90 I PXEDIT="E",$D(Q),Q>1 D  G:DATA="^C" C1 G LI
     91 .D WHICH^PXBPWCH S:DATA["^" DATA="^C"
     92 I $D(XFLAG),XFLAG=1 S Y=DATA G FIN
     93 ;
     94 ;--------Need to do a DIC lookup on data
     95 I DATA'="??" D  G:DATA="^C" C I DATA="?" G C
     96 .D:DATA="?" EN1^PXBHLP0("PXB","CPT",1,"",1)
     97 I DATA="??" D  G:UDATA="^C" C1 G FIN
     98 .S DOUBLEQQ=1
     99 .D EN1^PXBHLP0("PXB","CPT","",1,2)
     100 .I $L(DATA,"^")>1 D
     101 ..S DATA=+$P(DATA,"^",2)_$S($P(DATA,U,3)]"":"-"_$P(DATA,U,3),1:"")
     102 ..D MOD
     103 ..S Y=DATA
     104 .S:$G(UDATA)="" UDATA="^C"
     105 .S:UDATA="^C" (DATA,EDATA,Y)=UDATA
     106 ;
     107 ;--If a "?" is NOT entered during lookup
     108 S FROM="CPT",(VAL,Y)=$P($P($$DOUBLE1^PXBGCPT2(FROM),"^",2),"--",1)
     109 S (X,DATA,EDATA)=VAL,DIC=81,DIC(0)="MZ",DIC("S")="I $P($$CPT^ICPTCOD(Y,IDATE),U,7)" D ^DIC
     110 I Y<1 S DATA="^C" G C1
     111 ;
     112 ;--If Y is good and already in file...
     113 I $D(Y),$D(PXBKY(Y)) W IORC,IOCUU,IOEDEOP,! D
     114 .D DISCPT4^PXBDCPT($O(PXBKY($P(Y,"^",2),0)))
     115 .S LINE=$O(PXBKY($P(Y,"^",2),0)) D REVCPT^PXBCC(LINE,1)
     116 .S CPTQUA=$P($G(PXBSAM(LINE)),"^",2)
     117 ;
     118 ;
     119FIN ;--FINISH CPT
     120 I $G(SELINE) S $P(REQE,"^",1)=$P($G(PXBSAM(SELINE)),"^",3)
     121 I $P(REQE,"^",1)="" S $P(REQE,"^",1)="...No Provider Selected..."
     122 I $L(Y,"^")'>1 S X=Y,DIC=81,DIC(0)="ZM",DIC("S")="I $P($$CPT^ICPTCOD(Y,IDATE),U,7)" D ^DIC
     123 I Y<0 D HELP^PXBUTL0("CPTM") G C
     124 S OK=$$CPTOK^PXBUTL(+Y,IDATE) D  G:+OK=0 C
     125 .I +OK=0 W IOCUF,IOCUF,IORVON,"INACTIVE!--",IORVOFF D HELP1^PXBUTL1("CPTI") ;--HELP
     126 S CPT=Y(0)
     127 N PXINF S PXINF=$$CPT^ICPTCOD(+Y,IDATE),$P(CPT,U,2)=$P(PXINF,U,3)
     128 S ^DISV(DUZ,"PXBCPT-1")=$P(CPT,"^",1)
     129 I $D(PXBNCPT) S PXBNCPTF=1
     130 I $D(PXBKY(Y(0,0))),$G(SELINE) D
     131 .S $P(REQI,"^",8)=$O(PXBSKY(SELINE,0))
     132 .S PREDOC=$P(PXBSAM(SELINE),"^",3)
     133 .I $D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) D
     134 ..Q:$P(REQI,"^",8)]""
     135 ..S $P(REQI,"^",8)=$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0))
     136 .I $D(PXBPRV($P(REQE,"^",1))) D
     137 ..S CPTQUA=$P(PXBSAM($O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0)),0))),"^",2)
     138 I $D(PXBKY(Y(0,0))),'$G(SELINE) D
     139 .;S $P(REQI,"^",8)=$O(PXBSKY($O(PXBKY(Y(0,0),0)),0))
     140 .S PREDOC=$P(PXBSAM($O(PXBKY(Y(0,0),0))),"^",3)
     141 .I $D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) D
     142 ..S $P(REQI,"^",8)=$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0))
     143 .I $D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) D
     144 ..S CPTQUA=$P(PXBSAM($O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),$O(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1),0)),0))),"^",2)
     145 S $P(REQI,"^",3)=+Y
     146 S $P(REQE,"^",3)=$P(CPT,"^",1)_"-- "_$P(CPT,"^",2)
     147 S PXBNCPT($P(CPT,"^",1))=$P(REQI,"^",8)
     148 S:$P(REQI,"^",8)]"" PXBNCPT($P(CPT,"^",1),$P(REQI,"^",8))=""
     149 ;PX124 adds to REQ*
     150REST I $P(REQI,U,8) D
     151 .N CTR,VAL,IEN
     152 .S IEN=$P(REQI,U,8)
     153 .S $P(REQI,U,13,19)=$P($G(^AUPNVCPT(IEN,0)),U,9,15)
     154 .S $P(REQI,U,12)=$P($G(^AUPNVCPT(IEN,0)),U,5)
     155 .F CTR=12:1:19 D
     156 ..S VAL=$P(REQI,U,CTR)
     157 ..S:VAL VAL=$$ICDDX^ICDCODE(VAL,IDATE),$P(REQE,U,CTR)=$P($G(VAL),U,2)_" --"_$P($G(VAL),U,4)
     158 .S VAL=$P($G(^AUPNVCPT(IEN,12)),U,2),$P(REQI,U,22)=VAL
     159 .S:VAL $P(REQE,U,22)=$P($G(^VA(200,VAL,0)),U,1)
     160 ;
     161CPTX ;--CPT Exit and cleanup
     162 I $P(REQE,"^",1)="" S $P(REQE,"^",1)="...No Provider Selected..."
     163 I $G(WHAT)="INTV",DATA="^" S PXBEXIT="^^"
     164 I $D(PXBRRR) S DATA="^"
     165 I $D(PREDOC) D
     166 .I PREDOC]""&($P(REQE,"^",1)'[PREDOC) W !,IOINHI,"--WARNING!",IOINLOW," Currently stored Provider of service:-",IOINHI,PREDOC,IOINLOW D
     167 ..I '$D(PXBPRV($P(REQE,"^",1),$P(CPT,"^",1))) S $P(REQI,"^",8)=""
     168 K PXBDPRV,PREDOC
     169 W IOEDEOP
     170 Q
     171MOD ;---Separate CPT modifiers from CPT codes in entry string, if entered
     172 I DATA?1.N1"-".NE D
     173 .S PXMODSTR=$P(DATA,"-",2)
     174 .S (DATA,EDATA)=$P(DATA,"-",1)
     175 Q
     176 ;
     177MULTI(CPTCD) ;--Prompt user to Edit existing CPT code or Add as new entry
     178 ;
     179 N DIR,DA,X,Y
     180 S DIR(0)="SB^E:EDIT;A:ADD"
     181 S DIR("A")="Do you wish to (E)dit or (A)dd"
     182 ;PX*2.0*132
     183 I (($E(CPTCD)?1N)&($D(^IBE(357.69,+CPTCD))))!(($E(CPTCD)?1A)&($D(^IBE(357.69,CPTCD)))) D
     184 .S DIR(0)="SB^E:EDIT",DIR("A")="You may only (E)dit this code, no duplicate E&M codes allowed."
     185 S DIR("A",1)="CPT "_CPTCD_" already on file for this Encounter"
     186 D ^DIR
     187 I Y']""!(Y="^") Q -1
     188 Q Y
Note: See TracChangeset for help on using the changeset viewer.