1 | RMPRPCED ;Hines OIFO/RVD - Prosthetics/660/668/PCE DELETE ;7/30/02 09:39
|
---|
2 | ;;3.0;PROSTHETICS;**62,70,121,131**;Feb 09, 1996;Build 3
|
---|
3 | ;RVD 7/1/02 - patch #70 - new RMPR variables before calling PCE.
|
---|
4 | ;
|
---|
5 | ; This routine contains the code for deleting a Prosthetic visit in PCE.
|
---|
6 | ;
|
---|
7 | ;DBIA #1890 - this API is used to delete data from the VISIT file
|
---|
8 | ; (9000010) and V files from PCE module.
|
---|
9 | ;DBIA #10048 - fileman read on file 9.4.
|
---|
10 | ;
|
---|
11 | DEL(RMIE60) ;delete PCE visit.
|
---|
12 | D NEWVAR
|
---|
13 | S (RMLOCK,RMERR)=0
|
---|
14 | I '$P($G(^RMPR(660,RMIE60,10)),U,12) G DEL68
|
---|
15 | S RMSRC="PROSTHETICS DATA"
|
---|
16 | S X="PROSTHETICS",DIC="^DIC(9.4," D ^DIC
|
---|
17 | I '$D(Y)!(Y<0) S RMERR=-1 G DELX
|
---|
18 | S RMPKG=+Y
|
---|
19 | I 'RMPKG S RMERR=-1 G DELX
|
---|
20 | ;
|
---|
21 | ; get PCE IEn from file #660.
|
---|
22 | S RMPCE=$P($G(^RMPR(660,RMIE60,10)),U,12)
|
---|
23 | I 'RMPCE S RMERR=-1 G DELX
|
---|
24 | I '$D(^AUPNVSIT(RMPCE,0)) G DEL68
|
---|
25 | ;
|
---|
26 | DELVF ; Remove all workload data from the PCE visit file & related V files.
|
---|
27 | ; check if the visit is already in PCE and remove workload,
|
---|
28 | ; (sending RMPKG and RMSRC to ensure that only data that originally
|
---|
29 | ; came from PROSTHETICS will be removed).
|
---|
30 | ;
|
---|
31 | N RMPR,REDO,VEJD
|
---|
32 | S REDO=0
|
---|
33 | DELVF1 S RMCHK=$$DELVFILE^PXAPI("ALL",.RMPCE,RMPKG,RMSRC,0,0,"")
|
---|
34 | I RMCHK'=1 D I REDO=1 G DELVF1
|
---|
35 | . Q:$P($G(^AUPNVSIT(RMPCE,0)),U,9)'=1!REDO
|
---|
36 | . S VEJD=$O(^VEJD(19610.5,"B",RMPCE,0)) Q:VEJD=""
|
---|
37 | . ;kill remaining dependent (DSS) to visit
|
---|
38 | . S DA=VEJD,DIK="^VEJD(19610.5," D ^DIK
|
---|
39 | . K DA,DIK
|
---|
40 | . I $P(^AUPNVSIT(RMPCE,0),U,9)=0 S REDO=1
|
---|
41 | I RMCHK'=1 W !!,"*** Error in deleting PCE visit !!",! S RMERR=-1 G DELX
|
---|
42 | ;
|
---|
43 | DEL68 ; delete PCE info in file #668.
|
---|
44 | S RMAMIS=$G(^RMPR(660,RMIE60,"AMS"))
|
---|
45 | S RMIE68=$O(^RMPR(668,"F",RMIE60,0)) G:RMIE68="" DEL60
|
---|
46 | L +^RMPR(668,RMIE68):3 I $T=0 D ERR68 G DELX
|
---|
47 | S DA=$O(^RMPR(668,RMIE68,10,"B",RMIE60,0))
|
---|
48 | S DA(1)=RMIE68,DIK="^RMPR(668,"_DA(1)_",10," D ^DIK
|
---|
49 | S RMAMIEN=$O(^RMPR(668,RMIE68,11,"B",RMAMIS,0))
|
---|
50 | S RMCNT=0
|
---|
51 | F I=0:0 S I=$O(^RMPR(668,RMIE68,10,"B",I)) Q:I'>0 D
|
---|
52 | .S RMAMIS68=$G(^RMPR(660,I,"AMS")) S:RMAMIS68=RMAMIS RMCNT=RMCNT+1
|
---|
53 | ;if no other line item of the same GROUPER #, then delete.
|
---|
54 | I RMCNT=1 D
|
---|
55 | .S DA=RMAMIEN
|
---|
56 | .S DA(1)=RMIE68,DIK="^RMPR(668,"_DA(1)_",11,"
|
---|
57 | .D ^DIK
|
---|
58 | L -^RMPR(668,RMIE68)
|
---|
59 | ;
|
---|
60 | DEL60 ; delete PCE info in file #660.
|
---|
61 | ; lock file #660
|
---|
62 | L +^RMPR(660,RMIE60,10):3 I $T=0 D ERR60 G DELX
|
---|
63 | S RMARR(660,RMIE60_",",8.12)="@"
|
---|
64 | S RMARR(660,RMIE60_",",8.13)="@"
|
---|
65 | D FILE^DIE("","RMARR","")
|
---|
66 | L -^RMPR(660,RMIE60,10)
|
---|
67 | ;
|
---|
68 | ; exit delete
|
---|
69 | DELX Q RMERR
|
---|
70 | ;
|
---|
71 | ERR68 ; print error if unable to delete/update file #668.
|
---|
72 | W !!,"*** File #668 is locked, IEN = ",RMIE68,", PLEASE contact your IRM!!",!!
|
---|
73 | L -^RMPR(668,RMIE68)
|
---|
74 | S RMERR=-1
|
---|
75 | Q
|
---|
76 | ERR60 ; print error if unable to delete/update file #660.
|
---|
77 | W !!,"*** File #660 is locked, IEN = ",RMIE60,", PLEASE contact your IRM!!",!!
|
---|
78 | S RMERR=-1
|
---|
79 | Q
|
---|
80 | ;
|
---|
81 | CHECK ;check for return error from PCE
|
---|
82 | ;input variable RMPROB
|
---|
83 | I $D(RMPROB($J,1))!$D(RMPROB($J,2)) D
|
---|
84 | .S (R2,R3,RMMESS)=""
|
---|
85 | .F R1=0:0 S R1=$O(RMPROB($J,R1)) Q:R1'>0 F S R2=$O(RMPROB($J,R1,"ERROR1",R2)) Q:R2="" F S R3=$O(RMPROB($J,R1,"ERROR1",R2,R3)) Q:R3="" D
|
---|
86 | ..F R4=0:0 S R4=$O(RMPROB($J,R1,"ERROR1",R2,R3,R4)) Q:R4'>0 D
|
---|
87 | ...S RMMESS=RMPROB($J,R1,"ERROR1",R2,R3,R4)
|
---|
88 | ...W:RMMESS'="" !,"???? ",RMMESS
|
---|
89 | ...I (RMMESS["CPT")!(RMMESS["Provider") S RMPRCPER=1
|
---|
90 | Q
|
---|
91 | ;
|
---|
92 | PRV ;PROVIDER VALIDATION PRIOR TO PCE INTERFACE CALL
|
---|
93 | K PXAA,PXADI,PXAERR N PXAVDATE,PXAERRF
|
---|
94 | S PXAA("NAME")=^TMP("RMPRPCE1",$J,"PXAPI","PROVIDER",1,"NAME"),PXAVDATE=$P(^TMP("RMPRPCE1",$J,"PXAPI","ENCOUNTER",1,"ENC D/T"),".")
|
---|
95 | ;CHECKER
|
---|
96 | ;----Missing a pointer to providers name
|
---|
97 | I $G(PXAA("NAME"))']"" D G PRVX:$G(STOP)
|
---|
98 | .S STOP=1 ;--USED TO STOP DO LOOP
|
---|
99 | .S PXAERRF=1 ;--FLAG INDICATES THERE IS AN ERR
|
---|
100 | .S PXADI("DIALOG")=8390001.001
|
---|
101 | .S PXAERR(9)="NAME"
|
---|
102 | .S PXAERR(11)=$G(PXAA("NAME"))
|
---|
103 | .S PXAERR(12)="You are missing a pointer to the NEW PERSON file #200 that represents the Provider's name"
|
---|
104 | ;
|
---|
105 | ;----Not a pointer to NEW PERSON file#200
|
---|
106 | I $G(PXAA("NAME"))'["@" D 01^PXAIUPRV($G(PXAA("NAME"))) I $G(PXAIVAL)=1 K PXAIVAL,PXCA("ERROR") D G PRVX:$G(STOP)
|
---|
107 | .S STOP=1
|
---|
108 | .S PXAERRF=1
|
---|
109 | .S PXADI("DIALOG")=8390001.001
|
---|
110 | .S PXAERR(9)="NAME"
|
---|
111 | .S PXAERR(11)=$G(PXAA("NAME"))
|
---|
112 | .S PXAERR(12)=PXAERR(11)_" is NOT a pointer value to the NEW PERSON file #200 for Provider"
|
---|
113 | ;
|
---|
114 | ;----Not have an active person class
|
---|
115 | N CLASS
|
---|
116 | S CLASS=+$$GET^XUA4A72($G(PXAA("NAME")),PXAVDATE) I CLASS<0 D
|
---|
117 | .S STOP=1
|
---|
118 | .S PXAERRF=1
|
---|
119 | .S PXADI("DIALOG")=8390001.001
|
---|
120 | .S PXAERR(9)="NAME"
|
---|
121 | .S PXAERR(11)=$G(PXAA("NAME"))
|
---|
122 | .S PXAERR(12)="The Provider does not have an ACTIVE person class!"
|
---|
123 | PRVX I STOP D
|
---|
124 | . S RMERR=0 K RMPCE
|
---|
125 | . S RMPROB($J,2,"ERROR1","PROVIDER","NAME",1)=PXAERR(12)
|
---|
126 | K PXAERR,PXAERRF,PXADI,PXAA
|
---|
127 | Q
|
---|
128 | NEWVAR ; new variables
|
---|
129 | N Y
|
---|
130 | N I,RMCHK,RMKI,RMSUB,RMARR,DIE,DA,DIC,RMAMIS,RMAMIS68,DIK,RMCNT,RMAMIEN
|
---|
131 | Q
|
---|