| 1 | RMPRPCE1 ;HCIOFO/RVD - Prosthetics/PCE UPDATE UTILITY ;5/7/03  09:12 | 
|---|
| 2 | ;;3.0;PROSTHETICS;**62,69,77,78**;Feb 09, 1996 | 
|---|
| 3 | ; | 
|---|
| 4 | ;patch #69 | 
|---|
| 5 | ;RVD 4/10/02 - validate the length (16 c) of provisional diagnosis | 
|---|
| 6 | ;              before filing.  Change Routine Prosthetic to ROUTINE | 
|---|
| 7 | ;              Type of Request field in 660. | 
|---|
| 8 | ;RVD 5/6/03 patch #77 - SET Consult Request Service field in #660. | 
|---|
| 9 | ;                     - POST init for setting Consult Request Service. | 
|---|
| 10 | ;TH 9/29/03 Patch #78 - Add Billing Aware related fields. | 
|---|
| 11 | ; | 
|---|
| 12 | ;DBIA # 10060, Fileman read of file #200. | 
|---|
| 13 | ; | 
|---|
| 14 | ;This routine contains the code for updating file #660 and #668. | 
|---|
| 15 | ; | 
|---|
| 16 | ;RMIE60 - ien of file #660 | 
|---|
| 17 | UP60(RMIE60,RMIE68,RMSUSTAT) ; update file #660. | 
|---|
| 18 | D NEWVAR | 
|---|
| 19 | S RMERR=0 | 
|---|
| 20 | S:RMSUSTAT="" RMSUSTAT=0 | 
|---|
| 21 | L +^RMPR(660,RMIE60):2 | 
|---|
| 22 | I $T=0 W !,"Someone else is Editing this entry!!!",! H 3 S RMERR=1 G UP60X | 
|---|
| 23 | S RM680=$G(^RMPR(668,RMIE68,0)) | 
|---|
| 24 | S RM688=$G(^RMPR(668,RMIE68,8)) | 
|---|
| 25 | S RM6810=$G(^RMPR(668,RMIE68,10)) | 
|---|
| 26 | ;code here for 668 fields | 
|---|
| 27 | S RMDATE=$P(RM680,U,1)  ;Suspense Date | 
|---|
| 28 | S RMCODT=$P(RM680,U,5)  ;Completion Date | 
|---|
| 29 | S RMINDT=$P(RM680,U,9)  ;Initial Action Date | 
|---|
| 30 | S RMPRCO=$P(RM680,U,15) ;Consult | 
|---|
| 31 | S RMDWRT=$P(RM680,U,16) ;Date RX Written | 
|---|
| 32 | S RMSTAT=$P(RM680,U,7)  ;Station | 
|---|
| 33 | S RMTRES=$P(RM680,U,8)  ;Type of Request | 
|---|
| 34 | S RMTYRE=$S(RMTRES=1:"ROUTINE",RMTRES=2:"EYEGLASS",RMTRES=3:"CONTACT LENS",RMTRES=4:"OXYGEN",RMTRES=5:"MANUAL",1:"") | 
|---|
| 35 | S RMREQU=$P(RM680,U,11) ;Requestor (Ordering Provider) | 
|---|
| 36 | S RMSERV="" | 
|---|
| 37 | ;I $G(RMREQU) D GETS^DIQ(200,RMREQU,"29","E","RMAA") S RMSERV=RMAA(200,RMREQU_",",29,"E") | 
|---|
| 38 | S RMPRDI=$E($P(RM688,U,2),1,16) ;Provisional Diagnosis | 
|---|
| 39 | S RMICD9=$P(RM688,U,3)   ;ICD9 | 
|---|
| 40 | ; | 
|---|
| 41 | S RMDAT(660,RMIE60_",",8.1)=RMDATE    ;Suspense Date | 
|---|
| 42 | S RMDAT(660,RMIE60_",",8.2)=RMDWRT    ;Date RX Written | 
|---|
| 43 | S RMDAT(660,RMIE60_",",8.3)=RMINDT    ;Initial Action Date | 
|---|
| 44 | S RMDAT(660,RMIE60_",",8.4)=RMCODT    ;Completion Date | 
|---|
| 45 | S RMDAT(660,RMIE60_",",8.5)=RMTYRE    ;Type of Request | 
|---|
| 46 | S RMDAT(660,RMIE60_",",8.6)=RMREQU    ;Ordering Provider | 
|---|
| 47 | S RMDAT(660,RMIE60_",",8.61)=RMSERV   ;Consult Request Service | 
|---|
| 48 | S RMDAT(660,RMIE60_",",8.7)=RMPRDI    ;Provisional Diagnosis | 
|---|
| 49 | S RMDAT(660,RMIE60_",",8.8)=RMICD9    ;Suspense ICD9 | 
|---|
| 50 | S RMDAT(660,RMIE60_",",8.9)=RMPRCO    ;Pointer to Request/Consultation | 
|---|
| 51 | S RMDAT(660,RMIE60_",",8.11)=RMSTAT   ;Suspense Station | 
|---|
| 52 | S RMDAT(660,RMIE60_",",8.14)=RMSUSTAT ;Suspense Status | 
|---|
| 53 | ; | 
|---|
| 54 | ; Patch #78 | 
|---|
| 55 | ; #668,BA nodes | 
|---|
| 56 | F RMPRL=1:1:99 S RM68BA=$G(^RMPR(668,RMIE68,"BA"_RMPRL)) Q:RM68BA=""  D | 
|---|
| 57 | . N RMICD,RMAO,RMIR,RMSC,RMEC,RMMST,RMHNC,RMCBV | 
|---|
| 58 | . S RMICD=$P(RM68BA,U,1) | 
|---|
| 59 | . S RMAO=$P(RM68BA,U,2) | 
|---|
| 60 | . S RMIR=$P(RM68BA,U,3) | 
|---|
| 61 | . S RMSC=$P(RM68BA,U,4) | 
|---|
| 62 | . S RMEC=$P(RM68BA,U,5) | 
|---|
| 63 | . S RMMST=$P(RM68BA,U,6) | 
|---|
| 64 | . S RMHNC=$P(RM68BA,U,7) | 
|---|
| 65 | . S RMCBV=$P(RM68BA,U,8) | 
|---|
| 66 | . N RMPTR | 
|---|
| 67 | . S RMPTR=29+RMPRL | 
|---|
| 68 | . S RMDAT(660,RMIE60_",",RMPTR)=RMICD | 
|---|
| 69 | . S RMDAT(660,RMIE60_",",RMPTR_".1")=RMAO | 
|---|
| 70 | . S RMDAT(660,RMIE60_",",RMPTR_".2")=RMIR | 
|---|
| 71 | . S RMDAT(660,RMIE60_",",RMPTR_".3")=RMSC | 
|---|
| 72 | . S RMDAT(660,RMIE60_",",RMPTR_".4")=RMEC | 
|---|
| 73 | . S RMDAT(660,RMIE60_",",RMPTR_".5")=RMMST | 
|---|
| 74 | . S RMDAT(660,RMIE60_",",RMPTR_".6")=RMHNC | 
|---|
| 75 | . S RMDAT(660,RMIE60_",",RMPTR_".7")=RMCBV | 
|---|
| 76 | ; | 
|---|
| 77 | D UPDATE^DIE("","RMDAT",,"RMERROR") | 
|---|
| 78 | I $D(RMERROR) S RMERR=1 D ERR0 | 
|---|
| 79 | ; | 
|---|
| 80 | L -^RMPR(660,RMIE60) | 
|---|
| 81 | UP60X ; exit point | 
|---|
| 82 | Q RMERR | 
|---|
| 83 | ; | 
|---|
| 84 | ;RMIE60 = IEN of file #660. | 
|---|
| 85 | ;RMIE68 = IEN of file #668. | 
|---|
| 86 | UP68(RMIE60,RMIE68,RMAMIS) ; update file #668. | 
|---|
| 87 | D NEWVAR | 
|---|
| 88 | S (RMI,RMERR)=0 | 
|---|
| 89 | ;S RMAMIS=$G(^RMPR(660,RMIE60,"AMS")) | 
|---|
| 90 | I '$G(RMAMIS) D ERR8 S RMERR=1 G UP68X | 
|---|
| 91 | ;L +^RMPR(668,RMIE68):2 | 
|---|
| 92 | ;I $T=0 W !,"Someone else is Editing this entry!!!",! H 3 S RMERR=1 G UP68X | 
|---|
| 93 | I $D(^RMPR(668,RMIE68,10,"B",RMIE60)) G UP68X | 
|---|
| 94 | S DA(1)=RMIE68 K DD,DO | 
|---|
| 95 | S DIC="^RMPR(668,"_DA(1)_","_"10,",DIC(0)="L",DLAYGO=668,X=RMIE60 | 
|---|
| 96 | D FILE^DICN K DIC,X,DLAYGO,DD,DO | 
|---|
| 97 | I Y=-1 S RMERR=1 D ERR8 G UNL68 | 
|---|
| 98 | I $D(^RMPR(668,RMIE68,11,"B",RMAMIS)) G UP68X | 
|---|
| 99 | S DA(1)=RMIE68 | 
|---|
| 100 | S DIC="^RMPR(668,"_DA(1)_","_"11,",DIC(0)="L",DLAYGO=668,X=RMAMIS | 
|---|
| 101 | D FILE^DICN K DIC | 
|---|
| 102 | I Y=-1 S RMERR=1 D ERR8 G UNL68 | 
|---|
| 103 | ; | 
|---|
| 104 | UNL68 ;L -^RMPR(668,RMIE68) | 
|---|
| 105 | UP68X ; exit point | 
|---|
| 106 | Q RMERR | 
|---|
| 107 | ; | 
|---|
| 108 | ERR0 ;error updating file #660 | 
|---|
| 109 | W !,"*** Error updating file #660 in PCE module!!!",! | 
|---|
| 110 | Q | 
|---|
| 111 | ERR8 ;error updating file #668 | 
|---|
| 112 | W !,"*** Error updating file #668 in PCE module!!!",! | 
|---|
| 113 | Q | 
|---|
| 114 | LINK ;link 2319 to suspense | 
|---|
| 115 | D DIV4^RMPRSIT Q:$D(X) | 
|---|
| 116 | K ^TMP($J) | 
|---|
| 117 | W ! S DIC="^RMPR(660,",DIC(0)="AEMQZ",DIC("A")="Select PATIENT: " | 
|---|
| 118 | S DIC("S")="S RMZ=$G(^RMPR(660,+Y,10)) I $P(RMZ,U,14)'=1,$D(^(""AMS"")),RMPR(""STA"")=$P(^(0),U,10)" | 
|---|
| 119 | S DIC("W")="D EN^RMPRD1" | 
|---|
| 120 | W ! | 
|---|
| 121 | D ^DIC G:Y'>0 EXIT | 
|---|
| 122 | L +^RMPR(660,+Y):1 I $T=0 W !,?5,$C(7),"Someone else is Editing this entry!" G EXIT | 
|---|
| 123 | S RMPRDA=+Y | 
|---|
| 124 | S RMPRDFN=$P(^RMPR(660,+Y,0),U,2) | 
|---|
| 125 | I $D(^RMPR(660,+Y,"AMS")) N RMPRAMIS S RMPRAMIS=$P(^RMPR(660,+Y,"AMS"),U,1) | 
|---|
| 126 | S ^TMP($J,"RMPRPCE",660,+Y)=RMPRAMIS_"^"_RMPRDFN | 
|---|
| 127 | D LINK^RMPRS | 
|---|
| 128 | L -^RMPR(660,RMPRDA) | 
|---|
| 129 | EXIT ;quit | 
|---|
| 130 | K ^TMP($J) | 
|---|
| 131 | K RMPR,RMPRSTE | 
|---|
| 132 | K RMCODT | 
|---|
| 133 | D KILL^XUSCLEAN | 
|---|
| 134 | Q | 
|---|
| 135 | ; | 
|---|
| 136 | SCRS ;set consult request service. | 
|---|
| 137 | ;start conversion on 1/1/2002, the date of PCE/Link to suspense patch. | 
|---|
| 138 | W !!,"Setting Consult Request Service in file #660....." | 
|---|
| 139 | N RI,RJ F RI=3020100:0 S RI=$O(^RMPR(660,"B",RI)) Q:RI'>0  F RJ=0:0 S RJ=$O(^RMPR(660,"B",RI,RJ)) Q:RJ'>0  I $D(^RMPR(660,RJ,10)) D | 
|---|
| 140 | .K RMAA | 
|---|
| 141 | .S RMREQU=$P(^RMPR(660,RJ,10),U,6) | 
|---|
| 142 | .S RMSERV="" | 
|---|
| 143 | .I $G(RMREQU) D GETS^DIQ(200,RMREQU,"29","E","RMAA") S RMSERV=RMAA(200,RMREQU_",",29,"E") | 
|---|
| 144 | .S:RMSERV'="" $P(^RMPR(660,RJ,4),U,3)=RMSERV | 
|---|
| 145 | W !!,"Done setting Consult Request Service!!",! | 
|---|
| 146 | Q | 
|---|
| 147 | ; | 
|---|
| 148 | NEWVAR N DA,DIE,DIC,I,J,RMDFN,RMI,RMDATE,RM680,RM688,RM6810,RMERROR | 
|---|
| 149 | N RMERR,RMCHK,RMAMIS,DLAYGO,X,DR,RMAA,RMSERV,RMREQU,RMDAT | 
|---|
| 150 | N RMPRL,RM68BA,RMDWRT,RMICD9,RMINDT,RMPRCO,RMPRDI,RMSTAT,RMTRES,RMTYRE | 
|---|
| 151 | Q | 
|---|