fhir server internals - sqlonfhir
TRANSCRIPT
![Page 1: FHIR Server internals - sqlonfhir](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/1.jpg)
SQLONFHIRINTERNALSBrian Postlethwaite
June 2016
® ©
![Page 2: FHIR Server internals - sqlonfhir](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/3.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/4.jpg)
![Page 5: FHIR Server internals - sqlonfhir](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/5.jpg)
.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](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/6.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/7.jpg)
Full CRUD
Search
History
Basic Terminology Services
Extensible Operations
Auditing
Workflow (Internal)
HTML view
The FHIR features
![Page 8: FHIR Server internals - sqlonfhir](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/8.jpg)
So where is this code then?Controller - FormattersObject ModelSearching – Parsing ParametersDatabase ModelOperations/ServicesConformanceCode GenerationUnit testingHTML Views
Anything else?
![Page 9: FHIR Server internals - sqlonfhir](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/11.jpg)
THANK YOU
![Page 12: FHIR Server internals - sqlonfhir](https://reader035.vdocuments.mx/reader035/viewer/2022062902/58ee40df1a28ab66798b4613/html5/thumbnails/12.jpg)
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