1 | ONCSAPIV ;Hines OIFO/SG - ONCOLOGY WEB SERVICE (VERSIONS) ; 12/7/06 2:25pm
|
---|
2 | ;;2.11;ONCOLOGY;**40,47**;Mar 07, 1995;Build 19
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;***** CHECKS THE VERSION OF THE LOCAL CACHE
|
---|
7 | ;
|
---|
8 | ; [.ONCSAPI] Reference to the API descriptor (see ^ONCSAPI)
|
---|
9 | ;
|
---|
10 | ; Return Values:
|
---|
11 | ; 0 Ok
|
---|
12 | ; <0 Error code
|
---|
13 | ;
|
---|
14 | CHKVER(ONCSAPI) ;
|
---|
15 | N NODE,RC,TMP,VER
|
---|
16 | D CLEAR^ONCSAPIE()
|
---|
17 | ;--- Get the versions of web-service components
|
---|
18 | S VER=$$VERSION(.ONCSAPI) Q:VER<0 VER
|
---|
19 | ;--- Lock the cache
|
---|
20 | S NODE=$NA(^XTMP("ONCSAPI"))
|
---|
21 | L +@NODE:5 E Q $$ERROR^ONCSAPIE(-15,,"local cache")
|
---|
22 | ;--- Check the version of the local CS table cache
|
---|
23 | S TMP=$P(VER,U,2)
|
---|
24 | I TMP'="",$G(@NODE@("TABLES"))'=TMP D S @NODE@("TABLES")=TMP
|
---|
25 | . K @NODE@("TABLES"),@NODE@("SCHEMAS")
|
---|
26 | ;--- Check the version of the local edit info cache
|
---|
27 | S TMP=$P(VER,U,3)
|
---|
28 | I TMP'="",$G(@NODE@("EDITS"))'=TMP D S @NODE@("EDITS")=TMP
|
---|
29 | . K @NODE@("EDITS")
|
---|
30 | ;--- Refresh the cache descriptor
|
---|
31 | S TMP=$$FMADD^XLFDT(DT,30)
|
---|
32 | S @NODE@(0)=TMP_U_DT_U_"Local Oncology seb-service cache"
|
---|
33 | L -@NODE
|
---|
34 | Q 0
|
---|
35 | ;
|
---|
36 | ;***** SETS THE EVENT INTERFACE ENTRY POINTS
|
---|
37 | ;
|
---|
38 | ; .CBK Reference to the destination list
|
---|
39 | ;
|
---|
40 | SETCBK(CBK) ;
|
---|
41 | ;;CHARACTERS^TEXT^ONCSAPIV
|
---|
42 | ;
|
---|
43 | D SETCBK^ONCSAPIX(.CBK,"SETCBK^ONCSAPIV")
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | ;***** TEXT CALLBACK FOR THE SAX PARSER
|
---|
47 | ;
|
---|
48 | ; TXT Line of unmarked text
|
---|
49 | ;
|
---|
50 | TEXT(TXT) ;
|
---|
51 | N L,L2E
|
---|
52 | S L=$L(ONCXML("PATH"),","),L2E=$P(ONCXML("PATH"),",",L-1,L)
|
---|
53 | ;--- CS API version
|
---|
54 | I L2E="RESPONSE,CS-APIVER" S ONCXML("CS-APIVER")=TXT Q
|
---|
55 | ;--- EDITS metafile version
|
---|
56 | I L2E="RESPONSE,ED-METAVER" S ONCXML("ED-METAVER")=TXT Q
|
---|
57 | ;--- Oncology web-service version
|
---|
58 | I L2E="RESPONSE,VERSION" S ONCXML("VERSION")=TXT Q
|
---|
59 | ;--- Default processing
|
---|
60 | D TEXT^ONCSAPIX(TXT)
|
---|
61 | Q
|
---|
62 | ;
|
---|
63 | ;***** RETURNS THE WEB-SERVICE VERSIONS
|
---|
64 | ;
|
---|
65 | ; [.ONCSAPI] Reference to the API descriptor (see ^ONCSAPI)
|
---|
66 | ;
|
---|
67 | ; The ^TMP("ONCSAPIV",$J) global node is used by this function.
|
---|
68 | ;
|
---|
69 | ; Return Values:
|
---|
70 | ; <0 Error code
|
---|
71 | ; Versions (e.g. "2.00^010300^2.00)
|
---|
72 | ; ^01: Oncology web-service version
|
---|
73 | ; ^02: Version of the CS DLL
|
---|
74 | ; ^03: EDITS metafile version
|
---|
75 | ;
|
---|
76 | VERSION(ONCSAPI) ;
|
---|
77 | N CBK,ONCREQ,ONCRSP,ONCXML,RC,URL
|
---|
78 | D CLEAR^ONCSAPIE()
|
---|
79 | S ONCRSP=$NA(^TMP("ONCSAPIV",$J)) K @ONCRSP
|
---|
80 | ;--- Get the server URL
|
---|
81 | S URL=$$GETCSURL^ONCSAPIU()
|
---|
82 | ;
|
---|
83 | S RC=0 D
|
---|
84 | . ;--- Prepare the request data
|
---|
85 | . S RC=$$PARAMS^ONCSAPIR("ONCREQ","GET-VERSION") Q:RC<0
|
---|
86 | . ;--- Request the DLL version
|
---|
87 | . D:$G(ONCSAPI("DEBUG"))
|
---|
88 | . . D ZW^ONCSAPIU("ONCREQ","*** 'VERSION' REQUEST ***",1)
|
---|
89 | . S RC=$$REQUEST^ONCSAPIR(URL,ONCRSP,"ONCREQ") Q:RC<0
|
---|
90 | . D:$G(ONCSAPI("DEBUG"))
|
---|
91 | . . D ZW^ONCSAPIU(ONCRSP,"*** 'VERSION' RESPONSE ***",1)
|
---|
92 | . K ONCREQ
|
---|
93 | . ;--- Parse the response
|
---|
94 | . D SETCBK(.CBK),EN^MXMLPRSE(ONCRSP,.CBK,"W")
|
---|
95 | . ;--- Check for parsing and web-service errors
|
---|
96 | . S RC=$$CHKERR^ONCSAPIR(.ONCXML) Q:RC<0
|
---|
97 | . ;--- Check the version numbers
|
---|
98 | . I $G(ONCXML("CS-APIVER"))="" S RC=$$ERROR^ONCSAPIE(-13) Q
|
---|
99 | . I $G(ONCXML("ED-METAVER"))="" S RC=$$ERROR^ONCSAPIE(-23) Q
|
---|
100 | ;
|
---|
101 | ;--- Cleanup
|
---|
102 | K @ONCRSP
|
---|
103 | I RC'<0 S RC="" D
|
---|
104 | . S $P(RC,U,1)=$G(ONCXML("VERSION")) ; Web-service
|
---|
105 | . S $P(RC,U,2)=$G(ONCXML("CS-APIVER")) ; CS API
|
---|
106 | . S $P(RC,U,3)=$G(ONCXML("ED-METAVER")) ; EDITS metafile
|
---|
107 | Q RC
|
---|