MAGQE3 ;WOIFO/RMP - Support for MAG Enterprise ; 25 Jun 2012 4:20 PM
 ;;3.0;IMAGING;**27,29,30,20,46,135**;Mar 19, 2002;Build 5238;Jul 17, 2013
 ;; 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
 ;
COUNT(SDATE,EDATE,INST,AI,IQ,DUP,TIOP,TGPP,TIEDP,GRPPRNT,IMAGE,DELETED) ;
 N CLIN,CONSENTS,CPTR,D0,DAT,DICOM,DOC,DOCGRP,DOCUMENT,ED0,I,IMPORT
 N NAME,OTHER,PCE,PROC,SD0,TRK,ZNODE,CNODE
 S SD0=$$SDATE^MAGQE1(SDATE,"F")
 S ED0=$$SDATE^MAGQE1(EDATE,"R")
 S D0="" F  S D0=$O(^MAG(2005.02,"B","DOCUMENT",D0)) Q:D0=""  D
 . S:$G(^MAG(2005.02,D0,4))["TIF" DOC(D0)=""
 . Q
 S (CONSENTS,GRPPRNT,IMAGE,DELETED,DOCGRP,DOCUMENT,DUP,TIOP,TGPP,TIEDP)=0
 S IQ="0^0^0"
 S CPTR=$O(^MAG(2005.83,"B","CONSENT",""))
 S D0=SD0 F  S D0=$O(^MAG(2005,D0)) Q:'D0  Q:D0'<ED0  D
 . S CNODE=$G(^MAG(2005,D0,100))
 . S PCE=$P(CNODE,"^",3) Q:((PCE'=INST)&(AI'[("^"_PCE_"^")))
 . S ZNODE=$G(^MAG(2005,D0,0))
 . I $P(ZNODE,"^",2)="" S TGPP=TGPP+1 ;TOTAL FILE WIDE by Place 
 . E  D
 . . S TIOP=TIOP+1
 . . S:($P(ZNODE,U,11)="") $P(IQ,U,1)=$P(IQ,U,1)+1
 . . S:($P(ZNODE,U,11)="0") $P(IQ,U,2)=$P(IQ,U,2)+1
 . . S:($P(ZNODE,U,11)="1") $P(IQ,U,3)=$P(IQ,U,3)+1
 . . Q
 . S X=$P($G(^MAG(2005,D0,2)),"^",1)\1 Q:'X  Q:X<SDATE  Q:X>EDATE
 . S:$P(ZNODE,U,12) DUP=DUP+1
 . S PCE=$P(CNODE,"^",5),TRK="" I PCE'="" D
 . . S TRK=$P($G(^MAG(2006.04,$P(CNODE,U,4),0)),U)
 . . S TRK=$S(TRK'="":TRK,1:"?") Q
 . I $P(ZNODE,"^",2)="" D  Q
 . . S GRPPRNT=GRPPRNT+1
 . . S PCE=$P(ZNODE,"^",8) S:PCE="" PCE="NIL"
 . . S:$D(^MAG(2005,D0,"PACS")) DICOM(PCE,0)=$G(DICOM(PCE,0))+1
 . . S PCE=$P(ZNODE,"^",6) I PCE,$D(DOC(PCE)) S DOCGRP=DOCGRP+1
 . . S:TRK'="" IMPORT(TRK,0)=$G(IMPORT(TRK,0))+1
 . . Q
 . S:TRK'="" IMPORT(TRK)=$G(IMPORT(TRK))+1
 . I CPTR,$P($G(^MAG(2005,D0,40)),"^",3)=CPTR S CONSENTS=CONSENTS+1
 . E  S PCE=$$UPPER^MAGQE4($P($G(^MAG(2005,D0,2)),"^",4)) S:PCE["CONSENT" OTHER(PCE)=$G(OTHER(PCE))+1
 . S IMAGE=IMAGE+1
 . S PCE=$P(ZNODE,"^",6) I PCE,$D(DOC(PCE)) S DOCUMENT=DOCUMENT+1
 . S PCE=$P(ZNODE,"^",7) S:PCE="" PCE="NIL"
 . S ^TMP($J,"MAGQ","ACQPAT",PCE)=""
 . S ^TMP($J,"MAGQ","ALLPAT",PCE)=""
 . S PCE=$P(ZNODE,"^",8) S:PCE="" PCE="NIL"
 . I $D(^MAG(2005,D0,"PACS")) S DICOM(PCE)=$G(DICOM(PCE))+1
 . E  S CLIN(PCE)=$G(CLIN(PCE))+1
 . Q
 S NAME="" F  S NAME=$O(DICOM(NAME)) Q:NAME=""  D
 . D:$E(NAME,1,4)="RAD "
 . . Q:'$D(DICOM(NAME,0))
 . . S I=$E(NAME,5,$L(NAME)) Q:I=""
 . . Q:$D(DICOM(I,0))
 . . S DICOM(I,0)=DICOM(NAME,0) K DICOM(NAME,0) Q
 . S PROC=$O(^RAMIS(73.1,"B",NAME,"")) Q:'PROC
 . S $P(DICOM(NAME),"^",2)=$P($G(^RAMIS(73.1,PROC,0)),"^",2) Q
 S D0=SD0 F  S D0=$O(^MAG(2005.1,D0)) Q:'D0  Q:D0'<ED0  D
 . S PCE=$P($G(^MAG(2005.1,D0,100)),"^",3) Q:((PCE'=INST)&(AI'[("^"_PCE_"^")))
 . S TIEDP=TIEDP+1
 . S X=$P($G(^MAG(2005.1,D0,2)),"^",1)\1 Q:'X  Q:X<SDATE  Q:X>EDATE
 . S DELETED=DELETED+1 Q
 S I="" F  S I=$O(DICOM(I)) Q:I=""  D
 . S X=" DICOM CAPTURE: "_I_"^"_$G(DICOM(I))
 . S:$G(DICOM(I,0)) $P(X,"^",4)=DICOM(I,0)
 . D MSG^MAGQE2(X) Q
 S I="" F  S I=$O(IMPORT(I)) Q:I=""  D
 . S X=" IMPORT API: "_I_"^"_IMPORT(I)
 . S:$G(IMPORT(I,0)) X=X_"^"_IMPORT(I,0)
 . D MSG^MAGQE2(X) Q
 D LLOAD^MAGQE5(.CLIN,"CLIN CAPTURE:")
 D MSG^MAGQE2("CONSENT FORMS: "_CONSENTS)
 D LLOAD^MAGQE5(.OTHER,"OTHER CONSENTS:")
 D MSG^MAGQE2("Document Images (TIF): "_DOCUMENT)
 D MSG^MAGQE2("Document Groups (TIF): "_DOCGRP)
 Q
 ;
ACT(D0,DIS,CAP,VD,VI,RES) ;
 N ACT,AN,AN2,D1,IMG
 S D1=0 F  S D1=$O(^MAG(2006.82,D0,"ACT",D1)) Q:'D1  D
 . S AN=^MAG(2006.82,D0,"ACT",D1,0)
 . S ACT="^"_$P(AN,"^",1)_"^",AN2=+$P(AN,"^",2)
 . Q:"^LOGON^LOGOFF^PAT^"[ACT
 . I "^SC_BAD^SCR_OK^"[ACT D  Q
 . . S AN=$P(AN,"^",10,14) Q:AN=""
 . . S RES(ACT,AN)=$G(RES(ACT,AN))+1 Q
 . I "^CAP^IMG^"[ACT D  Q
 . . S IMG=+$P(AN,"^",3) Q:'IMG  Q:$P($G(^MAG(2005,IMG,0)),"^",2)=""
 . . I ACT="^CAP^" S CAP=CAP+1 Q
 . . S DIS=DIS+1,^TMP($J,"MAGQ","DISPAT",AN2)="",^TMP($J,"MAGQ","ALLPAT",AN2)=""
 . . Q
 . I "^VR-VW^"[ACT D VRAD(.VD,AN) S ^TMP($J,"MAGQ","DISPAT",AN2)="",^TMP($J,"MAGQ","ALLPAT",AN2)="" Q
 . I "^VR-INT^"[ACT D VRAD(.VI,AN) S ^TMP($J,"MAGQ","DISPAT",AN2)="",^TMP($J,"MAGQ","ALLPAT",AN2)="" Q
 . Q
 Q
 ;
VRAD(ARR,AN) ;
 ;ARR=STUDIES^IMAGES^PATIENTS^User Type(Rad/Non-Rad)^Remotes(Remote/Local)^Modalities
 N P,X
 S $P(ARR,"^",1)=$P($G(ARR),"^",1)+1 ; Studies
 S $P(ARR,"^",2)=$P($G(ARR),"^",2)+$P(AN,"^",6) ; Images
 S $P(ARR,"^",3)=$P($G(ARR),"^",3)+$P(AN,"^",7) ; Patients
 S P=$P(ARR,"^",4)
 I +$P(AN,"^",8)=1 S $P(P,"/",1)=$P(P,"/",1)+1
 E  S $P(P,"/",2)=$P(P,"/",2)+1
 S $P(ARR,"^",4)=P ; User Type
 S P=$P(ARR,"^",5)
 I +$P(AN,"^",9)=1 S $P(P,"/",1)=$P(P,"/",1)+1
 E  S $P(P,"/",2)=$P(P,"/",2)+1
 S $P(ARR,"^",5)=P ; Remotes
 S P=$P(AN,"^",4) S:P="" P="unknown"
 S ARR(P)=$G(ARR(P))+1
 S (P,X)="" F  S P=$O(ARR(P)) Q:P=""  S X=X_"/"_P_"="_ARR(P)
 S $P(ARR,"^",6)=X ; Modalities
 Q
 ;
GPACHX() ; Get Package File Install History of Imaging
 N I,LCNT,MSG,PKG,PKT,PV
 S LCNT=0
 F PKG="IMAGING","MAGJ RADIOLOGY" D
 . N J,K,L,PKNAM,VERS
 . S J=$$FIND1^DIC(9.4,",","MX",PKG) Q:'J
 . I PKG="MAGJ RADIOLOGY" D  Q
 . . N TAR
 . . D LIST^DIC(9.49,","_J_",","@;.01;2;3","","","","","","","","TAR","MSG")
 . . Q:$D(MSG("DIERR"))
 . . S L=0 F  S L=$O(TAR("DILIST","ID",L)) Q:'L  D
 . . . S LCNT=LCNT+1
 . . . S PV(LCNT)=PKG_"^P"_$P(TAR("DILIST","ID",L,".01"),"^",1)
 . . . S PV(LCNT)=PV(LCNT)_"^"_$P(TAR("DILIST","ID",L,"2"),"^",1)
 . . . S PV(LCNT)=PV(LCNT)_"^"_$P(TAR("DILIST","ID",L,"3"),"^",1) Q
 . . Q
 . K PKT D LIST^DIC(9.49,","_J_",",.01,"","*","","","B","","","PKT","MSG")
 . S VERS="" F  S VERS=$O(PKT("DILIST",2,VERS)) Q:VERS=""  S K=PKT("DILIST",2,VERS) D
 . . K MSG
 . . D LIST^DIC(9.4901,","_K_","_J_",","@;.01;.02;.03","","","","","","","","TAR","MSG")
 . . Q:$D(MSG("DIERR"))
 . . S L=0 F  S L=$O(TAR("DILIST","ID",L)) Q:'L  D
 . . . S LCNT=LCNT+1
 . . . S PV(LCNT)=PKG_"^"_VERS_"P"_$P(TAR("DILIST","ID",L,".01"),"^",1)
 . . . S PV(LCNT)=PV(LCNT)_"^"_$P(TAR("DILIST","ID",L,".02"),"^",1)
 . . . S PV(LCNT)=PV(LCNT)_"^"_$P(TAR("DILIST","ID",L,".03"),"^",1) Q
 . . Q
 . Q
 S I="" F  S I=$O(PV(I)) Q:I=""  D
 . D MSG^MAGQE2("IMAGING PACKAGE INSTALLATION HX: "_I_"^"_PV(I)) Q
 Q
 ;
ADCNT(SDATE,EDATE,INST,AI) ;
 ; SAC = Scanned, Administrative Closure SMC = Scanned, Manual Closure UMC = Unscanned, Manual Closure
 N ARRY,D0,D1,DATE,DATES,DOC,HLOC,SAC,SCR,SMC,STAT,STATA,STATC,TITLE,TIUDA,UMC
 S STATA="^",D0=0 F  S D0=$O(^TIU(8925.6,"B","AMENDED",D0)) Q:'D0  D
 . S STATA=STATA_D0_"^" Q
 S STATC="^",D0=0 F  S D0=$O(^TIU(8925.6,"B","COMPLETED",D0)) Q:'D0  D
 . S STATC=STATC_D0_"^" Q
 S DOC="ADVANCE DIRECTIVE"
 S D0=0 F  S D0=$O(^TIU(8925.1,"B",DOC,D0)) Q:'D0  D
 . Q:$P($G(^TIU(8925.1,D0,0)),"^",4)'="DC"
 . S D1=0 F  S D1=$O(^TIU(8925.1,D0,10,"B",D1)) Q:'D1  D
 . . S TITLE=$P($G(^TIU(8925.1,+D1,0)),"^",1) S:TITLE="" TITLE=" "
 . . S ARRY(TITLE,D1)="" Q
 . Q
 S SCR="",(SAC,SMC,UMC)=0
 S TITLE="" F  S TITLE=$O(ARRY(TITLE)) Q:TITLE=""  D
 . S D1="" F  S D1=$O(ARRY(TITLE,D1)) Q:D1=""  D
 . . S TIUDA=0 F  S TIUDA=$O(^TIU(8925,"B",D1,TIUDA)) Q:'TIUDA  D
 . . . N MSG,TARGET
 . . . S SCR="" ; INSTITUTION screen for consolidation sites only.
 . . . D GETS^DIQ(8925,TIUDA,".05;1205;1501;1507;1603;1606;1613","IE","TARGET","MSG")
 . . . Q:$D(MSG("DIERR"))
 . . . I $$CONSOLID^MAGQE5() D  Q:SCR
 . . . . S HLOC=TARGET(8925,TIUDA_",",1205,"I") ; INSTITUTION screen - dependent upon TIU*1*113
 . . . . I HLOC="" S SCR=1
 . . . . E  I (($P($G(^SC(HLOC,0)),"^",4)'=INST)&(AI'[("^"_$P($G(^SC(HLOC,0)),"^",4)_"^")))  S SCR=1
 . . . . Q
 . . . S STAT="^"_TARGET(8925,TIUDA_",",.05,"I")_"^"
 . . . Q:STATA_STATC'[STAT
 . . . I TARGET(8925,TIUDA_",",1613,"I")="S" D  Q
 . . . . Q:TARGET(8925,TIUDA_",",1606,"I")<SDATE
 . . . . Q:$P(TARGET(8925,TIUDA_",",1606,"I"),".")>EDATE
 . . . . S SAC=SAC+1,SAC(TITLE)=$G(SAC(TITLE))+1 Q
 . . . I STATC[STAT D  Q
 . . . . S DATE=TARGET(8925,TIUDA_",",1507,"I")
 . . . . S DATE=$S(DATE?1.N:DATE,1:+TARGET(8925,TIUDA_",",1501,"I"))
 . . . . Q:DATE<SDATE
 . . . . Q:$P(DATE,".")>EDATE
 . . . . I $$SCAN(TIUDA) S SMC=SMC+1,SMC(TITLE)=$G(SMC(TITLE))+1 Q
 . . . . S UMC=UMC+1,UMC(TITLE)=$G(UMC(TITLE))+1 Q
 . . . I STATA[STAT D  Q
 . . . . Q:TARGET(8925,TIUDA_",",1603,"I")<SDATE
 . . . . Q:$P(TARGET(8925,TIUDA_",",1603,"I"),".")>EDATE
 . . . . I $$SCAN(TIUDA) S SMC=SMC+1,SMC(TITLE)=$G(SMC(TITLE))+1 Q
 . . . . S UMC=UMC+1,UMC(TITLE)=$G(UMC(TITLE))+1 Q
 . . . Q
 . . Q
 . Q
 D MSG^MAGQE2(DOC_" SCANNED ADMINISTRATIVE CLOSURE: "_SAC)
 S TITLE="" F  S TITLE=$O(SAC(TITLE)) Q:TITLE=""  D
 . D MSG^MAGQE2(DOC_" - SAC - "_TITLE_": "_SAC(TITLE)) Q
 D MSG^MAGQE2(DOC_" UNSCANNED MANUAL CLOSURE: "_UMC)
 S TITLE="" F  S TITLE=$O(UMC(TITLE)) Q:TITLE=""  D
 . D MSG^MAGQE2(DOC_" - UMC - "_TITLE_": "_UMC(TITLE)) Q
 D MSG^MAGQE2(DOC_" SCANNED MANUAL CLOSURE: "_SMC)
 S TITLE="" F  S TITLE=$O(SMC(TITLE)) Q:TITLE=""  D
 . D MSG^MAGQE2(DOC_" - SMC - "_TITLE_": "_SMC(TITLE)) Q
 Q
 ;
SCAN(IEN) ;
 N LINK
 S LINK=$O(^TIU(8925.91,"B",IEN,"")) Q:'LINK 0
 Q $S($P($G(^TIU(8925.1,LINK,0)),"^",2)?1.N:0,1:1)
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMAGQE3   10016     printed  Sep 23, 2025@19:44:20                                                                                                                                                                                                     Page 2
MAGQE3    ;WOIFO/RMP - Support for MAG Enterprise ; 25 Jun 2012 4:20 PM
 +1       ;;3.0;IMAGING;**27,29,30,20,46,135**;Mar 19, 2002;Build 5238;Jul 17, 2013
 +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      ;
COUNT(SDATE,EDATE,INST,AI,IQ,DUP,TIOP,TGPP,TIEDP,GRPPRNT,IMAGE,DELETED) ;
 +1        NEW CLIN,CONSENTS,CPTR,D0,DAT,DICOM,DOC,DOCGRP,DOCUMENT,ED0,I,IMPORT
 +2        NEW NAME,OTHER,PCE,PROC,SD0,TRK,ZNODE,CNODE
 +3        SET SD0=$$SDATE^MAGQE1(SDATE,"F")
 +4        SET ED0=$$SDATE^MAGQE1(EDATE,"R")
 +5        SET D0=""
           FOR 
               SET D0=$ORDER(^MAG(2005.02,"B","DOCUMENT",D0))
               if D0=""
                   QUIT 
               Begin DoDot:1
 +6                if $GET(^MAG(2005.02,D0,4))["TIF"
                       SET DOC(D0)=""
 +7                QUIT 
               End DoDot:1
 +8        SET (CONSENTS,GRPPRNT,IMAGE,DELETED,DOCGRP,DOCUMENT,DUP,TIOP,TGPP,TIEDP)=0
 +9        SET IQ="0^0^0"
 +10       SET CPTR=$ORDER(^MAG(2005.83,"B","CONSENT",""))
 +11       SET D0=SD0
           FOR 
               SET D0=$ORDER(^MAG(2005,D0))
               if 'D0
                   QUIT 
               if D0'<ED0
                   QUIT 
               Begin DoDot:1
 +12               SET CNODE=$GET(^MAG(2005,D0,100))
 +13               SET PCE=$PIECE(CNODE,"^",3)
                   if ((PCE'=INST)&(AI'[("^"_PCE_"^")))
                       QUIT 
 +14               SET ZNODE=$GET(^MAG(2005,D0,0))
 +15      ;TOTAL FILE WIDE by Place 
                   IF $PIECE(ZNODE,"^",2)=""
                       SET TGPP=TGPP+1
 +16              IF '$TEST
                       Begin DoDot:2
 +17                       SET TIOP=TIOP+1
 +18                       if ($PIECE(ZNODE,U,11)="")
                               SET $PIECE(IQ,U,1)=$PIECE(IQ,U,1)+1
 +19                       if ($PIECE(ZNODE,U,11)="0")
                               SET $PIECE(IQ,U,2)=$PIECE(IQ,U,2)+1
 +20                       if ($PIECE(ZNODE,U,11)="1")
                               SET $PIECE(IQ,U,3)=$PIECE(IQ,U,3)+1
 +21                       QUIT 
                       End DoDot:2
 +22               SET X=$PIECE($GET(^MAG(2005,D0,2)),"^",1)\1
                   if 'X
                       QUIT 
                   if X<SDATE
                       QUIT 
                   if X>EDATE
                       QUIT 
 +23               if $PIECE(ZNODE,U,12)
                       SET DUP=DUP+1
 +24               SET PCE=$PIECE(CNODE,"^",5)
                   SET TRK=""
                   IF PCE'=""
                       Begin DoDot:2
 +25                       SET TRK=$PIECE($GET(^MAG(2006.04,$PIECE(CNODE,U,4),0)),U)
 +26                       SET TRK=$SELECT(TRK'="":TRK,1:"?")
                           QUIT 
                       End DoDot:2
 +27               IF $PIECE(ZNODE,"^",2)=""
                       Begin DoDot:2
 +28                       SET GRPPRNT=GRPPRNT+1
 +29                       SET PCE=$PIECE(ZNODE,"^",8)
                           if PCE=""
                               SET PCE="NIL"
 +30                       if $DATA(^MAG(2005,D0,"PACS"))
                               SET DICOM(PCE,0)=$GET(DICOM(PCE,0))+1
 +31                       SET PCE=$PIECE(ZNODE,"^",6)
                           IF PCE
                               IF $DATA(DOC(PCE))
                                   SET DOCGRP=DOCGRP+1
 +32                       if TRK'=""
                               SET IMPORT(TRK,0)=$GET(IMPORT(TRK,0))+1
 +33                       QUIT 
                       End DoDot:2
                       QUIT 
 +34               if TRK'=""
                       SET IMPORT(TRK)=$GET(IMPORT(TRK))+1
 +35               IF CPTR
                       IF $PIECE($GET(^MAG(2005,D0,40)),"^",3)=CPTR
                           SET CONSENTS=CONSENTS+1
 +36              IF '$TEST
                       SET PCE=$$UPPER^MAGQE4($PIECE($GET(^MAG(2005,D0,2)),"^",4))
                       if PCE["CONSENT"
                           SET OTHER(PCE)=$GET(OTHER(PCE))+1
 +37               SET IMAGE=IMAGE+1
 +38               SET PCE=$PIECE(ZNODE,"^",6)
                   IF PCE
                       IF $DATA(DOC(PCE))
                           SET DOCUMENT=DOCUMENT+1
 +39               SET PCE=$PIECE(ZNODE,"^",7)
                   if PCE=""
                       SET PCE="NIL"
 +40               SET ^TMP($JOB,"MAGQ","ACQPAT",PCE)=""
 +41               SET ^TMP($JOB,"MAGQ","ALLPAT",PCE)=""
 +42               SET PCE=$PIECE(ZNODE,"^",8)
                   if PCE=""
                       SET PCE="NIL"
 +43               IF $DATA(^MAG(2005,D0,"PACS"))
                       SET DICOM(PCE)=$GET(DICOM(PCE))+1
 +44              IF '$TEST
                       SET CLIN(PCE)=$GET(CLIN(PCE))+1
 +45               QUIT 
               End DoDot:1
 +46       SET NAME=""
           FOR 
               SET NAME=$ORDER(DICOM(NAME))
               if NAME=""
                   QUIT 
               Begin DoDot:1
 +47               if $EXTRACT(NAME,1,4)="RAD "
                       Begin DoDot:2
 +48                       if '$DATA(DICOM(NAME,0))
                               QUIT 
 +49                       SET I=$EXTRACT(NAME,5,$LENGTH(NAME))
                           if I=""
                               QUIT 
 +50                       if $DATA(DICOM(I,0))
                               QUIT 
 +51                       SET DICOM(I,0)=DICOM(NAME,0)
                           KILL DICOM(NAME,0)
                           QUIT 
                       End DoDot:2
 +52               SET PROC=$ORDER(^RAMIS(73.1,"B",NAME,""))
                   if 'PROC
                       QUIT 
 +53               SET $PIECE(DICOM(NAME),"^",2)=$PIECE($GET(^RAMIS(73.1,PROC,0)),"^",2)
                   QUIT 
               End DoDot:1
 +54       SET D0=SD0
           FOR 
               SET D0=$ORDER(^MAG(2005.1,D0))
               if 'D0
                   QUIT 
               if D0'<ED0
                   QUIT 
               Begin DoDot:1
 +55               SET PCE=$PIECE($GET(^MAG(2005.1,D0,100)),"^",3)
                   if ((PCE'=INST)&(AI'[("^"_PCE_"^")))
                       QUIT 
 +56               SET TIEDP=TIEDP+1
 +57               SET X=$PIECE($GET(^MAG(2005.1,D0,2)),"^",1)\1
                   if 'X
                       QUIT 
                   if X<SDATE
                       QUIT 
                   if X>EDATE
                       QUIT 
 +58               SET DELETED=DELETED+1
                   QUIT 
               End DoDot:1
 +59       SET I=""
           FOR 
               SET I=$ORDER(DICOM(I))
               if I=""
                   QUIT 
               Begin DoDot:1
 +60               SET X=" DICOM CAPTURE: "_I_"^"_$GET(DICOM(I))
 +61               if $GET(DICOM(I,0))
                       SET $PIECE(X,"^",4)=DICOM(I,0)
 +62               DO MSG^MAGQE2(X)
                   QUIT 
               End DoDot:1
 +63       SET I=""
           FOR 
               SET I=$ORDER(IMPORT(I))
               if I=""
                   QUIT 
               Begin DoDot:1
 +64               SET X=" IMPORT API: "_I_"^"_IMPORT(I)
 +65               if $GET(IMPORT(I,0))
                       SET X=X_"^"_IMPORT(I,0)
 +66               DO MSG^MAGQE2(X)
                   QUIT 
               End DoDot:1
 +67       DO LLOAD^MAGQE5(.CLIN,"CLIN CAPTURE:")
 +68       DO MSG^MAGQE2("CONSENT FORMS: "_CONSENTS)
 +69       DO LLOAD^MAGQE5(.OTHER,"OTHER CONSENTS:")
 +70       DO MSG^MAGQE2("Document Images (TIF): "_DOCUMENT)
 +71       DO MSG^MAGQE2("Document Groups (TIF): "_DOCGRP)
 +72       QUIT 
 +73      ;
ACT(D0,DIS,CAP,VD,VI,RES) ;
 +1        NEW ACT,AN,AN2,D1,IMG
 +2        SET D1=0
           FOR 
               SET D1=$ORDER(^MAG(2006.82,D0,"ACT",D1))
               if 'D1
                   QUIT 
               Begin DoDot:1
 +3                SET AN=^MAG(2006.82,D0,"ACT",D1,0)
 +4                SET ACT="^"_$PIECE(AN,"^",1)_"^"
                   SET AN2=+$PIECE(AN,"^",2)
 +5                if "^LOGON^LOGOFF^PAT^"[ACT
                       QUIT 
 +6                IF "^SC_BAD^SCR_OK^"[ACT
                       Begin DoDot:2
 +7                        SET AN=$PIECE(AN,"^",10,14)
                           if AN=""
                               QUIT 
 +8                        SET RES(ACT,AN)=$GET(RES(ACT,AN))+1
                           QUIT 
                       End DoDot:2
                       QUIT 
 +9                IF "^CAP^IMG^"[ACT
                       Begin DoDot:2
 +10                       SET IMG=+$PIECE(AN,"^",3)
                           if 'IMG
                               QUIT 
                           if $PIECE($GET(^MAG(2005,IMG,0)),"^",2)=""
                               QUIT 
 +11                       IF ACT="^CAP^"
                               SET CAP=CAP+1
                               QUIT 
 +12                       SET DIS=DIS+1
                           SET ^TMP($JOB,"MAGQ","DISPAT",AN2)=""
                           SET ^TMP($JOB,"MAGQ","ALLPAT",AN2)=""
 +13                       QUIT 
                       End DoDot:2
                       QUIT 
 +14               IF "^VR-VW^"[ACT
                       DO VRAD(.VD,AN)
                       SET ^TMP($JOB,"MAGQ","DISPAT",AN2)=""
                       SET ^TMP($JOB,"MAGQ","ALLPAT",AN2)=""
                       QUIT 
 +15               IF "^VR-INT^"[ACT
                       DO VRAD(.VI,AN)
                       SET ^TMP($JOB,"MAGQ","DISPAT",AN2)=""
                       SET ^TMP($JOB,"MAGQ","ALLPAT",AN2)=""
                       QUIT 
 +16               QUIT 
               End DoDot:1
 +17       QUIT 
 +18      ;
VRAD(ARR,AN) ;
 +1       ;ARR=STUDIES^IMAGES^PATIENTS^User Type(Rad/Non-Rad)^Remotes(Remote/Local)^Modalities
 +2        NEW P,X
 +3       ; Studies
           SET $PIECE(ARR,"^",1)=$PIECE($GET(ARR),"^",1)+1
 +4       ; Images
           SET $PIECE(ARR,"^",2)=$PIECE($GET(ARR),"^",2)+$PIECE(AN,"^",6)
 +5       ; Patients
           SET $PIECE(ARR,"^",3)=$PIECE($GET(ARR),"^",3)+$PIECE(AN,"^",7)
 +6        SET P=$PIECE(ARR,"^",4)
 +7        IF +$PIECE(AN,"^",8)=1
               SET $PIECE(P,"/",1)=$PIECE(P,"/",1)+1
 +8       IF '$TEST
               SET $PIECE(P,"/",2)=$PIECE(P,"/",2)+1
 +9       ; User Type
           SET $PIECE(ARR,"^",4)=P
 +10       SET P=$PIECE(ARR,"^",5)
 +11       IF +$PIECE(AN,"^",9)=1
               SET $PIECE(P,"/",1)=$PIECE(P,"/",1)+1
 +12      IF '$TEST
               SET $PIECE(P,"/",2)=$PIECE(P,"/",2)+1
 +13      ; Remotes
           SET $PIECE(ARR,"^",5)=P
 +14       SET P=$PIECE(AN,"^",4)
           if P=""
               SET P="unknown"
 +15       SET ARR(P)=$GET(ARR(P))+1
 +16       SET (P,X)=""
           FOR 
               SET P=$ORDER(ARR(P))
               if P=""
                   QUIT 
               SET X=X_"/"_P_"="_ARR(P)
 +17      ; Modalities
           SET $PIECE(ARR,"^",6)=X
 +18       QUIT 
 +19      ;
GPACHX()  ; Get Package File Install History of Imaging
 +1        NEW I,LCNT,MSG,PKG,PKT,PV
 +2        SET LCNT=0
 +3        FOR PKG="IMAGING","MAGJ RADIOLOGY"
               Begin DoDot:1
 +4                NEW J,K,L,PKNAM,VERS
 +5                SET J=$$FIND1^DIC(9.4,",","MX",PKG)
                   if 'J
                       QUIT 
 +6                IF PKG="MAGJ RADIOLOGY"
                       Begin DoDot:2
 +7                        NEW TAR
 +8                        DO LIST^DIC(9.49,","_J_",","@;.01;2;3","","","","","","","","TAR","MSG")
 +9                        if $DATA(MSG("DIERR"))
                               QUIT 
 +10                       SET L=0
                           FOR 
                               SET L=$ORDER(TAR("DILIST","ID",L))
                               if 'L
                                   QUIT 
                               Begin DoDot:3
 +11                               SET LCNT=LCNT+1
 +12                               SET PV(LCNT)=PKG_"^P"_$PIECE(TAR("DILIST","ID",L,".01"),"^",1)
 +13                               SET PV(LCNT)=PV(LCNT)_"^"_$PIECE(TAR("DILIST","ID",L,"2"),"^",1)
 +14                               SET PV(LCNT)=PV(LCNT)_"^"_$PIECE(TAR("DILIST","ID",L,"3"),"^",1)
                                   QUIT 
                               End DoDot:3
 +15                       QUIT 
                       End DoDot:2
                       QUIT 
 +16               KILL PKT
                   DO LIST^DIC(9.49,","_J_",",.01,"","*","","","B","","","PKT","MSG")
 +17               SET VERS=""
                   FOR 
                       SET VERS=$ORDER(PKT("DILIST",2,VERS))
                       if VERS=""
                           QUIT 
                       SET K=PKT("DILIST",2,VERS)
                       Begin DoDot:2
 +18                       KILL MSG
 +19                       DO LIST^DIC(9.4901,","_K_","_J_",","@;.01;.02;.03","","","","","","","","TAR","MSG")
 +20                       if $DATA(MSG("DIERR"))
                               QUIT 
 +21                       SET L=0
                           FOR 
                               SET L=$ORDER(TAR("DILIST","ID",L))
                               if 'L
                                   QUIT 
                               Begin DoDot:3
 +22                               SET LCNT=LCNT+1
 +23                               SET PV(LCNT)=PKG_"^"_VERS_"P"_$PIECE(TAR("DILIST","ID",L,".01"),"^",1)
 +24                               SET PV(LCNT)=PV(LCNT)_"^"_$PIECE(TAR("DILIST","ID",L,".02"),"^",1)
 +25                               SET PV(LCNT)=PV(LCNT)_"^"_$PIECE(TAR("DILIST","ID",L,".03"),"^",1)
                                   QUIT 
                               End DoDot:3
 +26                       QUIT 
                       End DoDot:2
 +27               QUIT 
               End DoDot:1
 +28       SET I=""
           FOR 
               SET I=$ORDER(PV(I))
               if I=""
                   QUIT 
               Begin DoDot:1
 +29               DO MSG^MAGQE2("IMAGING PACKAGE INSTALLATION HX: "_I_"^"_PV(I))
                   QUIT 
               End DoDot:1
 +30       QUIT 
 +31      ;
ADCNT(SDATE,EDATE,INST,AI) ;
 +1       ; SAC = Scanned, Administrative Closure SMC = Scanned, Manual Closure UMC = Unscanned, Manual Closure
 +2        NEW ARRY,D0,D1,DATE,DATES,DOC,HLOC,SAC,SCR,SMC,STAT,STATA,STATC,TITLE,TIUDA,UMC
 +3        SET STATA="^"
           SET D0=0
           FOR 
               SET D0=$ORDER(^TIU(8925.6,"B","AMENDED",D0))
               if 'D0
                   QUIT 
               Begin DoDot:1
 +4                SET STATA=STATA_D0_"^"
                   QUIT 
               End DoDot:1
 +5        SET STATC="^"
           SET D0=0
           FOR 
               SET D0=$ORDER(^TIU(8925.6,"B","COMPLETED",D0))
               if 'D0
                   QUIT 
               Begin DoDot:1
 +6                SET STATC=STATC_D0_"^"
                   QUIT 
               End DoDot:1
 +7        SET DOC="ADVANCE DIRECTIVE"
 +8        SET D0=0
           FOR 
               SET D0=$ORDER(^TIU(8925.1,"B",DOC,D0))
               if 'D0
                   QUIT 
               Begin DoDot:1
 +9                if $PIECE($GET(^TIU(8925.1,D0,0)),"^",4)'="DC"
                       QUIT 
 +10               SET D1=0
                   FOR 
                       SET D1=$ORDER(^TIU(8925.1,D0,10,"B",D1))
                       if 'D1
                           QUIT 
                       Begin DoDot:2
 +11                       SET TITLE=$PIECE($GET(^TIU(8925.1,+D1,0)),"^",1)
                           if TITLE=""
                               SET TITLE=" "
 +12                       SET ARRY(TITLE,D1)=""
                           QUIT 
                       End DoDot:2
 +13               QUIT 
               End DoDot:1
 +14       SET SCR=""
           SET (SAC,SMC,UMC)=0
 +15       SET TITLE=""
           FOR 
               SET TITLE=$ORDER(ARRY(TITLE))
               if TITLE=""
                   QUIT 
               Begin DoDot:1
 +16               SET D1=""
                   FOR 
                       SET D1=$ORDER(ARRY(TITLE,D1))
                       if D1=""
                           QUIT 
                       Begin DoDot:2
 +17                       SET TIUDA=0
                           FOR 
                               SET TIUDA=$ORDER(^TIU(8925,"B",D1,TIUDA))
                               if 'TIUDA
                                   QUIT 
                               Begin DoDot:3
 +18                               NEW MSG,TARGET
 +19      ; INSTITUTION screen for consolidation sites only.
                                   SET SCR=""
 +20                               DO GETS^DIQ(8925,TIUDA,".05;1205;1501;1507;1603;1606;1613","IE","TARGET","MSG")
 +21                               if $DATA(MSG("DIERR"))
                                       QUIT 
 +22                               IF $$CONSOLID^MAGQE5()
                                       Begin DoDot:4
 +23      ; INSTITUTION screen - dependent upon TIU*1*113
                                           SET HLOC=TARGET(8925,TIUDA_",",1205,"I")
 +24                                       IF HLOC=""
                                               SET SCR=1
 +25                                      IF '$TEST
                                               IF (($PIECE($GET(^SC(HLOC,0)),"^",4)'=INST)&(AI'[("^"_$PIECE($GET(^SC(HLOC,0)),"^",4)_"^")))
                                                   SET SCR=1
 +26                                       QUIT 
                                       End DoDot:4
                                       if SCR
                                           QUIT 
 +27                               SET STAT="^"_TARGET(8925,TIUDA_",",.05,"I")_"^"
 +28                               if STATA_STATC'[STAT
                                       QUIT 
 +29                               IF TARGET(8925,TIUDA_",",1613,"I")="S"
                                       Begin DoDot:4
 +30                                       if TARGET(8925,TIUDA_",",1606,"I")<SDATE
                                               QUIT 
 +31                                       if $PIECE(TARGET(8925,TIUDA_",",1606,"I"),".")>EDATE
                                               QUIT 
 +32                                       SET SAC=SAC+1
                                           SET SAC(TITLE)=$GET(SAC(TITLE))+1
                                           QUIT 
                                       End DoDot:4
                                       QUIT 
 +33                               IF STATC[STAT
                                       Begin DoDot:4
 +34                                       SET DATE=TARGET(8925,TIUDA_",",1507,"I")
 +35                                       SET DATE=$SELECT(DATE?1.N:DATE,1:+TARGET(8925,TIUDA_",",1501,"I"))
 +36                                       if DATE<SDATE
                                               QUIT 
 +37                                       if $PIECE(DATE,".")>EDATE
                                               QUIT 
 +38                                       IF $$SCAN(TIUDA)
                                               SET SMC=SMC+1
                                               SET SMC(TITLE)=$GET(SMC(TITLE))+1
                                               QUIT 
 +39                                       SET UMC=UMC+1
                                           SET UMC(TITLE)=$GET(UMC(TITLE))+1
                                           QUIT 
                                       End DoDot:4
                                       QUIT 
 +40                               IF STATA[STAT
                                       Begin DoDot:4
 +41                                       if TARGET(8925,TIUDA_",",1603,"I")<SDATE
                                               QUIT 
 +42                                       if $PIECE(TARGET(8925,TIUDA_",",1603,"I"),".")>EDATE
                                               QUIT 
 +43                                       IF $$SCAN(TIUDA)
                                               SET SMC=SMC+1
                                               SET SMC(TITLE)=$GET(SMC(TITLE))+1
                                               QUIT 
 +44                                       SET UMC=UMC+1
                                           SET UMC(TITLE)=$GET(UMC(TITLE))+1
                                           QUIT 
                                       End DoDot:4
                                       QUIT 
 +45                               QUIT 
                               End DoDot:3
 +46                       QUIT 
                       End DoDot:2
 +47               QUIT 
               End DoDot:1
 +48       DO MSG^MAGQE2(DOC_" SCANNED ADMINISTRATIVE CLOSURE: "_SAC)
 +49       SET TITLE=""
           FOR 
               SET TITLE=$ORDER(SAC(TITLE))
               if TITLE=""
                   QUIT 
               Begin DoDot:1
 +50               DO MSG^MAGQE2(DOC_" - SAC - "_TITLE_": "_SAC(TITLE))
                   QUIT 
               End DoDot:1
 +51       DO MSG^MAGQE2(DOC_" UNSCANNED MANUAL CLOSURE: "_UMC)
 +52       SET TITLE=""
           FOR 
               SET TITLE=$ORDER(UMC(TITLE))
               if TITLE=""
                   QUIT 
               Begin DoDot:1
 +53               DO MSG^MAGQE2(DOC_" - UMC - "_TITLE_": "_UMC(TITLE))
                   QUIT 
               End DoDot:1
 +54       DO MSG^MAGQE2(DOC_" SCANNED MANUAL CLOSURE: "_SMC)
 +55       SET TITLE=""
           FOR 
               SET TITLE=$ORDER(SMC(TITLE))
               if TITLE=""
                   QUIT 
               Begin DoDot:1
 +56               DO MSG^MAGQE2(DOC_" - SMC - "_TITLE_": "_SMC(TITLE))
                   QUIT 
               End DoDot:1
 +57       QUIT 
 +58      ;
SCAN(IEN) ;
 +1        NEW LINK
 +2        SET LINK=$ORDER(^TIU(8925.91,"B",IEN,""))
           if 'LINK
               QUIT 0
 +3        QUIT $SELECT($PIECE($GET(^TIU(8925.1,LINK,0)),"^",2)?1.N:0,1:1)
 +4       ;