grammar/spelling fixes, and other minor additions/tweaks

This commit is contained in:
Gered 2014-08-05 14:16:09 -04:00
parent c21d7bc62d
commit 7f79929947

View file

@ -125,6 +125,8 @@ all the resources that matched the search parameters given. If you provide no se
parameters then all resources of the type given will be returned (though they will parameters then all resources of the type given will be returned (though they will
be paged likely, as per the FHIR specs). be paged likely, as per the FHIR specs).
##### Search Parameters
Search parameters are specified as a vector, where each parameter should be defined Search parameters are specified as a vector, where each parameter should be defined
using the helper functions: using the helper functions:
@ -146,14 +148,18 @@ encode this information in the search parameters:
(eq :gender (namespaced "http://hl7.org/fhir/v3/AdministrativeGender" "M")) (eq :gender (namespaced "http://hl7.org/fhir/v3/AdministrativeGender" "M"))
``` ```
###### Date Parameter Formatting
There are also a few helper functions in `clj-hl7-fhir.util` for converting `java.util.Date` objects There are also a few helper functions in `clj-hl7-fhir.util` for converting `java.util.Date` objects
into properly formatted ISO date/time strings that match FHIR specifications: into properly formatted ISO date/time strings that match FHIR specifications:
| Function | Example output | Function | Format | Example output
|----------|--------------- |----------|--------|---------------
| `->timestamp` | `2014-08-05T10:49:37-04:00` | `->timestamp` | `yyyy-MM-dd'T'HH:mm:ssXXX` | `2014-08-05T10:49:37-04:00`
| `->local-timestamp` | `2014-08-05T10:49:37-04:00` | `->local-timestamp` | `yyyy-MM-dd'T'HH:mm:ss` | `2014-08-05T10:49:37-04:00`
| `->date` | `2014-08-05` | `->date` | `yyyy-MM-dd` | `2014-08-05`
##### Search Results
As mentioned above, search results will be returned in a FHIR bundle, which contains a As mentioned above, search results will be returned in a FHIR bundle, which contains a
vector of all the matching resources. For convenience, you can use `collect-resources` vector of all the matching resources. For convenience, you can use `collect-resources`
@ -165,12 +171,20 @@ to return a sequence of just the resources by passing/threading the results from
(search server-url ...) (search server-url ...)
``` ```
##### Paged Results
Larger search results will be [paged](http://hl7.org/implement/standards/fhir/http.html#paging). Larger search results will be [paged](http://hl7.org/implement/standards/fhir/http.html#paging).
Some helper functions are available to make working with paged search results easier: Some helper functions are available to make working with paged search results easier:
* `fetch-next-page` takes a search result bundle and uses it to get and return the next page of search results. If there are no more pages of results, returns nil. * `fetch-next-page` takes a search result bundle and uses it to get and return the next page of search results. If there are no more pages of results, returns nil.
* `fetch-all` takes a search result bundle, and fetches all pages of search results, and then returns a bundle which contains the full list of match resources. * `fetch-all` takes a search result bundle, and fetches all pages of search results, and then returns a bundle which contains the full list of match resources.
* `search-and-fetch` convenience function that is the same as doing: `(fetch-all (search ...))`. Takes the same arguments as `search`. * `search-and-fetch` convenience function that is the same as doing: `(fetch-all (search ...))`. Takes the same arguments as `search`.
If you wish, you can specify `:_count max-results` in your call to `search` to specify an
arbitrary number of results per page. As per the FHIR specifications, the server is free to
return less then this number if it chooses to, but it will never return more then the amount
you specify here.
##### Examples ##### Examples
```clojure ```clojure
@ -178,6 +192,13 @@ Some helper functions are available to make working with paged search results ea
; (http://server-url/Patient) ; (http://server-url/Patient)
(search server-url :patient []) (search server-url :patient [])
; list all patients, but only show 5 per page of results.
; note that the above call (that does not specify a count) will also be paged too if
; there are a lot of results. the count parameter just lets you change the number of
; results per page to something else, it doesn't necessarily let you turn off paging.
; (http://fhirtest.uhn.ca/base/Patient?_count=5)
(search server-url :patient [] :_count 5)
; find all patients with name "dogie" ; find all patients with name "dogie"
; (http://server-url/Patient?name=dogie) ; (http://server-url/Patient?name=dogie)
(search server-url :patient [(eq :name "dogie")]) (search server-url :patient [(eq :name "dogie")])
@ -209,14 +230,14 @@ ExceptionInfo FHIR request failed: HTTP 400
### create ### create
Adding new resources is a simple matter once you have a FHIR resource represented as a Clojure map. Adding new resources is a simple matter once you have a FHIR resource represented as a Clojure map.
Simply pass the resource to `create`. By default, if creation is successful, the new resource is Simply pass the resource to `create`. By default, if creation is successful the new resource is
returned. returned.
Optionally, you can specify an additional `:return-resource? false` to return a full Optionally you can specify `:return-resource? false` to have `create` return a full URL to the
URL to the newly created resource instead (this can be useful if you need the new resource's newly created resource instead (this can be useful if you need the new resource's ID for example,
ID for example, as the returned FHIR resource would not include this information). as the returned FHIR resource would not otherwise include this information).
`create` will throw an exception if the resource you pass in is not a Clojure map that contains `create` will throw an exception if the resource you pass is not a Clojure map that contains
a `:resourceType` key with a value that is anything other then `"Bundle"`). a `:resourceType` key with a value that is anything other then `"Bundle"`).
##### Examples ##### Examples
@ -274,21 +295,20 @@ ExceptionInfo FHIR request failed: HTTP 500
Updating existing resources is accomplished via `update` which takes an ID along with Updating existing resources is accomplished via `update` which takes an ID along with
a FHIR resource map, similar to what you would provide with `create`. The ID of course a FHIR resource map, similar to what you would provide with `create`. The ID of course
specifies the existing resource to be update. By default, if the update is successful, specifies the existing resource to be updated. By default, if the update is successful
the newly updated resource is returned. the newly updated resource is returned.
Optionally, you can specify an additional `:return-resource? false` to return a full Optionally you can specify `:return-resource? false` to return a full URL to the
URL to the updated resource instead (this can be useful if you need the resource's updated resource instead (this can be useful if you need the resource's ID/version
ID/version for example, as the returned FHIR resource would not include this for example, as the returned FHIR resource would not otherwise include this
information). information).
Additionally, you can limit updates to only proceed if the latest version of the Additionally, you can limit updates to only proceed if the latest version of the
resource on the server matches a version number you specify by passing an resource on the server matches a version number you specify by passing an extra
extra `:version [version-number]` argument. If the latest version of the resource `:version version-number` argument. If the latest version of the resource on the
on the server does not match, the resource will not be updated and an exception server does not match, the resource will not be updated and an exception is thrown.
is thrown.
`update` will throw an exception if the resource you pass in is not a Clojure map that `update` will throw an exception if the resource you pass is not a Clojure map that
contains a `:resourceType` key with a value that is anything other then `"Bundle"`). contains a `:resourceType` key with a value that is anything other then `"Bundle"`).
##### Examples ##### Examples
@ -308,7 +328,7 @@ contains a `:resourceType` key with a value that is anything other then `"Bundle
:label "University Health Network MRN 7010168"}] :label "University Health Network MRN 7010168"}]
:telecom :telecom
[{:system "phone" :use "home" :value "(416)000-0000"} [{:system "phone" :use "home" :value "(416)000-0000"}
{:system "phone" :use "work" :value "555-555-5555} {:system "phone" :use "work" :value "555-555-5555"}
{:system "phone" :use "mobile"} {:system "phone" :use "mobile"}
{:system "email" :use "home"}] {:system "email" :use "home"}]
:gender :gender