+ All Categories
Home > Healthcare > FHIR Client Development with .NET

FHIR Client Development with .NET

Date post: 12-Apr-2017
Category:
Upload: brian-postlethwaite
View: 79 times
Download: 3 times
Share this document with a friend
16
HL7 ® FHIR ® .NET DEVELOPMENT Brian Postlethwaite June 2016 ® ©
Transcript
Page 1: FHIR Client Development with .NET

HL7® FHIR ® .NET DEVELOPMENTBrian Postlethwaite

June 2016

® ©

Page 2: FHIR Client Development with .NET

Brian PostlethwaiteSenior Solutions ArchitectFHIR core team memberFHIR Management Group memberCo-chair HL7 International Patient Administration WorkgroupAuthor of ServD Standard endorsed by the Object Management GroupProviding FHIR guidance to HealthConnex and Telstra HealthContributor of the .net FHIR clientImplementator of reference server sqlonfhirHarley Rider

Page 3: FHIR Client Development with .NET

Based on Modern WEB technologies

Core Resource Model

Defined Wire Format (XML/json)

CRUD

Searching

Extensible

Profilable/Conformance

Natively Supports Distributed data

Supports REST, Messaging, Services, Documents

Shortest ever summary of FHIR

Page 4: FHIR Client Development with .NET

Standards development (HL7)

Software Vendors

Healthcare Providers

Profiling Organizations (IHE)

Open Source Projects/Products

Reference Implementations

Open Test Servers (24x7)

Connectathons

The FHIR Community

Page 5: FHIR Client Development with .NET

.NET 4.0 / .NET 4.5 / PCLXamarin

Fiddler / PostmanVisual Studio 2015NuGet / Package ManagementNotepad++ / fhir extensionWeb BrowserReference Server(s)Online Test Tools (for servers)

projectcrucible, touchstoneFiddlerhttps://nehta-au.github.io/

Platforms and Tools

Page 6: FHIR Client Development with .NET

Versioning

Marketing Version Spec Version

File Version NuGet Package Version

DSTU1 0.0.82 (.2943)

  0.11.5

DSTU2 1.0.2 (.7202)

0.90.5 0.90.5-alpha3

May 2016 Connectathon

1.4.0 (.8139)

0.90.5 0.90.5-alpha4

Continuous build 1.4.0 (.8522)

n/a n/a

STU3 Ballot Likely 1.5.0    STU3 Likely 1.6.0 n/a n/a

Page 7: FHIR Client Development with .NET

Versions

Pre-release vs stable

Code on Github

Newtonsoft.Json(highly recommend >= 8.0.3)

NuGET Packages

https://www.nuget.org/packages/Hl7.Fhir.DSTU2/0.90.5-alpha3

Page 8: FHIR Client Development with .NET

Projects

Branches

Contributors

Issues register

Documentation

Getting involved

GitHub

https://github.com/ewoutkramer/fhir-net-api

Page 9: FHIR Client Development with .NET

Models

Serializers / Parsers

REST Client

Basic Validation

Lots of debug visualizers and code comments

ModelInfo – Search Parameters

Core Structures – Support for Extensions

Why use the .NET client?

Page 10: FHIR Client Development with .NET

New Projects?

Legacy Projects?

Exporting Content?

Importing Content?

Where do I start?

Page 11: FHIR Client Development with .NET

Start Simple

Get to know fhir

Use a fiddler/browser on existing servers

Create some content

Export some content from your own system

Consume some content into your own system

Identify resources of interest to you

Where do I start?

https://github.com/ewoutkramer/fhir-net-api

http://hl7.org/fhir/DSTU2/overview-dev.html

Page 12: FHIR Client Development with .NET

DataTypes

Narrative & Display

Extensions (using and defining)

Must Understand & modifiers

References & ResourceIdentity

Contained Resources

Using the REST API

Create/Use Extension Methods

Best Practices

http://hl7.org/fhir/DSTU2/implementation.html#2.0.0.1

Page 13: FHIR Client Development with .NET

StringBuilder textContent = new StringBuilder();

textContent.AppendLine("<div xmlns=\"http://www.w3.org/1999/xhtml\">");

textContent.AppendFormat("<b>{0}</b>\r\n<hr/>\r\n", System.Web.HttpUtility.HtmlEncode(me.Name));

textContent.AppendFormatFHIRFields("version", "{0}", System.Web.HttpUtility.HtmlEncode(versionDetails));

textContent.AppendLine("</div>");

resource.Text = new Narrative();

resource.Text.Status = Narrative.NarrativeStatus.Generated;

resource.Text.Div = textContent.ToString();

Narrative

Page 14: FHIR Client Development with .NET

var pat = new Patient();

pat.Name.Add(new HumanName().WithGiven("Brian").AndFamily("Postlethwaite"));

var org = new Organization();

org.Id = Guid.NewGuid().ToString("n");

org.Name = "HL7 International";

pat.Contained.Add(org);

pat.ManagingOrganization = new ResourceReference()

{

Reference = "#" + org.Id,

Display = org.Name

};

Contained Resources

Page 15: FHIR Client Development with .NET

1. Assembly(s), platforms and projects2. GitHub branches3. NuGET Package(s)4. Don’t need code change to handle extensions/profiles

5. Already in use in production6. Supported and used by multiple vendors today7. Large and Growing community of contributors

8. Can be used server side too

.NET FHIR Client - recap

Page 16: FHIR Client Development with .NET

QUESTIONS?


Recommended