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

PXCEVFI1.m

Go to the documentation of this file.
  1. PXCEVFI1 ;ISL/dee,esw - Routine to edit a visit or v-file entry ; 12/17/02 8:23am
  1. ;;1.0;PCE PATIENT CARE ENCOUNTER;**23,73,112**;Aug 12, 1996
  1. Q
  1. ;
  1. EDIT ; -- edit the V-File stored in "AFTER"
  1. N DIR,DA,X,Y,C,PXCEINP,PXCEIN01,PXCEEND
  1. N PXCELINE,PXCETEXT,PXCEDIRB,PXCEMOD
  1. N PXCEKEY,PXCEIKEY,PXCENKEY,PXMDCNT
  1. W !
  1. G:PXCECAT="VST"!(PXCECAT="APPM")!(PXCECAT="CSTP") REST
  1. ;
  1. EDIT01 ;
  1. S PXCETEXT=$P($T(FORMAT+1^@PXCECODE),";;",2)
  1. K DIR,DA,X,Y,C,PXCEDIRB
  1. I $P(PXCEAFTR(0),"^",1) D
  1. . N DIEER,PXCEDILF,PXCEEXT
  1. . S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,.01,"",$P(PXCEAFTR(0),"^",1),"PXCEDILF")
  1. . S PXCEDIRB=$S('$D(DIERR):PXCEEXT,1:$P(PXCEAFTR(0),"^",1))
  1. E S PXCEDIRB=""
  1. I $P(PXCETEXT,"~",7)]"" D
  1. . D @$P(PXCETEXT,"~",7)
  1. E D
  1. . I PXCEDIRB'="" S DIR("B")=PXCEDIRB
  1. . S DIR(0)=PXCEFILE_",.01OA"
  1. . S DIR("A")=$P(PXCETEXT,"~",4)
  1. . S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
  1. . D ^DIR
  1. I X="@" D G ENDEDIT
  1. . N DIRUT
  1. . I $P(PXCEAFTR(0),"^",1)="" D
  1. .. W !,"There is no entry to delete."
  1. .. D WAIT^PXCEHELP
  1. . E D DEL^PXCEVFI2(PXCECAT)
  1. I $D(DIRUT),$P(PXCEAFTR(0),"^",1)="" S PXCELOOP=1
  1. I $D(DIRUT) S PXCEQUIT=1 Q
  1. S PXCEINP=Y
  1. S PXCEIN01=X
  1. I X'=PXCEDIRB,$$DUP(PXCEINP) G EDIT01
  1. ;--File new CPT code and retrieve IEN
  1. I PXCECAT="CPT" D
  1. . S PXMDCNT=$$CODM^ICPTCOD(+Y,"^TMP(""PXMODARR"",$J",PXCESOR,+^TMP("PXK",$J,"VST",1,0,"AFTER"))
  1. . K ^TMP("PXMODARR",$J)
  1. . I $P(PXCEAFTR(0),"^",1)'=""!(PXMDCNT'>0) Q
  1. . N PXCEFIEN
  1. . D NEWCODE^PXCECPT
  1. . S ^TMP("PXK",$J,PXCECATS,1,"IEN")=PXCEFIEN
  1. S $P(PXCEAFTR(0),"^",1)=$P(PXCEINP,"^")
  1. K DIR,DA
  1. ;
  1. ;
  1. REST S PXCEEND=0
  1. F PXCELINE=2:1 S PXCETEXT=$P($T(FORMAT+PXCELINE^@PXCECODE),";;",2) Q:PXCETEXT']"" D Q:PXCEEND
  1. . I $P(PXCETEXT,"~",9)]"",$P(PXCETEXT,"~",3)'=80201 S PXCEKEY="" D Q:PXCEKEY'=1
  1. .. S PXCENKEY=$L($P(PXCETEXT,"~",9))
  1. .. F PXCEIKEY=1:1:PXCENKEY I PXCEKEYS[$E($P(PXCETEXT,"~",9),PXCEIKEY) S PXCEKEY=1 Q
  1. . K DIR,DA,X,Y,C
  1. . I $P(PXCETEXT,"~",7)]"" D
  1. .. D @$P(PXCETEXT,"~",7)
  1. . E D
  1. .. I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
  1. ... N DIERR,PXCEDILF,PXCEINT,PXCEEXT
  1. ... S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
  1. ... S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
  1. ... S DIR("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
  1. .. S DIR(0)=PXCEFILE_","_$P(PXCETEXT,"~",3)_"A"
  1. .. S DIR("A")=$P(PXCETEXT,"~",4)
  1. .. S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
  1. .. D ^DIR
  1. .. K DIR,DA
  1. .. I X="@" S Y="@"
  1. .. E I $D(DTOUT)!$D(DUOUT) S PXCEEND=1 S:PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST") PXCEQUIT=1 Q
  1. .. S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
  1. . I ($P(PXCETEXT,"~",3)=1202!($P(PXCETEXT,"~",3)=1204)) D:+Y>0 PROVIDER^PXCEVFI4(+Y)
  1. ;
  1. ENDEDIT ;
  1. Q
  1. ;
  1. DUP(PXCEINP) ; -- Check for dup entries.
  1. Q:PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST") 0
  1. ;
  1. N PXCEDUP,PXCEINDX,X,Y
  1. S PXCEDUP=0
  1. S PXCEINDX=""
  1. F S PXCEINDX=$O(@(PXCEAUPN_"(""AD"",PXCEVIEN,PXCEINDX)")) Q:'PXCEINDX!PXCEDUP S:+@(PXCEAUPN_"(PXCEINDX,0)")=+PXCEINP&(PXCEINDX'=PXCEFIEN) PXCEDUP=1
  1. I PXCEDUP D
  1. . I PXCEDUP
  1. . W !,$P(PXCEINP,"^",2)," is already a "_PXCECATT_" for this Encounter."
  1. . I PXCECAT="POV" W !!,"Duplicate Diagnosis Not Allowed." Q ;PX/112
  1. . I PXCECAT="CPT",$D(^IBE(357.69,+$P(PXCEINP,U,2))) W !,"No Duplicate E&M Codes Are Allowed." Q ;DBIA #: 1906
  1. . I $P($T(FORMAT^@PXCECODE),"~",4) D
  1. .. N DIR,DA
  1. .. S DIR(0)="Y"
  1. .. S DIR("A")="Do you want to add another "_$P(PXCEINP,"^",2)_""
  1. .. S DIR("B")="NO"
  1. .. D ^DIR
  1. .. S PXCEDUP='+Y
  1. Q PXCEDUP
  1. ;