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

MAGDRA1.m

Go to the documentation of this file.
  1. MAGDRA1 ;WOIFO/LB,JSL,SAF -Routine for DICOM fix ; 09/15/2004 13:34
  1. ;;3.0;IMAGING;**10,11,30,123**;Mar 19, 2002;Build 67;Jul 24, 2012
  1. ;; Per VHA Directive 2004-038, this routine should not be modified.
  1. ;; +---------------------------------------------------------------+
  1. ;; | Property of the US Government. |
  1. ;; | No permission to copy or redistribute this software is given. |
  1. ;; | Use of unreleased versions of this software requires the user |
  1. ;; | to execute a written test agreement with the VistA Imaging |
  1. ;; | Development Office of the Department of Veterans Affairs, |
  1. ;; | telephone (301) 734-0100. |
  1. ;; | The Food and Drug Administration classifies this software as |
  1. ;; | a medical device. As such, it may not be changed in any way. |
  1. ;; | Modifications to this software may result in an adulterated |
  1. ;; | medical device under 21CFR820, the use of which is considered |
  1. ;; | to be a violation of US Federal Statutes. |
  1. ;; +---------------------------------------------------------------+
  1. ;;
  1. Q
  1. LOOP ;Loop thru ^TMP($J,"RAE1" global
  1. ;MAGDFN should exist.
  1. ;MAGNME,MAGPID may exist.
  1. Q:'$D(^TMP($J,"RAE1"))!('$D(MAGDFN))
  1. N CCASE,CASE,CDATE,CODE,DATA,DATE,ENTRY,ENTRIES,ERR,ESTAT,INDEX
  1. N LOC,MAGCASE,MAGCNI,MAGCPT,MAGDTI,MAGPIEN,MAGPRC,MAGPSET,MAGPST
  1. N OUT,OLDCNI,OLDDT,OLDENTRY,PROC,PSET,PTINFO,RARPT,RADTI,RACNI,RADFN
  1. N RAMELOW,RAPRTSET,REIN,STAT,X,Y
  1. S (ENTRY,ENTRIES,OLDDT)=0
  1. F S ENTRY=$O(^TMP($J,"RAE1",MAGDFN,ENTRY)) Q:'ENTRY!$G(OUT) D
  1. . S DATA=^TMP($J,"RAE1",MAGDFN,ENTRY),ENTRIES=ENTRIES+1
  1. . S DATE=$P(ENTRY,"-"),CDATE=9999999.9999-DATE
  1. . S DATE=$TR($$FMTE^XLFDT(CDATE,"2FD")," ","0")
  1. . S PROC=$P(DATA,"^"),CASE=$P(DATA,"^",2),STAT=$P(DATA,"^",6)
  1. . S ESTAT=$P(STAT,"~",2),LOC=$P(DATA,"^",7)
  1. . S RARPT=$P(DATA,"^",5)
  1. . S RADTI=$P(ENTRY,"-"),RACNI=$P(ENTRY,"-",2),RADFN=MAGDFN
  1. . S MAGCASE=$$LCASE^MAGDRA2(CDATE,CASE)
  1. . ;Above radiology variables needed for EN1^RAULT20
  1. . K RAMELOW,RAPRTSET
  1. . D EN1^RAUTL20
  1. . S (PSET,MAGPSET)=""
  1. . I OLDDT'=RADTI S OLDCNI=""
  1. . S PSET=$S(RAMEMLOW:"+",RAPRTSET:".",1:"")
  1. . I PSET="+" S OLDCNI=RACNI
  1. . I PSET=".",OLDCNI D
  1. . . N OLDENTRY S OLDENTRY=$P(ENTRY,"-")_"-"_OLDCNI
  1. . . I $D(^TMP($J,"RAE1",MAGDFN,OLDENTRY)) D
  1. . . . S MAGCASE=$P(^TMP($J,"RAE1",MAGDFN,OLDENTRY),"^",2)
  1. . . . S CDATE=$P(ENTRY,"-")
  1. . . . S CDATE=9999999.9999-CDATE,RADTI=$P(OLDENTRY,"-"),RACNI=OLDCNI
  1. . . . S MAGCASE=$$LCASE^MAGDRA2(CDATE,MAGCASE)
  1. . . . S MAGPSET=CASE_" is part of this printset."
  1. . . . Q
  1. . . Q
  1. . I '$D(MAGNME)!'($D(MAGPID)) D
  1. . . S PTINFO=$$PTINFO^MAGDRA2
  1. . . S MAGNME=$P(PTINFO,"^"),MAGPID=$P(PTINFO,"^",2) ;P123
  1. . . Q
  1. . S INDEX(ENTRIES)=PROC_"^"_$G(MAGPSET)_"^"_RADTI_"^"_RACNI_"^"_MAGCASE
  1. . ; Radiology procedure^Printset^Inverse radiology date/time^Radioloty multiple^radiology case number
  1. . D PRT S OLDDT=RADTI
  1. . Q
  1. D:'$G(OUT) SEL I +X,$D(INDEX(+X)) D SET
  1. K OUT
  1. Q
  1. PRT ;
  1. S (X,Y)=0
  1. I ENTRIES=1 D HEAD
  1. I $Y+6>IOSL D HEAD
  1. W !?1,ENTRIES,?5,PSET,?6,CASE_$$IMG^MAGDRA2(RARPT),?12,$E(PROC,1,28)
  1. W ?41,DATE,?52,$E(ESTAT,1,12),?67,$E(LOC,1,12) Q:ENTRIES#15
  1. D SEL
  1. Q
  1. W @IOF,"Patient: ",MAGNME,?50,$$PIDLABEL^MAGSPID(),": ",MAGPID ;P123
  1. W !!,?3,"Case #",?12,"Procedure",?41,"Exam Date",?52,"Status of"
  1. W "Exam",?69,"Imaging Loc"
  1. W !?3,"--------",?12,"-------------",?41,"---------"
  1. W ?52,"--------------",?67,"-----------"
  1. Q
  1. SEL ;
  1. N DIR ; -- array for FileMan prompt data
  1. S DIR(0)="NAO^1:"_ENTRIES
  1. S DIR("?",1)="Enter a number between 1 and "_ENTRIES
  1. S DIR("?")="corresponding to a single exam you wish to select."
  1. S DIR("A",1)="'i' next to a case number denotes images collected on study."
  1. S DIR("A")="Select an exam: "
  1. D ^DIR
  1. I '$D(DTOUT),'$D(DUOUT) ; didn't time out or uparrow out
  1. E S OUT=1 Q
  1. I Y,$D(INDEX(Y)) D CHECK I 'Y G SEL
  1. I Y S Y=INDEX(Y) S OUT=1
  1. Q
  1. SET ;
  1. S DATA=Y K Y
  1. S MAGCASE=$P(INDEX(+X),"^",5)
  1. S MAGPRC=$P(INDEX(+X),"^"),MAGPIEN=$$PROC^MAGDRA2(MAGPRC)
  1. S MAGDTI=$P(INDEX(+X),"^",3)
  1. S MAGPST=$P(INDEX(+X),"^",2)
  1. S MAGCNI=$P(INDEX(+X),"^",4)
  1. D MAGDY^MAGDRA2
  1. Q
  1. CHECK ;
  1. ;Check to see if the entry still exists.
  1. N RADTI,CNI
  1. Q:'MAGDFN
  1. S RADTI=$P(INDEX(Y),"^",3),CNI=$P(INDEX(Y),"^",4)
  1. I '$D(^RADPT(MAGDFN,"DT",RADTI,"P",CNI)) D
  1. . S Y=""
  1. . W !,"There is a database problem with the entry selected.",!
  1. . Q
  1. I $P(INDEX(Y),"^")="" D
  1. . S Y=""
  1. . W !,"There are no procedures for the entry selected.",!
  1. Q