Health Data Exchange Test Cases
Health Data Exchange Test Cases
Following are materials related to the testing of UMA-based health data exchange contributed by Project hData as part of the UMA validation bounty program. The final versions of these materials were submitted as of 13 Dec 2010. Ultimately the UMA WG may turn these contributed materials into UMA "working drafts".
Submission letter
Hello,
I am writing on behalf of the hData project with our submission to the UMA validation bounty program. Our submission relates to medical data exchange via hData, and consists of two workflow diagrams outlining the steps involved in registering primary and secondary data providers. To facilitate sharing and editing, we used the websequencediagrams.com to develop the swimlane diagrams.
One of the features of hData is the use of a Discovery and Authorization Service (DAS), which combines functions of an Authorization Manager and a Discovery Service. The DAS plays a central role in how health data providers and consumers find each other and access authorized patient data from other health data providers. To clarify the dual role of the DAS, we have create two adjacent swimlanes in the enclosed diagrams.
The first diagram (http://tinyurl.com/2fc5v8a) covers the process of (a) registering a user with the DAS, and (b) registering the patient’s Primary Care Physician (PCP) with the DAS. The workflow is general enough to allow user authorization of the PCP to occur by a number of alternatives, including by direct interaction by the patient, or by interpreting a pre-configured policy that the user has set up with the DAS. This allows additional flexibility and convenience for the patient.
The second diagram (http://tinyurl.com/2euop2z) brings an Emergency Room (a third party data consumer/provider) into the picture. The process of authorizing the ER is identical to authorizing the PCP, and is therefore omitted from this diagram. The diagram focuses on the interaction of the ER and PCP, allowing the ER to access the medical record of the patient (or authorized parts thereof). We also cover how the ER receives updates to the patient’s medical records, and the possibility of expiry of the authorization token held by the ER.
Also included as an enclosed file are a number of test cases for these scenarios, based on the Gherkin language. Gherkin allows designers and developers to describe behavior in plain text, and through a simple process, translate the text description into executable test cases. Since these test cases are written in readable text, it facilitates developer interactions with those who create the business logic. As we proceed, these test cases will be converted to executable code.
If you have any questions about our submission, please do not hesitate to contact me or Gerald Beuchelt (gbeuchelt -at- mitre.org)
Sincerely,
Mark A. Kramer, PhD
MITRE Corporation E542
mkramer -at- mitre.org
781-271-3296
mobile: 781-367-4239
Gherkin test cases
The test cases are also available for download as a standalone file.
Feature: Register PCP In order to get health care As a patient I want my PCP to share my health data # Registration scenarios Scenario: Register user with DAS When I register a new account with "a DAS" Then I should receive confirmation from "a DAS" Scenario: Ask for Authorization with PCP Given I am registered with "a DAS" When "my PCP" requests authorization Then I should be asked to authorize provider "my PCP" Scenario: Authorize PCP Given I am registered with "a DAS" And provider "my PCP" has requested authorization When I grant permission to provider "my PCP" Then provider "my PCP" should be registered with "a DAS" Scenario: PCP Provider Access Given provider "my PCP" is registered with "a DAS" When "my PCP" requests access to "provider list" Then "my PCP" should see "provider list" # Rejection Scenarios Scenario: Reject PCP Given I am registered with "a DAS" And provider "my PCP" has requested authorization When I deny permission to provider "my PCP" Then provider "my PCP" should be rejected Feature: Visit Emergency Room In order to be treated in an emergency As a patient I want my PCP and ER doctor to share data Scenario: Visit ER for the first time Given I am registered with "a DAS" And I have provider "my PCP" And provider "emergency" has requested authorization When I grant permission to provider "emergency" Then provider "emergency" should see "my PCP" in my provider list Feature: Emergency Room Care In order to provide emergency care As an emergency care provider I want to obtain healthcare data Scenario: Obtain data from PCP Given a patient "John Doe" And patient "John Doe" is registered with provider "my PCP" And patient "John Doe" is registered with provider "emergency" When provider "emergency" requests "John Doe" data from "my PCP" Then "emergency" should obtain "John Doe" data Scenario: PCP synch with Emergency Given a patient "John Doe" And patient "John Doe" is registered with provider "my PCP" And patient "John Doe" is registered with provider "emergency" When provider "emergency" updates "prescription list" with "Tylenol" And provider "my PCP" contacts "emergency" for new data Then "my PCP" should see "Tylenol" in "prescription list" in provider "emergency" # Rejection Scenarios Scenario: Token expiration Given a patient "John Doe" And patient "John Doe" is registered with provider "emergency" And provider "emergency" token expires When provider "emergency" polls for new data Then provider "emergency" should not see data updates
Swimlane diagram: registering a patient and their PCP with a DAS
This diagram can also be viewed with a variety of styles on the websequencediagrams.com site. (If the diagram is not displaying correctly, try reloading the page in the browser.)
Swimlane diagram: authorizing an ER to access a patient's medical record at their PCP
This diagram can also be viewed with a variety of styles on the websequencediagrams.com site. (If the diagram is not displaying correctly, try reloading the page in the browser.)