1 | PXCEVFI1 ;ISL/dee,esw - Routine to edit a visit or v-file entry ;8/3/04 10:32am
|
---|
2 | ;;1.0;PCE PATIENT CARE ENCOUNTER;**23,73,112,136,143,124,184**;Aug 12, 1996;Build 30
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | EDIT ; -- edit the V-File stored in "AFTER"
|
---|
6 | N DIR,DA,X,Y,C,PXCEINP,PXCEIN01,PXCEEND,PXD
|
---|
7 | N PXCELINE,PXCETEXT,PXCEDIRB,PXCEMOD
|
---|
8 | N PXCEKEY,PXCEIKEY,PXCENKEY,PXMDCNT
|
---|
9 | W !
|
---|
10 | G:PXCECAT="VST"!(PXCECAT="APPM")!(PXCECAT="CSTP") REST
|
---|
11 | ;
|
---|
12 | EDIT01 ;
|
---|
13 | I PXCECAT="CPT"!(PXCECAT="POV")!(PXCECAT="SK")!(PXCECAT="IMM") D SC^PXCEVFI2($P(^AUPNVSIT(PXCEVIEN,0),U,5))
|
---|
14 | S PXCETEXT=$P($T(FORMAT+1^@PXCECODE),";;",2)
|
---|
15 | K DIR,DA,X,Y,C,PXCEDIRB
|
---|
16 | I $P(PXCEAFTR(0),"^",1) D
|
---|
17 | . N DIEER,PXCEDILF,PXCEEXT
|
---|
18 | . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,.01,"",$P(PXCEAFTR(0),"^",1),"PXCEDILF")
|
---|
19 | . S PXCEDIRB=$S('$D(DIERR):PXCEEXT,1:$P(PXCEAFTR(0),"^",1))
|
---|
20 | E S PXCEDIRB=""
|
---|
21 | I $P(PXCETEXT,"~",7)]"" D
|
---|
22 | . D @$P(PXCETEXT,"~",7)
|
---|
23 | E D
|
---|
24 | . I PXCEDIRB'="" S DIR("B")=PXCEDIRB
|
---|
25 | . S DIR(0)=PXCEFILE_",.01OA"
|
---|
26 | . S DIR("A")=$P(PXCETEXT,"~",4)
|
---|
27 | . S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
|
---|
28 | . D ^DIR
|
---|
29 | I X="@" D G ENDEDIT
|
---|
30 | . N DIRUT
|
---|
31 | . I $P(PXCEAFTR(0),"^",1)="" D
|
---|
32 | .. W !,"There is no entry to delete."
|
---|
33 | .. D WAIT^PXCEHELP
|
---|
34 | . E D DEL^PXCEVFI2(PXCECAT)
|
---|
35 | I $D(DIRUT),$P(PXCEAFTR(0),"^",1)="" S PXCELOOP=1
|
---|
36 | I $D(DIRUT) S PXCEQUIT=1 Q
|
---|
37 | S (PXCEINP,PXD)=Y
|
---|
38 | S PXCEIN01=X
|
---|
39 | I $P(Y,"^",2)'=PXCEDIRB,$$DUP(PXCEINP) G EDIT01
|
---|
40 | ;--File new CPT code and retrieve IEN
|
---|
41 | I PXCECAT="CPT" D
|
---|
42 | . S PXMDCNT=$$CODM^ICPTCOD(+Y,"^TMP(""PXMODARR"",$J",PXCESOR,+^TMP("PXK",$J,"VST",1,0,"AFTER"))
|
---|
43 | . K ^TMP("PXMODARR",$J)
|
---|
44 | . I $P(PXCEAFTR(0),"^",1)'=""!(PXMDCNT'>0) Q
|
---|
45 | . N PXCEFIEN
|
---|
46 | . D NEWCODE^PXCECPT
|
---|
47 | . S ^TMP("PXK",$J,PXCECATS,1,"IEN")=PXCEFIEN
|
---|
48 | I PXCECAT="PRV",$P(PXCEAFTR(0),"^",1)>0,PXCEDIRB]"" S $P(PXCEAFTR(0),"^",6)=""
|
---|
49 | S $P(PXCEAFTR(0),"^",1)=$P(PXCEINP,"^")
|
---|
50 | K DIR,DA
|
---|
51 | ;
|
---|
52 | ;
|
---|
53 | REST S PXCEEND=0
|
---|
54 | F PXCELINE=2:1 S PXCETEXT=$P($T(FORMAT+PXCELINE^@PXCECODE),";;",2) Q:PXCETEXT']"" D Q:PXCEEND
|
---|
55 | . I $P(PXCETEXT,"~",9)]"",$P(PXCETEXT,"~",3)'=80201 S PXCEKEY="" D Q:PXCEKEY'=1
|
---|
56 | .. S PXCENKEY=$L($P(PXCETEXT,"~",9))
|
---|
57 | .. F PXCEIKEY=1:1:PXCENKEY I PXCEKEYS[$E($P(PXCETEXT,"~",9),PXCEIKEY) S PXCEKEY=1 Q
|
---|
58 | . K DIR,DA,X,Y,C
|
---|
59 | . I $P(PXCETEXT,"~",7)]"" D
|
---|
60 | .. D @$P(PXCETEXT,"~",7)
|
---|
61 | . E D
|
---|
62 | .. I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
|
---|
63 | ... N DIERR,PXCEDILF,PXCEINT,PXCEEXT
|
---|
64 | ... S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
|
---|
65 | ... S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
|
---|
66 | ... S DIR("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
|
---|
67 | .. S DIR(0)=PXCEFILE_","_$P(PXCETEXT,"~",3)_"A"
|
---|
68 | .. S DIR("A")=$P(PXCETEXT,"~",4)
|
---|
69 | .. S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
|
---|
70 | .. D ^DIR
|
---|
71 | .. K DIR,DA
|
---|
72 | .. I X="@" S Y="@"
|
---|
73 | .. E I $D(DTOUT)!$D(DUOUT) S PXCEEND=1 S:PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST")!(PXCECAT="CPT") PXCEQUIT=1 Q
|
---|
74 | .. S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
|
---|
75 | . I ($P(PXCETEXT,"~",3)=1202!($P(PXCETEXT,"~",3)=1204)) D:+Y>0 PROVIDER^PXCEVFI4(+Y)
|
---|
76 | ;
|
---|
77 | ENDEDIT ;
|
---|
78 | Q
|
---|
79 | ;
|
---|
80 | DUP(PXCEINP) ; -- Check for dup entries.
|
---|
81 | Q:PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST") 0
|
---|
82 | ;
|
---|
83 | N PXCEDUP,PXCEINDX,X,Y
|
---|
84 | S PXCEDUP=0
|
---|
85 | S PXCEINDX=""
|
---|
86 | F S PXCEINDX=$O(@(PXCEAUPN_"(""AD"",PXCEVIEN,PXCEINDX)")) Q:'PXCEINDX!PXCEDUP S:+@(PXCEAUPN_"(PXCEINDX,0)")=+PXCEINP&(PXCEINDX'=PXCEFIEN) PXCEDUP=1
|
---|
87 | I PXCEDUP D
|
---|
88 | . I PXCEDUP
|
---|
89 | . W !,$P(PXCEINP,"^",2)," is already a "_PXCECATT_" for this Encounter."
|
---|
90 | . I PXCECAT="POV" W !!,"Duplicate Diagnosis Not Allowed." Q ;PX/112
|
---|
91 | . I PXCECAT="CPT",$$GET1^DIQ(357.69,$P(PXCEINP,"^",2),.01)>0 D Q
|
---|
92 | . . W !,"No duplicate E&M codes allowed." ;PX/136
|
---|
93 | . I $P($T(FORMAT^@PXCECODE),"~",4) D
|
---|
94 | .. N DIR,DA
|
---|
95 | .. S DIR(0)="Y"
|
---|
96 | .. S DIR("A")="Do you want to add another "_$P(PXCEINP,"^",2)_""
|
---|
97 | .. S DIR("B")="NO"
|
---|
98 | .. D ^DIR
|
---|
99 | .. S PXCEDUP='+Y
|
---|
100 | Q PXCEDUP
|
---|
101 | ;
|
---|