| 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
 | 
|---|