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
|
---|