FHIR Server internals - sqlonfhir

12
SQLONFHIR INTERNALS Brian Postlethwaite June 2016 ® ©

Transcript of FHIR Server internals - sqlonfhir

Page 1: FHIR Server internals - sqlonfhir

SQLONFHIRINTERNALSBrian Postlethwaite

June 2016

® ©

Page 2: FHIR Server internals - sqlonfhir

Server Types• Generic Server• Publish/Sync• Façade• Cache

Database Structures• Blob Store (XML or json)• Atomised Data (Full ER Model)• View (Façade-ish)• Hybrid

Recap – Server Design Choices

Page 3: FHIR Server internals - sqlonfhir

Server Types• Generic Server• Publish/Sync• Façade• Cache

Database Structures• Blob Store (XML or json)

on SQL Server• Atomised Data (Full ER Model)• View (Façade-ish)• Hybrid

sqlonfhir – Server Design Choices

Page 4: FHIR Server internals - sqlonfhir
Page 5: FHIR Server internals - sqlonfhir

.NET 4.5 WebAPI

Entity Framework 6.1

SQLServer (Azure and local)(with free text search)

Built in Layers

Built on the core assembly HL7.Fhir

Microsoft Workflow Foundation

External Security (IdentityServer3)

Heavily Code Generated (T4 templates)

Fluentpath validation (Questionnaires)

Technically sqlonfhir is/has

Page 6: FHIR Server internals - sqlonfhir

Dotnet client Hl7.Fhir.DSTU2.CoreServer Utilities Hl7.Fhir.DSTU2.Server

(variation on layer from SPARK)Base models Generated code + base structuresSpecialized models Hand coded stuffSql structures

The layers

Page 7: FHIR Server internals - sqlonfhir

Full CRUD

Search

History

Basic Terminology Services

Extensible Operations

Auditing

Workflow (Internal)

HTML view

The FHIR features

Page 8: FHIR Server internals - sqlonfhir

So where is this code then?Controller - FormattersObject ModelSearching – Parsing ParametersDatabase ModelOperations/ServicesConformanceCode GenerationUnit testingHTML Views

Anything else?

Page 9: FHIR Server internals - sqlonfhir

Extending the security model

Extending the searching/sorting capabilities

Better validation capabilities

Version aware updates

Extending the terminology services capabilities

Better support for FHIR transactions and batch requests

Enhanced Value-Set maintenance capabilities

Conformance/Registry resource view enhancements

What’s next for sqlonfhir?

Page 10: FHIR Server internals - sqlonfhir

1. Re-use from existing work, SPARK2. Use the NuGET Package(s)3. Don’t try and use the native .net parsers4. Select the storage that is right for YOUR product,

platform and clientbase5. Consider fluentpath in your indexing6. Unit test everything you build7. Put it out there as a test platform (don’t be scared)8. Test using ProjectCrucible and Touchstone9. Start small and extend

Building your own server?

Page 11: FHIR Server internals - sqlonfhir

THANK YOU

Page 12: FHIR Server internals - sqlonfhir

Since it has been 6 months since I presented, though I’d share a little of what’s been done…

Much better validation

- core, questionnaire responses, invariants

- thanks to fhirpath, .NET client updates

- and Furore!

Conditional Updates/Deletes and better support for FHIR transactions and batch requests

Extending the terminology services capabilities

More Narrative Generators

Support for STU3 (1.6 Baltimore, 1.8 San Antonio)

6 months on