This wiki has undergone a migration to Confluence found Here

Difference between revisions of "201605 PATCH Connectathon Track Proposal"

From HL7Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
+
[http://wiki.hl7.org/index.php?title=Category:201605_FHIR_Connectathon_Track_Proposals Return to May 2016 Proposals]
 
[[Category:201605_FHIR_Connectathon_Track_Proposals|May 2016 Proposals]]
 
[[Category:201605_FHIR_Connectathon_Track_Proposals|May 2016 Proposals]]
 
__NOTOC__
 
__NOTOC__
 
=PATCH Connectathon=
 
=PATCH Connectathon=
Skype: https://join.skype.com/xUx16MpXljhv
+
Zulip: https://chat.fhir.org (implementer > Connectathon Patch Stream)
 +
 
 +
Connectathon 12 Tracking spreadsheet: https://docs.google.com/spreadsheets/d/1Y7TJoQiZTyJXPHjTLn8ZFrQ13rqL_fYNmZSgUTIm4tQ/edit?usp=sharing
 +
 
 +
== Conclusions/Results ==
  
Connectathon 11 Tracking spreadsheet: TODO
+
* Still not enough client applications - target for next Connectathon
 +
* Implementation itself wasn't challenging given open source libraries.
 +
* Do we need to consider fluentpath?
 +
* Cerner server didn't get to XML support, todo for next time.
  
 
==Submitting WG/Project/Implementer Group==
 
==Submitting WG/Project/Implementer Group==
Line 19: Line 26:
 
*Sensitive Elements - a client may not have available to them all elements of a resource, or the some elements may be redacted or de-identified in some way.  PATCH would allow the client to send updates to authorized elements without sending the unauthorized or de-identified.
 
*Sensitive Elements - a client may not have available to them all elements of a resource, or the some elements may be redacted or de-identified in some way.  PATCH would allow the client to send updates to authorized elements without sending the unauthorized or de-identified.
  
*Targetted updates - explicit delineation of which elements a client is updating. In systems with complex dependency management (element A is dependent on elements B and C), this simplifies the triggering of dependency checks (prevents change detection on fields not patched).  Also applies for security (don't have to authorize field updates that aren't patched).
+
*Targeted updates - explicit delineation of which elements a client is updating. In systems with complex dependency management (element A is dependent on elements B and C), this simplifies the triggering of dependency checks (prevents change detection on fields not patched).  Also applies for security (don't have to authorize field updates that aren't patched).
  
*Bandwidth Contrained - a mobile or other bandwidth constrained client that creates many small updates in real time to a resource.  For instance, a UI for updating (sharing) a care plan in real time.
+
*Bandwidth Constrained - a mobile or other bandwidth constrained client that creates many small updates in real time to a resource.  For instance, a UI for updating (sharing) a care plan in real time.
  
  
Line 28: Line 35:
 
   Email: jenni dot syed at cerner dot com
 
   Email: jenni dot syed at cerner dot com
 
   Skype: jenni.syed
 
   Skype: jenni.syed
 +
  Zulip: Jenni Syed
  
 
See [[Connectathon_Track_Lead_Responsibilities]]
 
See [[Connectathon_Track_Lead_Responsibilities]]
  
 
==Expected participants==
 
==Expected participants==
<!-- List of the individuals and/or organizations that have indicated a desire to attend the connectathon and implement this track -->
+
Please sign up on our [https://docs.google.com/spreadsheets/d/1Y7TJoQiZTyJXPHjTLn8ZFrQ13rqL_fYNmZSgUTIm4tQ/edit?usp=sharing tracking spreadsheet]
 +
* Cerner (Jenni Syed)
 +
* Grahame Grieve
 +
* AEGIS (Richard Ettema)
  
 
==Roles==
 
==Roles==
<!-- Roles are sets of functionality (generally defined by a Conformance resource) that a single system can take on -->
+
===EHR===
===Role 1 Name===
+
Exposes the FHIR MedicationStatement resource with GET (search) and PATCH methods available.
<!-- Provide a description of the capabilities this role will have within the connectathon -->
+
 
 +
===FHIR Client===
 +
Has the ability to GET and PATCH MedicationStatement.
 +
 
  
 
==Scenarios==
 
==Scenarios==
Try FHIRPath implementation of original track: http://wiki.hl7.org/index.php?title=201601_PATCH_Connectathon_Track_Proposal
+
We will focus on getting more participation/feedback on [http://jsonpatch.com/  JSON Patch] and add [http://tools.ietf.org/html/rfc5261 XML Patch] for XML formatted resources.
 +
 
 +
 
 +
===1 Search MedicationStatement (JSON) ===
 +
:Action: FHIR Client sends GET to EHR /MedicationStatement resource with patient parameter
 +
:Precondition: EHR should expose GET resource with the JSON format
 +
:Success Criteria:
 +
:Bonus point: MedicationStatement must expose the [http://hl7.org/fhir/2016Jan/medicationstatement.html#search meta.versionId and meta.lastUpdated] fields and support search by patient.
  
Try to modify lists: http://gforge.hl7.org/gf/project/fhir/tracker/?action=TrackerItemEdit&tracker_id=677&tracker_item_id=8364
+
===2 Patch MedicationStatement (JSON) ===
 +
:Action: FHIR Client sends PATCH to EHR /MedicationStatement resource using [http://jsonpatch.com/ JSON Patch] format to update the [http://hl7.org/fhir/2016Jan/medicationstatement-definitions.html#MedicationStatement.status MedicationStatement.status]
 +
:Precondition: EHR should expose PATCH resource honoring the [http://jsonpatch.com/ JSON Patch] format.
 +
:Success Criteria:
 +
:Bonus point: Rejecting the update if there is a [http://hl7.org/fhir/2016Jan/http.html#concurrency version conflict]. Support for updating other fields (eg: [http://hl7.org/fhir/2016Jan/medicationstatement-definitions.html#MedicationStatement.note note]).
  
===Scenario Step 1 Name===
+
===3 Search MedicationStatement (XML) ===
:Action: <!--Who does what?  (Use the role names listed above when referring to the participants -->
+
:Action: FHIR Client sends GET to EHR /MedicationStatement resource with patient parameter
:Precondition: <!-- What setup is required prior to executing this step? -->
+
:Precondition: EHR should expose GET resource with the XML format
:Success Criteria: <!-- How will the participants know if the test was successful? -->
+
:Success Criteria:  
:Bonus point: <!-- Any additional complexity to make the scenario more challenging -->
+
:Bonus point: MedicationStatement must expose the [http://hl7.org/fhir/2016Jan/medicationstatement.html#search meta.versionId and meta.lastUpdated] fields and support search by patient.
  
<!-- Provide a description of each task -->
+
===4 Patch MedicationStatement (XML) ===
 +
:Action: FHIR Client sends PATCH to EHR /MedicationStatement resource using [http://tools.ietf.org/html/rfc5261 XML Patch] format to update the [http://hl7.org/fhir/2016Jan/medicationstatement-definitions.html#MedicationStatement.status MedicationStatement.status]
 +
:Precondition: EHR should expose PATCH resource honoring the [http://tools.ietf.org/html/rfc5261 XML Patch] format.
 +
:Success Criteria:
 +
:Bonus point: Rejecting the update if there is a [http://hl7.org/fhir/2016Jan/http.html#concurrency version conflict]. Support for updating other fields (eg: [http://hl7.org/fhir/2016Jan/medicationstatement-definitions.html#MedicationStatement.note note]).
  
 
==TestScript(s)==
 
==TestScript(s)==
Line 56: Line 85:
 
These should be committed to SVN under trunk/connectathons/[connectathon]
 
These should be committed to SVN under trunk/connectathons/[connectathon]
 
-->
 
-->
 +
The supporting TestScripts and corresponding fixtures have been committed to the FHIR SVN repository at:
 +
http://gforge.hl7.org/svn/fhir/trunk/connectathons/MontrealMay2016/Connectathon12/Track-12-PATCH

Latest revision as of 14:17, 20 June 2016

Return to May 2016 Proposals

PATCH Connectathon

Zulip: https://chat.fhir.org (implementer > Connectathon Patch Stream)

Connectathon 12 Tracking spreadsheet: https://docs.google.com/spreadsheets/d/1Y7TJoQiZTyJXPHjTLn8ZFrQ13rqL_fYNmZSgUTIm4tQ/edit?usp=sharing

Conclusions/Results

  • Still not enough client applications - target for next Connectathon
  • Implementation itself wasn't challenging given open source libraries.
  • Do we need to consider fluentpath?
  • Cerner server didn't get to XML support, todo for next time.

Submitting WG/Project/Implementer Group

Cerner - Jenni Syed

Also some documentation from FHIR core and Grahame: http://hl7.org/fhir/dstu2/http.html#update

http://www.healthintersections.com.au/?p=2441

Justification

There are real world use cases for some form of PATCH, for example, to update only the status of a specific resource, to update or add a comment, and many other single or limited field updates. With the way FHIR currently defines an update, the client should send in the full resource exactly as received, with the single field changed. This is sometimes challenging, both for the FHIR server and the Client. For example, if a client application does not support storing a specific field the server exposes, how will it send it back? If the FHIR server receives an update request where a field is missing, how does it know the intention was to blank/null that field out? More Specifically:

  • Sensitive Elements - a client may not have available to them all elements of a resource, or the some elements may be redacted or de-identified in some way. PATCH would allow the client to send updates to authorized elements without sending the unauthorized or de-identified.
  • Targeted updates - explicit delineation of which elements a client is updating. In systems with complex dependency management (element A is dependent on elements B and C), this simplifies the triggering of dependency checks (prevents change detection on fields not patched). Also applies for security (don't have to authorize field updates that aren't patched).
  • Bandwidth Constrained - a mobile or other bandwidth constrained client that creates many small updates in real time to a resource. For instance, a UI for updating (sharing) a care plan in real time.


Proposed Track Lead

Jenni Syed

  Email: jenni dot syed at cerner dot com
  Skype: jenni.syed
  Zulip: Jenni Syed

See Connectathon_Track_Lead_Responsibilities

Expected participants

Please sign up on our tracking spreadsheet

  • Cerner (Jenni Syed)
  • Grahame Grieve
  • AEGIS (Richard Ettema)

Roles

EHR

Exposes the FHIR MedicationStatement resource with GET (search) and PATCH methods available.

FHIR Client

Has the ability to GET and PATCH MedicationStatement.


Scenarios

We will focus on getting more participation/feedback on JSON Patch and add XML Patch for XML formatted resources.


1 Search MedicationStatement (JSON)

Action: FHIR Client sends GET to EHR /MedicationStatement resource with patient parameter
Precondition: EHR should expose GET resource with the JSON format
Success Criteria:
Bonus point: MedicationStatement must expose the meta.versionId and meta.lastUpdated fields and support search by patient.

2 Patch MedicationStatement (JSON)

Action: FHIR Client sends PATCH to EHR /MedicationStatement resource using JSON Patch format to update the MedicationStatement.status
Precondition: EHR should expose PATCH resource honoring the JSON Patch format.
Success Criteria:
Bonus point: Rejecting the update if there is a version conflict. Support for updating other fields (eg: note).

3 Search MedicationStatement (XML)

Action: FHIR Client sends GET to EHR /MedicationStatement resource with patient parameter
Precondition: EHR should expose GET resource with the XML format
Success Criteria:
Bonus point: MedicationStatement must expose the meta.versionId and meta.lastUpdated fields and support search by patient.

4 Patch MedicationStatement (XML)

Action: FHIR Client sends PATCH to EHR /MedicationStatement resource using XML Patch format to update the MedicationStatement.status
Precondition: EHR should expose PATCH resource honoring the XML Patch format.
Success Criteria:
Bonus point: Rejecting the update if there is a version conflict. Support for updating other fields (eg: note).

TestScript(s)

The supporting TestScripts and corresponding fixtures have been committed to the FHIR SVN repository at: http://gforge.hl7.org/svn/fhir/trunk/connectathons/MontrealMay2016/Connectathon12/Track-12-PATCH