# Introduction
This is the port of HealtheVet Web Services Client (HWSC) to GT.M/YottaDB.
Previously, HWSC has been a purely Cache Only package due to its extensive
use of Cache Objectscript. All functionality available on Cache has been
ported with the exception of support for WSDLs/SOAP messages. You can
still use SOAP messages as HTTP Posted messages against REST endpoints as
long as you create the contents of the SOAP message yourself.
# External Documentation
Documentation on the use of this package is located at
https://www.va.gov/vdl/application.asp?appid=180.
# Notes regarding the GT.M/YDB Port.
Due to the unfortunate design of the package, some of the main entry points
(esp. GET and POST^XOBWLIB) accept Cache Objects as their input. There are
GT.M only entry points to be used instead: GETGTM and POSTGTM. All HTTP(s)
communication is done using cURL (https://curl.haxx.se/). The author deeply
thanks the curl community for a wonderful product.
Any public entry points that won't work on GT.M will fail with $EC of
,U-UNIMPLEMENTED,. The main reason they won't work is that the entry point
expects Cache Objects.
Unlike Cache, GT.M port does not need a SSL/TLS Configuration in order to
perform normal HTTPS communication. If you want to use a certificate to
authenticate, place the certificate and the key in a folder, and put the path
to the certificate into the SSL/TLS Configuration field. The key file must end
with .key and be in the same folder as the certificate. If the key file is
password protected, store the password in the password field normally reserved
for HTTP authentication and it will be used to decrypt the key. A full
programmatic example can be found in `T7^XOBWTGUX`.
; Web Service Post
; Input:
; .RETURN - Returned data (by ref)
; .HEADERS - Returned headers (by ref)
; SERVER - Server Name in file 18.12 (e.g. PEPS)
; SERVICE - Service Name in file 18.02 (e.g. ORDER_CHECKS)
; PATH - URL to append (optional)
; MIME - Mime type to send (optional)
; .PAYLOAD - What to send (1,2,3 subscripts etc) (required)
;
; Output:
; RETURN and HEADERS
; $$ Output: HTTP 1.1 Status Code (e.g. 200 or 404)
; Web Service Get
; Input:
; .RETURN - Returned data (by ref)
; .HEADERS - Returned headers (by ref)
; SERVER - Server Name in file 18.12 (e.g. PEPS)
; SERVICE - Service Name in file 18.02 (e.g. ORDER_CHECKS)
; PATH - URL to append (optional)
; MIME - Mime type to send (optional)
;
; Output:
; RETURN and HEADERS
; $$ Output: HTTP 1.1 Status Code (e.g. 200 or 404)
```
Example usage can be found in XOBWTGUX.
Revision Version
Submitted By
Submission Date
Certified
Notes
T6
Samuel Habiel
10-15-2018
Level 4
XOBWLIB contained a line that said D $$GTMALL. It should say D GTMALL. Thank you to David Whitten for finding the bug in testing in a client site.
T5
Samuel Habiel
09-25-2018
No core code changes. T7 test is disabled by default as it works well only if curl is complied against openssl; which is something we can't control. End users who wish to use client certificates for verification need to ensure that the certificates they use will work with the curl version they are using.
COMMENTS