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/PXCEVFI1.m

    r613 r623  
    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,185**;Aug 12, 1996;Build 12
    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         ;following code added per PX*185
    52         I $D(XQORNOD(0)) I $P(XQORNOD(0),U,4)="HF" D
    53         .N HFIEN,NODE
    54         .S HFIEN=$P(PXCEINP,U),NODE=$G(^AUTTHF(HFIEN,0))
    55         .Q:'$D(NODE)
    56         .I $P(NODE,U,8)'="Y" W !!,"WARNING:  This Health Factor is currently not set to",!?10,"display on a Health Summary report.",!!
    57         .K HFIEN,NODE
    58         .Q
    59         ;
    60         ;
    61 REST    S PXCEEND=0
    62         F PXCELINE=2:1 S PXCETEXT=$P($T(FORMAT+PXCELINE^@PXCECODE),";;",2) Q:PXCETEXT']""  D  Q:PXCEEND
    63         . I $P(PXCETEXT,"~",9)]"",$P(PXCETEXT,"~",3)'=80201 S PXCEKEY="" D  Q:PXCEKEY'=1
    64         .. S PXCENKEY=$L($P(PXCETEXT,"~",9))
    65         .. F PXCEIKEY=1:1:PXCENKEY I PXCEKEYS[$E($P(PXCETEXT,"~",9),PXCEIKEY) S PXCEKEY=1 Q
    66         . K DIR,DA,X,Y,C
    67         . I $P(PXCETEXT,"~",7)]"" D
    68         .. D @$P(PXCETEXT,"~",7)
    69         . E  D
    70         .. I $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))'="" D
    71         ... N DIERR,PXCEDILF,PXCEINT,PXCEEXT
    72         ... S PXCEINT=$P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))
    73         ... S PXCEEXT=$$EXTERNAL^DILFD(PXCEFILE,$P(PXCETEXT,"~",3),"",PXCEINT,"PXCEDILF")
    74         ... S DIR("B")=$S('$D(DIERR):PXCEEXT,1:PXCEINT)
    75         .. S DIR(0)=PXCEFILE_","_$P(PXCETEXT,"~",3)_"A"
    76         .. S DIR("A")=$P(PXCETEXT,"~",4)
    77         .. S:$P(PXCETEXT,"~",8)]"" DIR("?")=$P(PXCETEXT,"~",8)
    78         .. D ^DIR
    79         .. K DIR,DA
    80         .. I X="@" S Y="@"
    81         .. E  I $D(DTOUT)!$D(DUOUT) S PXCEEND=1 S:PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST")!(PXCECAT="CPT") PXCEQUIT=1 Q
    82         .. S $P(PXCEAFTR($P(PXCETEXT,"~",1)),"^",$P(PXCETEXT,"~",2))=$P(Y,"^")
    83         . I ($P(PXCETEXT,"~",3)=1202!($P(PXCETEXT,"~",3)=1204)) D:+Y>0 PROVIDER^PXCEVFI4(+Y)
    84         ;
    85 ENDEDIT ;
    86         Q
    87         ;
    88 DUP(PXCEINP)    ; -- Check for dup entries.
    89         Q:PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST") 0
    90         ;
    91         N PXCEDUP,PXCEINDX,X,Y
    92         S PXCEDUP=0
    93         S PXCEINDX=""
    94         F  S PXCEINDX=$O(@(PXCEAUPN_"(""AD"",PXCEVIEN,PXCEINDX)")) Q:'PXCEINDX!PXCEDUP  S:+@(PXCEAUPN_"(PXCEINDX,0)")=+PXCEINP&(PXCEINDX'=PXCEFIEN) PXCEDUP=1
    95         I PXCEDUP D
    96         . I PXCEDUP
    97         . W !,$P(PXCEINP,"^",2)," is already a "_PXCECATT_" for this Encounter."
    98         . I PXCECAT="POV" W !!,"Duplicate Diagnosis Not Allowed." Q  ;PX/112
    99         . I PXCECAT="CPT",$$GET1^DIQ(357.69,$P(PXCEINP,"^",2),.01)>0 D  Q
    100         . . W !,"No duplicate E&M codes allowed."   ;PX/136
    101         . I $P($T(FORMAT^@PXCECODE),"~",4) D
    102         .. N DIR,DA
    103         .. S DIR(0)="Y"
    104         .. S DIR("A")="Do you want to add another "_$P(PXCEINP,"^",2)_""
    105         .. S DIR("B")="NO"
    106         .. D ^DIR
    107         .. S PXCEDUP='+Y
    108         Q PXCEDUP
    109         ;
     1PXCEVFI1 ;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 ;
     5EDIT ; -- 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 ;
     12EDIT01 ;
     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 ;
     53REST 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 ;
     77ENDEDIT ;
     78 Q
     79 ;
     80DUP(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 ;
Note: See TracChangeset for help on using the changeset viewer.