| 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
 | 
|---|