TheyprobablycraftsomethingthemselvesWe want HL7 to have ananswerto these.If we don’t => someoneelsewill do itand we willlosecredibility.Youcould do itusingv3, but notsolelybased on the downloadable UV-version. Andprobablynot on some country-specificImplementation Guide either (different focus, priorities)
We don’t actually have a formal manifesto, but these are the principles we adhere to.
Who’s read the v3 spec? – modeler & balloter focusedSpec is driven by people who write codeNumerous pieces have been changed because of experience with what worked when trying to implementEven have a test workbench for RESTful servers
“Only include data elements in the artifacts if 80% of all implementers of that artifact will use the data element”
We try very hard to *not* invent stuff that exists elsewhere unless it’s really broken or totally unaligned with the FHIR principles.
FHIR Governance BoardMaintains FHIR principlesIdentifies risks, preceptsHandles coordination w/ external groupsFHIR Management GroupCoordinates Work GroupsManages ballot processEducation deliveryDay-to-day activitiesModeling & MethodologyDefines criteria for artifactsDetermines processesDocuments best practicesWork GroupsDo the actual development workCore TeamTemporaryTakes on work Work Groups can’tExpeditesWhat haven’t we talked about yet?
9:45
Readilyuseable, contain “the 80%” (What’s the 80%...what’s maximum reuse? That’s HL7’s core business!)Independent of context, fixeddefined behaviour and meaningCanreferenceeachotherUnits of exchange – suggests units of storage forimplementersAddressed through HTTP or other methods
Youcanconstrainaway stuff youdon’tneedYoucanadd stuff to the basic modelsforyourusecase“Removeandaddbricks as necessary”
“Drive-by” or “bottom-up” operability: “Communicate first, standardize later”First, business partners. Then, collaborations, communities. Maybe, finally,nation-wideIt’s a naturalprocessthatpeoplewill want to make itwork first, thenonlycoordinatewhattheyreallyneedto, andthenrealizetheycanbroadentheir approach to a community.“Support”, of course top-down shouldstillbepossible! Maybe even a combi in the long-term
Document every resource,everyattributeProvideexamplesDefinehowtouse in REST, Document and MessageManageableby a project lead in a weekend, or you’llbeignored (in favor of localsolutions)
10:00
And few systems will ever see more than 40-50
Defined Structured DataThe logical, common contents of the resourceMapped to formal definitions/RIM & other formatsExtensions“Non-common” requirements, but everyone can usePublished and managedNarrativeHuman readable (fall back)
10:15
10:15
URLs, parameters, etc. all definedChoice of what operations to supportBehavior documented in conformance profile - mandatory
You can retrieve any person using a GET on the person’s id, which is just an url on the server: /fhir/person/@<id>We have our own MIME-type: “text/xml+fhir”Note that FHIR always uses UTF-8. Since this is not the default for HTTP, the server explicitly mentions thisBut should mean the xml encoding mentions “utf-8” and that the payload is really encoded in utf-8There can be a Byte Order Mark, but hopefully your framework handles all that ;-)The response returns a Content-Location header with a version-specific location….see next slide
10:30
This is not only the URL you use to retrieve the resource, it’s also its id.All URL’s in FHIR are case-sensitive (and so is the id)
Both the Resource id URL and the version-specific URL are used on many places of the REST spec and resource content (References!). They are always used consistently in this form.
Referencesbetween resources are notby “business key”, it is *not* the patientid, it’s a REST URI!
Note that the id of the resource is kept outside the resource itselfAtom has many other meta-data items (not shown), which we will discuss later.
Richardson’s REST Maturity Model. We’re at 2.5. Fielding says: “You are not REST”, so we are “RESTful”
You can retrieve any person using a GET on the person’s id, which is just an url on the server: /fhir/person/@<id>We have our own MIME-type: “text/xml+fhir”Note that FHIR always uses UTF-8. Since this is not the default for HTTP, the server explicitly mentions thisBut should mean the xml encoding mentions “utf-8” and that the payload is really encoded in utf-8There can be a Byte Order Mark, but hopefully your framework handles all that ;-)The response returns a Content-Location header with a version-specific location….see next slide
You can retrieve any person using a GET on the person’s id, which is just an url on the server: /fhir/person/@<id>We have our own MIME-type: “text/xml+fhir”Note that FHIR always uses UTF-8. Since this is not the default for HTTP, the server explicitly mentions thisBut should mean the xml encoding mentions “utf-8” and that the payload is really encoded in utf-8There can be a Byte Order Mark, but hopefully your framework handles all that ;-)The response returns a Content-Location header with a version-specific location….see next slide
You can retrieve any person using a GET on the person’s id, which is just an url on the server: /fhir/person/@<id>We have our own MIME-type: “text/xml+fhir”Note that FHIR always uses UTF-8. Since this is not the default for HTTP, the server explicitly mentions thisBut should mean the xml encoding mentions “utf-8” and that the payload is really encoded in utf-8There can be a Byte Order Mark, but hopefully your framework handles all that ;-)The response returns a Content-Location header with a version-specific location….see next slide
You can retrieve any person using a GET on the person’s id, which is just an url on the server: /fhir/person/@<id>We have our own MIME-type: “text/xml+fhir”Note that FHIR always uses UTF-8. Since this is not the default for HTTP, the server explicitly mentions thisBut should mean the xml encoding mentions “utf-8” and that the payload is really encoded in utf-8There can be a Byte Order Mark, but hopefully your framework handles all that ;-)The response returns a Content-Location header with a version-specific location….see next slide
Published as HTMLPublished using validation process that performs consistency checksReally shouldn’t require much guidance to read, but a few things to call outObjective of spec is developer can skim and decide in < day
If you come to a connectathon with a FHIR server, it is a good idea to make sure you can preload your server with all the examples!
You’re a message broker routingandtranslating between v2, v3 and FHIRYourapp interfaces with a PHR using FHIR nativelyYourapplicationcancommunicateusing FHIR, but your software uses a proprietary RDBMSUse FHIR as the common languagefor a Vendor Neutral Archive…Or a combination….Youmightsee data as a nestedstructure of XML, a series of tableswithkeys, class-diagrams….