source: FOIAVistA/trunk/r/VA_FILEMAN-ARJT-DI-DD-DM-DT-%DT-%RCR/DMSQ.m@ 1800

Last change on this file since 1800 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 4.6 KB
Line 
1DMSQ ;SFISC/EZ-CALLS INTO SQLI CODE ;10/30/97 16:25
2 ;;22.0;VA FileMan;;Mar 30, 1999
3 ;Per VHA Directive 10-93-142, this routine should not be modified.
4 Q
5SETUP ;entry point to begin SQLI projection process
6 ;gives interactive user a chance to cancel out before continuing
7 ;requires programmer mode (DUZ(0)="@")
8 I $D(ZTQUEUED) D RUN Q
9 I $$WAIT^DMSQT1 D Q
10 . W !?5,"Another SQLI projection is already running right now."
11 . W !?5,"Try later if you want to re-run the SQLI projection."
12 S DIR(0)="Y",DIR("B")="NO"
13 S DIR("A")="This process takes several hours. Want to Continue"
14 S DIR("?",1)="This will project FileMan data dictionary information into SQLI files."
15 S DIR("?",2)="It may consume up to 30Mb of space in a full hospital account."
16 S DIR("?",3)=" "
17 S DIR("?",4)="It is safe to run on all systems, even if you don't have SQLI-to-SQL mapping."
18 S DIR("?",5)="(Note: SQLI print options won't report anything if SQLI files are empty.)"
19 S DIR("?",6)=" "
20 S DIR("?",7)="To experiment, you can run this and then use the purge option afterwards."
21 S DIR("?",8)="(It isn't necessary to run the purge option beforehand, by the way.)"
22 S DIR("?",9)=" "
23 S DIR("?",10)="If you do have SQLI-to-SQL mapping, be aware that this is step 2 of 3:"
24 S DIR("?",11)=" "
25 S DIR("?",12)=" (1) Populate the SQLI Key Word file - KW^DMSQD(SCR,ERR)"
26 S DIR("?",13)=" (2) Run this utility - SETUP^DMSQ"
27 S DIR("?",14)=" (3) Run your SQLI-to-SQL mapper (vendor product)"
28 S DIR("?",15)=" "
29 S DIR("?")="These 3 steps should be done in sequence, one right after the other."
30 D ^DIR K DIR Q:'Y
31 I $G(DUZ(0))'["@" W !,"PROGRAMMER MODE REQUIRED (NOTHING DONE)",! Q
32 W !!?5,"Running this job on your terminal (HOME device) will tie up"
33 W !?5,"your terminal for the several hours it takes to run, but you"
34 W !?5,"will see the job's status as it's running."
35 W !!?5,"Queuing will send it to the background for processing. The"
36 W !?5,"status will be apparent from the printed output (if there's an"
37 W !?5,"error, it's text will be printed). TaskMan/Kernel tools can also"
38 W !?5,"be used to determine whether the job ran to completion or not."
39 W !!?5,"Don't send this directly to a printer (without queuing) unless"
40 W !?5,"you are prepared to tie up your terminal AND the printer for"
41 W !?5,"the duration of the process.",!
42 S %ZIS="QM" D ^%ZIS Q:POP
43 I $D(IO("Q")) D Q
44 . S ZTRTN="RUN^DMSQ",ZTDESC="SQLI PROJECTION"
45 . D ^%ZTLOAD D HOME^%ZIS K IO("Q")
46 S:IO'=IO(0) DMDOT="" D RUN
47EXIT K DMDOT
48 Q
49RUN ;runs the projection of all files (called from SETUP)
50 U IO
51 I $G(DUZ(0))'["@" W !,"PROGRAMMER MODE REQUIRED (NOTHING DONE)",! Q
52 I $$WAIT^DMSQT1 D Q
53 . W !?5,"Another SQLI projection is being run right now. So"
54 . W !?5,"this attempt to re-run the projection is aborted."
55 D ALLF^DMSQF(1) ;using param=1 schema/domains/datatypes (re)done
56 D ^%ZISC
57 S:$D(ZTQUEUED) ZTREQ="@"
58 Q
59RUNONE ;re-runs the projection of one file - for testing purposes only.
60 ;if the selected file has subfiles, they will not be processed.
61 ;to process one subfile, use the subfile number in this call.
62 ;to select a (sub)file, it must already be an SQLI Table (re-runs only).
63 I $G(DUZ(0))'["@" W !,"PROGRAMMER MODE REQUIRED (NOTHING DONE)",! Q
64 N DM1,DM2,DMQ,DMFN S DMQ="" D ASK
65 I DMQ W !?5,"No file selected; nothing done." Q
66 D ONEF^DMSQF(DMFN) W !?5,"Done. See SQLI files for changes."
67 Q
68ASK ; select (sub)file number
69 S DM1=$O(^DMSQ("T","C",0)),DM2=$O(^DMSQ("T","C",99999999999),-1)
70 S DIR(0)="NO^"_DM1_":"_DM2_":999999999",DIR("A")="File or Subfile Number"
71 S DIR("?")="Enter the number of a file or subfile to re-project"
72 D ^DIR S:$D(DIRUT) DMQ=1 K DIR Q:DMQ S DMFN=Y
73 I '$D(^DMSQ("T","C",DMFN)) D G ASK
74 . W !?5,"Invalid selection: no SQLI table for this (sub)file."
75 Q
76PURGE ;entry point to clear data from SQLI files, all except keywords
77 ;requires programmer mode (DUZ(0)="@")
78 ;header nodes of the files are reset, indicating empty status
79 N I
80 I $G(DUZ(0))'["@" W !,"PROGMODE REQUIRED (NOTHING DONE)",! Q
81 I $$WAIT^DMSQT1 D Q
82 . W !?5,"Purging can't be done right now. The SQLI structures"
83 . W !?5,"are in the process of being built, a job that might take"
84 . W !?5,"a few hours. So try again later (when the job finishes)."
85 S DIR("A")="Removes all records from SQLI files. Continue"
86 S DIR("?",1)="Clears all SQLI files (between 1.52 and 1.53) except SQLI_KEY_WORD."
87 S DIR("?",2)="(You can re-generate SQLI data at a future time as needed.)",DIR("?",3)=" "
88 S DIR("?")="Data can be cleared if you don't have an SQL system or you don't use SQLI."
89 S DIR(0)="Y",DIR("B")="NO" D ^DIR K DIR Q:$D(DIRUT)!(Y'=1)
90 W !,"Working..."
91 F I="S","KF","T","E","C","P","F","EX","ET","DT","DM","OF" D CLF^DMSQU(I)
92 W "Done!"
93 Q
Note: See TracBrowser for help on using the repository browser.