- MAGDOD01 ;WOIFO/EdM - VistA DOD Exchange Utilities ; 29 Apr 2008 10:56 AM
- ;;3.0;IMAGING;**98**;Mar 19, 2002;Build 1849;Sep 22, 2010
- ;; Per VHA Directive 2004-038, this routine should not be modified.
- ;; +---------------------------------------------------------------+
- ;; | Property of the US Government. |
- ;; | No permission to copy or redistribute this software is given. |
- ;; | Use of unreleased versions of this software requires the user |
- ;; | to execute a written test agreement with the VistA Imaging |
- ;; | Development Office of the Department of Veterans Affairs, |
- ;; | telephone (301) 734-0100. |
- ;; | The Food and Drug Administration classifies this software as |
- ;; | a medical device. As such, it may not be changed in any way. |
- ;; | Modifications to this software may result in an adulterated |
- ;; | medical device under 21CFR820, the use of which is considered |
- ;; | to be a violation of US Federal Statutes. |
- ;; +---------------------------------------------------------------+
- ;;
- Q
- ;
- STOREUID(OUT,IMAGE,SERIES,SNUM,INUM,IMGUID,STUID,DOCDAT) ; RPC = MAG STORE TEXT FILE DETAILS
- N D0,D1,FM,I,IMG,LI,LS,X,XI,XS
- I '$$KEY() S OUT="-13,No permission to call this Remote Procedure" Q
- S FM=""
- I '$G(IMAGE) S OUT="-5,No valid image number specified." Q
- D CHK^MAGGSQI(.X,IMAGE) I +$G(X(0))'=1 D Q
- . S OUT=IMAGE_"-14,Questionable Integrity"
- . Q
- K X
- S:$G(^MAG(2005,IMAGE,0))'="" FM=2005
- S:$G(^MAG(2005.1,IMAGE,0))'="" FM=2005.1
- I FM="" S OUT="-1,No such image """_IMAGE_"""." Q
- S OUT=-13,(D0,D1)=0,(IMG,LS,LI,XS,XI)=""
- D:$TR($G(SNUM)_$G(INUM),0)'=""
- . S D0=+$P(^MAG(FM,IMAGE,0),"^",10) Q:'D0
- . S I=0 F S I=$O(^MAG(FM,D0,1,I)) Q:'I D Q:D1
- . . S X=$G(^MAG(FM,D0,1,I,0)) Q:+X'=IMAGE
- . . S D1=I,IMG=$P(X,"^",1),(LS,XS)=$P(X,"^",2),(LI,XI)=$P(X,"^",3)
- . . Q
- . S:'D0 OUT=OUT_", image is not part of series ("_SNUM_"/"_INUM_")"
- . S:'D1 OUT=OUT_", image is not in series "_D0_" ("_SNUM_"/"_INUM_")"
- . Q
- D:$G(SERIES)'=""
- . S X=$G(^MAG(FM,IMAGE,"SERIESUID")) Q:X=SERIES
- . I X'="" S OUT=OUT_", cannot enter Series Instance UID"_$C(13,10)_"Current: "_X_$C(13,10)_"New: "_SERIES Q
- . S ^MAG(FM,IMAGE,"SERIESUID")=SERIES
- . S ^MAG(FM,"SERIESUID",SERIES,IMAGE)=""
- . Q
- D:$G(SNUM)'=""
- . Q:LS=SNUM
- . I LS'="" S OUT=OUT_", cannot enter Series Number """_LS_"""'="""_SNUM_"""." Q
- . S $P(^MAG(FM,D0,1,D1,0),"^",2)=SNUM
- . I IMG'="",LS'="",LI'="" K ^MAG(FM,D0,1,"ADCM",LS,LI,IMG,D1)
- . S XS=SNUM
- . Q
- D:$G(INUM)'=""
- . Q:LI=INUM
- . I LI'="" S OUT=OUT_", cannot enter Instance Number"""_LI_"""'="""_INUM_"""." Q
- . S $P(^MAG(FM,D0,1,D1,0),"^",3)=INUM
- . I IMG'="",LS'="",LI'="" K ^MAG(FM,D0,1,"ADCM",LS,LI,IMG,D1)
- . S XI=INUM
- . Q
- I IMG'="",XS'="",XI'="" S ^MAG(FM,D0,1,"ADCM",XS,XI,IMG,D1)=""
- D:$G(IMGUID)'=""
- . S X=$P($G(^MAG(FM,IMAGE,"PACS")),"^",1)
- . Q:X=IMGUID
- . I X'="",X'=IMGUID S OUT=OUT_", cannot enter Instance UID"_$C(13,10)_"Current: "_X_$C(13,10)_"New: "_IMGUID Q
- . S $P(^MAG(FM,IMAGE,"PACS"),"^",1)=IMGUID
- . S ^MAG(FM,"P",IMGUID,IMAGE)=""
- . Q
- D:$G(STUID)'=""
- . N PARENT
- . S PARENT=$P($G(^MAG(FM,IMAGE,0)),"^",10)
- . I 'PARENT S OUT=OUT_", cannot find parent for image "_IMAGE Q
- . S X=$P($G(^MAG(FM,PARENT,"PACS")),"^",1)
- . Q:X=STUID
- . I X'="",X'=STUID S OUT=OUT_", cannot enter Study UID"_$C(13,10)_"Current: "_X_$C(13,10)_"New: "_STUID Q
- . S $P(^MAG(FM,PARENT,"PACS"),"^",1)=STUID
- . S ^MAG(FM,"P",STUID,PARENT)=""
- . Q
- D:$G(DOCDAT)'="" ;//110 CREATION DATE
- . N PARENT,CHILD
- . S PARENT=+$P($G(^MAG(FM,IMAGE,0)),"^",10) D:PARENT
- . . I $P($G(^MAG(FM,PARENT,100)),"^",6)="" D
- . . . S CHILD=$O(^MAG(FM,PARENT,1,0)) Q:'CHILD
- . . . S X=$G(^MAG(FM,PARENT,1,CHILD,0)) Q:+X'=IMAGE
- . . . S $P(^MAG(FM,PARENT,100),"^",6)=DOCDAT ;set parent
- . . . Q
- . . Q
- . S X=$P($G(^MAG(FM,IMAGE,100)),"^",6)
- . Q:X=DOCDAT
- . I X'="",X'=DOCDAT S OUT=OUT_", cannot enter Document Date"_$C(13,10)_"Current: "_X_$C(13,10)_"New: "_DOCDAT Q
- . S $P(^MAG(FM,IMAGE,100),"^",6)=DOCDAT ;set child
- . Q
- S:OUT=-13 OUT="0,OK"
- Q
- ;
- SCANIMG(OUT,ACTION,IMAGE,DIR) ; RPC = MAG SCAN IMAGE TEXT FILES
- N F1,F2,F3,X
- I '$$KEY() S OUT="-13,No permission to call this Remote Procedure" Q
- S ACTION=$G(ACTION)
- I ACTION="Init" D Q
- . S X=$G(^MAGDICOM(2006.563,1,"SCAN")) S:X="" X=" ^-1"
- . S OUT=X
- . Q
- I ACTION="Restart" D Q
- . S (^MAGDICOM(2006.563,1,"SCAN"),OUT)=" ^-1"
- . Q
- I ACTION="Scan" D Q
- . S DIR=$S($G(DIR)<0:-1,1:1)
- . S IMAGE=+$G(IMAGE) I 'IMAGE,DIR<0 S IMAGE=" "
- . S ^MAGDICOM(2006.563,1,"SCAN")=IMAGE_"^"_DIR
- . S IMAGE=$O(^MAG(2005,IMAGE),DIR)
- . I 'IMAGE S OUT="-1,Done" Q
- . D FILEFIND^MAGDFB(IMAGE,"TEXT",0,0,.F1,.F2,.F3)
- . S OUT=IMAGE_","_F2_","_$$NEARFMT^MAGUF(IMAGE)
- . Q
- S OUT="-13,Cannot perform requested action: """_ACTION_"""."
- Q
- ;
- FINDFIL(OUT,IMAGE) ; RPC = MAG FIND IMAGE TEXT FILE
- N F1,F2,F3,IEN
- N FM ; ------- file on which the image record exists (2005 or 2005.1)
- N IM0 ; ------ zero node of this image record (not parent)
- N CANUPD ; --- flag indicating that there are fields to be updated on the record
- N PDLIM ; ---- primary delimiter
- S PDLIM="|"
- I '$$KEY() S $P(OUT,PDLIM,2)="-12,No permission to call this Remote Procedure" Q
- I IMAGE="" S $P(OUT,PDLIM,2)="-21,Image file name must be specified" Q
- I IMAGE?.E1C.E S $P(OUT,PDLIM,2)="-22,Invalid filename format (no control characters allowed)" Q
- S FM=2005,IEN=$O(^MAG(FM,"F",IMAGE,"")) ; scan active image records
- I 'IEN S FM=2005.1,IEN=$O(^MAG(FM,"F",IMAGE,""))
- I 'IEN S $P(OUT,PDLIM,2)="-23,Image filename not found on VistA" Q
- D FILEFIND^MAGDFB(IEN,"TEXT",0,0,.F1,.F2,.F3)
- S OUT=IEN_PDLIM_F2_PDLIM_$$NEARFMT^MAGUF(IEN)
- S IM0=$G(^MAG(FM,IEN,0))
- ; check for dupes and integrity problems
- S:$P(IM0,"^",12) $P(OUT,PDLIM,4)="D" ; dupe
- S:$P(IM0,"^",11) $P(OUT,PDLIM,5)="IQ" ; integrity
- ; can this record be updated?
- S CANUPD=0 ; assume all updatable fields are populated, so not
- D ; check to see if there are any updatable fields
- . N PARENT ; --- parent record of the study of which this image is a member
- . D Q:CANUPD ; check Series Instance UID
- . . I $P($G(^MAG(FM,IEN,"SERIESUID")),"^",1)="" S CANUPD=1
- . . Q
- . D Q:CANUPD ; check Image Instance UID
- . . I $P($G(^MAG(FM,IEN,"PACS")),"^",1)="" S CANUPD=1
- . . Q
- . S PARENT=$P($G(^MAG(FM,IEN,0)),"^",10)
- . D:PARENT ; check attributes of parent study
- . . D Q:CANUPD ; check Study Instance UID
- . . . I $P($G(^MAG(FM,PARENT,"PACS")),"^",1)="" S CANUPD=1
- . . . Q
- . . D Q:CANUPD ; check Document Date
- . . . I $P($G(^MAG(FM,PARENT,100)),"^",6)="" S CANUPD=1
- . . . Q
- . . D Q:CANUPD ; check DICOM series and image number
- . . . N CHILD ; ---- what child this image is of the parent
- . . . N I ; -------- scratch loop index
- . . . S CHILD=0
- . . . F S CHILD=$O(^MAG(FM,PARENT,1,CHILD)) Q:'CHILD I $P($G(^(CHILD,0)),"^",1)=IEN Q
- . . . Q:'CHILD ; image not found in study
- . . . F I=2,3 I $P($G(^MAG(FM,PARENT,1,CHILD,0)),"^",I)="" S CANUPD=1 Q
- . . . Q
- . . Q
- . Q
- S $P(OUT,PDLIM,6)=CANUPD
- Q
- KEY() N KEY,PRIV
- S KEY(1)="MAG DOD FIX"
- D OWNSKEY^XUSRB(.PRIV,.KEY)
- Q PRIV(1)
- ;
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMAGDOD01 7283 printed Apr 23, 2025@18:15:19 Page 2
- MAGDOD01 ;WOIFO/EdM - VistA DOD Exchange Utilities ; 29 Apr 2008 10:56 AM
- +1 ;;3.0;IMAGING;**98**;Mar 19, 2002;Build 1849;Sep 22, 2010
- +2 ;; Per VHA Directive 2004-038, this routine should not be modified.
- +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 ;; | The Food and Drug Administration classifies this software as |
- +11 ;; | a medical device. As such, it may not be changed in any way. |
- +12 ;; | Modifications to this software may result in an adulterated |
- +13 ;; | medical device under 21CFR820, the use of which is considered |
- +14 ;; | to be a violation of US Federal Statutes. |
- +15 ;; +---------------------------------------------------------------+
- +16 ;;
- +17 QUIT
- +18 ;
- STOREUID(OUT,IMAGE,SERIES,SNUM,INUM,IMGUID,STUID,DOCDAT) ; RPC = MAG STORE TEXT FILE DETAILS
- +1 NEW D0,D1,FM,I,IMG,LI,LS,X,XI,XS
- +2 IF '$$KEY()
- SET OUT="-13,No permission to call this Remote Procedure"
- QUIT
- +3 SET FM=""
- +4 IF '$GET(IMAGE)
- SET OUT="-5,No valid image number specified."
- QUIT
- +5 DO CHK^MAGGSQI(.X,IMAGE)
- IF +$GET(X(0))'=1
- Begin DoDot:1
- +6 SET OUT=IMAGE_"-14,Questionable Integrity"
- +7 QUIT
- End DoDot:1
- QUIT
- +8 KILL X
- +9 if $GET(^MAG(2005,IMAGE,0))'=""
- SET FM=2005
- +10 if $GET(^MAG(2005.1,IMAGE,0))'=""
- SET FM=2005.1
- +11 IF FM=""
- SET OUT="-1,No such image """_IMAGE_"""."
- QUIT
- +12 SET OUT=-13
- SET (D0,D1)=0
- SET (IMG,LS,LI,XS,XI)=""
- +13 if $TRANSLATE($GET(SNUM)_$GET(INUM),0)'=""
- Begin DoDot:1
- +14 SET D0=+$PIECE(^MAG(FM,IMAGE,0),"^",10)
- if 'D0
- QUIT
- +15 SET I=0
- FOR
- SET I=$ORDER(^MAG(FM,D0,1,I))
- if 'I
- QUIT
- Begin DoDot:2
- +16 SET X=$GET(^MAG(FM,D0,1,I,0))
- if +X'=IMAGE
- QUIT
- +17 SET D1=I
- SET IMG=$PIECE(X,"^",1)
- SET (LS,XS)=$PIECE(X,"^",2)
- SET (LI,XI)=$PIECE(X,"^",3)
- +18 QUIT
- End DoDot:2
- if D1
- QUIT
- +19 if 'D0
- SET OUT=OUT_", image is not part of series ("_SNUM_"/"_INUM_")"
- +20 if 'D1
- SET OUT=OUT_", image is not in series "_D0_" ("_SNUM_"/"_INUM_")"
- +21 QUIT
- End DoDot:1
- +22 if $GET(SERIES)'=""
- Begin DoDot:1
- +23 SET X=$GET(^MAG(FM,IMAGE,"SERIESUID"))
- if X=SERIES
- QUIT
- +24 IF X'=""
- SET OUT=OUT_", cannot enter Series Instance UID"_$CHAR(13,10)_"Current: "_X_$CHAR(13,10)_"New: "_SERIES
- QUIT
- +25 SET ^MAG(FM,IMAGE,"SERIESUID")=SERIES
- +26 SET ^MAG(FM,"SERIESUID",SERIES,IMAGE)=""
- +27 QUIT
- End DoDot:1
- +28 if $GET(SNUM)'=""
- Begin DoDot:1
- +29 if LS=SNUM
- QUIT
- +30 IF LS'=""
- SET OUT=OUT_", cannot enter Series Number """_LS_"""'="""_SNUM_"""."
- QUIT
- +31 SET $PIECE(^MAG(FM,D0,1,D1,0),"^",2)=SNUM
- +32 IF IMG'=""
- IF LS'=""
- IF LI'=""
- KILL ^MAG(FM,D0,1,"ADCM",LS,LI,IMG,D1)
- +33 SET XS=SNUM
- +34 QUIT
- End DoDot:1
- +35 if $GET(INUM)'=""
- Begin DoDot:1
- +36 if LI=INUM
- QUIT
- +37 IF LI'=""
- SET OUT=OUT_", cannot enter Instance Number"""_LI_"""'="""_INUM_"""."
- QUIT
- +38 SET $PIECE(^MAG(FM,D0,1,D1,0),"^",3)=INUM
- +39 IF IMG'=""
- IF LS'=""
- IF LI'=""
- KILL ^MAG(FM,D0,1,"ADCM",LS,LI,IMG,D1)
- +40 SET XI=INUM
- +41 QUIT
- End DoDot:1
- +42 IF IMG'=""
- IF XS'=""
- IF XI'=""
- SET ^MAG(FM,D0,1,"ADCM",XS,XI,IMG,D1)=""
- +43 if $GET(IMGUID)'=""
- Begin DoDot:1
- +44 SET X=$PIECE($GET(^MAG(FM,IMAGE,"PACS")),"^",1)
- +45 if X=IMGUID
- QUIT
- +46 IF X'=""
- IF X'=IMGUID
- SET OUT=OUT_", cannot enter Instance UID"_$CHAR(13,10)_"Current: "_X_$CHAR(13,10)_"New: "_IMGUID
- QUIT
- +47 SET $PIECE(^MAG(FM,IMAGE,"PACS"),"^",1)=IMGUID
- +48 SET ^MAG(FM,"P",IMGUID,IMAGE)=""
- +49 QUIT
- End DoDot:1
- +50 if $GET(STUID)'=""
- Begin DoDot:1
- +51 NEW PARENT
- +52 SET PARENT=$PIECE($GET(^MAG(FM,IMAGE,0)),"^",10)
- +53 IF 'PARENT
- SET OUT=OUT_", cannot find parent for image "_IMAGE
- QUIT
- +54 SET X=$PIECE($GET(^MAG(FM,PARENT,"PACS")),"^",1)
- +55 if X=STUID
- QUIT
- +56 IF X'=""
- IF X'=STUID
- SET OUT=OUT_", cannot enter Study UID"_$CHAR(13,10)_"Current: "_X_$CHAR(13,10)_"New: "_STUID
- QUIT
- +57 SET $PIECE(^MAG(FM,PARENT,"PACS"),"^",1)=STUID
- +58 SET ^MAG(FM,"P",STUID,PARENT)=""
- +59 QUIT
- End DoDot:1
- +60 ;//110 CREATION DATE
- if $GET(DOCDAT)'=""
- Begin DoDot:1
- +61 NEW PARENT,CHILD
- +62 SET PARENT=+$PIECE($GET(^MAG(FM,IMAGE,0)),"^",10)
- if PARENT
- Begin DoDot:2
- +63 IF $PIECE($GET(^MAG(FM,PARENT,100)),"^",6)=""
- Begin DoDot:3
- +64 SET CHILD=$ORDER(^MAG(FM,PARENT,1,0))
- if 'CHILD
- QUIT
- +65 SET X=$GET(^MAG(FM,PARENT,1,CHILD,0))
- if +X'=IMAGE
- QUIT
- +66 ;set parent
- SET $PIECE(^MAG(FM,PARENT,100),"^",6)=DOCDAT
- +67 QUIT
- End DoDot:3
- +68 QUIT
- End DoDot:2
- +69 SET X=$PIECE($GET(^MAG(FM,IMAGE,100)),"^",6)
- +70 if X=DOCDAT
- QUIT
- +71 IF X'=""
- IF X'=DOCDAT
- SET OUT=OUT_", cannot enter Document Date"_$CHAR(13,10)_"Current: "_X_$CHAR(13,10)_"New: "_DOCDAT
- QUIT
- +72 ;set child
- SET $PIECE(^MAG(FM,IMAGE,100),"^",6)=DOCDAT
- +73 QUIT
- End DoDot:1
- +74 if OUT=-13
- SET OUT="0,OK"
- +75 QUIT
- +76 ;
- SCANIMG(OUT,ACTION,IMAGE,DIR) ; RPC = MAG SCAN IMAGE TEXT FILES
- +1 NEW F1,F2,F3,X
- +2 IF '$$KEY()
- SET OUT="-13,No permission to call this Remote Procedure"
- QUIT
- +3 SET ACTION=$GET(ACTION)
- +4 IF ACTION="Init"
- Begin DoDot:1
- +5 SET X=$GET(^MAGDICOM(2006.563,1,"SCAN"))
- if X=""
- SET X=" ^-1"
- +6 SET OUT=X
- +7 QUIT
- End DoDot:1
- QUIT
- +8 IF ACTION="Restart"
- Begin DoDot:1
- +9 SET (^MAGDICOM(2006.563,1,"SCAN"),OUT)=" ^-1"
- +10 QUIT
- End DoDot:1
- QUIT
- +11 IF ACTION="Scan"
- Begin DoDot:1
- +12 SET DIR=$SELECT($GET(DIR)<0:-1,1:1)
- +13 SET IMAGE=+$GET(IMAGE)
- IF 'IMAGE
- IF DIR<0
- SET IMAGE=" "
- +14 SET ^MAGDICOM(2006.563,1,"SCAN")=IMAGE_"^"_DIR
- +15 SET IMAGE=$ORDER(^MAG(2005,IMAGE),DIR)
- +16 IF 'IMAGE
- SET OUT="-1,Done"
- QUIT
- +17 DO FILEFIND^MAGDFB(IMAGE,"TEXT",0,0,.F1,.F2,.F3)
- +18 SET OUT=IMAGE_","_F2_","_$$NEARFMT^MAGUF(IMAGE)
- +19 QUIT
- End DoDot:1
- QUIT
- +20 SET OUT="-13,Cannot perform requested action: """_ACTION_"""."
- +21 QUIT
- +22 ;
- FINDFIL(OUT,IMAGE) ; RPC = MAG FIND IMAGE TEXT FILE
- +1 NEW F1,F2,F3,IEN
- +2 ; ------- file on which the image record exists (2005 or 2005.1)
- NEW FM
- +3 ; ------ zero node of this image record (not parent)
- NEW IM0
- +4 ; --- flag indicating that there are fields to be updated on the record
- NEW CANUPD
- +5 ; ---- primary delimiter
- NEW PDLIM
- +6 SET PDLIM="|"
- +7 IF '$$KEY()
- SET $PIECE(OUT,PDLIM,2)="-12,No permission to call this Remote Procedure"
- QUIT
- +8 IF IMAGE=""
- SET $PIECE(OUT,PDLIM,2)="-21,Image file name must be specified"
- QUIT
- +9 IF IMAGE?.E1C.E
- SET $PIECE(OUT,PDLIM,2)="-22,Invalid filename format (no control characters allowed)"
- QUIT
- +10 ; scan active image records
- SET FM=2005
- SET IEN=$ORDER(^MAG(FM,"F",IMAGE,""))
- +11 IF 'IEN
- SET FM=2005.1
- SET IEN=$ORDER(^MAG(FM,"F",IMAGE,""))
- +12 IF 'IEN
- SET $PIECE(OUT,PDLIM,2)="-23,Image filename not found on VistA"
- QUIT
- +13 DO FILEFIND^MAGDFB(IEN,"TEXT",0,0,.F1,.F2,.F3)
- +14 SET OUT=IEN_PDLIM_F2_PDLIM_$$NEARFMT^MAGUF(IEN)
- +15 SET IM0=$GET(^MAG(FM,IEN,0))
- +16 ; check for dupes and integrity problems
- +17 ; dupe
- if $PIECE(IM0,"^",12)
- SET $PIECE(OUT,PDLIM,4)="D"
- +18 ; integrity
- if $PIECE(IM0,"^",11)
- SET $PIECE(OUT,PDLIM,5)="IQ"
- +19 ; can this record be updated?
- +20 ; assume all updatable fields are populated, so not
- SET CANUPD=0
- +21 ; check to see if there are any updatable fields
- Begin DoDot:1
- +22 ; --- parent record of the study of which this image is a member
- NEW PARENT
- +23 ; check Series Instance UID
- Begin DoDot:2
- +24 IF $PIECE($GET(^MAG(FM,IEN,"SERIESUID")),"^",1)=""
- SET CANUPD=1
- +25 QUIT
- End DoDot:2
- if CANUPD
- QUIT
- +26 ; check Image Instance UID
- Begin DoDot:2
- +27 IF $PIECE($GET(^MAG(FM,IEN,"PACS")),"^",1)=""
- SET CANUPD=1
- +28 QUIT
- End DoDot:2
- if CANUPD
- QUIT
- +29 SET PARENT=$PIECE($GET(^MAG(FM,IEN,0)),"^",10)
- +30 ; check attributes of parent study
- if PARENT
- Begin DoDot:2
- +31 ; check Study Instance UID
- Begin DoDot:3
- +32 IF $PIECE($GET(^MAG(FM,PARENT,"PACS")),"^",1)=""
- SET CANUPD=1
- +33 QUIT
- End DoDot:3
- if CANUPD
- QUIT
- +34 ; check Document Date
- Begin DoDot:3
- +35 IF $PIECE($GET(^MAG(FM,PARENT,100)),"^",6)=""
- SET CANUPD=1
- +36 QUIT
- End DoDot:3
- if CANUPD
- QUIT
- +37 ; check DICOM series and image number
- Begin DoDot:3
- +38 ; ---- what child this image is of the parent
- NEW CHILD
- +39 ; -------- scratch loop index
- NEW I
- +40 SET CHILD=0
- +41 FOR
- SET CHILD=$ORDER(^MAG(FM,PARENT,1,CHILD))
- if 'CHILD
- QUIT
- IF $PIECE($GET(^(CHILD,0)),"^",1)=IEN
- QUIT
- +42 ; image not found in study
- if 'CHILD
- QUIT
- +43 FOR I=2,3
- IF $PIECE($GET(^MAG(FM,PARENT,1,CHILD,0)),"^",I)=""
- SET CANUPD=1
- QUIT
- +44 QUIT
- End DoDot:3
- if CANUPD
- QUIT
- +45 QUIT
- End DoDot:2
- +46 QUIT
- End DoDot:1
- +47 SET $PIECE(OUT,PDLIM,6)=CANUPD
- +48 QUIT
- KEY() NEW KEY,PRIV
- +1 SET KEY(1)="MAG DOD FIX"
- +2 DO OWNSKEY^XUSRB(.PRIV,.KEY)
- +3 QUIT PRIV(1)
- +4 ;