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

TIUFWRAP1.m

Go to the documentation of this file.
  1. TIUFWRAP1 ;SPFO/AJB - Clean File #8927 ;04/06/22 12:50
  1. ;;1.0;TEXT INTEGRATION UTILITIES;**338,254**;Jun 20, 1997;Build 9
  1. ;
  1. Q
  1. ;
  1. BACKUP(BU,DISPLAY) ; saves a copy of #8927 to ^XTMP
  1. N PD S BU=1,DT=$G(DT,$$DT^XLFDT),PD=$$FMADD^XLFDT(DT,30) ; purge date=t+30
  1. I '$D(^XTMP("TIUFWRAP")) D Q
  1. . W !!,"Saving a copy of the TIU TEMPLATE file..."
  1. . S ^XTMP("TIUFWRAP",0)=$$FMADD^XLFDT(DT,30)_U_DT_U_"File #8927 Backup"
  1. . M ^XTMP("TIUFWRAP",8927)=^TIU(8927)
  1. . W "done.",! D FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. S ^XTMP("TIUFWRAP",0)=PD_U_DT_U_"File #8927 Backup" ; update 0 node only
  1. Q:'DISPLAY
  1. W !!,"File #8927 backup already exists. Updating purge date for saved data."
  1. W ! D FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. Q
  1. ;
  1. RESTORE ; restores data from ^XTMP to #8927
  1. I '$D(^XTMP("TIUFWRAP")) D Q
  1. . W !!,"Backup global NOT found!",!!,"Use the BACKUP option to save a copy of File #8927",!
  1. . D FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. W ! I '+$$FMR^TIUFWRAP2("YA","Are you sure you wish to restore TIU TEMPLATE from the backup? ","NO") Q
  1. W !!,"Restoring the TIU TEMPLATE file..." K ^TIU(8927),@OUTPUT M ^TIU(8927)=^XTMP("TIUFWRAP",8927) W "done.",!
  1. D FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. Q
  1. ;
  1. GATHER(UPDATE,LOD) ; analyze File #8927 - main loop starts at root level
  1. N IEN,INDEX S UPDATE=+$G(UPDATE,0)
  1. S INDEX="" F S INDEX=$O(^TIU(8927,"AROOT",INDEX),-1) Q:INDEX="" S IEN=0 F S IEN=$O(^TIU(8927,"AROOT",INDEX,IEN)) Q:'+IEN D
  1. . D EE^TIUFWRAP(IEN,0,"",LOD) ; evaluate the entry ITEMS & BOILERPLATE TEXT
  1. Q
  1. ;
  1. UPDATE(BU) ;
  1. I '$D(^XTMP("TIUFWRAP")) D Q
  1. . W !!,"Backup global NOT found!",!!,"Use the BACKUP option to save a copy of File #8927",!
  1. . D FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. I +BU D Q ; backup present, update the file
  1. . N LOD S LOD=$$LOD^TIUFWRAP2(.LOD) Q:LOD=U!(LOD="Q") ; set level of detail
  1. . K @OUTPUT W @IOF,"Updating File #8927..."
  1. . D GATHER^TIUFWRAP1(1,LOD) D:LOD>1 GATHER^TIUFWRAP1(1,1) ; if level of detail includes wrapping, do basic clean after (for wrapped fields/objects)
  1. . W "done." W ! I $$FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. Q
  1. ;
  1. EMAIL ; mail the results
  1. N IEN,INDEX,XMDUN,XMDUZ,XMMG,XMSUB,XMTEXT,XMY,XMZ
  1. S INDEX="" F S INDEX=$O(@OUTPUT@(INDEX)) Q:INDEX="" D
  1. . S XMDUZ=.5,XMTEXT="XMTEXT(",XMY(+DUZ)=""
  1. . N SUB S (SUB,XMSUB)="File #8927 ["_INDEX_"]" ; subject
  1. . S IEN=0 F S IEN=$O(@OUTPUT@(INDEX,IEN)) Q:'+IEN D
  1. . . S XMTEXT(IEN)=@OUTPUT@(INDEX,IEN)
  1. . D ^XMD
  1. . W:$D(XMMG) !!,XMMG ; error message
  1. . W:'$D(XMMG) !!,"Message Subject: ",SUB
  1. . W:'$D(XMMG) !,"Message ID : ",XMZ
  1. W ! D FMR^TIUFWRAP2("EA","Press <Enter> to continue.")
  1. Q
  1. ;
  1. PREPOUT(DATA,OUTPUT,TYPE) ; prepare output
  1. N LOC S LOC=$NA(^TMP($J,"OUTPUT",TYPE))
  1. N TOTAL S TOTAL=0
  1. N IEN S IEN=0 F S IEN=$O(@DATA@(IEN)) Q:'+IEN D
  1. . N NODE0,POWNER S NODE0=$G(^TIU(8927,IEN,0))
  1. . S TOTAL=TOTAL+1,@LOC@(TOTAL)="IEN: "_IEN
  1. . S POWNER=$P(NODE0,U,6) I +POWNER S POWNER=$$GET1^DIQ(200,POWNER,.01),POWNER=$S(POWNER="":"<unknown>",1:POWNER) ; imported entries may not have an entry in File #200
  1. . I POWNER'="" S TOTAL=TOTAL+1,@LOC@(TOTAL)="Personal Owner: "_POWNER ; display personal owner
  1. . ; display the path
  1. . N LEN,PIE S LEN=$L(@DATA@(IEN,"PATH"),U) F PIE=1:1:LEN D
  1. . . N LN S LN=$$SETSTR^VALM1(" ","",(PIE-1)*4,1) ; pad spaces before data
  1. . . S LN=$S(PIE'=LEN:LN_"<",1:LN_" - ")
  1. . . S TOTAL=TOTAL+1,@LOC@(TOTAL)=LN_$P(@DATA@(IEN,"PATH"),U,PIE)_$S(PIE'=LEN:">",1:"") ; set the entry for display
  1. . . I PIE=LEN,$D(@DATA@(IEN,"NODE")) D ; display the lines (if any) for each entry
  1. . . . N LEN,PIE S LEN=$L(@DATA@(IEN,"NODE"),U)
  1. . . . F PIE=1:1:LEN S @LOC@(TOTAL)=@LOC@(TOTAL)_$S(LEN=1:" ["_$P(@DATA@(IEN,"NODE"),U)_"]",PIE=1:" ["_$P(@DATA@(IEN,"NODE"),U,PIE)_",",PIE<LEN:$P(@DATA@(IEN,"NODE"),U,PIE)_",",1:$P(@DATA@(IEN,"NODE"),U,PIE)_"]")
  1. . K @DATA@(IEN) ; remove entries as we go
  1. . I +$O(@DATA@(IEN)) S TOTAL=TOTAL+1,@LOC@(TOTAL)="" ; blank line
  1. ;K DATA ; remove remaining data
  1. Q
  1. ;
  1. PRINT ; print the results to a device
  1. N END,X S (END,X)="" F S X=$O(@OUTPUT@(X)) Q:X="" S @OUTPUT@(X,.1)=X,$P(@OUTPUT@(X,.2),"-",$L(X))="-"
  1. S X="" F S X=$O(@OUTPUT@(X)) Q:X="" S @OUTPUT@(X,($O(@OUTPUT@(X,""),-1)+1))="" ; add a blank line between each group
  1. N ZTSAVE S ZTSAVE("OUTPUT")="" W !,IOCUON
  1. D EN^XUTMDEVQ("PRINT^TIUFWRAP2(OUTPUT)","File #8927 Analysis",.ZTSAVE)
  1. W ! I END'=U,$$FMR^TIUFWRAP2("EA","Press <Enter> to continue ")
  1. Q
  1. ;
  1. VIEW ; view the results
  1. N DISPLAY,DY W $G(IOCUON)
  1. S X="" F S X=$O(@OUTPUT@(X)) Q:X="" S DISPLAY(X)=$NA(@OUTPUT@(X))
  1. K DIERR D DOCLIST^DDBR("DISPLAY","NR")
  1. Q
  1. ;