| 1 | MAGGSIM ;WOIFO/GEK - Call to Modify Image File entry ; [ 12/27/2000 10:49 ]
 | 
|---|
| 2 |  ;;3.0;IMAGING;**7,8**;Sep 15, 2004
 | 
|---|
| 3 |  ;; +---------------------------------------------------------------+
 | 
|---|
| 4 |  ;; | Property of the US Government.                                |
 | 
|---|
| 5 |  ;; | No permission to copy or redistribute this software is given. |
 | 
|---|
| 6 |  ;; | Use of unreleased versions of this software requires the user |
 | 
|---|
| 7 |  ;; | to execute a written test agreement with the VistA Imaging    |
 | 
|---|
| 8 |  ;; | Development Office of the Department of Veterans Affairs,     |
 | 
|---|
| 9 |  ;; | telephone (301) 734-0100.                                     |
 | 
|---|
| 10 |  ;; |                                                               |
 | 
|---|
| 11 |  ;; | The Food and Drug Administration classifies this software as  |
 | 
|---|
| 12 |  ;; | a medical device.  As such, it may not be changed in any way. |
 | 
|---|
| 13 |  ;; | Modifications to this software may result in an adulterated   |
 | 
|---|
| 14 |  ;; | medical device under 21CFR820, the use of which is considered |
 | 
|---|
| 15 |  ;; | to be a violation of US Federal Statutes.                     |
 | 
|---|
| 16 |  ;; +---------------------------------------------------------------+
 | 
|---|
| 17 |  ;;
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | MOD(MAGRY,MAGARRAY) ; RPC Call to UPDATE^DIE to Add an Image File entry
 | 
|---|
| 21 |  ;  Parameters : 
 | 
|---|
| 22 |  ;    MAGARRAY -  array of field numbers and their entries
 | 
|---|
| 23 |  ;             i.e. MAGARRAY(1)=".5^38"  field# .5   data is 38
 | 
|---|
| 24 |  ;    If Long Description is included in array (field 11), we create a new
 | 
|---|
| 25 |  ;      array to hold the text, and pass that to UPDATE^DIE
 | 
|---|
| 26 |  ;    If this entry is an Image Group
 | 
|---|
| 27 |  ;      i.e. MAGARRAY(n)="2005.04^344"
 | 
|---|
| 28 |  ;      (the field 2005.04 is the OBJECT GROUP MULTIPLE)
 | 
|---|
| 29 |  ;      ( 344 is the pointer to the Image File Entry that will be added
 | 
|---|
| 30 |  ;      ( as a member of this new/existing Group)
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  ;  Return Variable
 | 
|---|
| 33 |  ;       MAGRY is a string;
 | 
|---|
| 34 |  ;               "1^success"
 | 
|---|
| 35 |  ;               "0^Error message"
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 |  N MAGGFDA,MAGGDRV,MAGGRP,MAGCHLD,GRPCT,MAGGDA,MAGGFNM
 | 
|---|
| 38 |  N MAGGWP,WPCT,MAGGFLD,MAGGDAT,MAGERR
 | 
|---|
| 39 |  N MAGREF,MAGDHASH,MAGTEMP
 | 
|---|
| 40 |  N MAGVY,MAGACT
 | 
|---|
| 41 |  N MAGTEMP,TEMPIEN
 | 
|---|
| 42 |  N MAGGIEN,MAGGXE
 | 
|---|
| 43 |  N I,J,X,Y,Z
 | 
|---|
| 44 |  ;
 | 
|---|
| 45 |  N $ETRAP,$ESTACK S $ETRAP="D ERR^MAGGSERR"
 | 
|---|
| 46 |  ;
 | 
|---|
| 47 |  I ($D(MAGARRAY)<10) S MAGRY="0^No input data, Operation CANCELED" Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 |  S MAGRY="0^Creating VistA Image Entry..."
 | 
|---|
| 50 |  S MAGERR="",MAGGRP=0,GRPCT=1,WPCT=0
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  ;  Validate the Data, and Action codes in the Input Array
 | 
|---|
| 53 |  D VAL^MAGGSIV(.MAGVY,.MAGARRAY) I 'MAGVY(0) S MAGRY=MAGVY(0) Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  ;  Make the FileMan FDA array and the Imaging Action array.
 | 
|---|
| 57 |  D MAKEFDA^MAGGSIU2(.MAGGFDA,.MAGARRAY,.MAGACT,.MAGCHLD,.MAGGRP,.MAGGWP)
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  I '$D(MAGACT("IEN")) S MAGRY="0^You Need to send the IEN" Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  I '$D(MAGGFDA(2005,"+1,")) S MAGRY="0^No data to file.  Operation CANCELED." Q
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  S TEMPIEN=MAGACT("IEN")_","
 | 
|---|
| 64 |  M MAGTEMP(2005,TEMPIEN)=MAGGFDA(2005,"+1,") K MAGGFDA
 | 
|---|
| 65 |  M MAGGFDA=MAGTEMP K MAGTEMP
 | 
|---|
| 66 |  ;
 | 
|---|
| 67 |  D FILE^DIE("S","MAGGFDA","MAGGIEN","MAGGXE")
 | 
|---|
| 68 |  ; We shouldn't have errors, because the data was validated before the call
 | 
|---|
| 69 |  ; But we'll still check for errors.
 | 
|---|
| 70 |  I $D(DIERR) D  S MAGRY=MAGERR Q
 | 
|---|
| 71 |  . D RTRNERR(.MAGERR)
 | 
|---|
| 72 |  . D CLEAN^DILF
 | 
|---|
| 73 |  ;
 | 
|---|
| 74 |  ;S MAGRY="1^OK"         
 | 
|---|
| 75 |  D ACTION^MAGGTAU("MOD^"_MAGGFDA(2005,"+1,",5)_"^"_$G(MAGACT("IEN")))
 | 
|---|
| 76 |  ;
 | 
|---|
| 77 |  ;Q
 | 
|---|
| 78 |  ;  THE REST OF THIS IS FROM IMAGE ADD, DON'T KNOW YET WHAT
 | 
|---|
| 79 |  ;  WE NEED TO CHECK or are going to allow from the GUI.
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 |  ; IF THE IEN is a group, Modify GROUP PARENT in each Group Object and QUIT
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 |  I MAGGRP D UPDCHLD(.MAGCHLD,MAGACT("IEN")) S MAGRY="1^OK" Q
 | 
|---|
| 84 |  ; 
 | 
|---|
| 85 |  I $G(MAGGFDA(2005,"+1,",14)) D  I $L(MAGERR) S MAGRY=MAGERR Q
 | 
|---|
| 86 |  . D UPDPAR(.MAGERR,MAGGFDA(2005,"+1,",14),.MAGACT,MAGACT("IEN"))
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 | UPDPAR(MAGERR,MAGRPDA,MAGACT,MAGGDA) ;
 | 
|---|
| 89 |  ; We're here beceause this image is a member of a Group
 | 
|---|
| 90 |  ;   so we will modify the Group Parent, adding this to it's group
 | 
|---|
| 91 |  ; HERE we will also send the 'Series Number' and 'Image Number' if
 | 
|---|
| 92 |  ; they exist;
 | 
|---|
| 93 |  N MAGFDA
 | 
|---|
| 94 |  S Y="+2,"_MAGRPDA_","
 | 
|---|
| 95 |  S MAGFDA(2005.04,Y,.01)=MAGGDA
 | 
|---|
| 96 |  ; DICOM SERIES AND IMAGE NUMBER CAN BE ANYTHING, WE CAN'T CHECK FOR +X
 | 
|---|
| 97 |  I $L($G(MAGACT("DICOMSN"))) S MAGFDA(2005.04,Y,1)=MAGACT("DICOMSN")
 | 
|---|
| 98 |  I $L($G(MAGACT("DICOMIN"))) S MAGFDA(2005.04,Y,2)=MAGACT("DICOMIN")
 | 
|---|
| 99 |  D UPDATE^DIE("S","MAGFDA","MAGGIEN","MAGGXE")
 | 
|---|
| 100 |  ;   in case of an error
 | 
|---|
| 101 |  I $D(DIERR) D RTRNERR(.MAGERR)
 | 
|---|
| 102 |  D CLEAN^DILF
 | 
|---|
| 103 |  Q
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 | UPDCHLD(MAGCHLD,MAGGDA) ;
 | 
|---|
| 106 |  S Z=""
 | 
|---|
| 107 |  F  S Z=$O(MAGCHLD(Z)) Q:Z=""  D
 | 
|---|
| 108 |  . S $P(^MAG(2005,Z,0),U,10)=MAGGDA
 | 
|---|
| 109 |  . ; TODO;  have to modify the parent global root, ( delete it if 
 | 
|---|
| 110 |  . ; this image was assigned as a single to the wrong parent )
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | RTRNERR(ETXT) ; There was error from FILE^DIE quit with error text
 | 
|---|
| 113 |  S ETXT="0^ERROR  "_MAGGXE("DIERR",1,"TEXT",1)
 | 
|---|
| 114 |  Q
 | 
|---|