| 1 | RAUTL12 ;HISC/CAH,FPT,GJC-Utility Routine ;12/23/97  09:25 | 
|---|
| 2 | ;;5.0;Radiology/Nuclear Medicine;**75**;Mar 16, 1998;Build 4 | 
|---|
| 3 | ; | 
|---|
| 4 | IMGTY(X,Y,Z) ; Determines the Imaging Type | 
|---|
| 5 | ; 'X' ->  either 'e', 'l', or 'p' | 
|---|
| 6 | ;         'e' means we determine the Imaging Type from the 'Registered | 
|---|
| 7 | ;         Exams' multiple in Rad/Nuc Med Patient file (70) | 
|---|
| 8 | ;         'l' means that we determine the Imaging Type from data in the | 
|---|
| 9 | ;         Imaging Locations file (79.1) | 
|---|
| 10 | ;         'p' means that we determine the Imaging Type from data in the | 
|---|
| 11 | ;         Rad/Nuc Med Procedures file (71) | 
|---|
| 12 | ; | 
|---|
| 13 | ; 'Y' ->  The value of D0 in the above files. | 
|---|
| 14 | ; | 
|---|
| 15 | ; 'Z' ->  The value of D1 in the Rad/Nuc Med Patient file (70). | 
|---|
| 16 | ; [ This routine passes back the Imaging Type in the external format ] | 
|---|
| 17 | N A,B,RAXYZ | 
|---|
| 18 | I X="e" D | 
|---|
| 19 | . S A=$G(^RADPT(+$G(Y),"DT",+$G(Z),0)),B=+$P(A,U,2) | 
|---|
| 20 | . S RAXYZ=$P($G(^RA(79.2,B,0)),U) | 
|---|
| 21 | . Q | 
|---|
| 22 | I X="l" D | 
|---|
| 23 | . S A=$G(^RA(79.1,+$G(Y),0)),B=+$P(A,U,6) | 
|---|
| 24 | . S RAXYZ=$P($G(^RA(79.2,B,0)),U) | 
|---|
| 25 | . Q | 
|---|
| 26 | I X="p" D | 
|---|
| 27 | . S A=$G(^RAMIS(71,+$G(Y),0)),B=+$P(A,U,12) | 
|---|
| 28 | . S RAXYZ=$P($G(^RA(79.2,B,0)),U) | 
|---|
| 29 | . Q | 
|---|
| 30 | Q RAXYZ | 
|---|
| 31 | ; | 
|---|
| 32 | LOCK(X,Y) ; Lock the data global | 
|---|
| 33 | ; 'X' is the global root | 
|---|
| 34 | ; 'Y' is the record number | 
|---|
| 35 | N RALCKFLG,XY | 
|---|
| 36 | S RADUZ=+$G(DUZ),RALCKFLG=0,XY=X_Y | 
|---|
| 37 | L +@(XY_")"):5 | 
|---|
| 38 | I '$T S RALCKFLG=1 D | 
|---|
| 39 | . W !?5,"This record is being edited by another user." | 
|---|
| 40 | . W !?5,"Try again later!",$C(7) | 
|---|
| 41 | . Q | 
|---|
| 42 | E  D | 
|---|
| 43 | . S ^TMP("RAD LOCKS",$J,RADUZ,X,Y)="" | 
|---|
| 44 | . Q | 
|---|
| 45 | Q RALCKFLG | 
|---|
| 46 | ; | 
|---|
| 47 | UNLOCK(X,Y) ; Unlock the data global | 
|---|
| 48 | N XY S RADUZ=+$G(DUZ),XY=X_Y L -@(XY_")") | 
|---|
| 49 | K ^TMP("RAD LOCKS",$J,RADUZ,X,Y) | 
|---|
| 50 | Q | 
|---|
| 51 | EXTRA(RAQI) ;Input is RAQI (Modifier) | 
|---|
| 52 | ;Output is AMIS Credit Indicator: RABILAT = BILATERAL, | 
|---|
| 53 | ;RAPORT = PORTABLE, and RAOR = OPERATING ROOM. | 
|---|
| 54 | S RAQI=$P($G(^RAMIS(71.2,RAQI,0)),U,2) S:RAQI="b" RABILAT="" S:RAQI="p" RAPORT="" S:RAQI="o" RAOR="" | 
|---|
| 55 | Q | 
|---|
| 56 | ; | 
|---|
| 57 | DESDT(RAPRI) ; Obtain 'Date Desired (NOT appt date)' by DIR call. | 
|---|
| 58 | ; Input: IEN of procedure | 
|---|
| 59 | ; The 'Date Desired' is passed back in internal format. | 
|---|
| 60 | ; 75.1 -> Rad Orders File    Fld 21 -> Date desired | 
|---|
| 61 | N DIR,DIROUT,DIRUT,DUOUT,DTOUT,X,Y | 
|---|
| 62 | I '$D(RAPKG),($D(ORVP)),($D(ORL)),($D(ORNP)) D PROCMSG^RAUTL5(RAPRI) | 
|---|
| 63 | F  D  Q:Y'="" | 
|---|
| 64 | .S DIR("?",1)="The 'Date Desired' field contains the date for which the rad/nuc med exam" | 
|---|
| 65 | .S DIR("?",2)="is requested. 'Date Desired' is required and should not be interpreted as" | 
|---|
| 66 | .S DIR("?")="an appointment date." | 
|---|
| 67 | .S DIR(0)="75.1,21" D ^DIR | 
|---|
| 68 | .S:$D(DTOUT)#2!($D(DUOUT)#2) Y=-1 | 
|---|
| 69 | .Q | 
|---|
| 70 | Q Y | 
|---|
| 71 | ; | 
|---|
| 72 | PTLOC() ; Current patient location.  Used for entry: 'CURRENT PATIENT | 
|---|
| 73 | ; LOCATION' in the Label Print Fields file. (78.7) | 
|---|
| 74 | ; 'X' is the patient's DFN.  DFN must be a positive integer. | 
|---|
| 75 | N %,%H,%I,A,B,C,DFN,VAERR,VAIN,X,Y,Y1,Y2,Y3,Y4,Y5 | 
|---|
| 76 | S Y=$$NOW^XLFDT(),Y1=$P(Y,"."),Y2=$E($P(Y,".",2),1,4) | 
|---|
| 77 | S Y3=$E(Y1,4,5)_"-"_$E(Y1,6,7)_"-"_(1700+$E(Y1,1,3)) | 
|---|
| 78 | S Y4=$E(Y2,1,2)_":"_$E(Y2,3,4) | 
|---|
| 79 | S Y5=Y3_"@"_Y4,DFN=+$P($G(^RADPT(+$G(RADFN),0)),"^") | 
|---|
| 80 | Q:'+$G(DFN) "OP Unknown/"_Y5 | 
|---|
| 81 | D INP^VADPT ; If currently an inpatient, grab the ward. | 
|---|
| 82 | I $P($G(VAIN(4)),"^",2)]"" D  Q Y | 
|---|
| 83 | . S Y=$E($P($G(VAIN(4)),"^",2),1,15)_"/"_Y5 | 
|---|
| 84 | . Q | 
|---|
| 85 | ; If not currently an inpatient, check if last recorded patient location | 
|---|
| 86 | ; is a ward.  If it is a ward or operating room, pass back 'OP Unknown'. | 
|---|
| 87 | ; We do not have the benefit of PIMS updating our Rad/Nuc Med files. | 
|---|
| 88 | S X=+$P($G(^RADPT(+$G(RADFN),"DT",+$G(RADTI),"P",+$G(RACNI),0)),"^",11) | 
|---|
| 89 | S A=+$P($G(^RAO(75.1,X,0)),"^",22),B=$G(^SC(A,0)),C=$P(B,"^",3) | 
|---|
| 90 | Q:B']""!("WOR"[C) "OP Unknown/"_Y5 | 
|---|
| 91 | Q $P(B,"^")_" (Req'g Loc)" | 
|---|
| 92 | ; | 
|---|
| 93 | IMG() ; Select one/many/all imaging types.  This code will be used for ALL | 
|---|
| 94 | ; the options under the Procedure File Listings option as exported by | 
|---|
| 95 | ; Rad/Nuc Med version 5.  I-Types are not screened. | 
|---|
| 96 | ; Passes back '1' if I-Type(s) are selected, '0' if nothing selected. | 
|---|
| 97 | N RADIC,RAQUIT,RAUTIL,X,Y | 
|---|
| 98 | S RADIC="^RA(79.2,",RADIC(0)="QEAMZ" | 
|---|
| 99 | S RADIC("A")="Select Imaging Type: ",RADIC("B")="All" | 
|---|
| 100 | S RAUTIL="RA I-TYPE" W !! D EN1^RASELCT(.RADIC,RAUTIL) | 
|---|
| 101 | Q $S($D(^TMP($J,"RA I-TYPE"))\10:1,1:0) | 
|---|
| 102 | ; | 
|---|
| 103 | LOC(RAX) ; Select one/many/all imaging locations.  L-Types are not | 
|---|
| 104 | ; screened.  Passes back '1' if L-Type(s) are selected, '0' if nothing | 
|---|
| 105 | ; selected.  Used for the option: 'Location Parameter List' (4^RASYS) | 
|---|
| 106 | N RADIC,RAQUIT,RAUTIL,X,Y | 
|---|
| 107 | S RADIC="^RA(79.1,",RADIC(0)="QEFAMZ" | 
|---|
| 108 | S RADIC("A")="Select Imaging Location: ",RADIC("B")="All" | 
|---|
| 109 | S:'RAX RADIC("S")="N RADT S RADT=$P(^(0),""^"",19) I $S('RADT:1,RADT>DT:1,1:0)" | 
|---|
| 110 | S RAUTIL="RA L-TYPE" W !! D EN1^RASELCT(.RADIC,RAUTIL) | 
|---|
| 111 | Q $S($D(^TMP($J,"RA L-TYPE"))\10:1,1:0) | 
|---|