Presentation on theme: "Building FHIR Servers on Existing Applications"— Presentation transcript:
1 Building FHIR Servers on Existing Applications Robert Worden
2 Outline FHIR and CDA Building FHIR Servers and Clients Mapping Application Databases to FHIRFHIR Server DemoFHIR Client for Multiple ServersFHIR and Data MatchingCDA-FHIR Bridge
3 More Meaningful Use of CDA When reading a CDA, a physician is not just a blank slate for new information.Often, he or she knows about the patient already.The physician needs to compare the new information in the CDA with what they already know.Their knowledge of the patient may be stored in an EMR.Comparing requires matching of information from the CDA, with information in the EMR:Match and identify the patientMatch clinical data for the patient (e.g. allergies, medications,..)Then (possibly) make updates to the EMR, at the physician’s discretion
4 Architecture for CDA Match/Compare Patient SearchParametersCDA Handler Module:Extract patient data from CDASearch and match patientsUser chooses the matching patientExtract clinical information from CDACompare with clinical information from application(User choice of updates to the application)Clinical Application(e.g. EHR)Candidate MatchingPatientsCDASelected MatchingPatientPatient ClinicalInformation(Updates to ClinicalInformation)Few clinical applications support this now.
5 FHIR-enabled CDA Match/Compare UserSearches onPatientCDA-FHIR BridgeSearch, Match and Display(FHIR client)FHIR server adapter forapplicationClinical ApplicationPatientResourceCandidatePatient resourcessearchCDAFHIRdataFHIRSearches onClinicalResourcesSearches onClinical ResourcesClinicalResourcesClinicalResources(update)(Updates to ClinicalResources)Three components simplify implementation.
6 Building FHIR Servers and Clients from Existing Applications Client AServer BUser InterfaceUser InterfaceBusinessLogicFHIRAdapterFHIRAdapterBusinessLogicRelationalDatabaseRelationalDatabase
7 What FHIR Adapters Do(Client) compose a FHIR search request (e.g. for a Patient Resource, with given NHS number).(Client) send the FHIR search request(Server) translate the FHIR search request into search commands for its internal data structures (e.g. SQL)(Server) translate the results of internal searches (e.g. SQL ResultSets) into FHIR resources(Server) send a bundle of FHIR Resources(Client) translate the FHIR resources into its internal data structures (e.g. RDBMS records)
8 Three Kinds of Data Transform FHIR Search => Search commands for internal data structuresInternal data structures => FHIR resourceFHIR resource => Internal data structuresDo you need to write software to do this? No:All three types of data transform can be generatedfrom one set of declarative mappings.
9 Mapping and Transformation Toolset Define a Logical Model of information to be exchanged (UML, expressed in Eclipse Ecore)Define Mappings of any physical data structure onto the Logical ModelMappings state precisely how the physical data structure represents information in the logical model.Mappings are declarative and easily testable.Open Source tools are used to define, validate, and test the mappings.The same tools generate any-to-any transforms between the data structures (in Java or XSLT)Generated transforms are precise and testable (e.g. round trip tests)
10 Mappings, Transforms, and FHIR CDA XML StructureM = mappingsB = BridgeMV2 XML Data StructureFHIR class model(EMF Ecore)FHIR Java reference implementationFHIR serialisation (XML or JSON)MBMRelational Database StructureAny-to-any transforms can be generated from the mappings.We are interested in Relational Database <=> FHIR
11 Mapping a Relational Database to the FHIR Patient Resource
12 FHIR Server Farm Web service under Tomcat Currently two FHIR servers, created by mapping Relational Databases to FHIR resources:PAS system database‘Noddy’ patient database (1 table)Jdbc access to the databasesRead-only FHIR servers for the Patient resourceSupport a range of Patient searchesEach server is defined entirely by configuration filesNo database-specific or resource-specific code
13 FHIR Server Farm Architecture Web server (e.g. Tomcat)RelationalDatabase 1BrowserjdbchttpFHIRMulti-ServerRelationalDatabase 2Client ApplicationConfiguration FileConfiguration FileConfiguration File 3RelationalDatabase 3No Database-specific or Resource-specific code!
15 FHIR and IHE PDQ (HL7 V2.5) FHIR Search QBP^Q22 Patient Resources ServerQBP^Q22PatientDemographicsSupplierPatientResourcesRSP^K22
16 FHIR and Data MatchingAs soon as a provider has two or more FHIR servers for the Patient resource, they can compare the Patients across them (in the common FHIR representation).An application can interrogate the different FHIR servers, and compare the resultsAn Open Source Comparative Query Tool can compare across the servers, in terms of the FHIR Patient class modelBulk data matching and de-duplication can be done across databases (proprietary tool)
18 CDA-FHIR Bridge Enables any incoming CDA as a small FHIR server The CDA ‘server’ supports FHIR searches on common resources (Patient, AllergyIntolerance,...)This is not a full transform from CDA to a FHIR Composition resource; extracting specific FHIR resources is much easierTransforms depend on CDA templatesThere will be a different bridge for each CDA profileThere is no dependence on the EHR application – the bridge is universal for each CDA profileEasy to build
19 The CDA-FHIR Opportunity Applications FHIR-enabledfor other reasonsBuildCDA-FHIRbridgesFHIR-enabledapplications can easily make MeaningfulUse of CDAMore applications FHIR-enabled, to make meaningful use of CDAMoretakeup of CDAEasier to make meaningful use of CDAVirtuous Circle
20 FHIR Mapping Tools: Work In Progress Deployment: currently deploying a FHIR Patient server for an NHS Trust; more are plannedSearches: extend capability to more types of search, e.g. date range, alternative values,...Extensions: can hide the extra complexity of FHIR extensions – extensions are identical to core features, in the Ecore class model and in mappings.Write operations: The tools generate the required data transforms, but will always require business logicDocumentation of the Open Source Tools: Real soon nowFHIR Server Configuration Service: ask