fhir server internals - sqlonfhir

Post on 12-Apr-2017

51 Views

Category:

Healthcare

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

SQLONFHIRINTERNALSBrian Postlethwaite

June 2016

® ©

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

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

.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

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

Full CRUD

Search

History

Basic Terminology Services

Extensible Operations

Auditing

Workflow (Internal)

HTML view

The FHIR features

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

Anything else?

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?

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?

THANK YOU

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

top related