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

MAGGSIM.m

Go to the documentation of this file.
  1. MAGGSIM ;WOIFO/GEK - Call to Modify Image File entry ; [ 12/27/2000 10:49 ]
  1. ;;3.0;IMAGING;**7,8**;Sep 15, 2004
  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. ;; | |
  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. MOD(MAGRY,MAGARRAY) ; RPC Call to UPDATE^DIE to Add an Image File entry
  1. ; Parameters :
  1. ; MAGARRAY - array of field numbers and their entries
  1. ; i.e. MAGARRAY(1)=".5^38" field# .5 data is 38
  1. ; If Long Description is included in array (field 11), we create a new
  1. ; array to hold the text, and pass that to UPDATE^DIE
  1. ; If this entry is an Image Group
  1. ; i.e. MAGARRAY(n)="2005.04^344"
  1. ; (the field 2005.04 is the OBJECT GROUP MULTIPLE)
  1. ; ( 344 is the pointer to the Image File Entry that will be added
  1. ; ( as a member of this new/existing Group)
  1. ;
  1. ; Return Variable
  1. ; MAGRY is a string;
  1. ; "1^success"
  1. ; "0^Error message"
  1. ;
  1. N MAGGFDA,MAGGDRV,MAGGRP,MAGCHLD,GRPCT,MAGGDA,MAGGFNM
  1. N MAGGWP,WPCT,MAGGFLD,MAGGDAT,MAGERR
  1. N MAGREF,MAGDHASH,MAGTEMP
  1. N MAGVY,MAGACT
  1. N MAGTEMP,TEMPIEN
  1. N MAGGIEN,MAGGXE
  1. N I,J,X,Y,Z
  1. ;
  1. N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGSERR"
  1. ;
  1. I ($D(MAGARRAY)<10) S MAGRY="0^No input data, Operation CANCELED" Q
  1. ;
  1. S MAGRY="0^Creating VistA Image Entry..."
  1. S MAGERR="",MAGGRP=0,GRPCT=1,WPCT=0
  1. ;
  1. ; Validate the Data, and Action codes in the Input Array
  1. D VAL^MAGGSIV(.MAGVY,.MAGARRAY) I 'MAGVY(0) S MAGRY=MAGVY(0) Q
  1. ;
  1. ;
  1. ; Make the FileMan FDA array and the Imaging Action array.
  1. D MAKEFDA^MAGGSIU2(.MAGGFDA,.MAGARRAY,.MAGACT,.MAGCHLD,.MAGGRP,.MAGGWP)
  1. ;
  1. I '$D(MAGACT("IEN")) S MAGRY="0^You Need to send the IEN" Q
  1. ;
  1. I '$D(MAGGFDA(2005,"+1,")) S MAGRY="0^No data to file. Operation CANCELED." Q
  1. ;
  1. S TEMPIEN=MAGACT("IEN")_","
  1. M MAGTEMP(2005,TEMPIEN)=MAGGFDA(2005,"+1,") K MAGGFDA
  1. M MAGGFDA=MAGTEMP K MAGTEMP
  1. ;
  1. D FILE^DIE("S","MAGGFDA","MAGGIEN","MAGGXE")
  1. ; We shouldn't have errors, because the data was validated before the call
  1. ; But we'll still check for errors.
  1. I $D(DIERR) D S MAGRY=MAGERR Q
  1. . D RTRNERR(.MAGERR)
  1. . D CLEAN^DILF
  1. ;
  1. ;S MAGRY="1^OK"
  1. D ACTION^MAGGTAU("MOD^"_MAGGFDA(2005,"+1,",5)_"^"_$G(MAGACT("IEN")))
  1. ;
  1. ;Q
  1. ; THE REST OF THIS IS FROM IMAGE ADD, DON'T KNOW YET WHAT
  1. ; WE NEED TO CHECK or are going to allow from the GUI.
  1. ;
  1. ; IF THE IEN is a group, Modify GROUP PARENT in each Group Object and QUIT
  1. ;
  1. I MAGGRP D UPDCHLD(.MAGCHLD,MAGACT("IEN")) S MAGRY="1^OK" Q
  1. ;
  1. I $G(MAGGFDA(2005,"+1,",14)) D I $L(MAGERR) S MAGRY=MAGERR Q
  1. . D UPDPAR(.MAGERR,MAGGFDA(2005,"+1,",14),.MAGACT,MAGACT("IEN"))
  1. Q
  1. UPDPAR(MAGERR,MAGRPDA,MAGACT,MAGGDA) ;
  1. ; We're here beceause this image is a member of a Group
  1. ; so we will modify the Group Parent, adding this to it's group
  1. ; HERE we will also send the 'Series Number' and 'Image Number' if
  1. ; they exist;
  1. N MAGFDA
  1. S Y="+2,"_MAGRPDA_","
  1. S MAGFDA(2005.04,Y,.01)=MAGGDA
  1. ; DICOM SERIES AND IMAGE NUMBER CAN BE ANYTHING, WE CAN'T CHECK FOR +X
  1. I $L($G(MAGACT("DICOMSN"))) S MAGFDA(2005.04,Y,1)=MAGACT("DICOMSN")
  1. I $L($G(MAGACT("DICOMIN"))) S MAGFDA(2005.04,Y,2)=MAGACT("DICOMIN")
  1. D UPDATE^DIE("S","MAGFDA","MAGGIEN","MAGGXE")
  1. ; in case of an error
  1. I $D(DIERR) D RTRNERR(.MAGERR)
  1. D CLEAN^DILF
  1. Q
  1. ;
  1. UPDCHLD(MAGCHLD,MAGGDA) ;
  1. S Z=""
  1. F S Z=$O(MAGCHLD(Z)) Q:Z="" D
  1. . S $P(^MAG(2005,Z,0),U,10)=MAGGDA
  1. . ; TODO; have to modify the parent global root, ( delete it if
  1. . ; this image was assigned as a single to the wrong parent )
  1. Q
  1. RTRNERR(ETXT) ; There was error from FILE^DIE quit with error text
  1. S ETXT="0^ERROR "_MAGGXE("DIERR",1,"TEXT",1)
  1. Q