Submitting WG/Project/Implementer Group

FHIR Infrastructure / CSIRO Clinical Data Standards Workgroup

Justification and Objectives

The purpose of this connectathon track is to test the latest version of the advanced pre-population features of the SDC Implementation Guide, and suitability for use in extracting data from Australian Primary Care Systems for sharing with other systems.

This track will use FHIR R4, and the latest SDC Implementation Guide (almost ready for publishing)

Clinical input requested (if any)

Does your track have a need for input from the clinical community? If so, what are the needs?

Related tracks

(used to help guide seating arrangements and possibly drive track consolidation)

Proposed Track Lead

Brian Postlethwaite / Lloyd McKenzie

Expected participants

Who do you expect to be present? How many do you expect to attend?

Telstra Health (Brian Postlethwaite, possibly others) - all Roles

Oridashi (Brett Esler) - Data/Context provider

Best Practice - Data provider

Track Results

Actual Participants

Brian Postlethwaite (Telstra Health - Australia)

Michele Mottoni (Care Evolution - USA)

Paul Lynch (SU National Library of Medicine NLM - USA)

Buminda Nawagamuwa (Telstra Health - Australia)

Steven Edge (Genie Solutions - Australia)

Yana Beda (Beda Software - Russia)

Ilya Beda (Beda Software - Russia)

Alexander Bartschke (BIH - Germany)

Lloyd MacKenzie (Gevity - Canada)

Vladimir Smirnov (Medlinx, Russia)


The example populate demonstration was shown and tested by several attendees

Michele is attempting to import a FHIR Questionnaire definition into his internal structures

Yana/Ilya are attempting to export their internal form structure to the FHIR Questionnaire definition, and produced a demo app:

Managed to use the Populate demo page to use a questionnaire definition from TelstraHealth, populate code from Beda software, data extracted from Oridashi, and rendered by Telstra Health! (now that's some interoperability)

Brian discussed with the Primary Care track getting their questionnaire definitions going, also spoke with Lisa Nelson regarding using the Telstra Health populate demonstration for their Social Determinants of Health guide and how to leverage existing content.

Alexander was able to create some new questionnaires with the LHC Forms editor, and render them with the Telstra Health Renderer  

Thomas Clarke from Best Practice was able to Substitute his data server for the Oridashi one and successfully provide Practitioner and Patient data, and is hoping to be able to provide DocumentReference data tomorrow.

Testing the pre-populate with alternate data providers: Oridashi (works), Health Intersections (works), Pyro (get works, however no batch search support), DXC (get works, batch support CORS preflight issue in browser)

TBD - Still in progress!

Lessons Learnt

TBD - Still in progress!

Next steps

TBD - Still in progress!

Breakout sessions

Sun 2:30 - 3:30 NLM FHIR Tools Overview ( (Paul Lynch)
Telstra Health Tech Overview (Brian Postlethwaite)
General SDC discussions

Sun 3:30 - 4:30 Querying answer lists as a property of a selected answer
(Paul Lynch) 
How to select content to be available as answers (e.g. read the list of conditions from the patient and permit the user to select them) - Brian Postlethwaite - using this extension?

Monday - we should do a breakout session to discuss the gaps that have been identified in the spec from the days experimentation

Track Orientation

A webinar was held on 29 Jan 2020 at 9am sharing further participation information about this track.

(a recoding of the session will be linked soon for those that missed it)

System Roles

Role 1 - Forms Repository Server

A server that holds the FHIR Questionnaires to be used for rendering and pre-population (forms should have the SDC pre-population information in them) (demonstration forms are here pre-pop-test)

Role 2 - Data Provider

A FHIR Server that provides data for use in the pre-population of a form, and also clinical context (preferably through smart on fhir app launch)

For best results the server should also support the search batch processing, reducing the number of calls to the server to retrieve data to populate with. (demonstration Oridashi test Cloud MD Server)

Role 3 - Populate Server

A server that implements the SDC $populate operation, with FHIRPath or Observation based data extraction processing$populate (this server implements at the type and instance levels)

Role 4 - Forms Receiver

A server that will receive a FHIR Questionnaire that has been submitted by a user, and subsequently validated. (Telstra Health test server)

Role 5 - Form Renderer

A user interface for displaying a Questionnaire/Questionnaire response, permitting a user to complete the form and submit the answers. (Testra Health test form renderer)


Describe the different scenarios participating systems can engage in during the connectathon. Each scenario should provide sufficient description that participants can appropriately construct their software in advance to prepare to inter-operate during the connectathon.

Scenario 1 - Create a new Form with fhirpath based pre-population fields inside

This will be used to get experience creating forms, including data extraction information, and fhirpath expressions

Example form:

The FHIRPathTester tool on windows can be used to test fhirpath expressions

Action: Create a new form and save it to a FHIR Server (Such as the Telstra Health Test Server - which will validate the definition)

Precondition: (none)

Success Criteria: Form was able to validate and be used by a populate server, retrieving data from several FHIR Servers (PMS)

Bonus point: Search bundle was external to the form

Bonus point: Data extraction includes multiple launch contexts

Bonus point: Multiple queries in the search bundle

Bonus point: Multiple groups with complex fhirpath extract expressions

Scenario 2 - Provide data for pre-population based on a Search Bundle 

Action: Return the results a search for data as defined by a form pre-population definition

Precondition: A Form with pre-populate rules, a context to perform the searching

Success Criteria: able to return the results of the search

Bonus point: able to handle a bundle as well as individual search interactions

Scenario 3 - Perform a pre-population of provided form

Action: Implement the fhirpath based $populate operation

Precondition: A form definition with fhirpath based data extraction rules in it, and the set of required resources to complete the population (data context)

Success Criteria: A draft QuestionnaireResponse resource is created with all the answers as completed 

Bonus point: pre-populate a definition with repeating sections

Bonus point: pre-populate a definition with multiple search bundle queries

Scenario 4 - Validate a form provided by a user that has been pre-populated

Action: perform QuestionnaireResponse validation against a defined Questionnaire definition, including SDC extenions.

Precondition: A form that has SDC validation extensions in it

Success Criteria: The basic FHIR validations, and Questionnaire Type validations are performed

Bonus point: SDC extensions are reported

Bonus point: SDC complex validation extensions are reported

Scenario 5 - Render a form with data that has been been pre-populated

Action: Ability to render the QuestionnaireResponse, and then submit it to a designated location (for validation etc)

Precondition: A QuestionnaireResponse with completed answers in it.

Success Criteria: Each completed answer should display with the data as extracted, and SDC extensions should also be honored, specifically enable when.

Bonus point: Fhirpath based enable when logic


None at this point, however will have a test service available for all roles, that you can switch various roles for testing, or provide your own questionnaires too.

Security and Privacy Considerations

Identify any expectations around security (e.g. will TLS, mutual-TLS, OAuth, etc. be required to participate)

For the purpose of this initial connectathon will assume that security will open for all to test the pre-population functionality only.

  • No labels