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