Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: RADD1

RADD1.m

Go to the documentation of this file.
  1. RADD1 ;HISC/FPT-Radiology Utility Routine ;6/2/98 16:17
  1. ;;5.0;Radiology/Nuclear Medicine;**1,5,10,65,94**;Mar 16, 1998;Build 9
  1. ;
  1. ;Supported IA #10142 reference to EN^DDIOL
  1. ;Supported IA #10103 reference to FMADD^XLFDT
  1. ;
  1. SECXREF ; sets/kills 'ARES' & 'ASTF' x-refs for secondary resident/staff rads
  1. ; called from ^DD(74,5
  1. ;
  1. Q:'$D(^RARPT(DA,0)) S RADFNZ=^(0)
  1. S RADTIZ=9999999.9999-$P(RADFNZ,"^",3),RACNIZ=$O(^RADPT(+$P(RADFNZ,"^",2),"DT",RADTIZ,"P","B",+$P(RADFNZ,"^",4),0)),RADFNZ=+$P(RADFNZ,"^",2)
  1. I 'RACNIZ D KILL Q
  1. I '$D(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,0)) D KILL Q
  1. I '$D(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,RASECOND,0)) D KILL Q
  1. S RASECIEN=0
  1. F S RASECIEN=$O(^RADPT(RADFNZ,"DT",RADTIZ,"P",RACNIZ,RASECOND,RASECIEN)) Q:RASECIEN<1 S RARAD=+$P($G(^(RASECIEN,0)),"^",1) I RARAD>0 D
  1. .S:$D(RASET) ^RARPT(RAXREF,RARAD,DA)="" K:$D(RAKILL) ^RARPT(RAXREF,RARAD,DA)
  1. D XSEC^RAUTL20
  1. KILL K RACNIZ,RADFNZ,RADTIZ,RASECOND,RASECIEN
  1. Q
  1. SCDTC ; status change date/time check
  1. ; called from ^DD(70.05,.01
  1. ; if X is a date/time prior to the exam date/time, then set Y=0.
  1. ; if X is a over a minute in the future, then set Y=0.
  1. ; if X is missing the time portion, then set Y=0.
  1. I '($D(X)#2) Q
  1. I '$F(X,".") D EN^DDIOL("** Time is Required **","","!!?20") S Y=0 Q
  1. N RASTATUS,RAORDNUM,RAPLUS1
  1. ; eg. da(3)=1128, da(2)=7028970.8743,da(1)=1,da=1
  1. S RASTATUS=$P($G(^RADPT(+$G(DA(3)),"DT",+$G(DA(2)),"P",+$G(DA(1)),0)),U,3)
  1. S RAORDNUM=$P($G(^RA(72,+RASTATUS,0)),U,3)
  1. I X<(9999999.9999-$G(DA(2))),RAORDNUM>1 S Y=0 Q
  1. S RADTHOLD=X
  1. D NOW^%DTC
  1. ; 2/25/98 allow entry to be at most 1 minute after current time
  1. S RAPLUS1=%,RAPLUS1=$$FMADD^XLFDT(RAPLUS1,0,0,1,0)
  1. I RADTHOLD>RAPLUS1 S Y=0
  1. S X=RADTHOLD
  1. K RADTHOLD
  1. Q
  1. ;
  1. PDC() ; do not enter secondary into primary diagnostic code field
  1. ; called from ^DD(70.03,13,0)
  1. ; do not select inactive diagnostic code 12/23/96
  1. ;P94 - IF changed to a post-conditional
  1. Q:$P(^RA(78.3,+Y,0),U,5)="Y" 0
  1. Q:$D(^RADPT(DA(2),"DT",DA(1),"P",DA,"DX","B",+Y)) 0
  1. Q 1
  1. ;
  1. SDC() ; do not enter primary into secondary diagnostic code field
  1. ; called from ^DD(70.14,.01,0)
  1. ; do not select inactive diagnostic code 12/23/96
  1. I $P(^RA(78.3,+Y,0),U,5)="Y" Q 0
  1. I '$D(X)!('$D(DA(3))) G SDC2
  1. I '$D(^RADPT(DA(3),"DT",DA(2),"P",DA(1),0)) G SDC2
  1. I $P(^RADPT(DA(3),"DT",DA(2),"P",DA(1),0),"^",13)=+Y Q 0
  1. Q 1
  1. SDC2 ;
  1. I '$D(X)!('$D(DA(2))) G SDC3
  1. I '$D(^RADPT(DA(2),"DT",DA(1),"P",DA,0)) Q 0
  1. I $P(^RADPT(DA(2),"DT",DA(1),"P",DA,0),"^",13)=+Y Q 0
  1. Q 1
  1. SDC3 ;
  1. I '$D(RADFN) Q 0
  1. S DA(2)=RADFN
  1. I '$D(^RADPT(DA(2),"DT",DA(1),"P",DA,0)) Q 0
  1. I $P(^RADPT(DA(2),"DT",DA(1),"P",DA,0),"^",13)=+Y Q 0
  1. Q 1
  1. ;
  1. NODEL ; Do not permit deletion of the PRIMARY DIAGNOSTIC CODE (70.03,
  1. ; 13), PRIMARY INTERPRETING RESIDENT (70.03,12) or PRIMARY
  1. ; INTERPRETING STAFF (70.03,15) if a SECONDARY DIAGNOSTIC CODE
  1. ; multiple (70.03,13.1) is associated with the exam record.
  1. ;
  1. ; P94: WRITE removed; EN^DDIOL added
  1. ;
  1. ;Note: the IF statement has to remain because $T needs to be
  1. ;set in order to properly influence the "DEL" node.
  1. ;
  1. S RASECCHK=0,RASECCHK=$O(^RADPT(DA(2),"DT",DA(1),"P",DA,RAMULT,RASECCHK))
  1. I RASECCHK D EN^DDIOL(" Required","","?0")
  1. K RAMULT,RASECCHK
  1. Q
  1. ;
  1. PRCCPT() ; Displays the procedure type and CPT code if applicable.
  1. ; This code is called from ^DD(71,0,"ID","WRITE") and rtn RAPROD
  1. N RA,RATXT S RA(0)=$G(^(0)),RA("I")=+$G(^("I")),RATXT=""
  1. S RA=$S('RA("I"):0,DT'>RA("I"):0,1:1)
  1. S RA(6)=$P(RA(0),U,6),RA(9)=$P(RA(0),U,9)
  1. S RA(12)=$P(RA(0),U,12) I 'RA(12) S RA(10)="UNKN "
  1. I '$D(RA(10)) S RA(10)=$P(^RA(79.2,+RA(12),0),U,3)_" "
  1. I $L(RA(10))<5 F S RA(10)=RA(10)_" " Q:$L(RA(10))>4
  1. S RATXT="("_RA(10)_$S(RA:"Inactive",RA(6)="B":"Broad ",RA(6)="D":"Detailed",RA(6)="P":"Parent ",RA(6)="S":"Series ",1:"Unknown ")_")"
  1. S:RA(9)]"" RATXT=RATXT_" CPT:"_$P($$NAMCODE^RACPTMSC(RA(9),DT),"^")
  1. Q RATXT
  1. INDTCHK(RADA) ; Cannot inactivate a procedure if it is a common procedure
  1. ; with a valid sequence number. Code resides in ^DD(71,100,0)!
  1. ; 'RADA' is the ien of the procedure in file 71. if this procedure is
  1. ; a common procedure i.e, $D(^RAMIS(71.3,"B",RADA)) inform the user that
  1. ; the sequence number must be deleted. This relies on the "AA" xref in
  1. ; the Common Proc. file for the Sequence # fld (#3) 0 node, 4th pce.
  1. N RA,RAIEN S RAIEN=+$O(^RAMIS(71.3,"B",RADA,0))
  1. S RA(0)=$G(^RAMIS(71.3,RAIEN,0)) Q:RA(0)']""
  1. S RA(4)=+$P(RA(0),"^",4) ; obtain the sequence number
  1. I $D(^RAMIS(71.3,"AA",$$EN3^RAUTL17(RADA),RA(4),RAIEN)) D ; sequence #?
  1. . N RATXT S RATXT(1)=" "
  1. . S RATXT(2)=" Cannot inactivate - this procedure is currently in the"
  1. . S RATXT(3)=" Rad/Nuc Med Common Procedure file with a sequence"
  1. . S RATXT(4)=" number. Please remove the sequence number thru the"
  1. . S RATXT(5)=" 'Common Procedure Enter/Edit' option before assigning"
  1. . S RATXT(6)=" an inactivation date to this procedure."
  1. . S RATXT(7)=" "
  1. . D EN^DDIOL(.RATXT) K X ; display message, can't input ANY date!
  1. . Q
  1. Q
  1. CPTCHK(RADA) ; Check if the CPT code is inactive nationally.
  1. ; 'RADA' assume the value of +Y passed from the input xform, ^DD(71,9,0)
  1. ; quit if CPT code is active
  1. ;
  1. Q:$$ACTCODE^RACPTMSC(RADA,DT)
  1. N RATXT S RATXT(1)=" "
  1. S RATXT(2)=" Warning - Nationally inactive CPT code."
  1. S RATXT(3)=" " D EN^DDIOL(.RATXT)
  1. K X
  1. Q
  1. ;
  1. VALADM(RAD0,Y,RADT,RAUTH) ;edit validation
  1. ;Used to validate/screen radiopharm dosage administrator,
  1. ; radiopharm prescribing phys, person who measured radiopharm dose,
  1. ;----------------------------------------------------------------------
  1. ; RAD0 : IEN of entry in question for NUC MED EXAM DATA (70.2) file
  1. ; Y : Pointer to the New Person file
  1. ; RADT : Xam Date; if not passed, calculate exam date from file 70.2
  1. ; RAUTH : 1 - only staff/resid, must be auth'zd to write med orders
  1. ; : 0 - staff/resid & tech's
  1. ;----------------------------------------------------------------------
  1. ; Output: '1' authorized to write med orders, else '0'
  1. ;----------------------------------------------------------------------
  1. Q $$VALADM^RADD4()
  1. ;
  1. VOL(RAX) ; Validate the format of the value input for volume.
  1. ; RAX must be a number followed by a space then text -or-
  1. ; a number followed by text
  1. ; Input Variable : 'RAX'- user's input
  1. ; Output Variable: null if 'RAX' erroneous, formatted version of 'RAX'
  1. Q $$VOL^RADD4()