SlideShare a Scribd company logo
SQLONFHIR
INTERNALS
Brian 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
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
Dotnet client Hl7.Fhir.DSTU2.Core
Server Utilities Hl7.Fhir.DSTU2.Server
(variation on layer from SPARK)
Base models Generated code + base structures
Specialized models Hand coded stuff
Sql 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 - Formatters
Object Model
Searching – Parsing Parameters
Database Model
Operations/Services
Conformance
Code Generation
Unit testing
HTML 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, SPARK
2. Use the NuGET Package(s)
3. Don’t try and use the native .net parsers
4. Select the storage that is right for YOUR product,
platform and clientbase
5. Consider fluentpath in your indexing
6. Unit test everything you build
7. Put it out there as a test platform (don’t be scared)
8. Test using ProjectCrucible and Touchstone
9. 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

More Related Content

PPTX
FHIR Server Design Review
PPTX
Furore devdays2017 tdd-2-advanced
PPTX
Fhir dev days 2017 fhir profiling - overview and introduction v07
PPTX
Furore devdays 2017 - workflow
PPTX
Fire kit ios (r-baldwin)
PPTX
Furore devdays2017 tdd-1-intro
PPTX
Furore devdays 2017- profiling academy - profiling guidelines v1
PPTX
fhir-documents
FHIR Server Design Review
Furore devdays2017 tdd-2-advanced
Fhir dev days 2017 fhir profiling - overview and introduction v07
Furore devdays 2017 - workflow
Fire kit ios (r-baldwin)
Furore devdays2017 tdd-1-intro
Furore devdays 2017- profiling academy - profiling guidelines v1
fhir-documents

What's hot (20)

PPTX
Security overview (grahame)
PPTX
Building bridges devdays 2017- powerpoint template
PPTX
Furore devdays 2017-sdc (lloyd)
PPTX
Do Logic Apps support error handling?
PPTX
Whats new (grahame)
PPTX
Profiling with clin fhir
PPTX
Dev days 2017 questionnaires (brian postlethwaite)
PPTX
Devdays 2017 implementation guide authoring - ardon toonstra
PPTX
Kantara OTTO slides
PPT
CrossRef System Update
PPTX
Azure DocumentDB for Healthcare Integration - Part 2
PPTX
RESTFul Web API Services @ DotNetToscana
PPTX
The ART of Modern Azure Deployments
PPTX
Beginners .net api dev days2017
PPTX
Furore devdays 2017- rdf1(solbrig)
PPT
Introduction to CrossRef Text and Data Mining Webinar
PPTX
Fhir foundation (grahame)
PDF
A simple web-based interface for advanced SNOMED CT queries
PPTX
Fhir dev days_basic_fhir_terminology_services
PPTX
final Keynote (grahame)
Security overview (grahame)
Building bridges devdays 2017- powerpoint template
Furore devdays 2017-sdc (lloyd)
Do Logic Apps support error handling?
Whats new (grahame)
Profiling with clin fhir
Dev days 2017 questionnaires (brian postlethwaite)
Devdays 2017 implementation guide authoring - ardon toonstra
Kantara OTTO slides
CrossRef System Update
Azure DocumentDB for Healthcare Integration - Part 2
RESTFul Web API Services @ DotNetToscana
The ART of Modern Azure Deployments
Beginners .net api dev days2017
Furore devdays 2017- rdf1(solbrig)
Introduction to CrossRef Text and Data Mining Webinar
Fhir foundation (grahame)
A simple web-based interface for advanced SNOMED CT queries
Fhir dev days_basic_fhir_terminology_services
final Keynote (grahame)
Ad

Similar to FHIR Server internals - sqlonfhir (20)

PPTX
FHIR Client Development with .NET
PDF
FHIR for Hackers
PPTX
BizTalk on FHIR
PPTX
Discover the new face of HL7 FHIR v4 - Ideas2IT
PDF
Fhir your applications
PDF
Fhir basics session2_restful_apis
PPTX
Fire and Ice - FHIR in New Zealand - David Hay
PPTX
FHIR & Ice
PDF
Claude Nanjo. Modeling with FHIR. An Introduction to FHIR.
PPTX
Using FHIR for Interoperability
PPTX
Furore devdays2017 general-introtofhir
PPTX
Intro_To_FHIR.pptx
PPTX
FHIR intro and background at HL7 Germany 2014
PPTX
Transforming other content (grahame)
PDF
What is FHIR
PDF
APIsecure 2023 - All #FHIRed Up, John Moehrke
PPTX
Introduction to F#x
PDF
Fhir basics session 5 on fhir implementation considerations
PDF
A GraphQL approach to Healthcare Information Exchange with HL7 FHIR
PPTX
FHIR - more than the basics
FHIR Client Development with .NET
FHIR for Hackers
BizTalk on FHIR
Discover the new face of HL7 FHIR v4 - Ideas2IT
Fhir your applications
Fhir basics session2_restful_apis
Fire and Ice - FHIR in New Zealand - David Hay
FHIR & Ice
Claude Nanjo. Modeling with FHIR. An Introduction to FHIR.
Using FHIR for Interoperability
Furore devdays2017 general-introtofhir
Intro_To_FHIR.pptx
FHIR intro and background at HL7 Germany 2014
Transforming other content (grahame)
What is FHIR
APIsecure 2023 - All #FHIRed Up, John Moehrke
Introduction to F#x
Fhir basics session 5 on fhir implementation considerations
A GraphQL approach to Healthcare Information Exchange with HL7 FHIR
FHIR - more than the basics
Ad

Recently uploaded (20)

PPTX
Bronchial_Asthma_in_acute_exacerbation_.pptx
PPTX
BLS, BCLS Module-A life saving procedure
PPTX
Genaralised anxiety disorder presentation
PPTX
Immunity....(shweta).................pptx
PPTX
1. Drug Distribution System.pptt b pharmacy
PPTX
HEMODYNAMICS - I DERANGEMENTS OF BODY FLUIDS.pptx
PDF
DAY-6. Summer class. Ppt. Cultural Nursing
PDF
Dr. Jasvant Modi - Passionate About Philanthropy
PPT
Parental-Carer-mental-illness-and-Potential-impact-on-Dependant-Children.ppt
PPTX
First Aid and Basic Life Support Training.pptx
PDF
Dr Masood Ahmed Expertise And Sucess Story
PPT
Adrenergic drugs (sympathomimetics ).ppt
PDF
NUTRITION THROUGHOUT THE LIFE CYCLE CHILDHOOD -AGEING
PPTX
Galactosemia pathophysiology, clinical features, investigation and treatment ...
PPTX
different types of Gait in orthopaedic injuries
DOCX
Copies if quanti.docxsegdfhfkhjhlkjlj,klkj
PPTX
NUTRITIONAL PROBLEMS, CHANGES NEEDED TO PREVENT MALNUTRITION
PPTX
Medical aspects of impairment including all the domains mentioned in ICF
PPTX
PE and Health 7 Quarter 3 Lesson 1 Day 3,4 and 5.pptx
PPTX
Importance of Immediate Response (1).pptx
Bronchial_Asthma_in_acute_exacerbation_.pptx
BLS, BCLS Module-A life saving procedure
Genaralised anxiety disorder presentation
Immunity....(shweta).................pptx
1. Drug Distribution System.pptt b pharmacy
HEMODYNAMICS - I DERANGEMENTS OF BODY FLUIDS.pptx
DAY-6. Summer class. Ppt. Cultural Nursing
Dr. Jasvant Modi - Passionate About Philanthropy
Parental-Carer-mental-illness-and-Potential-impact-on-Dependant-Children.ppt
First Aid and Basic Life Support Training.pptx
Dr Masood Ahmed Expertise And Sucess Story
Adrenergic drugs (sympathomimetics ).ppt
NUTRITION THROUGHOUT THE LIFE CYCLE CHILDHOOD -AGEING
Galactosemia pathophysiology, clinical features, investigation and treatment ...
different types of Gait in orthopaedic injuries
Copies if quanti.docxsegdfhfkhjhlkjlj,klkj
NUTRITIONAL PROBLEMS, CHANGES NEEDED TO PREVENT MALNUTRITION
Medical aspects of impairment including all the domains mentioned in ICF
PE and Health 7 Quarter 3 Lesson 1 Day 3,4 and 5.pptx
Importance of Immediate Response (1).pptx

FHIR Server internals - sqlonfhir

  • 2. 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
  • 3. 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
  • 5. .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
  • 6. Dotnet client Hl7.Fhir.DSTU2.Core Server Utilities Hl7.Fhir.DSTU2.Server (variation on layer from SPARK) Base models Generated code + base structures Specialized models Hand coded stuff Sql structures The layers
  • 7. Full CRUD Search History Basic Terminology Services Extensible Operations Auditing Workflow (Internal) HTML view The FHIR features
  • 8. So where is this code then? Controller - Formatters Object Model Searching – Parsing Parameters Database Model Operations/Services Conformance Code Generation Unit testing HTML Views Anything else?
  • 9. 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?
  • 10. 1. Re-use from existing work, SPARK 2. Use the NuGET Package(s) 3. Don’t try and use the native .net parsers 4. Select the storage that is right for YOUR product, platform and clientbase 5. Consider fluentpath in your indexing 6. Unit test everything you build 7. Put it out there as a test platform (don’t be scared) 8. Test using ProjectCrucible and Touchstone 9. Start small and extend Building your own server?
  • 12. 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

Editor's Notes

  • #4: Considered also doing façade, cache, view and hybrid
  • #8: Not all search features from the spec are implemented, whole system history is missing,…
  • #9: Walkthrough of the actual core code inside our implementation!
  • #11: Remember to recap why FHIR is better than the status-quo solutions Existing implementations are not good enough.