[613] | 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
|
---|