| 1 | RAPCE2 ;HIRMFO/GJC-Interface with PCE APIs for wrkload, visits ;11/15/96  08:58
 | 
|---|
| 2 |  ;;5.0;Radiology/Nuclear Medicine;**10,17,21**;Mar 16, 1998
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 | FAILBUL(RADFN,RADTI,RACNI,RADUZ) ; 'Rad/Nuc Med Credit Failure' bulletin
 | 
|---|
| 5 |  K XMB,XMB0,XMC0,XMDT,XMM,XMMG
 | 
|---|
| 6 |  N RA407,RA44,RA7002,RA7003,RA71,RA791,RA81,RACPT,RACSE,RAIMGLOC
 | 
|---|
| 7 |  N RAINTPTR,RAPAT,RAPCSTOP,RAPRC,RASSN,RATEXT,RAUSER,RAXAMDT,RAWHO
 | 
|---|
| 8 |  N RAXSET,Y
 | 
|---|
| 9 |  S RAWHO=$S($D(RAWHOERR):"Data rejected by PCE.",1:"")
 | 
|---|
| 10 |  S RAUSER=$P(^VA(200,RADUZ,0),"^"),RAPAT=$P($G(^DPT(RADFN,0)),"^")
 | 
|---|
| 11 |  S RASSN=$$SSN^RAUTL(),RA7002=$G(^RADPT(RADFN,"DT",RADTI,0))
 | 
|---|
| 12 |  S RA7003=$G(^RADPT(RADFN,"DT",RADTI,"P",RACNI,0))
 | 
|---|
| 13 |  S RAXSET=$S(+$P(RA7002,"^",5):"This case is part of an exam set.",1:"")
 | 
|---|
| 14 |  S RA791(0)=$G(^RA(79.1,+$P(RA7002,"^",4),0))
 | 
|---|
| 15 |  S RAIMGLOC=+$P(RA791(0),"^")
 | 
|---|
| 16 |  S RAXAMDT=$$FMTE^XLFDT($P(RA7002,"^"),"1P"),RACSE=$P(RA7003,"^")
 | 
|---|
| 17 |  S RA71=$G(^RAMIS(71,+$P(RA7003,"^",2),0)),RAPRC=$E($P(RA71,"^"),1,45)
 | 
|---|
| 18 |  ; cpt string (#.01 and #2 flds)
 | 
|---|
| 19 |  S RA81=$$NAMCODE^RACPTMSC(+$P(RA71,"^",9),DT)
 | 
|---|
| 20 |  ; cpt code and active status
 | 
|---|
| 21 |  S RACPT=$P(RA81,"^")_$S($$ACTCODE^RACPTMSC(+$P(RA71,"^",9),$P(RA7002,"^")):"",1:" (inactive)")
 | 
|---|
| 22 |  S RAIMGLOC=$$GET1^DIQ(44,RAIMGLOC_",",.01)
 | 
|---|
| 23 |  S RAIMGLOC=$S(RAIMGLOC]"":RAIMGLOC,1:"Unknown")
 | 
|---|
| 24 |  S RA407=+$P(RA791(0),"^",22)
 | 
|---|
| 25 |  S RA407(0)=$G(^DIC(40.7,RA407,0)),RAPCSTOP=$P(RA407(0),"^")
 | 
|---|
| 26 |  S:RAPCSTOP]"" RAPCSTOP=$P(RA407(0),"^",2)_" "_RAPCSTOP
 | 
|---|
| 27 |  S:RAPCSTOP']"" RAPCSTOP="Unknown"
 | 
|---|
| 28 |  I $P(RA7003,"^",15) S RAINTPTR=$P($G(^VA(200,+$P(RA7003,"^",15),0)),"^")
 | 
|---|
| 29 |  I '$D(RAINTPTR),($P(RA7003,"^",12)) D  ; grab Pri. Int Res
 | 
|---|
| 30 |  . S RAINTPTR=$P($G(^VA(200,+$P(RA7003,"^",12),0)),"^")
 | 
|---|
| 31 |  . Q
 | 
|---|
| 32 |  I '$D(RAINTPTR) S RAINTPTR="Unknown"
 | 
|---|
| 33 |  D:$D(@(RAEARRY)) XMTXT
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  ; XMB(1) -> Patient Name         XMB(2) -> Patient SSN
 | 
|---|
| 36 |  ; XMB(3) -> Exam D/t             XMB(4) -> Case Number
 | 
|---|
| 37 |  ; XMB(5) -> Procedure            XMB(6) -> Proc. CPT
 | 
|---|
| 38 |  ; XMB(7) -> CPT Modifiers        XMB(8) -> Imag'g Loc Stop Code
 | 
|---|
| 39 |  ; XMB(9) -> Interpreter          XMB(10)-> Imag'g Location
 | 
|---|
| 40 |  ; XMB(11)-> part of an exam set? XMB(12)-> Did PCE pass back an error?
 | 
|---|
| 41 |  ; XMB(13)-> Rad/Nuc Med User     XMB(14)-> 1 line text comment
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  S XMB(1)=RAPAT,XMB(2)=RASSN,XMB(3)=RAXAMDT,XMB(4)=RACSE,XMB(5)=RAPRC
 | 
|---|
| 44 |  S XMB(6)=RACPT
 | 
|---|
| 45 |  S XMB(8)=RAPCSTOP,XMB(9)=RAINTPTR,XMB(10)=RAIMGLOC
 | 
|---|
| 46 |  S XMB(11)=RAXSET,XMB(12)=RAWHO,XMB(13)=RAUSER,XMB(14)=""
 | 
|---|
| 47 |  I $G(RALCKFAL) D
 | 
|---|
| 48 |  . S:$G(RALCKFAL)<3 XMB(14)="Crediting for this exam failed due to lock failure while completing an exam"_$S($G(RALCKFAL)=2:" for duplicate procedures",1:"")_"."
 | 
|---|
| 49 |  . S:$G(RALCKFAL)=3 XMB(14)="Credit cannot be deleted for this exam due to lock failure for this exam date."
 | 
|---|
| 50 |  D MODS^RAUTL2 S XMB(7)=Y(1)
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  S XMB="RAD/NUC MED CREDIT FAILURE"
 | 
|---|
| 53 |  D ^XMB:$D(^XMB(3.6,"B",XMB))
 | 
|---|
| 54 |  K XMB,XMB0,XMC0,XMDT,XMM,XMMG
 | 
|---|
| 55 |  Q
 | 
|---|
| 56 | XMTXT ; Set XMTEXT to local array which captures error text from the
 | 
|---|
| 57 |  ; 'Local variable name'($J).  XMTEXT will only be set
 | 
|---|
| 58 |  ; conditionally and will only be set in this subroutine!
 | 
|---|
| 59 |  N RACNT,RADTYP,RAETYP,RAPROB,RASUB1,RASUB2,RATXT S RACNT=1,RASUB1=0
 | 
|---|
| 60 |  F  S RASUB1=$O(@RAEARRY@($J,RASUB1)) Q:RASUB1'>0  D
 | 
|---|
| 61 |  . S RAPROB="" F  S RAPROB=$O(@RAEARRY@($J,RASUB1,RAPROB)) Q:RAPROB=""  D
 | 
|---|
| 62 |  .. S RAETYP=""
 | 
|---|
| 63 |  .. F  S RAETYP=$O(@RAEARRY@($J,RASUB1,RAPROB,RAETYP)) Q:RAETYP=""  D
 | 
|---|
| 64 |  ... S RADTYP=""
 | 
|---|
| 65 |  ... F  S RADTYP=$O(@RAEARRY@($J,RASUB1,RAPROB,RAETYP,RADTYP)) Q:RADTYP=""  D
 | 
|---|
| 66 |  .... S RASUB2=0
 | 
|---|
| 67 |  .... F  S RASUB2=$O(@RAEARRY@($J,RASUB1,RAPROB,RAETYP,RADTYP,RASUB2)) Q:RASUB2'>0  D
 | 
|---|
| 68 |  ..... S RATXT=$G(@RAEARRY@($J,RASUB1,RAPROB,RAETYP,RADTYP,RASUB2))
 | 
|---|
| 69 |  ..... S:RATXT]"" RATEXT(RACNT)=RATXT,RACNT=RACNT+1
 | 
|---|
| 70 |  ..... Q
 | 
|---|
| 71 |  .... Q
 | 
|---|
| 72 |  ... Q
 | 
|---|
| 73 |  .. Q
 | 
|---|
| 74 |  . Q
 | 
|---|
| 75 |  S:$D(RATEXT) XMTEXT="RATEXT("
 | 
|---|
| 76 |  Q
 | 
|---|