| 1 | PXCEVFI2 ;ISL/dee,ESW - Supporting routines for editing a visit or v-file entry ; 4/24/07 4:27pm
 | 
|---|
| 2 |  ;;1.0;PCE PATIENT CARE ENCOUNTER;**22,73,95,96,124,158,184**;Aug 12, 1996;Build 30
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 | ASK(PXCVIEN,PXCFIEN,PXCEAUPN,PXCCATT,PXCCODE) ; -- Display a selection list from one V-File for this visit
 | 
|---|
| 6 |  N PXCEINDX,PXCECNT,PXCEASK,PXCEREF
 | 
|---|
| 7 |  N DIR,DA,X,Y
 | 
|---|
| 8 |  S PXCEINDX=""
 | 
|---|
| 9 |  F PXCECNT=0:1 S PXCEINDX=$O(@(PXCEAUPN_"(""AD"",PXCVIEN,PXCEINDX)")) Q:'PXCEINDX  D
 | 
|---|
| 10 |  . I PXCECNT=0&(PXCCATT="Diagnosis") D SC($P(^AUPNVSIT(PXCEVIEN,0),U,5))
 | 
|---|
| 11 |  . I PXCECNT=0&(PXCCATT="CPT") D SC($P(^AUPNVSIT(PXCEVIEN,0),U,5))
 | 
|---|
| 12 |  . W:PXCECNT=0 !!,"--- "_PXCCATT_" ---",!
 | 
|---|
| 13 |  . S PXCEASK(PXCECNT+1)=PXCEINDX
 | 
|---|
| 14 |  . W !,$J(PXCECNT+1,3),?6,@("$$DISPLY01^"_PXCCODE_"("_PXCEAUPN_"(PXCEINDX,0))")
 | 
|---|
| 15 |  Q:PXCECNT'>0
 | 
|---|
| 16 | ASKLOOP S DIR(0)="FAO^1:"_$L(PXCECNT)
 | 
|---|
| 17 |  S DIR("A")="Enter 1-"_PXCECNT_" to Edit, or 'A' to Add: "
 | 
|---|
| 18 |  S DIR("?")="Enter the number of the "_PXCCATT_" you wish to edit or A to add a new "_PXCCATT_"."
 | 
|---|
| 19 |  D ^DIR
 | 
|---|
| 20 |  K DIR,DA
 | 
|---|
| 21 |  I $D(DIRUT) S PXCEQUIT=1 Q
 | 
|---|
| 22 |  Q:"Aa"[Y
 | 
|---|
| 23 |  G:Y<1!(Y>PXCECNT) ASKLOOP
 | 
|---|
| 24 |  G:$G(PXCEASK(Y))'>0 ASKLOOP
 | 
|---|
| 25 |  S PXCFIEN=$G(PXCEASK(Y))
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | SAVE ; -- Save this edited and quit editing.
 | 
|---|
| 29 |  I PXCECAT="CSTP" S PXCEFIEN=$$STOPCODE^PXUTLSTP(PXCESOR,$P(PXCEAFTR(0),"^",8),PXCEVIEN)
 | 
|---|
| 30 |  E  D
 | 
|---|
| 31 |  . N PXCENODS,PXCEFOR,PXCENODE,PXCESEQ
 | 
|---|
| 32 |  . S PXCENODS=$P($T(FORMAT^@PXCECODE),"~",3)
 | 
|---|
| 33 |  . F PXCEFOR=1:1 S PXCENODE=$P(PXCENODS,",",PXCEFOR) Q:PXCENODE']""  D
 | 
|---|
| 34 |  .. I PXCENODE=1,PXCECATS="CPT" D  Q
 | 
|---|
| 35 |  ... S PXCESEQ=""
 | 
|---|
| 36 |  ... F  S PXCESEQ=$O(PXCEAFTR(PXCENODE,PXCESEQ)) Q:PXCESEQ=""  D
 | 
|---|
| 37 |  .... S ^TMP("PXK",$J,PXCECATS,1,PXCENODE,PXCESEQ,"AFTER")=PXCEAFTR(PXCENODE,PXCESEQ)
 | 
|---|
| 38 |  .. S ^TMP("PXK",$J,PXCECATS,1,PXCENODE,"AFTER")=PXCEAFTR(PXCENODE)
 | 
|---|
| 39 |  . I PXCECAT="SK",$G(^TMP("PXK",$J,PXCECATS,1,"IEN"))]"" D SAVE^PXCESK
 | 
|---|
| 40 |  . D EN1^PXKMAIN
 | 
|---|
| 41 |  . I PXCECAT="SIT"!(PXCECAT="APPM")!(PXCECAT="HIST") S PXCEVIEN=^TMP("PXK",$J,"VST",1,"IEN")
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | DEL(PXCECAT) ; -- Delete this V-File entry from the List if all the visit information.
 | 
|---|
| 45 |  I PXCEFIEN'>0!(PXCEVIEN'>0) W !!,$C(7),"Error: Cannot delete this an unknown V-File entry." D PAUSE^PXCEHELP Q
 | 
|---|
| 46 |  I PXCEKEYS'["D",PXCEKEYS'["d" W !!,$C(7),"Error: You do not have delete access." D PAUSE^PXCEHELP Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  N PXCENODS,PXCEFOR,PXCENODE,PXCECATS,PXCECATT,PXCECODE,PXCEAUPN,PXCEQUIT
 | 
|---|
| 49 |  S PXCECODE="PXCE"_$S(PXCECAT="IMM":"VIMM",1:PXCECAT)
 | 
|---|
| 50 |  S PXCECATS=$S(PXCECAT="CSTP":"VST",PXCECAT="HIST":"VST",1:PXCECAT)
 | 
|---|
| 51 |  S PXCEAUPN=$P($T(FORMAT^@PXCECODE),"~",5)
 | 
|---|
| 52 |  S PXCECATT=$P($P($T(FORMAT^@PXCECODE),";;",2),"~",1)
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  I '$D(@(PXCEAUPN_"(PXCEFIEN)")) Q
 | 
|---|
| 55 |  I $P($G(@(PXCEAUPN_"(PXCEFIEN,812)")),"^",1) D  Q
 | 
|---|
| 56 |  . W !!,"Error on deleting "_PXCECATT_" ",@("$$DISPLY01^"_PXCECODE_"(@(PXCEAUPN_""(PXCEFIEN,0)""))")
 | 
|---|
| 57 |  . W !,"Error: You cannot delete this entry it has been ""Verified""." D WAIT^PXCEHELP
 | 
|---|
| 58 |  I PXCEKEYS'["D" D  Q:PXCEQUIT
 | 
|---|
| 59 |  . N PXCECHK
 | 
|---|
| 60 |  . S PXCEQUIT=0
 | 
|---|
| 61 |  . I PXCECATS="VST" S PXCECHK=$P($G(@(PXCEAUPN_"(PXCEFIEN,0)")),"^",23)
 | 
|---|
| 62 |  . E  S PXCECHK=$P($P($P($G(@(PXCEAUPN_"(PXCEFIEN,801)")),"^",2),";",1)," ",2)
 | 
|---|
| 63 |  . I DUZ'=PXCECHK D
 | 
|---|
| 64 |  .. S PXCEQUIT=1
 | 
|---|
| 65 |  .. N NODE0
 | 
|---|
| 66 |  .. S NODE0=@(PXCEAUPN_"(PXCEFIEN,0)")
 | 
|---|
| 67 |  .. W !!,"Error on deleting "_PXCECATT_" ",@("$$DISPLY01^"_PXCECODE_"(NODE0)")
 | 
|---|
| 68 |  .. W !,"Error: You cannot delete an entry you did not create." D WAIT^PXCEHELP
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  I PXCECAT="CSTP" D
 | 
|---|
| 71 |  . W !!,"Deleting "_PXCECATT_" "
 | 
|---|
| 72 |  . W @("$$DISPLY01^"_PXCECODE_"($G(@(PXCEAUPN_""(PXCEFIEN,0)"")))")
 | 
|---|
| 73 |  . Q:'$$SURE^PXCEAE2
 | 
|---|
| 74 |  . N PXCERESU
 | 
|---|
| 75 |  . S PXCERESU=$$STOPCODE^PXUTLSTP(PXCESOR,"@",PXCEVIEN,PXCEFIEN)
 | 
|---|
| 76 |  . S:$D(PXCELOOP) PXCELOOP=1
 | 
|---|
| 77 |  E  I PXCECATS="VST" D
 | 
|---|
| 78 |  . W !!,"Deleting "_PXCECATT_" "
 | 
|---|
| 79 |  . W @("$$DISPLY01^"_PXCECODE_"($G(@(PXCEAUPN_""(PXCEFIEN,0)"")))")
 | 
|---|
| 80 |  . Q:'$$SURE^PXCEAE2
 | 
|---|
| 81 |  . N PXCERESU
 | 
|---|
| 82 |  . S PXCERESU=$$KILL^VSITKIL(PXCEVIEN)
 | 
|---|
| 83 |  . I PXCERESU D
 | 
|---|
| 84 |  .. I PXCERESU=1,$O(^SCE("AVSIT",PXCEVIEN,"")) Q
 | 
|---|
| 85 |  .. W !,$C(7),"Could not delete the encounter.  There are still users of it." D WAIT^PXCEHELP
 | 
|---|
| 86 |  . I 'PXCERESU S PXCEVDEL=1 S:$D(PXCELOOP) (PXCELOOP,PXCEQUIT,PXCENOER)=1
 | 
|---|
| 87 |  . D EVENT^PXKMAIN
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 |  E  D
 | 
|---|
| 90 |  . K ^TMP("PXK",$J)
 | 
|---|
| 91 |  . S ^TMP("PXK",$J,"VST",1,"IEN")=PXCEVIEN
 | 
|---|
| 92 |  . F PXCENODE=0,21,150,800,811,812 D
 | 
|---|
| 93 |  .. S (^TMP("PXK",$J,"VST",1,PXCENODE,"AFTER"),^TMP("PXK",$J,"VST",1,PXCENODE,"BEFORE"))=$G(^AUPNVSIT(PXCEVIEN,PXCENODE))
 | 
|---|
| 94 |  . ;
 | 
|---|
| 95 |  . S ^TMP("PXK",$J,"SOR")=PXCESOR
 | 
|---|
| 96 |  . S ^TMP("PXK",$J,PXCECATS,1,"IEN")=PXCEFIEN
 | 
|---|
| 97 |  . ;
 | 
|---|
| 98 |  . S PXCENODS=$P($T(FORMAT^@PXCECODE),"~",3)
 | 
|---|
| 99 |  . F PXCEFOR=1:1 S PXCENODE=$P(PXCENODS,",",PXCEFOR) Q:PXCENODE']""  D
 | 
|---|
| 100 |  .. S ^TMP("PXK",$J,PXCECATS,1,PXCENODE,"BEFORE")=$G(@(PXCEAUPN_"(PXCEFIEN,PXCENODE)"))
 | 
|---|
| 101 |  . ;
 | 
|---|
| 102 |  . N DIK,DA
 | 
|---|
| 103 |  . W !!,"Deleting "_PXCECATT_" "
 | 
|---|
| 104 |  . W @("$$DISPLY01^"_PXCECODE_"(^TMP(""PXK"",$J,PXCECATS,1,0,""BEFORE""))")
 | 
|---|
| 105 |  . Q:'$$SURE^PXCEAE2  ;DELQUIT
 | 
|---|
| 106 |  . S PXCENODS=$P($T(FORMAT^@PXCECODE),"~",3)
 | 
|---|
| 107 |  . F PXCEFOR=1:1 S PXCENODE=$P(PXCENODS,",",PXCEFOR) Q:PXCENODE']""  S ^TMP("PXK",$J,PXCECATS,1,PXCENODE,"AFTER")=$S(PXCENODE=0:"@",1:"")
 | 
|---|
| 108 |  . D EN1^PXKMAIN
 | 
|---|
| 109 |  . S:$D(PXCELOOP) PXCELOOP=1
 | 
|---|
| 110 |  . I $D(PXCENOER)#2 S PXCENOER=1
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 | DELQUIT ;
 | 
|---|
| 113 |  K ^TMP("PXK",$J)
 | 
|---|
| 114 |  Q
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 | SC(PXDFN) ;Service Connected Help
 | 
|---|
| 117 |  ; Input  -- DFN      Patient file IEN  
 | 
|---|
| 118 |  ; Output -- Help
 | 
|---|
| 119 |  N I,SDCNT,SDDC,SDRD0
 | 
|---|
| 120 |  W !!,"Patient's Service Connection and Rated Disabilities:"
 | 
|---|
| 121 |  W !!,$S($P($G(^DPT(PXDFN,.3)),"^")="Y":"        SC Percent: "_$P(^(.3),"^",2)_"%",1:" Service Connected: No")
 | 
|---|
| 122 |  W !,"Rated Disabilities: "
 | 
|---|
| 123 |  I $P($G(^DPT(PXDFN,"VET")),"^")'="Y",$S('$D(^DIC(391,+$G(^DPT(PXDFN,"TYPE")),0)):1,$P(^(0),"^",2):0,1:1) W "Not a Veteran" Q
 | 
|---|
| 124 |  S (SDCNT,I)=0
 | 
|---|
| 125 |  F  S I=$O(^DPT(PXDFN,.372,I)) Q:'I  I $P($G(^(I,0)),"^",3) S SDRD0=^(0) D
 | 
|---|
| 126 |  .S SDCNT=SDCNT+1
 | 
|---|
| 127 |  .S SDDC=$S('$D(^DIC(31,+SDRD0,0)):"",$P(^(0),"^",4)]"":$P(^(0),"^",4),1:$P(^(0),"^"))
 | 
|---|
| 128 |  .W:SDCNT>1 !
 | 
|---|
| 129 |  .W ?20,$P($G(^DIC(31,+SDRD0,0)),"^",3),?25,SDDC,"  (",$P(SDRD0,"^",2),"%-",$S($P(SDRD0,"^",3):"SC",1:""),")"
 | 
|---|
| 130 |  I 'SDCNT W $S('$O(^DPT(PXDFN,.372,0)):"None Stated",1:"No Service Connected Disabilities Listed")
 | 
|---|
| 131 |  ;
 | 
|---|