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

MAGNVQ03.m

Go to the documentation of this file.
  1. MAGNVQ03 ;WOIFO/NST - Retrieve Image Info ; 02 Oct 2017 3:59 PM
  1. ;;3.0;IMAGING;**185**;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. ;***** Return Image Info Report
  1. ;
  1. ;
  1. ; Input Parameters
  1. ; ================
  1. ;
  1. ; DATA - Image IEN in IMAGE SOP INSTANCE file (#2005.64)
  1. ; Return Values
  1. ; =============
  1. ;
  1. ; if error MAGRY(0) = 0 ^Error message^
  1. ; if success MAGRY(0) = 1
  1. ; MAGRY(1..n) = Image Info Report
  1. ;
  1. IMGINFO(MAGRY,DATA) ; Return Image Info Report
  1. N MAGPAT,MAGPROC,MAGSTUDY,MAGSER,MAGSOP,MAGIMAGE,MAGAFACT,MAGAINST
  1. N CNT,ERR,FILE,IEN,IENS,LINE,IMAGE
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D AERRA^MAGGTERR"
  1. ;
  1. K @MAGRY
  1. ; Get SOP Details
  1. S FILE("SOP")=2005.64
  1. S IEN("SOP")=DATA
  1. S IENS("SOP")=IEN("SOP")_","
  1. D GETS^DIQ(FILE("SOP"),IEN("SOP"),"**","RIEN","MAGSOP","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("SOP"),IEN("SOP"),.ERR) Q
  1. ;
  1. ; Get Series Details
  1. S FILE("SERIES")=2005.63
  1. S IEN("SERIES")=$G(MAGSOP(FILE("SOP"),IENS("SOP"),"SERIES REFERENCE","I"))
  1. S IENS("SERIES")=IEN("SERIES")_","
  1. D GETS^DIQ(FILE("SERIES"),IEN("SERIES"),"**","RIEN","MAGSER","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("SERIES"),IEN("SERIES"),.ERR) Q
  1. ;
  1. ; Get Study Details
  1. S FILE("STUDY")=2005.62
  1. S IEN("STUDY")=$G(MAGSER(FILE("SERIES"),IENS("SERIES"),"STUDY REFERENCE","I"))
  1. S IENS("STUDY")=IEN("STUDY")_","
  1. D GETS^DIQ(FILE("STUDY"),IEN("STUDY"),"**","RIEN","MAGSTUDY","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("STUDY"),IEN("STUDY"),.ERR) Q
  1. ;
  1. ; Get Procedure Details
  1. S FILE("PROCEDURE")=2005.61
  1. S IEN("PROCEDURE")=$G(MAGSTUDY(FILE("STUDY"),IENS("STUDY"),"PROCEDURE REFERENCE","I"))
  1. S IENS("PROCEDURE")=IEN("PROCEDURE")_","
  1. D GETS^DIQ(FILE("PROCEDURE"),IEN("PROCEDURE"),"**","RIEN","MAGPROC","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("PROCEDURE"),IEN("PROCEDURE"),.ERR) Q
  1. ;
  1. ; Get Patient Details
  1. S FILE("PATIENT")=2005.6
  1. S IEN("PATIENT")=$G(MAGPROC(FILE("PROCEDURE"),IENS("PROCEDURE"),"PATIENT REFERENCE","I"))
  1. S IENS("PATIENT")=IEN("PATIENT")_","
  1. D GETS^DIQ(FILE("PATIENT"),IEN("PATIENT"),"**","RIEN","MAGPAT","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("PATIENT"),IEN("PATIENT"),.ERR) Q
  1. ;
  1. S CNT=0
  1. D ADD(MAGRY,.CNT,.MAGPAT,FILE("PATIENT"),IENS("PATIENT")) ; Add Patient details
  1. D ADD(MAGRY,.CNT,.MAGPROC,FILE("PROCEDURE"),IENS("PROCEDURE")) ; Add Procedure details
  1. D ADD(MAGRY,.CNT,.MAGSTUDY,FILE("STUDY"),IENS("STUDY")) ; Add Study details
  1. D ADD(MAGRY,.CNT,.MAGSER,FILE("SERIES"),IENS("SERIES")) ; Add SERIES details
  1. D ADD(MAGRY,.CNT,.MAGSOP,FILE("SOP"),IENS("SOP")) ; Add SOP details
  1. ;
  1. S IMAGE=""
  1. F S IMAGE=$O(^MAGV(2005.65,"C",IEN("SOP"),IMAGE)) Q:'IMAGE D
  1. . D ADDIMGD(MAGRY,.CNT,IMAGE)
  1. . Q
  1. I $G(@MAGRY@(0))=0 Q ; Error during adding records
  1. ;
  1. S @MAGRY@(0)=1
  1. Q
  1. ;
  1. ADD(MAGRY,CNT,DATA,FILE,IENS) ; Add Entity details to array e.g. Patient, procedure
  1. N ATTR,HEADER,LINE,TYEREF,HEADE,DASH,LEN
  1. ;
  1. I CNT>0 S CNT=CNT+1,@MAGRY@(CNT)=""
  1. S HEADER=" "_$$GETFILNM^MAGVAF01(FILE)_" (#"_FILE_") "
  1. S LEN=(78-$L(HEADER))\2
  1. S DASH=$TR($J("-",LEN)," ","-")
  1. S CNT=CNT+1,@MAGRY@(CNT)=DASH_HEADER_DASH
  1. S CNT=CNT+1,@MAGRY@(CNT)=""
  1. ;
  1. S ATTR=""
  1. F S ATTR=$O(DATA(FILE,IENS,ATTR)) Q:ATTR="" D
  1. . I $$ISFLDWP^MAGVAF01(.TYEREF,FILE,ATTR) D Q
  1. . . ; TO-DO Do word-procesing field
  1. . . Q
  1. . S LINE=ATTR
  1. . S $E(LINE,25,999)=" = ("_$G(DATA(FILE,IENS,ATTR,"I"))_")"
  1. . S:$G(DATA(FILE,IENS,ATTR,"E"))'=$G(DATA(FILE,IENS,ATTR,"I")) $E(LINE,45,999)=" = "_$G(DATA(FILE,IENS,ATTR,"E"))
  1. . S CNT=CNT+1,@MAGRY@(CNT)=LINE
  1. . Q
  1. Q
  1. ;
  1. ADDAINST(MAGRY,CNT,AFACTIEN) ; Add Artifact Instance
  1. N MAGI,FILE,LINEHDR,TMPARR,MAGOUT,OUT,ERR,VALUE,LOCATION
  1. ;
  1. S FILE=2006.918
  1. D FIND^DIC(FILE,,"@;","BQX",AFACTIEN,"","","","","OUT","ERR")
  1. S MAGI="" ; IENs
  1. F S MAGI=$O(OUT("DILIST",2,MAGI)) Q:'MAGI D Q:$D(ERR)
  1. . S IEN=OUT("DILIST",2,MAGI)
  1. . D GETS^DIQ(FILE,IEN,"**","RIEN","MAGOUT","ERR")
  1. . I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE,IEN,.ERR) Q
  1. . S VALUE=$G(MAGOUT(FILE,IEN_",","DISK VOLUME","I"))
  1. . S MAGOUT(FILE,IEN_",","DISK VOLUME","E")=$G(MAGOUT(FILE,IEN_",","DISK VOLUME","E"))_" : "_$$GET1^DIQ(2005.2,VALUE,"1")
  1. . D ADD(MAGRY,.CNT,.MAGOUT,FILE,IEN_",")
  1. . Q
  1. Q
  1. ;
  1. ADDIMGD(MAGRY,CNT,IMAGE) ; Add one SOP instance
  1. N FILE,IEN,IENS,ERR,MAGIMAGE,MAGAFACT
  1. ;
  1. S FILE("IMAGE")=2005.65
  1. S IEN("IMAGE")=IMAGE
  1. S IENS("IMAGE")=IMAGE_","
  1. K MAGOUT
  1. D GETS^DIQ(FILE("IMAGE"),IEN("IMAGE"),"**","RIEN","MAGIMAGE","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("IMAGE"),IEN("IMAGE"),.ERR) Q
  1. D ADD(MAGRY,.CNT,.MAGIMAGE,FILE("IMAGE"),IENS("IMAGE"))
  1. ;
  1. ; Get Artifact Details
  1. S FILE("ARTIFACT")=2006.916
  1. S IEN("ARTIFACT")=$G(MAGIMAGE(FILE("IMAGE"),IENS("IMAGE"),"ARTIFACT REFERENCE","I"))
  1. S IENS("ARTIFACT")=IEN("ARTIFACT")_","
  1. D GETS^DIQ(FILE("ARTIFACT"),IEN("ARTIFACT"),"**","RIEN","MAGAFACT","ERR")
  1. I $D(ERR) S @MAGRY@(0)="0^"_$$ERRTEXT("GETS",FILE("ARTIFACT"),IEN("ARTIFACT"),.ERR) Q
  1. ;
  1. D ADDAINST(MAGRY,.CNT,MAGIMAGE(FILE("IMAGE"),IENS("IMAGE"),"ARTIFACT REFERENCE","I")) ; Add Artifact Instance
  1. ;
  1. Q
  1. ;
  1. ERRTEXT(ACTION,FILE,IEN,ERR) ; Format error message
  1. Q ACTION_" : "_FILE_" : "_IEN_" : "_$G(ERR("DIERR",1,"TEXT",1))