SlideShare a Scribd company logo
FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7.
Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com
Building Bridges: Mapping HL7 V2 to FHIR
Simone Heckmann, Gefyra GmbH / HL7 Germany
Who we are
„gefyra“ is the Greek word for „bridge“
We offer
• FHIR training,
• consultancy for FHIR projects
• professional tooling
• integration services (j/w Health-Comm,
based on INfOR Cloverleaf®)
We have been involved with FHIR since
2014,
have tested our V2 mappings on > 7
Connectathons,
and have them running in production
environments
V2-based EHR
Integration Engine
FHIR-Server
FHIR-Clients
ADT-Messages
?
FHIR als Daten-Hub
6
Integration Engine
Scenario
• Mapping a V2 ADT_A01 message
http://wiki.hl7.org/index.php?title=Version_2_
-_FHIR_Mapping_Scenarios
MSH|^~&|LegacyEHR||SPARK||20150502090000||ADT^A01|00000002|P|2.5
EVN|A01|20150502090000|
PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||Gefyra^Alpha^F^^Ms^
^L||19280524|F|||Bridge Street 22^^Bridgetown^^^12345^^^^P||277543^PRN|||U||
NK1|1|Gefyra^Beta|FTH|||+44 201 12345678||
PV1||I|INT^0001^02^GENHOS||||0100^ANDERSON,CARL|0148^ADDISON,JAMES||SUR|||||||
0148^ANDERSON,CARL|S|234637^^^GENHOS|A|||||||||||||||||||GENHOS|||||2015050209
0000|
AL1|1|DA|1605^acetaminophen^L|MO|Muscle Pain~hair loss
AL1|2|DA|1558^Oxycodone^L|MO|Muscle Pain~hair loss
AL1|3|MA|2221^Peanuts^L|SV|Anaphylactic Shock
MSH|^~&|LegacyEHR||SPARK||20150502090000||ADT^A01|00000002|P|2.5
EVN|A01|20150502090000|
PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||Gefyra^Alpha^F^^Ms^
^L||19280524|F|||Bridge Street 22^^Bridgetown^^^12345^^^^P||277543^PRN|||U||
NK1|1|Gefyra^Beta|FTH|||+44 201 12345678||
PV1||I|INT^0001^02^GENHOS||||0100^ANDERSON,CARL|0148^ADDISON,JAMES||SUR|||||||
0148^ANDERSON,CARL|S|234637^^^GENHOS|A|||||||||||||||||||GENHOS|||||2015050209
0000|
AL1|1|DA|1605^acetaminophen^L|MO|Muscle Pain~hair loss
AL1|2|DA|1558^Oxycodone^L|MO|Muscle Pain~hair loss
AL1|3|MA|2221^Peanuts^L|SV|Anaphylactic Shock
Patient
Encounter
AllergyIntolerance(s)
MessageHeader
…so, it‘s a Bundle of Resources!
• Yes. But there are multiple types
of Bundles.
Is it a message, a batch, a
transaction or a document…?
http://build.fhir.org/bundle.html
A message, obviously!
• True, but which event? Which
structure? What‘s the logic
associated with the event? Does
the server know all this?
• Do we really want to re-implement
V2 messaging with FHIR?
http://build.fhir.org/messagedefinition.html
So what do we do?
• We (the integration engine) know
what the events mean and which
actions we expect the server to
perform. So we can tell the server
what to do.
• Let‘s try Transactions!
how
what
MSH|^~&|LegacyEHR||SPARK||20150502090000||ADT^A01|00000002|P|2.5
EVN|A01|20150502090000|
PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||Gefyra^Alpha^F^^Ms^
^L||19280524|F|||Bridge Street 22^^Bridgetown^^^12345^^^^P||277543^PRN|||U||
NK1|1|Gefyra^Beta|FTH|||+44 201 12345678||
PV1||I|INT^0001^02^GENHOS||||0100^ANDERSON,CARL|0148^ADDISON,JAMES||SUR|||||||
0148^ANDERSON,CARL|S|234637^^^GENHOS|A|||||||||||||||||||GENHOS|||||2015050209
0000|
AL1|1|DA|1605^acetaminophen^L|MO|Muscle Pain~hair loss
AL1|2|DA|1558^Oxycodone^L|MO|Muscle Pain~hair loss
AL1|3|MA|2221^Peanuts^L|SV|Anaphylactic Shock
Patient -> create/update?
Encounter -> create
AllergyIntolerance(s) -> purge/create
Now, let‘s REST-ify that!
How do I update/create?
• We need to check if the Patient
already exists. If it does, we want
to PUT, if it doesn‘t we want to
POST.
• Enter the „Conditional UPDATE“!
http://build.fhir.org/http.html#2.42.0.10.2
So what‘s the criteria?
• The Conditional UPDATE will fail if
it matches multiple resources, so
our criteria must identify the
Patient uniquely.
• Sounds like „identifier“, right?
http://build.fhir.org/search.html#token
PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||
urn:oid:2.16.840.1.113883.2.1.4.1 http://www.ghh.org/identifiers
How do I purge/create?
• First, we need to DELETE all
previously submitted
AllergyIntolerances, then POST the
new ones. But wait! We need to
make sure, we only delete the
ones we (the integration engine)
created!
• Enter the „Conditional Delete“!
http://build.fhir.org/http.html#2.42.0.12.1
So what‘s the criteria?
• Somehow we need to be able to
recognize the AllergyIntolerances
we submitted.
This can be achieved by either
• adding tags to the resource
metadata (simple) or
• using Provenance resources (not
so simple, but more powerful)
http://build.fhir.org/resource.html#Meta
http://build.fhir.org/provenance.html
So, if we use tags, our criteria is:
DELETE [base]/AllergyIntolerance?patient.identifier=[?]&_tag=[?]
„chained search“ „token parameter“
These are our resources!
That‘s us!
So, in our case:
GET [base]/AllergyIntolerance?patient.identifier=[?]&_has:Provenance:agent:device=[?]
We also need to create a Device resource!
Advantage: the Provenance Resource also gives us an chance to store the original message for traceability as an
Attachment. (…yes, we need to create that resource, too…)
Does that really work?
• Well, we made it work (at least,
with tags)
after changing the processing
order for Transactions to
DELETE > POST > PUT > GET
http://build.fhir.org/http.html#2.42.0.16.2
Now: the field mapping!
• Check the „mapping“ tab at the
top of each resource
• There‘s no „one-size-fits-all“ – V2
structures and FHIR server
requirements will vary!
• + look at the FHIR mapping
language and StructureMap
resource!
• + look at ConceptMap resource
and the $translate-Operation!
http://build.fhir.org/mapping-language.html
http://build.fhir.org/structuremap.html
http://build.fhir.org/conceptmap.html
http://build.fhir.org/terminology-service.html#4.6.8
How do I reference a resource that doesn‘t have a url
(yet)?
• Assign a UUID to every
Bundle.entry.fullUrl
Then reference the associated
resource by this uri.
The server must replace UUIDs
with the actual urls when
processing the Transaction
http://build.fhir.org/bundle.html#references
But what if I don‘t want to touch the resource I need to
reference?
• Conditional Update will update the
matching resource,
Conditional Create will create a
new resource if none matches.
Both can get us into trouble, if we
don‘t have permission to
create/update specific resources.
• Solution: Use Conditional
References instead!
http://build.fhir.org/bundle.html#references
Limitations!
• V2 Source will overwrite all changes and additions to Resources on
the Server (-> Patch)
• There is no „trigger“ to invoke additional actions on the server (->
Message/Operations)
• „Merge“ is tricky (-> Operations)
• Doesn‘t work in the absence of REST Protocol (-> Message)
• Is it PV1 actually an Encounter or rather an EpisodeOfCare?
The MERGE hack
• Create two Patient resource from the A40‘s PID, one with the good, one
with the bad identifier.
• Create the conditional update URLs accordingly
• Add a link (type=„replaces“) from the good to the bad Patient
• Add a link (type=„replaced-by“) from the bad to the good Patient
• Set the bad Patient to „inactive“
• Downside: we‘re losing the NK1 information when updating the good
patient! -> try to PATCH the link into the good Patient instead
What if the server doesn‘t support Transactions?
• Basically, the Transaction Bundle constitutes a list of
individual, atomic REST interactions. We can run them
through „post processing“ and split them up.
• But remember: we have to handle the replacing of the
UUIDs with the actual URLs ourselves!
• We can even split the Conditional interactions up into a
GET and PUT/POST/DELETE interaction,
But then we have to deal with the errors on our side.
You can move complexity around,
but you can‘t make it go away
(Grahame Grieve)
Client Server
Message
Transaction
Plain REST
Complexity
Complexity
Client Server
V2-based EHR
Integration Engine
FHIR-Server
FHIR-Clients
ADT-Messages
Transaction-Bundles
V2-based EHR
Integration Engine
FHIR-Server
FHIR-Clients
ORU-Messages
/Observation/_history
Searchset Bundle
?
_history Subscription
+ reliability
+ simple to implement
+ repeatable (if something went
wrong)
- not selective/high traffic
- delay
- second interaction for includes
+ realtime
+ selective
+ low bandwidth
- no queueing
- no trigger if a resource drops out
of your selection
What next?
• Tell us about your use case and join the Hands On
• Give feedback at https://chat.fhir.org/#narrow/stream/v2.20to.20FHIR
• Join the discussion on how to handle merge
• Join the next connectathon in San Antonio and help us to
evaluate Subscription and _history interactions to transfer
Resources from a FHIR server back to a V2 system
http://wiki.hl7.org/index.php?title=201701_Resource_Subscription_Track
we make fhir® work

More Related Content

What's hot

Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)
DevDays
 
Fhir dev days 2017 fhir profiling - overview and introduction v07
Fhir dev days 2017   fhir profiling - overview and introduction v07Fhir dev days 2017   fhir profiling - overview and introduction v07
Fhir dev days 2017 fhir profiling - overview and introduction v07
DevDays
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)
DevDays
 
Fhir foundation (grahame)
Fhir foundation (grahame)Fhir foundation (grahame)
Fhir foundation (grahame)
DevDays
 
20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance
DevDays
 
2017 11-ccda-on-fhir
2017 11-ccda-on-fhir2017 11-ccda-on-fhir
2017 11-ccda-on-fhir
DevDays
 
Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17
DevDays
 
Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)
DevDays
 
Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)
DevDays
 
Furore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirFurore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhir
DevDays
 
final Keynote (grahame)
final Keynote (grahame)final Keynote (grahame)
final Keynote (grahame)
DevDays
 
Fhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesFhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_services
DevDays
 
Profiling with clin fhir
Profiling with clin fhirProfiling with clin fhir
Profiling with clin fhir
DevDays
 
Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1
DevDays
 
Fhir tooling (grahame)
Fhir tooling (grahame)Fhir tooling (grahame)
Fhir tooling (grahame)
DevDays
 
Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)
DevDays
 
Building on cerner with smart on fhir fhir dev days 2017
Building on cerner with smart on fhir   fhir dev days 2017Building on cerner with smart on fhir   fhir dev days 2017
Building on cerner with smart on fhir fhir dev days 2017
DevDays
 
Beginners .net api dev days2017
Beginners  .net api   dev days2017Beginners  .net api   dev days2017
Beginners .net api dev days2017
DevDays
 
IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017
Brad Genereaux
 
Building a Scenario using clinFHIR
Building a Scenario using clinFHIRBuilding a Scenario using clinFHIR
Building a Scenario using clinFHIR
DevDays
 

What's hot (20)

Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)
 
Fhir dev days 2017 fhir profiling - overview and introduction v07
Fhir dev days 2017   fhir profiling - overview and introduction v07Fhir dev days 2017   fhir profiling - overview and introduction v07
Fhir dev days 2017 fhir profiling - overview and introduction v07
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)
 
Fhir foundation (grahame)
Fhir foundation (grahame)Fhir foundation (grahame)
Fhir foundation (grahame)
 
20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance20171116 rene spronk_profiling_governance
20171116 rene spronk_profiling_governance
 
2017 11-ccda-on-fhir
2017 11-ccda-on-fhir2017 11-ccda-on-fhir
2017 11-ccda-on-fhir
 
Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17Integrating with the epic platform fhir dev days 17
Integrating with the epic platform fhir dev days 17
 
Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)Furore devdays 2017- rdf2(solbrig)
Furore devdays 2017- rdf2(solbrig)
 
Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)Furore devdays 2017-sdc (lloyd)
Furore devdays 2017-sdc (lloyd)
 
Furore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhirFurore devdays 2017- continua implementing fhir
Furore devdays 2017- continua implementing fhir
 
final Keynote (grahame)
final Keynote (grahame)final Keynote (grahame)
final Keynote (grahame)
 
Fhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_servicesFhir dev days_basic_fhir_terminology_services
Fhir dev days_basic_fhir_terminology_services
 
Profiling with clin fhir
Profiling with clin fhirProfiling with clin fhir
Profiling with clin fhir
 
Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1Furore devdays 2017- profiling academy - profiling guidelines v1
Furore devdays 2017- profiling academy - profiling guidelines v1
 
Fhir tooling (grahame)
Fhir tooling (grahame)Fhir tooling (grahame)
Fhir tooling (grahame)
 
Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)Dev days 2017 questionnaires (brian postlethwaite)
Dev days 2017 questionnaires (brian postlethwaite)
 
Building on cerner with smart on fhir fhir dev days 2017
Building on cerner with smart on fhir   fhir dev days 2017Building on cerner with smart on fhir   fhir dev days 2017
Building on cerner with smart on fhir fhir dev days 2017
 
Beginners .net api dev days2017
Beginners  .net api   dev days2017Beginners  .net api   dev days2017
Beginners .net api dev days2017
 
IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017IHE on FHIR and DICOMweb 2017
IHE on FHIR and DICOMweb 2017
 
Building a Scenario using clinFHIR
Building a Scenario using clinFHIRBuilding a Scenario using clinFHIR
Building a Scenario using clinFHIR
 

Similar to Building bridges devdays 2017- powerpoint template

Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIR
Igor Bossenko
 
Combining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsCombining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIs
Brad Genereaux
 
HL7 Survival Guide - Chapter 10 – Process and Workflow
HL7 Survival Guide - Chapter 10 – Process and WorkflowHL7 Survival Guide - Chapter 10 – Process and Workflow
HL7 Survival Guide - Chapter 10 – Process and Workflow
Caristix
 
Automation for the Humans
Automation for the HumansAutomation for the Humans
Automation for the Humans
Rakuten Group, Inc.
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
apidays
 
How to get along with HATEOAS without letting the bad guys steal your lunch -...
How to get along with HATEOAS without letting the bad guys steal your lunch -...How to get along with HATEOAS without letting the bad guys steal your lunch -...
How to get along with HATEOAS without letting the bad guys steal your lunch -...
YK Chang
 
Flexible EDI Solutions for the SMB Market
Flexible EDI Solutions for the SMB MarketFlexible EDI Solutions for the SMB Market
Flexible EDI Solutions for the SMB Market
Zach Gardner
 
DevOps Deconstructed
DevOps DeconstructedDevOps Deconstructed
DevOps Deconstructed
Jeremy Pullen
 
UKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12c
UKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12cUKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12c
UKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12c
Bruno Alves
 
Iehr ciif sdk-slides-draft-h
Iehr ciif sdk-slides-draft-hIehr ciif sdk-slides-draft-h
Iehr ciif sdk-slides-draft-h
ckuyehar
 
services order
services orderservices order
services order
Charan Patnaik
 
WSO2 ESB Integration with REST
WSO2 ESB Integration with RESTWSO2 ESB Integration with REST
WSO2 ESB Integration with REST
WSO2
 
Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?
Akana
 
Taming Big Data with Big SQL 3.0
Taming Big Data with Big SQL 3.0Taming Big Data with Big SQL 3.0
Taming Big Data with Big SQL 3.0
Nicolas Morales
 
Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...
Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...
Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...
Telmediq
 
API Design Tour: Digital River
API Design Tour: Digital RiverAPI Design Tour: Digital River
API Design Tour: Digital River
Apigee | Google Cloud
 
EVOLVE'13 | Keynote | Roy Fielding
EVOLVE'13 | Keynote | Roy FieldingEVOLVE'13 | Keynote | Roy Fielding
EVOLVE'13 | Keynote | Roy Fielding
Evolve The Adobe Digital Marketing Community
 
EVOLVE`13 Keynote: Scrambled Eggs
EVOLVE`13 Keynote: Scrambled EggsEVOLVE`13 Keynote: Scrambled Eggs
EVOLVE`13 Keynote: Scrambled Eggs
Roy Fielding
 
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected BusinessWSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2
 
Cloud Side: REST APIs - Best practices
Cloud Side: REST APIs - Best practicesCloud Side: REST APIs - Best practices
Cloud Side: REST APIs - Best practices
Nicolas FOATA
 

Similar to Building bridges devdays 2017- powerpoint template (20)

Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIR
 
Combining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIsCombining Healthcare Standards with Other RESTful APIs
Combining Healthcare Standards with Other RESTful APIs
 
HL7 Survival Guide - Chapter 10 – Process and Workflow
HL7 Survival Guide - Chapter 10 – Process and WorkflowHL7 Survival Guide - Chapter 10 – Process and Workflow
HL7 Survival Guide - Chapter 10 – Process and Workflow
 
Automation for the Humans
Automation for the HumansAutomation for the Humans
Automation for the Humans
 
Lessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptxLessons learned on the Azure API Stewardship Journey.pptx
Lessons learned on the Azure API Stewardship Journey.pptx
 
How to get along with HATEOAS without letting the bad guys steal your lunch -...
How to get along with HATEOAS without letting the bad guys steal your lunch -...How to get along with HATEOAS without letting the bad guys steal your lunch -...
How to get along with HATEOAS without letting the bad guys steal your lunch -...
 
Flexible EDI Solutions for the SMB Market
Flexible EDI Solutions for the SMB MarketFlexible EDI Solutions for the SMB Market
Flexible EDI Solutions for the SMB Market
 
DevOps Deconstructed
DevOps DeconstructedDevOps Deconstructed
DevOps Deconstructed
 
UKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12c
UKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12cUKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12c
UKOUG Tech15 - Use Case with Oracle SOA Integration for Healthcare – 12c
 
Iehr ciif sdk-slides-draft-h
Iehr ciif sdk-slides-draft-hIehr ciif sdk-slides-draft-h
Iehr ciif sdk-slides-draft-h
 
services order
services orderservices order
services order
 
WSO2 ESB Integration with REST
WSO2 ESB Integration with RESTWSO2 ESB Integration with REST
WSO2 ESB Integration with REST
 
Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?Making Sense of Hypermedia APIs – Hype or Reality?
Making Sense of Hypermedia APIs – Hype or Reality?
 
Taming Big Data with Big SQL 3.0
Taming Big Data with Big SQL 3.0Taming Big Data with Big SQL 3.0
Taming Big Data with Big SQL 3.0
 
Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...
Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...
Wellness Through Workflow: How Workflow Contributes to a Better Patient Exper...
 
API Design Tour: Digital River
API Design Tour: Digital RiverAPI Design Tour: Digital River
API Design Tour: Digital River
 
EVOLVE'13 | Keynote | Roy Fielding
EVOLVE'13 | Keynote | Roy FieldingEVOLVE'13 | Keynote | Roy Fielding
EVOLVE'13 | Keynote | Roy Fielding
 
EVOLVE`13 Keynote: Scrambled Eggs
EVOLVE`13 Keynote: Scrambled EggsEVOLVE`13 Keynote: Scrambled Eggs
EVOLVE`13 Keynote: Scrambled Eggs
 
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected BusinessWSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
WSO2Con Asia 2014 - Reinventing Enterprise Integration for Connected Business
 
Cloud Side: REST APIs - Best practices
Cloud Side: REST APIs - Best practicesCloud Side: REST APIs - Best practices
Cloud Side: REST APIs - Best practices
 

More from DevDays

Consent dev days
Consent dev daysConsent dev days
Consent dev days
DevDays
 
Mohannad hussain dicom and imaging tools
Mohannad hussain   dicom and imaging toolsMohannad hussain   dicom and imaging tools
Mohannad hussain dicom and imaging tools
DevDays
 
Mohannad hussain community track - siim dataset & dico mweb proxy
Mohannad hussain   community track - siim dataset & dico mweb proxyMohannad hussain   community track - siim dataset & dico mweb proxy
Mohannad hussain community track - siim dataset & dico mweb proxy
DevDays
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)
DevDays
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)
DevDays
 
Quality improvement dev days-2017
Quality improvement dev days-2017Quality improvement dev days-2017
Quality improvement dev days-2017
DevDays
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)
DevDays
 
Furore devdays 2017- oai
Furore devdays 2017- oaiFurore devdays 2017- oai
Furore devdays 2017- oai
DevDays
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)
DevDays
 
Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)
DevDays
 
Connectathon opening 2017
Connectathon opening 2017Connectathon opening 2017
Connectathon opening 2017
DevDays
 
20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm
DevDays
 
Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)
DevDays
 
Opening student track
Opening student trackOpening student track
Opening student track
DevDays
 
Fhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesFhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_services
DevDays
 
Distributing cds dev days-2017
Distributing cds dev days-2017Distributing cds dev days-2017
Distributing cds dev days-2017
DevDays
 

More from DevDays (16)

Consent dev days
Consent dev daysConsent dev days
Consent dev days
 
Mohannad hussain dicom and imaging tools
Mohannad hussain   dicom and imaging toolsMohannad hussain   dicom and imaging tools
Mohannad hussain dicom and imaging tools
 
Mohannad hussain community track - siim dataset & dico mweb proxy
Mohannad hussain   community track - siim dataset & dico mweb proxyMohannad hussain   community track - siim dataset & dico mweb proxy
Mohannad hussain community track - siim dataset & dico mweb proxy
 
Transforming other content (grahame)
Transforming other content (grahame)Transforming other content (grahame)
Transforming other content (grahame)
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)
 
Quality improvement dev days-2017
Quality improvement dev days-2017Quality improvement dev days-2017
Quality improvement dev days-2017
 
Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)Furore devdays 2017- rdf1(solbrig)
Furore devdays 2017- rdf1(solbrig)
 
Furore devdays 2017- oai
Furore devdays 2017- oaiFurore devdays 2017- oai
Furore devdays 2017- oai
 
Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)Furore devdays 2017 - implementation guides (lloyd)
Furore devdays 2017 - implementation guides (lloyd)
 
Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)Dev days 2017 advanced directories (brian postlethwaite)
Dev days 2017 advanced directories (brian postlethwaite)
 
Connectathon opening 2017
Connectathon opening 2017Connectathon opening 2017
Connectathon opening 2017
 
20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm20171127 rene spronk_messaging_the_unloved_paradigm
20171127 rene spronk_messaging_the_unloved_paradigm
 
Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)Vonk fhir facade (christiaan)
Vonk fhir facade (christiaan)
 
Opening student track
Opening student trackOpening student track
Opening student track
 
Fhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_servicesFhir dev days_advanced_fhir_terminology_services
Fhir dev days_advanced_fhir_terminology_services
 
Distributing cds dev days-2017
Distributing cds dev days-2017Distributing cds dev days-2017
Distributing cds dev days-2017
 

Recently uploaded

writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
Nicholas Montgomery
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
adhitya5119
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
Jean Carlos Nunes Paixão
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Fajar Baskoro
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
tarandeep35
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
Dr. Shivangi Singh Parihar
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
Celine George
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
Nicholas Montgomery
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
adhitya5119
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
eBook.com.bd (প্রয়োজনীয় বাংলা বই)
 
Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5
sayalidalavi006
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
Celine George
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
TechSoup
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
Katrina Pritchard
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
paigestewart1632
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
Celine George
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
Nguyen Thanh Tu Collection
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
Academy of Science of South Africa
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
ak6969907
 
Life upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for studentLife upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for student
NgcHiNguyn25
 

Recently uploaded (20)

writing about opinions about Australia the movie
writing about opinions about Australia the moviewriting about opinions about Australia the movie
writing about opinions about Australia the movie
 
Main Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docxMain Java[All of the Base Concepts}.docx
Main Java[All of the Base Concepts}.docx
 
A Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdfA Independência da América Espanhola LAPBOOK.pdf
A Independência da América Espanhola LAPBOOK.pdf
 
Pengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptxPengantar Penggunaan Flutter - Dart programming language1.pptx
Pengantar Penggunaan Flutter - Dart programming language1.pptx
 
S1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptxS1-Introduction-Biopesticides in ICM.pptx
S1-Introduction-Biopesticides in ICM.pptx
 
PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.PCOS corelations and management through Ayurveda.
PCOS corelations and management through Ayurveda.
 
How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17How to Fix the Import Error in the Odoo 17
How to Fix the Import Error in the Odoo 17
 
Film vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movieFilm vocab for eal 3 students: Australia the movie
Film vocab for eal 3 students: Australia the movie
 
Advanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docxAdvanced Java[Extra Concepts, Not Difficult].docx
Advanced Java[Extra Concepts, Not Difficult].docx
 
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdfবাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
বাংলাদেশ অর্থনৈতিক সমীক্ষা (Economic Review) ২০২৪ UJS App.pdf
 
Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5Community pharmacy- Social and preventive pharmacy UNIT 5
Community pharmacy- Social and preventive pharmacy UNIT 5
 
How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17How to Make a Field Mandatory in Odoo 17
How to Make a Field Mandatory in Odoo 17
 
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat  Leveraging AI for Diversity, Equity, and InclusionExecutive Directors Chat  Leveraging AI for Diversity, Equity, and Inclusion
Executive Directors Chat Leveraging AI for Diversity, Equity, and Inclusion
 
BBR 2024 Summer Sessions Interview Training
BBR  2024 Summer Sessions Interview TrainingBBR  2024 Summer Sessions Interview Training
BBR 2024 Summer Sessions Interview Training
 
Cognitive Development Adolescence Psychology
Cognitive Development Adolescence PsychologyCognitive Development Adolescence Psychology
Cognitive Development Adolescence Psychology
 
How to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP ModuleHow to Add Chatter in the odoo 17 ERP Module
How to Add Chatter in the odoo 17 ERP Module
 
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
BÀI TẬP BỔ TRỢ TIẾNG ANH 8 CẢ NĂM - GLOBAL SUCCESS - NĂM HỌC 2023-2024 (CÓ FI...
 
South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)South African Journal of Science: Writing with integrity workshop (2024)
South African Journal of Science: Writing with integrity workshop (2024)
 
World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024World environment day ppt For 5 June 2024
World environment day ppt For 5 June 2024
 
Life upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for studentLife upper-Intermediate B2 Workbook for student
Life upper-Intermediate B2 Workbook for student
 

Building bridges devdays 2017- powerpoint template

  • 1. FHIR® is the registered trademark of HL7 and is used with the permission of HL7. The Flame Design mark is the registered trademark of HL7 and is used with the permission of HL7. Amsterdam, 15-17 November | @fhir_furore | #fhirdevdays17 | www.fhirdevdays.com Building Bridges: Mapping HL7 V2 to FHIR Simone Heckmann, Gefyra GmbH / HL7 Germany
  • 2. Who we are „gefyra“ is the Greek word for „bridge“ We offer • FHIR training, • consultancy for FHIR projects • professional tooling • integration services (j/w Health-Comm, based on INfOR Cloverleaf®) We have been involved with FHIR since 2014, have tested our V2 mappings on > 7 Connectathons, and have them running in production environments
  • 5. Scenario • Mapping a V2 ADT_A01 message http://wiki.hl7.org/index.php?title=Version_2_ -_FHIR_Mapping_Scenarios
  • 6. MSH|^~&|LegacyEHR||SPARK||20150502090000||ADT^A01|00000002|P|2.5 EVN|A01|20150502090000| PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||Gefyra^Alpha^F^^Ms^ ^L||19280524|F|||Bridge Street 22^^Bridgetown^^^12345^^^^P||277543^PRN|||U|| NK1|1|Gefyra^Beta|FTH|||+44 201 12345678|| PV1||I|INT^0001^02^GENHOS||||0100^ANDERSON,CARL|0148^ADDISON,JAMES||SUR||||||| 0148^ANDERSON,CARL|S|234637^^^GENHOS|A|||||||||||||||||||GENHOS|||||2015050209 0000| AL1|1|DA|1605^acetaminophen^L|MO|Muscle Pain~hair loss AL1|2|DA|1558^Oxycodone^L|MO|Muscle Pain~hair loss AL1|3|MA|2221^Peanuts^L|SV|Anaphylactic Shock
  • 7. MSH|^~&|LegacyEHR||SPARK||20150502090000||ADT^A01|00000002|P|2.5 EVN|A01|20150502090000| PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||Gefyra^Alpha^F^^Ms^ ^L||19280524|F|||Bridge Street 22^^Bridgetown^^^12345^^^^P||277543^PRN|||U|| NK1|1|Gefyra^Beta|FTH|||+44 201 12345678|| PV1||I|INT^0001^02^GENHOS||||0100^ANDERSON,CARL|0148^ADDISON,JAMES||SUR||||||| 0148^ANDERSON,CARL|S|234637^^^GENHOS|A|||||||||||||||||||GENHOS|||||2015050209 0000| AL1|1|DA|1605^acetaminophen^L|MO|Muscle Pain~hair loss AL1|2|DA|1558^Oxycodone^L|MO|Muscle Pain~hair loss AL1|3|MA|2221^Peanuts^L|SV|Anaphylactic Shock Patient Encounter AllergyIntolerance(s) MessageHeader
  • 8. …so, it‘s a Bundle of Resources! • Yes. But there are multiple types of Bundles. Is it a message, a batch, a transaction or a document…? http://build.fhir.org/bundle.html
  • 9.
  • 10. A message, obviously! • True, but which event? Which structure? What‘s the logic associated with the event? Does the server know all this? • Do we really want to re-implement V2 messaging with FHIR? http://build.fhir.org/messagedefinition.html
  • 11. So what do we do? • We (the integration engine) know what the events mean and which actions we expect the server to perform. So we can tell the server what to do. • Let‘s try Transactions!
  • 13. MSH|^~&|LegacyEHR||SPARK||20150502090000||ADT^A01|00000002|P|2.5 EVN|A01|20150502090000| PID|1||345345412312345^10^^NHS^NH~456756756745^^^TCPAS^MR||Gefyra^Alpha^F^^Ms^ ^L||19280524|F|||Bridge Street 22^^Bridgetown^^^12345^^^^P||277543^PRN|||U|| NK1|1|Gefyra^Beta|FTH|||+44 201 12345678|| PV1||I|INT^0001^02^GENHOS||||0100^ANDERSON,CARL|0148^ADDISON,JAMES||SUR||||||| 0148^ANDERSON,CARL|S|234637^^^GENHOS|A|||||||||||||||||||GENHOS|||||2015050209 0000| AL1|1|DA|1605^acetaminophen^L|MO|Muscle Pain~hair loss AL1|2|DA|1558^Oxycodone^L|MO|Muscle Pain~hair loss AL1|3|MA|2221^Peanuts^L|SV|Anaphylactic Shock Patient -> create/update? Encounter -> create AllergyIntolerance(s) -> purge/create
  • 15. How do I update/create? • We need to check if the Patient already exists. If it does, we want to PUT, if it doesn‘t we want to POST. • Enter the „Conditional UPDATE“! http://build.fhir.org/http.html#2.42.0.10.2
  • 16.
  • 17. So what‘s the criteria? • The Conditional UPDATE will fail if it matches multiple resources, so our criteria must identify the Patient uniquely. • Sounds like „identifier“, right? http://build.fhir.org/search.html#token
  • 19. How do I purge/create? • First, we need to DELETE all previously submitted AllergyIntolerances, then POST the new ones. But wait! We need to make sure, we only delete the ones we (the integration engine) created! • Enter the „Conditional Delete“! http://build.fhir.org/http.html#2.42.0.12.1
  • 20. So what‘s the criteria? • Somehow we need to be able to recognize the AllergyIntolerances we submitted. This can be achieved by either • adding tags to the resource metadata (simple) or • using Provenance resources (not so simple, but more powerful) http://build.fhir.org/resource.html#Meta http://build.fhir.org/provenance.html
  • 21. So, if we use tags, our criteria is: DELETE [base]/AllergyIntolerance?patient.identifier=[?]&_tag=[?] „chained search“ „token parameter“
  • 22. These are our resources! That‘s us!
  • 23. So, in our case: GET [base]/AllergyIntolerance?patient.identifier=[?]&_has:Provenance:agent:device=[?] We also need to create a Device resource! Advantage: the Provenance Resource also gives us an chance to store the original message for traceability as an Attachment. (…yes, we need to create that resource, too…)
  • 24. Does that really work? • Well, we made it work (at least, with tags) after changing the processing order for Transactions to DELETE > POST > PUT > GET http://build.fhir.org/http.html#2.42.0.16.2
  • 25. Now: the field mapping! • Check the „mapping“ tab at the top of each resource • There‘s no „one-size-fits-all“ – V2 structures and FHIR server requirements will vary! • + look at the FHIR mapping language and StructureMap resource! • + look at ConceptMap resource and the $translate-Operation! http://build.fhir.org/mapping-language.html http://build.fhir.org/structuremap.html http://build.fhir.org/conceptmap.html http://build.fhir.org/terminology-service.html#4.6.8
  • 26. How do I reference a resource that doesn‘t have a url (yet)? • Assign a UUID to every Bundle.entry.fullUrl Then reference the associated resource by this uri. The server must replace UUIDs with the actual urls when processing the Transaction http://build.fhir.org/bundle.html#references
  • 27.
  • 28. But what if I don‘t want to touch the resource I need to reference? • Conditional Update will update the matching resource, Conditional Create will create a new resource if none matches. Both can get us into trouble, if we don‘t have permission to create/update specific resources. • Solution: Use Conditional References instead! http://build.fhir.org/bundle.html#references
  • 29.
  • 30. Limitations! • V2 Source will overwrite all changes and additions to Resources on the Server (-> Patch) • There is no „trigger“ to invoke additional actions on the server (-> Message/Operations) • „Merge“ is tricky (-> Operations) • Doesn‘t work in the absence of REST Protocol (-> Message) • Is it PV1 actually an Encounter or rather an EpisodeOfCare?
  • 31. The MERGE hack • Create two Patient resource from the A40‘s PID, one with the good, one with the bad identifier. • Create the conditional update URLs accordingly • Add a link (type=„replaces“) from the good to the bad Patient • Add a link (type=„replaced-by“) from the bad to the good Patient • Set the bad Patient to „inactive“ • Downside: we‘re losing the NK1 information when updating the good patient! -> try to PATCH the link into the good Patient instead
  • 32. What if the server doesn‘t support Transactions? • Basically, the Transaction Bundle constitutes a list of individual, atomic REST interactions. We can run them through „post processing“ and split them up. • But remember: we have to handle the replacing of the UUIDs with the actual URLs ourselves! • We can even split the Conditional interactions up into a GET and PUT/POST/DELETE interaction, But then we have to deal with the errors on our side.
  • 33. You can move complexity around, but you can‘t make it go away (Grahame Grieve)
  • 37. _history Subscription + reliability + simple to implement + repeatable (if something went wrong) - not selective/high traffic - delay - second interaction for includes + realtime + selective + low bandwidth - no queueing - no trigger if a resource drops out of your selection
  • 38. What next? • Tell us about your use case and join the Hands On • Give feedback at https://chat.fhir.org/#narrow/stream/v2.20to.20FHIR • Join the discussion on how to handle merge • Join the next connectathon in San Antonio and help us to evaluate Subscription and _history interactions to transfer Resources from a FHIR server back to a V2 system http://wiki.hl7.org/index.php?title=201701_Resource_Subscription_Track