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

MAGNVQ04.m

Go to the documentation of this file.
  1. MAGNVQ04 ;WOIFO/NST - List images for a patient ; OCT 17, 2018@3:59 PM
  1. ;;3.0;IMAGING;**185,221**;Mar 19, 2002;Build 4525;May 01, 2013
  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. ;
  1. ;***** List Images by Patient
  1. ;
  1. ; RPC: MAGN PATIENT IMAGE LIST
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ;
  1. ; IDTYPE = "DFN"or "ICN"
  1. ; ID = Patient ID
  1. ; [IMGLESS] flag to speed up queries: if=1 (true), just get study-level data
  1. ; [FLAGS] for feature use
  1. ; [FROMDATE],[TODATE],[MISCPRMS] - see GETIMGS^MAGSIXG1 for discription
  1. ;
  1. ; Return Values
  1. ; =============
  1. ;
  1. ; if error MAGRY(0) = 0 ^Error message^
  1. ; if success MAGRY(0) = 1
  1. ; MAGRY(1..n) = images in format defined in RPC [MAGN CPRS IMAGE LIST]
  1. ;
  1. IMAGEL(MAGRY,IDTYPE,ID,IMGLESS,FLAGS,FROMDATE,TODATE,MISCPRMS) ;RPC [MAGN PATIENT IMAGE LIST]
  1. N DFN,MAGRY2005,MAGRYP34,MAGDATA,ERROR,FOUND
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D AERRA^MAGGTERR"
  1. D CLEAR^MAGUERR(1)
  1. S IMGLESS=$S($D(IMGLESS):+IMGLESS,1:1) ; Default is IMAGELESS
  1. S FLAGS=$G(FLAGS)
  1. ;
  1. S MAGRY=$NA(^TMP("MAGNVQ04",$J))
  1. K @MAGRY
  1. S @MAGRY@(0)=0
  1. S IDTYPE=$G(IDTYPE)
  1. I (IDTYPE'="DFN")&(IDTYPE'="ICN") S @MAGRY@(0)="0^Invalid IDTYPE "_IDTYPE Q
  1. ;
  1. I IDTYPE="DFN" D I DFN'>0 S @MAGRY@(0)="0^Invalid patient ID: "_DFN Q
  1. . S DFN=$G(ID)
  1. . Q
  1. I IDTYPE="ICN" D I DFN'>0 S @MAGRY@(0)="0^Error: "_DFN Q
  1. . S DFN=$S($T(GETDFN^MPIF001)'="":$$GETDFN^MPIF001(ID),1:"-1^NO MPI") ; Supported IA (#2701)
  1. . Q
  1. ;
  1. S FLAGS=$S($G(FLAGS)="":"E",1:FLAGS)
  1. ;
  1. I DFN'>0 S @MAGRY@(0)="0^Invalid patient ID: "_DFN Q
  1. ;
  1. S I=""
  1. S FOUND=0
  1. F S I=$O(MISCPRMS(I)) Q:FOUND!'I I $P(MISCPRMS(I),"^")="IDFN" S FOUND=I
  1. I 'FOUND D
  1. . S I=$O(MISCPRMS(""),-1)+1 ; set next parameter counter
  1. . S MISCPRMS(I)="IDFN^^"_DFN
  1. . Q
  1. ;
  1. ;=== Validate parameters
  1. S ERROR=$$VALPARAM^MAGSIXG1(.MAGDATA,FLAGS,.FROMDATE,.TODATE,"",.MISCPRMS)
  1. ;
  1. ;--- Check for errors
  1. I ERROR D ERROR^MAGUERR(-30),ERRORS^MAGSIXG1(.MAGRY) Q
  1. ;
  1. D IMG2005(MAGRY,DFN,IMGLESS,FLAGS,FROMDATE,TODATE,.MAGDATA) ; Get #2005 images
  1. ;
  1. D IMAGEP34(MAGRY,DFN,IMGLESS,FLAGS,FROMDATE,TODATE,.MAGDATA) ; Get P34 images
  1. ;
  1. S @MAGRY@(0)=1
  1. Q
  1. ;
  1. IMG2005(MAGRYOUT,DFN,IMGLESS,FLAGS,FROMDATE,TODATE,MAGDATA) ; Get images from #2005
  1. ; DFN = Patient DFN
  1. ; IMGLESS = 0|1 Include images
  1. ; [FLAGS] = for feature use
  1. ;
  1. N I,IMAGE,GROUPS,OUT,QF,RC,TMP
  1. ;
  1. ;=== Query the image file(s)
  1. S MAGDATA("FLAGS")=FLAGS,MAGDATA("MAXNUM")=""
  1. S TMP=$S(TODATE<9999999:$$FMADD^XLFDT(TODATE,1),1:TODATE)
  1. S QF=$$TRFLAGS^MAGUTL05(FLAGS,"CDEG")
  1. ;
  1. K ^TMP("MAGNVQ07",$J,"QRY2005")
  1. S RC=$$QUERY^MAGGI13("$$QRY2005^MAGNVQ07",QF,.MAGDATA,FROMDATE,TMP,DFN)
  1. I RC<0 D Q
  1. . D ERRORS^MAGSIXG1(.OUT,RC)
  1. . M @MAGRYOUT=OUT
  1. . Q
  1. ;
  1. K ^TMP("MAGNVQ07",$J,"QRY2005",0) ; remove the counter
  1. M GROUPS=^TMP("MAGNVQ07",$J,"QRY2005")
  1. K ^TMP("MAGNVQ07",$J,"QRY2005")
  1. D STUDY2^MAGDQR21(.OUT,.GROUPS,DFN,IMGLESS) ; MAG DOD GET STUDIES IEN
  1. ;
  1. D UPD2005(MAGRYOUT,.OUT,IMGLESS)
  1. S MAGRYOUT=OUT
  1. S @MAGRYOUT@(0)=1
  1. Q
  1. ;
  1. UPD2005(MAGOUT,MAGIN,IMGLESS) ; Add Additional study information
  1. N MAGI,IMGIEN,MAGNCNT,MAGSTUDY
  1. S MAGNCNT=0
  1. S MAGI=1 ; start from line number 2. Line number 1 is a records count
  1. F S MAGI=$O(@MAGIN@(MAGI)) Q:'MAGI D
  1. . S MAGNCNT=MAGNCNT+1
  1. . S @MAGOUT@(MAGNCNT)=@MAGIN@(MAGI)
  1. . I $P(@MAGIN@(MAGI),"|")="STUDY_IEN" D ; Add STUDY_INFO. Better place will be MAGDQR21
  1. . . S MAGNCNT=MAGNCNT+1
  1. . . S IMGIEN=$P(@MAGIN@(MAGI),"|",2) ; IEN of the group
  1. . . S @MAGOUT@(MAGNCNT)="STUDY_INFO|"_$$STDINFO(IMGIEN)
  1. . . S MAGSTUDY=@MAGIN@(MAGI)
  1. . . Q
  1. . I IMGLESS,($P(@MAGIN@(MAGI),"|")="STUDY_PAT") D INSFIMG^MAGNU003(MAGSTUDY,.MAGNCNT,MAGOUT) ; Append First Image Info
  1. . Q
  1. Q
  1. ;
  1. IMAGEP34(MAGRY,DFN,IMGLESS,FLAGS,FROMDATE,TODATE,MAGDATA) ; Get P34 images
  1. ; DFN = Patient DFN
  1. ; IMGLESS = 0|1 Include images
  1. ; [FLAGS] = for feature use
  1. ;
  1. N IARRAY
  1. S MAGDATA("FLAGS")=FLAGS,MAGDATA("MAXNUM")=""
  1. S TMP=$S(TODATE<9999999:$$FMADD^XLFDT(TODATE,1),1:TODATE)
  1. D PATIMG34^MAGNVQ05(.IARRAY,DFN,IMGLESS,FROMDATE,TODATE,.MAGDATA) ; Get patient images
  1. ;
  1. D GETSTUDY^MAGNVQ01(MAGRY,.IARRAY,"","","") ; Get Study by graph ien
  1. Q
  1. ;
  1. STDINFO(IMGIEN) ; Get Study Info by IEN in IMAGE file (#2005)
  1. N IMGNODE,X2,PFILE,REFTYPE,REFIEN
  1. ;
  1. S IMGNODE=$$NODE^MAGGI11(IMGIEN)
  1. Q:IMGNODE="" ""
  1. ;
  1. S X2=$G(@IMGNODE@(2))
  1. ;
  1. S PFILE=$P(X2,U,6) ; PARENT DATA FILE#
  1. S REFTYPE=$$GET1^DIQ(2005.03,PFILE,.02)
  1. ;
  1. S REFIEN=$P(X2,U,7) ;PARENT GLOBAL ROOT D0
  1. ;
  1. Q $$STDINFO^MAGNU003(IMGIEN,REFTYPE,REFIEN,"")