- Created by Ron Shapiro, last modified on Sep 18, 2022
Short Description | This track provides new participants with a friendly introduction to FHIR, using a simple scenario that can be met with limited domain knowledge and by those who have not had a lot of exposure to FHIR. |
Long Description | This is the Patient Track testing that is included in all FHIR Connectathons. This track gives participants the opportunity to learn about how FHIR Resources are constructed, how you can create a FHIR Resource on a FHIR Server, how you can update that FHIR Resource, how you can review the version history for that FHIR Resource, search for that FHIR Resource and delete the FHIR Resource. This tracks is used by both FHIR Clients and FHIR Servers to learn about the basic foundational concepts used by FHIR. No prior experience is necessary, and it can be accomplished with or without the use of development or programming tools. |
Type | Educate on the use of FHIR technology |
Track Prerequisites | FHIR Client Come prepared to interact with a FHIR Server. This can be accomplished with an application that can be configured or coded to make FHIR RESTful calls. See the "Step by step tutorial and sample projects" under the Helpful Links below for an example of how to do this use Postman. FHIR Server Come prepared for other FHIR Clients to be able to interact with your FHIR Server. |
Track Lead(s) | Test Support: Richard Ettema |
Track Lead Email(s) | ron@qvera.com; richard.ettema@aegis.net |
Specification Information | |
Call for participants | Level 1:
Level 2:
|
Zulip stream | https://chat.fhir.org/#narrow/stream/179207-connectathon-mgmt/topic/Patient.20Track |
Track Kick off Call | Thu, Sep 15th at 12:00pm ET Zoom link: https://qvera.zoom.us/j/82726013611?pwd=dFRGOVVTVG9ZVW1ZMDBDdWV4SEE4Zz09 Presentation Slides: CAT31 Track Kick Off Call - Patient Track.pdf |
Clinical Input Required? | No |
Related Tracks? | None |
Testing Scenario: | System Roles FHIR Client This actor initiates the processing requests that enable the creation, deletion, manipulation and retrieval of Patient resource instances. The required, supported interactions are the defined basic CRUD operations: create, read, update and delete. Additional required, supported interactions are the operations: vread, history and search. FHIR Server This actor receives, processes and responds to the requests for creation, deletion, manipulation and retrieval of Patient resource instances. The implementation of this actor would normally provide for a repository storage mechanism along with corresponding maintenance and retrieval capabilities of the Patient resource instances. The required, supported interactions are the defined basic CRUD operations: create, read, update and delete. Additional required, supported interactions are the operations: vread, history and search. Pre-Requisites For all levels of testing the required pre-requisite is the fundamental requirement that all FHIR servers SHALL support the capabilities interaction. Level 1 - Introduction - New Participants/Systems This has been and will remain the primary purpose of this track and provides a 'friendly introduction' for those new to FHIR. Attendees participate in this track using a simple scenario that can be met with limited domain knowledge and by those who have not had a lot of exposure to FHIR. It is quite feasible to complete the client side of the track within a day with only knowledge of a development environment and little to no previous FHIR knowledge. If creating a server, advanced preparation will be required, but this scenario should somewhat limit the effort involved. Pre-connectathon testing is encouraged, but not required, where the participants can utilize the existing Public Test Servers. Testing and test reporting at the Connectathon event will be self-attested using the Results tab of the Connectathon Management Tool and primarily involve peer-to-peer execution between known FHIR clients and/or servers. Level 2 - Formal Testing - Participants with FHIR experience (Level 1 +) This level introduces a more formalized testing approach for those participants that have been working the FHIR specification and wish to move beyond basic testing and may have systems that are in active development, deployed or soon to be deployed into a production environment. Automated testing is significantly leveraged for both automated testing (testing tool to FHIR server) and surveillance of peer-to-peer testing (external FHIR client to external FHIR server). Pre-connectathon testing is highly encouraged in order to be better prepared for the actual Connectathon event and become familiar with the public testing platforms that will be used for the formal testing. Testing and test reporting will be done using the public testing platforms which will provide test results via the new FHIR TestReport resource type as well as any specific reporting capabilities of those testing platforms. These reports will provide qualitative and quantitative analysis of the system under test and its conformance to the FHIR specification. Scenarios Level 1 - Introduction - New Participants/Systems The following scenarios represent the basic scenarios that participants will work to implement during the Connectathon event. Execution of these scenarios is expected to be performed with the other participants of this track as well as the Public Test Servers. 1. Register a new patient Action: FHIR client creates a new patient and save to FHIR server. The client can assign the Id. 2. Update a patient Action: FHIR client updates the patient created in scenario #1 and updates to FHIR server. The patient is retrieved by Id. 3. Retrieve Patient history Action: FHIR client searches the FHIR server for the history of a Patient 4. Search for a patient on name Action: FHIR client searches the FHIR server for patients with a given name 5. Delete a patient Action: FHIR client deletes the patient with a given id Formal Testing Level 2 - Formal Testing - Participants with FHIR experience The following scenarios represent the formal testing scenarios that participants have been working to implement both prior to and during the Connectathon event. Execution of these scenarios will focus on automated testing with the public testing platforms and is expected to be performed with the other participants of this track as well as the Public Test Servers. Each of the scenarios are implemented as FHIR TestScript resources that include extensive assertions to provide a more comprehensive validation/verification of the systems under test conformance to the FHIR specification. NOTE 1: All testing scenarios are performed by choosing FHIR TestScript resources that use: (a) XML or JSON NOTE 2: When testing a FHIR server, all of the test scenarios can be completed with a single TestScript--see 99. test scenario below. NOTE 3: When testing a FHIR client, be sure to remember the following: (a) Use the proxy URL of the FHIR server you are sending the request to, not the proxy URL of the FHIR client. The proxy URL assigned to the FHIR client is only used if the FHIR client is also a FHIR server and can accept requests. 1. Patient Registration/Creation FHIR Server Action: Use testing tool to create a new patient on the FHIR server FHIR Client Action: FHIR client creates a new patient and saves it to FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. 2. Patient Modification/Update FHIR Server Action: Use testing tool to update an existing patient on the FHIR server with a new birth date FHIR Client Action: FHIR client updates a patient on the FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. 3. Patient Read FHIR Server Action: Use testing tool to retrieve a patient from the FHIR server FHIR Client Action: FHIR client retrieves a patient from the FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. 4. Patient History FHIR Server Action: Use testing tool to retrieve patient history from the FHIR server FHIR Client Action: FHIR client retrieves the patient history from the FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. 5. Patient Version Read FHIR Server Action: Use testing tool to retrieve specific patient versions from the FHIR server FHIR Client Action: FHIR client retrieves a specific patient version from the FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. 6. Patient Searching via Multiple Criteria FHIR Server Action: Use testing tool to search for patient on the FHIR server Precondition: TestScript will first delete the patient if it exists and create a new patient resource to search for by identifier, given and family name Success Criteria: Testing tool passes all assertions and validations which include (a) HTTP status returned is 200 (OK), (b) HTTP Header Content-Type is returned with correct value, (c) returned resource type is Bundle, (d) the returned Bundle conforms to the base FHIR Bundle profile, (e) the Bundle type is searchset, and (f) the Bundle total value matches the number of entries. FHIR Client Action: FHIR client searches for the patient on the FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. Precondition: Patient exists on FHIR server prior to action Success Criteria: Testing tool passes all assertions and validations which include (a) HTTP method is GET, (b) URL contains search parameters for identifier, family and given, (c) HTTP Header Accept contains the correct value, (d) HTTP Header Content-Type is absent and (e) the HTTP Response from the FHIR server is valid. 7. Patient Deletion/Removal FHIR Server Action: Use testing tool to delete patient on the FHIR server Precondition: TestScript will first delete the patient if it exists and create a new patient resource to be deleted Success Criteria: Testing tool passes all assertions and validations which include (a) HTTP status returned is 204 (No Content), (b) after attempting to read patient an HTTP status 410 (Gone) is returned, and (c) after attempting to search patient an HTTP status 200 (OK) is returned, the HTTP Content-Type is returned with the correct value, returned resource type is Bundle, and the returned Bundle contains no entries. FHIR Client Action: FHIR client deletes a patient from the FHIR server. A testing tool is used as a proxy in order to validate that the transaction is processed correctly. Precondition: Patient exists on FHIR server prior to action Success Criteria: Testing tool passes all assertions and validations which include (a) HTTP method is DELETE, (b) URL contains full URL to Patient resource, (c) HTTP Header Accept contains the correct value, (d) HTTP Header Content-Type is absent and (e) the HTTP Response from the FHIR server is valid. 98. All Non-Versioning Patient Operations Defined Above FHIR Server (use this TestScript to perform all non-versioning test scenarios listed above with a single TestScript execution) Action: Use testing tool to perform all of the test scenarios listed above on the FHIR server which include (1) create a patient, (2) update the patients birth date, (3) retrieve the current patient, (4) search for the patient by identifier, given and family name and (5) delete the patient. 99. All Patient Operations Defined Above FHIR Server (use this TestScript to perform all test scenarios listed above with a single TestScript execution) Action: Use testing tool to perform all of the test scenarios listed above on the FHIR server which include (1) create a patient, (2) update the patients birth date, (3) retrieve the current patient, (4) retrieve the patient history, (5) retrieve each version of the patient, (6) search for the patient by identifier, given and family name and (7) delete the patient. FHIR Client NOTE: FHIR clients must execute the 7 test scenarios one at a time so, there is no TestScript artifact for this test scenario |
Helpful Links | Here are some links to assist implementers: |
TestScripts(s) | The supporting TestScripts and corresponding fixtures have been committed to the FHIR documents Github repository at: FHIR R4 (v4.0.0) TestScripts
FHIR STU3 (v3.0.1) TestScripts
The AEGIS Touchstone testing tool has test scripts available for tracks to test their implementations. See www.touchstone.com to sign in our register if you are a new user. Patient Tests can be found here: Connectathon 31 Patient Intro and Formal Use Case Tests can be found HERE. For FHIR Client testing using Touchstone watch this youtube video: FHIR Testing - Using Touchstone's Peer-to-Peer/Proxy Features to Capture and Test FHIR® Exchanges Please feel free to reach out to Touchstone_Support@aegis.net for any questions on testing or using the Touchstone FHIR Testing tool |