Difference between revisions of "Transport Pattern Mapping"
WalcoVanLoon (talk | contribs) |
WalcoVanLoon (talk | contribs) |
||
Line 14: | Line 14: | ||
There are some exceptions to this scheme: the "transaction" operation utilizes POST to create or update a set of resources (resource bundle) atomically. | There are some exceptions to this scheme: the "transaction" operation utilizes POST to create or update a set of resources (resource bundle) atomically. | ||
− | == Mapping of FHIR operations to existing | + | == Mapping of FHIR operations to existing IHE transactions == |
− | |||
− | |||
− | |||
=== Transaction === | === Transaction === | ||
This operation can facilitate Provide & Register Document Set-b (ITI-41, ITI-42), "Update Document Set" (ITI-57) and "Delete Document Set" (ITI-62) transactions. It can create and update a set of resources (authors, documents) in one transaction: | This operation can facilitate Provide & Register Document Set-b (ITI-41, ITI-42), "Update Document Set" (ITI-57) and "Delete Document Set" (ITI-62) transactions. It can create and update a set of resources (authors, documents) in one transaction: | ||
− | * If entry.content is omitted, the resulting operation | + | * If entry.content is omitted, the resulting operation maps to Register Document Set-b (ITI-42). |
− | * If entry.id refers to an existing resource, it mimicks "Update Document Set" | + | * If entry.id refers to an existing resource, it mimicks "Update Document Set" (ITI-57) |
* If entry.deleted specifies a date before now, the entry will be deleted, mimicking "Delete Document Set" (ITI-62). Note that entry.content will also be deleted. | * If entry.deleted specifies a date before now, the entry will be deleted, mimicking "Delete Document Set" (ITI-62). Note that entry.content will also be deleted. | ||
+ | |||
+ | The MHD "Put Document Dossier" (ITI-65) transaction could be mapped in a similar fashion. This would enrich the semantics of this transaction and add support for the creation of multiple resources. | ||
=== Read === | === Read === | ||
− | This operation can be used for the current Retrieve Document Set (ITI-43) transaction, although it can only be used for | + | This operation can be used for the current Retrieve Document Set (ITI-43) transaction, although it can only be used for a single resource. The "search" operation might be an alternative. |
=== Delete === | === Delete === | ||
− | This operation can be mapped to Delete Document Set, but only works for | + | This operation can be mapped to Delete Document Set (ITI-62), but only works for a single resource. |
+ | |||
+ | == Update === | ||
+ | This operation can be mapped to Update Document Set (ITI-57), but only works for a single resource. | ||
== Resources == | == Resources == | ||
Line 35: | Line 37: | ||
=== Binary === | === Binary === | ||
− | Binary representations can be created, and fetched using a specific location on the resource. Search is not supported for such resource. | + | Binary representations can be created, and fetched using a specific location on the resource. Search is not supported for such a resource. |
=== Bundles === | === Bundles === | ||
− | Operations on sets of resources are performed on resource bundles. In XML these are represented as Atom Feeds. The JSON representation is a custom format that honors logical order in entries. | + | Operations on sets of resources are performed on resource bundles. In XML these are represented as Atom Feeds (RFC 6721). The JSON representation is a custom format that honors logical order in entries. |
Revision as of 07:47, 18 July 2014
FHIR-MHD Transport Pattern Mapping Notes
- FHIR REST API (in least in theory) is based on OMG Health RESTful specification
- http://www.omg.org/spec/HData/1.0/PDF/
- on first inspection, it does not seem to cause incompatibility issues with existing use of REST in MHD.
- the recommendation of using CORS has impact on HTTP level: http://enable-cors.org/. Discussed in http://www.hl7.org/implement/standards/fhir/security.html
HTTP verbs used for basic operations on a (single) resource in FHIR
- POST - create
- PUT - update
- DELETE - delete
- GET - read
There are some exceptions to this scheme: the "transaction" operation utilizes POST to create or update a set of resources (resource bundle) atomically.
Mapping of FHIR operations to existing IHE transactions
Transaction
This operation can facilitate Provide & Register Document Set-b (ITI-41, ITI-42), "Update Document Set" (ITI-57) and "Delete Document Set" (ITI-62) transactions. It can create and update a set of resources (authors, documents) in one transaction:
- If entry.content is omitted, the resulting operation maps to Register Document Set-b (ITI-42).
- If entry.id refers to an existing resource, it mimicks "Update Document Set" (ITI-57)
- If entry.deleted specifies a date before now, the entry will be deleted, mimicking "Delete Document Set" (ITI-62). Note that entry.content will also be deleted.
The MHD "Put Document Dossier" (ITI-65) transaction could be mapped in a similar fashion. This would enrich the semantics of this transaction and add support for the creation of multiple resources.
Read
This operation can be used for the current Retrieve Document Set (ITI-43) transaction, although it can only be used for a single resource. The "search" operation might be an alternative.
Delete
This operation can be mapped to Delete Document Set (ITI-62), but only works for a single resource.
Update =
This operation can be mapped to Update Document Set (ITI-57), but only works for a single resource.
Resources
Resources in FHIR can be represented in JSON, XML and as Binary. Binary content can be specified using the "content" attribute with Base64 encoded data. XHTML content can be conveyed through a "div" attribute on "text" objects.
Binary
Binary representations can be created, and fetched using a specific location on the resource. Search is not supported for such a resource.
Bundles
Operations on sets of resources are performed on resource bundles. In XML these are represented as Atom Feeds (RFC 6721). The JSON representation is a custom format that honors logical order in entries.