1 | PXRMEXHF ; SLC/PKR - Routines to select and deal with host files. ;12/21/2004
|
---|
2 | ;;2.0;CLINICAL REMINDERS;;Feb 04, 2005
|
---|
3 | ;============================================
|
---|
4 | CHF(SUCCESS,LIST,PATH,FILE) ;Put the repository entries in LIST into the
|
---|
5 | ;host file specified by PATH and FILE.
|
---|
6 | N GBL,LIEN,RIEN
|
---|
7 | S SUCCESS=1
|
---|
8 | S LIEN=$O(LIST(""))
|
---|
9 | I LIEN="" Q
|
---|
10 | S RIEN=$$RIEN^PXRMEXU1(LIEN)
|
---|
11 | S GBL="^PXD(811.8,"_RIEN_",100,1,0)"
|
---|
12 | ;Save the first entry.
|
---|
13 | S SUCCESS(LIEN)=$$GTF^%ZISH(GBL,4,PATH,FILE)
|
---|
14 | I SUCCESS(LIEN)=0 Q
|
---|
15 | ;Append any remaining entries.
|
---|
16 | F S LIEN=$O(LIST(LIEN)) Q:+LIEN=0 D
|
---|
17 | . S RIEN=$$RIEN^PXRMEXU1(LIEN)
|
---|
18 | . S GBL="^PXD(811.8,"_RIEN_",100,1,0)"
|
---|
19 | . S SUCCESS(LIEN)=$$GATF^%ZISH(GBL,4,PATH,FILE)
|
---|
20 | Q
|
---|
21 | ;
|
---|
22 | ;============================================
|
---|
23 | GETEHF() ;Get an existing host file.
|
---|
24 | ;Build a list of all .PRD files in the current directory.
|
---|
25 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,FILESPEC,FILELIST,PATH,X,Y
|
---|
26 | S FILESPEC("*.PRD")=""
|
---|
27 | S PATH=$$PWD^%ZISH
|
---|
28 | S DIR(0)="FAU"_U_"1:32"
|
---|
29 | S DIR("A")="Enter a path: "
|
---|
30 | S DIR("B")=PATH
|
---|
31 | S DIR("?",1)="A host file is a file on your host system."
|
---|
32 | S DIR("?",2)="A complete host file consists of a path, file name, and extension"
|
---|
33 | S DIR("?",3)="A path consists of a device and directory name."
|
---|
34 | S DIR("?",4)="The default extension is prd (Packed Reminder Definition)."
|
---|
35 | S DIR("?")="The default path is "_PATH
|
---|
36 | D ^DIR
|
---|
37 | I $D(DIROUT)!$D(DIRUT) Q ""
|
---|
38 | I $D(DTOUT)!($D(DUOUT)) Q ""
|
---|
39 | S PATH=Y
|
---|
40 | S Y=$$LIST^%ZISH(PATH,"FILESPEC","FILELIST")
|
---|
41 | I Y D
|
---|
42 | . W !,"The following PRD files were found in ",PATH
|
---|
43 | . S FILE=""
|
---|
44 | . F S FILE=$O(FILELIST(FILE)) Q:FILE="" W !,?2,FILE
|
---|
45 | E W !,"No PRD files were found in path ",PATH
|
---|
46 | ;
|
---|
47 | K DIR,X,Y
|
---|
48 | S DIR(0)="FAOU"_U_"1:32"
|
---|
49 | S DIR("A")="Enter a file name: "
|
---|
50 | S DIR("?",1)="A file name has the format NAME.EXTENSION, the default extension is PRD"
|
---|
51 | S DIR("?",2)="Therefore if you type in FILE for the file name, the host file will be"
|
---|
52 | S DIR("?")=" "_PATH_"FILE.PRD"
|
---|
53 | D ^DIR
|
---|
54 | I $D(DIROUT)!$D(DIRUT) Q ""
|
---|
55 | I $D(DTOUT)!($D(DUOUT)) Q ""
|
---|
56 | S FILE=Y
|
---|
57 | ;Add the default extension if there isn't one.
|
---|
58 | I FILE'["." S FILE=FILE_".PRD"
|
---|
59 | Q PATH_U_FILE
|
---|
60 | ;
|
---|
61 | ;============================================
|
---|
62 | GETHFS() ;Get the name of a host file to store repository entries in.
|
---|
63 | N DIR,DIROUT,DIRUT,DTOUT,DUOUT,FILE,HFNAME,PATH,X,Y
|
---|
64 | GETHF ;As a default set the path to the current directory.
|
---|
65 | S PATH=$$PWD^%ZISH
|
---|
66 | S DIR(0)="FAU"_U_"1:32"
|
---|
67 | S DIR("A")="Enter a path: "
|
---|
68 | S DIR("B")=PATH
|
---|
69 | S DIR("?",1)="A host file is a file on your host system."
|
---|
70 | S DIR("?",2)="A complete host file consists of a path, file name, and extension"
|
---|
71 | S DIR("?",3)="A path consists of a device and directory name."
|
---|
72 | S DIR("?",4)="The default extension is prd (Packed Reminder Definition)."
|
---|
73 | S DIR("?")="The default path is "_PATH
|
---|
74 | D ^DIR
|
---|
75 | I $D(DIROUT)!$D(DIRUT) Q 0
|
---|
76 | I $D(DTOUT)!($D(DUOUT)) Q 0
|
---|
77 | S PATH=Y
|
---|
78 | K DIR,X,Y
|
---|
79 | S DIR(0)="FAU"_U_"1:32"
|
---|
80 | S DIR("A")="Enter a file name: "
|
---|
81 | S DIR("?",1)="A file name has the format NAME.EXTENSION, the default extension is PRD"
|
---|
82 | S DIR("?",2)="Therefore if you type in FILE for the file name, the host file will be"
|
---|
83 | S DIR("?")=" "_PATH_"FILE.PRD"
|
---|
84 | D ^DIR
|
---|
85 | I $D(DIROUT)!$D(DIRUT) Q 0
|
---|
86 | I $D(DTOUT)!($D(DUOUT)) Q 0
|
---|
87 | S FILE=Y
|
---|
88 | ;Add the default extension if there isn't one.
|
---|
89 | I FILE'["." S FILE=FILE_".PRD"
|
---|
90 | S HFNAME=PATH_FILE
|
---|
91 | S DIR(0)="YAO"
|
---|
92 | S DIR("A")="Will save selected entries to host file "_HFNAME_"?: "
|
---|
93 | S DIR("B")="Y"
|
---|
94 | K X,Y
|
---|
95 | D ^DIR
|
---|
96 | I $D(DIROUT)!$D(DIRUT) Q 0
|
---|
97 | I $D(DTOUT)!($D(DUOUT)) Q 0
|
---|
98 | I 'Y G GETHF
|
---|
99 | Q PATH_U_FILE
|
---|
100 | ;
|
---|
101 | ;============================================
|
---|
102 | LHF(SUCCESS,PATH,FILE) ;Load a host file containing repository entries into
|
---|
103 | ;the repository.
|
---|
104 | N CURRL,CSUM,DATEP,DONE,EXTYPE,FDA,GBL,IENROOT,IND,LINE
|
---|
105 | N MSG,NENTRY,NLINES,RETMP,RNAME,SITE,SOURCE,SSOURCE,US,USER,VRSN
|
---|
106 | K ^TMP($J,"EXHF")
|
---|
107 | S GBL="^TMP($J,""EXHF"",1,0)"
|
---|
108 | S GBL=$NA(@GBL)
|
---|
109 | S SUCCESS=$$FTG^%ZISH(PATH,FILE,GBL,3)
|
---|
110 | I 'SUCCESS Q
|
---|
111 | ;Make sure it has the correct format.
|
---|
112 | I (^TMP($J,"EXHF",1,0)'["xml")!(^TMP($J,"EXHF",2,0)'="<REMINDER_EXCHANGE_FILE_ENTRY>") D Q
|
---|
113 | . W !,"This host file does not have the correct format!"
|
---|
114 | . H 2
|
---|
115 | . S SUCCESS=0
|
---|
116 | . K ^TMP($J,"EXHF")
|
---|
117 | W !,"Loading host file ",PATH,FILE
|
---|
118 | S RETMP="^TMP($J,""EXLHF"")"
|
---|
119 | S (CURRL,DONE,NENTRY,NLINES,SSOURCE)=0
|
---|
120 | F Q:DONE D
|
---|
121 | . S CURRL=CURRL+1
|
---|
122 | . I '$D(^TMP($J,"EXHF",CURRL,0)) S DONE=1 Q
|
---|
123 | . S LINE=^TMP($J,"EXHF",CURRL,0)
|
---|
124 | . S NLINES=NLINES+1
|
---|
125 | . S ^TMP($J,"EXLHF",NLINES,0)=LINE
|
---|
126 | . I LINE["<PACKAGE_VERSION>" S VRSN=$$GETTAGV^PXRMEXU3(LINE,"<PACKAGE_VERSION>")
|
---|
127 | . I LINE["<EXCHANGE_TYPE>" S EXTYPE=$$GETTAGV^PXRMEXU3(LINE,"<EXCHANGE_TYPE>",1)
|
---|
128 | . I LINE="<SOURCE>" S SSOURCE=1
|
---|
129 | . I SSOURCE D
|
---|
130 | .. I LINE["<NAME>" S RNAME=$$GETTAGV^PXRMEXU3(LINE,"<NAME>",1)
|
---|
131 | .. I LINE["<USER>" S USER=$$GETTAGV^PXRMEXU3(LINE,"<USER>",1)
|
---|
132 | .. I LINE["<SITE>" S SITE=$$GETTAGV^PXRMEXU3(LINE,"<SITE>",1)
|
---|
133 | .. I LINE["<DATE_PACKED>" S DATEP=$$GETTAGV^PXRMEXU3(LINE,"<DATE_PACKED>")
|
---|
134 | . I LINE="</SOURCE>" D
|
---|
135 | .. S SSOURCE=0
|
---|
136 | .. S SOURCE=USER_" at "_SITE
|
---|
137 | .;See if the entry is loaded into the temporary storage.
|
---|
138 | . I LINE="</REMINDER_EXCHANGE_FILE_ENTRY>" D
|
---|
139 | .. S NLINES=0
|
---|
140 | .. S NENTRY=NENTRY+1
|
---|
141 | ..;Make sure it has the correct format.
|
---|
142 | .. I (^TMP($J,"EXLHF",1,0)'["xml")!(^TMP($J,"EXLHF",2,0)'="<REMINDER_EXCHANGE_FILE_ENTRY>") D Q
|
---|
143 | ... W !,"There is a problem reading this host file try a new copy of it."
|
---|
144 | ... S SUCCESS=0
|
---|
145 | ... H 2
|
---|
146 | ..;Make sure this entry does not already exist.
|
---|
147 | .. I $$REXISTS^PXRMEXIU(RNAME,DATEP) D
|
---|
148 | ... W !,RNAME," with a date packed of ",DATEP
|
---|
149 | ... W !,"is already in the Exchange File."
|
---|
150 | ... S SUCCESS(NENTRY)=0
|
---|
151 | ... H 2
|
---|
152 | .. E D
|
---|
153 | ... K FDA,IENROOT
|
---|
154 | ... S FDA(811.8,"+1,",.01)=RNAME
|
---|
155 | ... S FDA(811.8,"+1,",.02)=SOURCE
|
---|
156 | ... S FDA(811.8,"+1,",.03)=DATEP
|
---|
157 | ... S FDA(811.8,"+1,",115)=$S($G(EXTYPE)="":"REMINDER",1:EXTYPE)
|
---|
158 | ... D UPDATE^PXRMEXPU(.US,.FDA,.IENROOT)
|
---|
159 | ... S SUCCESS(NENTRY)=US
|
---|
160 | ...;Create the description and save the data.
|
---|
161 | ... N DESCT,DESL,KEYWORDT
|
---|
162 | ... D DESC^PXRMEXU3(RETMP,.DESCT)
|
---|
163 | ... D KEYWORD^PXRMEXU3(RETMP,.KEYWORDT)
|
---|
164 | ... S DESL("RNAME")=RNAME,DESL("SOURCE")=SOURCE,DESL("DATEP")=DATEP
|
---|
165 | ... S DESL("VRSN")=VRSN
|
---|
166 | ... D DESC^PXRMEXU1(IENROOT(1),.DESL,"DESCT","KEYWORDT")
|
---|
167 | ... M ^PXD(811.8,IENROOT(1),100)=^TMP($J,"EXLHF")
|
---|
168 | .. K ^TMP($J,"EXLHF")
|
---|
169 | ;
|
---|
170 | ;Check the success of the entry installs.
|
---|
171 | S SUCCESS=1
|
---|
172 | S IND=""
|
---|
173 | F S IND=$O(SUCCESS(IND)) Q:+IND=0 D
|
---|
174 | . I 'SUCCESS(IND) S SUCCESS=0 Q
|
---|
175 | K ^TMP($J,"EXHF"),^TMP($J,"EXLHF")
|
---|
176 | Q
|
---|
177 | ;
|
---|