Submit Search
Upload
Profile and validation by Grahame Grieve
•
Download as PPTX, PDF
•
1 like
•
1,411 views
FHIR Developer Days
Follow
Profile and validation by Grahame Grieve
Read less
Read more
Healthcare
Report
Share
Report
Share
1 of 63
Download now
Recommended
Authoring profiles by Michel Rutten
Authoring profiles by Michel Rutten
FHIR Developer Days
FHIR Documents by Lloyd McKenzie
FHIR Documents by Lloyd McKenzie
FHIR Developer Days
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
FHIR Developer Days
FHIR Search for client developers by Mirjam Baltus
FHIR Search for client developers by Mirjam Baltus
FHIR Developer Days
FHIR Search for server developers by Martijn Harthoorn
FHIR Search for server developers by Martijn Harthoorn
FHIR Developer Days
Patient matching in FHIR
Patient matching in FHIR
Grahame Grieve
FHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René Spronk
Furore_com
Security in FHIR with OAuth by Grahame Grieve
Security in FHIR with OAuth by Grahame Grieve
FHIR Developer Days
Recommended
Authoring profiles by Michel Rutten
Authoring profiles by Michel Rutten
FHIR Developer Days
FHIR Documents by Lloyd McKenzie
FHIR Documents by Lloyd McKenzie
FHIR Developer Days
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
FHIR Developer Days
FHIR Search for client developers by Mirjam Baltus
FHIR Search for client developers by Mirjam Baltus
FHIR Developer Days
FHIR Search for server developers by Martijn Harthoorn
FHIR Search for server developers by Martijn Harthoorn
FHIR Developer Days
Patient matching in FHIR
Patient matching in FHIR
Grahame Grieve
FHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René Spronk
Furore_com
Security in FHIR with OAuth by Grahame Grieve
Security in FHIR with OAuth by Grahame Grieve
FHIR Developer Days
FHIR Profiling tutorial
FHIR Profiling tutorial
Ewout Kramer
Authoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended version
Ewout Kramer
Getting started with FHIR by Ewout Kramer
Getting started with FHIR by Ewout Kramer
FHIR Developer Days
FHIR and DICOM by Marten Smits
FHIR and DICOM by Marten Smits
FHIR Developer Days
FHIR Tutorial - Morning
FHIR Tutorial - Morning
Ewout Kramer
FHIR API for .Net programmers by Mirjam Baltus
FHIR API for .Net programmers by Mirjam Baltus
FHIR Developer Days
Introduction to FHIR™
Introduction to FHIR™
Grahame Grieve
The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)
Ewout Kramer
Nhs trusts meeting at salford
Nhs trusts meeting at salford
Ewout Kramer
Advanced .NET API (Ewout)
Advanced .NET API (Ewout)
Ewout Kramer
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
Furore_com
FHIR tutorial - Afternoon
FHIR tutorial - Afternoon
Ewout Kramer
Authoring Profiles in FHIR
Authoring Profiles in FHIR
Ewout Kramer
Route from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame Grieve
Furore_com
Vitalis 2016 FHIR Introduction
Vitalis 2016 FHIR Introduction
Ewout Kramer
Edifecs- warming up to fhir
Edifecs- warming up to fhir
Edifecs Inc
FHIR Profiles
FHIR Profiles
David Hay
IHE France on FHIR
IHE France on FHIR
Ewout Kramer
FHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James Agnew
FHIR Developer Days
FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014
Ewout Kramer
Structure definition 101 (ewout)
Structure definition 101 (ewout)
DevDays
Advanced .net api (ewout)
Advanced .net api (ewout)
DevDays
More Related Content
What's hot
FHIR Profiling tutorial
FHIR Profiling tutorial
Ewout Kramer
Authoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended version
Ewout Kramer
Getting started with FHIR by Ewout Kramer
Getting started with FHIR by Ewout Kramer
FHIR Developer Days
FHIR and DICOM by Marten Smits
FHIR and DICOM by Marten Smits
FHIR Developer Days
FHIR Tutorial - Morning
FHIR Tutorial - Morning
Ewout Kramer
FHIR API for .Net programmers by Mirjam Baltus
FHIR API for .Net programmers by Mirjam Baltus
FHIR Developer Days
Introduction to FHIR™
Introduction to FHIR™
Grahame Grieve
The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)
Ewout Kramer
Nhs trusts meeting at salford
Nhs trusts meeting at salford
Ewout Kramer
Advanced .NET API (Ewout)
Advanced .NET API (Ewout)
Ewout Kramer
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
Furore_com
FHIR tutorial - Afternoon
FHIR tutorial - Afternoon
Ewout Kramer
Authoring Profiles in FHIR
Authoring Profiles in FHIR
Ewout Kramer
Route from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame Grieve
Furore_com
Vitalis 2016 FHIR Introduction
Vitalis 2016 FHIR Introduction
Ewout Kramer
Edifecs- warming up to fhir
Edifecs- warming up to fhir
Edifecs Inc
FHIR Profiles
FHIR Profiles
David Hay
IHE France on FHIR
IHE France on FHIR
Ewout Kramer
FHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James Agnew
FHIR Developer Days
FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014
Ewout Kramer
What's hot
(20)
FHIR Profiling tutorial
FHIR Profiling tutorial
Authoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended version
Getting started with FHIR by Ewout Kramer
Getting started with FHIR by Ewout Kramer
FHIR and DICOM by Marten Smits
FHIR and DICOM by Marten Smits
FHIR Tutorial - Morning
FHIR Tutorial - Morning
FHIR API for .Net programmers by Mirjam Baltus
FHIR API for .Net programmers by Mirjam Baltus
Introduction to FHIR™
Introduction to FHIR™
The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)
Nhs trusts meeting at salford
Nhs trusts meeting at salford
Advanced .NET API (Ewout)
Advanced .NET API (Ewout)
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
FHIR tutorial - Afternoon
FHIR tutorial - Afternoon
Authoring Profiles in FHIR
Authoring Profiles in FHIR
Route from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame Grieve
Vitalis 2016 FHIR Introduction
Vitalis 2016 FHIR Introduction
Edifecs- warming up to fhir
Edifecs- warming up to fhir
FHIR Profiles
FHIR Profiles
IHE France on FHIR
IHE France on FHIR
FHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James Agnew
FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014
Similar to Profile and validation by Grahame Grieve
Structure definition 101 (ewout)
Structure definition 101 (ewout)
DevDays
Advanced .net api (ewout)
Advanced .net api (ewout)
DevDays
FHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René Spronk
FHIR Developer Days
HL7 Fhir for Developers
HL7 Fhir for Developers
Ewout Kramer
Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
FHIR Developer Days
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
Furore_com
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
FHIR Developer Days
Vitalis 2016 FHIR App Development
Vitalis 2016 FHIR App Development
Ewout Kramer
FHIR DevDays 2015 - introduction to FHIR
FHIR DevDays 2015 - introduction to FHIR
Ewout Kramer
Fhir path (ewout)
Fhir path (ewout)
DevDays
Validation in net and java (ewout james)
Validation in net and java (ewout james)
DevDays
FHIR: What's it All About?
FHIR: What's it All About?
Health Informatics New Zealand
Hl7 advance cda may 2019 webinar
Hl7 advance cda may 2019 webinar
Abdul-Malik Shakir
Route from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame Grieve
FHIR Developer Days
Similar to Profile and validation by Grahame Grieve
(14)
Structure definition 101 (ewout)
Structure definition 101 (ewout)
Advanced .net api (ewout)
Advanced .net api (ewout)
FHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René Spronk
HL7 Fhir for Developers
HL7 Fhir for Developers
Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
Vitalis 2016 FHIR App Development
Vitalis 2016 FHIR App Development
FHIR DevDays 2015 - introduction to FHIR
FHIR DevDays 2015 - introduction to FHIR
Fhir path (ewout)
Fhir path (ewout)
Validation in net and java (ewout james)
Validation in net and java (ewout james)
FHIR: What's it All About?
FHIR: What's it All About?
Hl7 advance cda may 2019 webinar
Hl7 advance cda may 2019 webinar
Route from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame Grieve
Recently uploaded
Call Girls Service Faridabad 📲 9999965857 ヅ10k NiGhT Call Girls In Faridabad
Call Girls Service Faridabad 📲 9999965857 ヅ10k NiGhT Call Girls In Faridabad
gragmanisha42
Russian Escorts Aishbagh Road * 9548273370 Naughty Call Girls Service in Lucknow
Russian Escorts Aishbagh Road * 9548273370 Naughty Call Girls Service in Lucknow
gragteena
VIP Call Girls Sector 67 Gurgaon Just Call Me 9711199012
VIP Call Girls Sector 67 Gurgaon Just Call Me 9711199012
Call Girls Service Gurgaon
Call Girls Service Chandigarh Gori WhatsApp ❤7710465962 VIP Call Girls Chandi...
Call Girls Service Chandigarh Gori WhatsApp ❤7710465962 VIP Call Girls Chandi...
Niamh verma
Hot Call Girl In Ludhiana 👅🥵 9053'900678 Call Girls Service In Ludhiana
Hot Call Girl In Ludhiana 👅🥵 9053'900678 Call Girls Service In Ludhiana
Russian Call Girls in Ludhiana
Vip sexy Call Girls Service In Sector 137,9999965857 Young Female Escorts Ser...
Vip sexy Call Girls Service In Sector 137,9999965857 Young Female Escorts Ser...
Call Girls Noida
Udaipur Call Girls 📲 9999965857 Call Girl in Udaipur
Udaipur Call Girls 📲 9999965857 Call Girl in Udaipur
seemahedar019
Dehradun Call Girls Service 08854095900 Real Russian Girls Looking Models
Dehradun Call Girls Service 08854095900 Real Russian Girls Looking Models
indiancallgirl4rent
Nepali Escort Girl * 9999965857 Naughty Call Girls Service in Faridabad
Nepali Escort Girl * 9999965857 Naughty Call Girls Service in Faridabad
gragteena
Chandigarh Call Girls 👙 7001035870 👙 Genuine WhatsApp Number for Real Meet
Chandigarh Call Girls 👙 7001035870 👙 Genuine WhatsApp Number for Real Meet
priyashah722354
💚😋Mumbai Escort Service Call Girls, ₹5000 To 25K With AC💚😋
💚😋Mumbai Escort Service Call Girls, ₹5000 To 25K With AC💚😋
Sheetaleventcompany
Krishnagiri call girls Tamil aunty 7877702510
Krishnagiri call girls Tamil aunty 7877702510
Vipesco
Local Housewife and effective ☎️ 8250192130 🍉🍓 Sexy Girls VIP Call Girls Chan...
Local Housewife and effective ☎️ 8250192130 🍉🍓 Sexy Girls VIP Call Girls Chan...
Russian Call Girls Amritsar
Enjoyment ★ 8854095900 Indian Call Girls In Dehradun 🍆🍌 By Dehradun Call Girl ★
Enjoyment ★ 8854095900 Indian Call Girls In Dehradun 🍆🍌 By Dehradun Call Girl ★
indiancallgirl4rent
indian Call Girl Panchkula ❤️🍑 9907093804 Low Rate Call Girls Ludhiana Tulsi
indian Call Girl Panchkula ❤️🍑 9907093804 Low Rate Call Girls Ludhiana Tulsi
High Profile Call Girls Chandigarh Aarushi
Call Girl Raipur 📲 9999965857 ヅ10k NiGhT Call Girls In Raipur
Call Girl Raipur 📲 9999965857 ヅ10k NiGhT Call Girls In Raipur
gragmanisha42
Dehradun Call Girls Service ❤️🍑 8854095900 👄🫦Independent Escort Service Dehradun
Dehradun Call Girls Service ❤️🍑 8854095900 👄🫦Independent Escort Service Dehradun
Niamh verma
Call Girls Amritsar 💯Call Us 🔝 8725944379 🔝 💃 Independent Escort Service Amri...
Call Girls Amritsar 💯Call Us 🔝 8725944379 🔝 💃 Independent Escort Service Amri...
Niamh verma
Model Call Girl in Subhash Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Subhash Nagar Delhi reach out to us at 🔝9953056974🔝
9953056974 Low Rate Call Girls In Saket, Delhi NCR
Call Girls Hyderabad Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Hyderabad Just Call 9907093804 Top Class Call Girl Service Available
Dipal Arora
Recently uploaded
(20)
Call Girls Service Faridabad 📲 9999965857 ヅ10k NiGhT Call Girls In Faridabad
Call Girls Service Faridabad 📲 9999965857 ヅ10k NiGhT Call Girls In Faridabad
Russian Escorts Aishbagh Road * 9548273370 Naughty Call Girls Service in Lucknow
Russian Escorts Aishbagh Road * 9548273370 Naughty Call Girls Service in Lucknow
VIP Call Girls Sector 67 Gurgaon Just Call Me 9711199012
VIP Call Girls Sector 67 Gurgaon Just Call Me 9711199012
Call Girls Service Chandigarh Gori WhatsApp ❤7710465962 VIP Call Girls Chandi...
Call Girls Service Chandigarh Gori WhatsApp ❤7710465962 VIP Call Girls Chandi...
Hot Call Girl In Ludhiana 👅🥵 9053'900678 Call Girls Service In Ludhiana
Hot Call Girl In Ludhiana 👅🥵 9053'900678 Call Girls Service In Ludhiana
Vip sexy Call Girls Service In Sector 137,9999965857 Young Female Escorts Ser...
Vip sexy Call Girls Service In Sector 137,9999965857 Young Female Escorts Ser...
Udaipur Call Girls 📲 9999965857 Call Girl in Udaipur
Udaipur Call Girls 📲 9999965857 Call Girl in Udaipur
Dehradun Call Girls Service 08854095900 Real Russian Girls Looking Models
Dehradun Call Girls Service 08854095900 Real Russian Girls Looking Models
Nepali Escort Girl * 9999965857 Naughty Call Girls Service in Faridabad
Nepali Escort Girl * 9999965857 Naughty Call Girls Service in Faridabad
Chandigarh Call Girls 👙 7001035870 👙 Genuine WhatsApp Number for Real Meet
Chandigarh Call Girls 👙 7001035870 👙 Genuine WhatsApp Number for Real Meet
💚😋Mumbai Escort Service Call Girls, ₹5000 To 25K With AC💚😋
💚😋Mumbai Escort Service Call Girls, ₹5000 To 25K With AC💚😋
Krishnagiri call girls Tamil aunty 7877702510
Krishnagiri call girls Tamil aunty 7877702510
Local Housewife and effective ☎️ 8250192130 🍉🍓 Sexy Girls VIP Call Girls Chan...
Local Housewife and effective ☎️ 8250192130 🍉🍓 Sexy Girls VIP Call Girls Chan...
Enjoyment ★ 8854095900 Indian Call Girls In Dehradun 🍆🍌 By Dehradun Call Girl ★
Enjoyment ★ 8854095900 Indian Call Girls In Dehradun 🍆🍌 By Dehradun Call Girl ★
indian Call Girl Panchkula ❤️🍑 9907093804 Low Rate Call Girls Ludhiana Tulsi
indian Call Girl Panchkula ❤️🍑 9907093804 Low Rate Call Girls Ludhiana Tulsi
Call Girl Raipur 📲 9999965857 ヅ10k NiGhT Call Girls In Raipur
Call Girl Raipur 📲 9999965857 ヅ10k NiGhT Call Girls In Raipur
Dehradun Call Girls Service ❤️🍑 8854095900 👄🫦Independent Escort Service Dehradun
Dehradun Call Girls Service ❤️🍑 8854095900 👄🫦Independent Escort Service Dehradun
Call Girls Amritsar 💯Call Us 🔝 8725944379 🔝 💃 Independent Escort Service Amri...
Call Girls Amritsar 💯Call Us 🔝 8725944379 🔝 💃 Independent Escort Service Amri...
Model Call Girl in Subhash Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Subhash Nagar Delhi reach out to us at 🔝9953056974🔝
Call Girls Hyderabad Just Call 9907093804 Top Class Call Girl Service Available
Call Girls Hyderabad Just Call 9907093804 Top Class Call Girl Service Available
Profile and validation by Grahame Grieve
1.
Profiles and Validation
Grahame Grieve FHIR Developer Days November 26, 2014 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
2.
The need for
Profiles Healthcare is a highly variable domain Between Countries Between Disciplines Between different clinicians within a single practice Between different IT implementations There’s no single authority to set the rules 2 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
3.
The need for
Profiles From RFC 2119 An implementation which does not include a particular option MUST be prepared to interoperate with another implementation which does include the option, though perhaps with reduced functionality. In the same vein an implementation which does include a particular option MUST be prepared to interoperate with another implementation which does not include the option (except, of course, for the feature the option provides.) 3 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
4.
The need for
Profiles We can’t expect global interoperability The goal of FHIR is to create a common platform or framework It’s a small step from common implementations to interoperability 4 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
5.
© 2014 HL7
® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
6.
© 2014 HL7
® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
7.
© 2014 HL7
® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
8.
© 2014 HL7
® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
9.
The last step
It’s a small step from platform from implementation “how do you use the platform?” The Conformance resources give the answer 9 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
10.
Use cases
Application Statement of Functionality Domain Specialist Guidance Purchaser’s/Integrator’s statement of intent Regional/National statement of agreements 10 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
11.
Conformance Layer
Value set – definitions of codes and sets of codes Profile – statement of how a resource is used Conformance – statement of how a system behaves (client or server) Concept Map – maps from one system to another (codes or fields) 11 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
12.
Value Set
Describe a set of concepts Can include codes from LOINC, SNOMED CT etc By listing them, or by their properties Can define their own codes Can add descriptions to codes Basis for a terminology service 12 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
13.
Profile Describes
a set of rules about what can be in a profile By implication, how it is used Describes Extension (defines them and their meaning) Describes search parameters for a resource 13 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
14.
Conformance Statement
Describes what resources are supported What operations are possible What profiles apply to resources What security rules apply Required for servers encouraged for clients 14 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
15.
Profile Metadata (1)
Name Use identifier Globally unique URI, OID, or UUID version Identify this version of the profile when it is referenced in a specification, model, design or instance. This is an arbitrary value managed by the profile author manually and the value should be a timestamp name Natural language name identifying the Profile status draft, active, retired date Date that this version of the profile was published fhirVersion Version of the FHIR specification on which this profile is based Mostly not necessary: most profiles are valid across multiple versions, validity can be checked by tooling. 15 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
16.
Profile Metadata (2)
Name Use publisher Individual or organization who accepts responsibility for publishing the profile telecom Contact details to assist a user in finding and communicating with the publisher description A free text natural language description of the profile and its use requirements The Scope and Usage that this profile was created to meet code A set of terms from external terminologies that may be used to assist with indexing and searching of profiles 16 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
17.
Profile Contents
Metadata – context + findability Structure 0..* - constraint on a resource or data type Search Parameter 0..* Extension Definition 0..*- an extension that can be used in a resource 17 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
18.
Profile Structure Name
Use type The Resource or Data Type being described name Name for this particular structure (reference target) e.g. uri#[name] to reference this structure publish Whether this can be used as an external reference e.g. you can define “support” structures that aren’t “entry points” purpose Human description of the purpose of this structure element Definition of the actual constraints on the elements of the type 18 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
19.
Profile Structure
A linear list of Elements Each Element has a path The path specifies a tree of elements with a ‘.’ name e.g. Patient.contact.telecom The type of an element can specify further contained trees e.g. a Data Type a reference to another part of the tree 19 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
20.
Profile Structure
ValueSet ValueSet.identifier : string ValueSet.telecom : Contact ValueSet.define ValueSet.define.system ValueSet.define.concept ValueSet.define.concept.concept : @ ValueSet.define.concept 20 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
21.
Profile Structure
An element for each node in the path Can’t “imply” elements The element refers to a pre-defined resource element Profile can’t define it’s own new data elements Profile can “walk into” a data type E.g. ValueSet.telecom.use 21 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
22.
Structure / Element
A set of rules on the element content Cannot define any new content the element isn’t allowed to have Cannot revoke any rules already established in the base resource 22 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
23.
Structure / Element
Cardinality – how many times the element can appear Binding – what codes can be used (if coded) Constraints – additional content rules Type – restrict the contents be referring to another (profiled) type Meanings + mappings – what the content means 23 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
24.
Cardinality Base
cardinality 0..1, 1..1, 0..*, 1.. * Can increase minimum up to max (but not *) Can decrease maximum down to min E.g. 1..1: can’t do anything with it 0..1: can change to 0..0 or 1..1 0..*: can change to 0..0, 0..3, 1..2 etc 1..*: can change to 1..1, 1..2, 1..3 etc 24 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
25.
Binding Elements
that have codes: code Coding CodeableConcept Quantity (system + code) All elements are “bound” to a value set – the set of codes that are allowed to be used 25 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
26.
Binding Properties Name
Use name Arbitrary descriptive name for the binding (should be optional, but is a tooling limitation) description A description of the kind of codes in the value set (optional) isExtensible Whether additional codes can be used conformance The degree of conformance associated with the binding reference A reference to a value set or an external standard that provides the set of codes 26 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
27.
Binding Conformance Conformance
indicates the expectations for implementers of the specification required Only codes in the specified set are allowed. preferred For greater interoperability, implementers are strongly encouraged to use the bound set of codes, however alternate codes may be used in profiles if necessary without being considered non-conformant. example The codes in the set are an example to illustrate the meaning of the field. There is no particular preference for its use 27 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
28.
Binding Extensibility isExtensible
indicates whether additional codes are allowed beyond those in the defined set of codes false No additional codes are to be used beyond the list provided true Supplemental codes or plain text may be needed (this is common because it is reasonable to think that concepts will need to be used which won't be in the defined set of codes) 28 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
29.
Conformance vs Extensibility
29 Conformance isExtensible=false isExtensible=true Required Implementers SHALL use a code from the defined set Implementers SHALL use a code from the defined set if one is applicable, but otherwise may provide their own code or use text Preferred Implementers SHOULD use a code from the defined set Implementers SHOULD use a code from the defined set if one is applicable, but MAY provide their own code or use text Example Implementers MAY use a code from the defined set Implementers MAY use a code from the defined set or provide their own code or use text © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
30.
Constraining Bindings
Profiles “replace” the binding New name, rules, value set reference Codes that were not valid cannot become valid Profiles can override “SHOULD” 30 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
31.
Constraints Attach
to an element Make rules about it’s content Have a name, a human readable statement, and a machine processible format (XPath) Can say anything that can be said in XPath Can reference constraints from the sub elements that it affects 31 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
32.
Example Constraint
Human: If you have a procedure that has a complication, it must have some follow up A ‘business rule’ that can’t be in the base spec Context: Procedure XPath: not(exists(f:complication)) or exists(f:followUp) 32 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
33.
Constraining the Type
Elements that do not have children defined in the profile must have a type Type can have a profile applied E.g. type must conform to the profile If the resource allows multiple types, can restrict to a single type e.g. value[x] valueString Or to lesser set of choices e.g. string or Quantity 33 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
34.
Meaning / Mapping
Profiles can change the meaning and mappings of the element Meaning must be consistent, but can be narrower. E.g: Can’t change “Date Time this was made available” to “Date/Time the doctor saw it” Can change “date time this was made available” to “Date/Time posted to the portal” 34 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
35.
Constraining Lists
If an element can repeat, it’s common to constrain the repeats differently: The first code must come LOINC First, the chemistry observations, then the microbiology ones A blood pressure has components for Systolic and Diastolic pressures Vital signs must have a component observation for posture, for prior exercise, and for stress estimate (e.g. children) 35 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
36.
Constraining Lists
Can’t just divide the list up into different slots in the instance General systems can’t process the data Divide the list into “slices” – implied slots rather than explicit slots 36 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
37.
Slicing 37 ©
2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
38.
Slicing <Observation> ...
<related> <type value="component"/> <target ...> </related> <related> <type value="component"/> <target ...> </related> </Observation> 38 Systolic Slice Diastolic Slice © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
39.
Slicing If
you know about the slices, you can process by them If you don’t know, what you don’t know won’t hurt you But how can you tell which elements are in which slice? Need to do this in generated code 39 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
40.
Slicing Discriminator
Depth first constraint testing Reasonably easy but computationally intensive Hard to produce comprehensible error messages No good for generated code So we add a shortcut - the “discriminator” A field that has a fixed or limited set of values that differs for each slice E.g. switch () on the values of the field Profile designer has to organize this 40 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
41.
Slicing discriminator Path
to the element that is holds the discriminating value ordered Whether the slices have to appear in the order in which they are defined (mostly, it doesn’t matter, but when it does, it’s important) rules Closed - No additional content is allowed other than that described by the slices in this profile Open - Additional content is allowed anywhere in the list openAtEnd - Additional content is allowed, but only at the end of the list (must be ordered) 41 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
42.
Slicing in a
profile Multiple element definitions with the same path Elements differentiated by their “name” Name is the name of the slice Just like you can refer to an element by path, you can refer to a slice by name and re-use it (.element.definition.nameReference) 42 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
43.
Extensions Every
Element has extension : Extension 0..* So saying that an extension must appear on an element is actually “constraining” an element This is done by slicing the extension list with extension.url as the discriminator 43 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
44.
Extensions (2)
Extensions can be prohibited by closing the extension list with no defined slices Making an extension optional in an open list is just a reminder that it’s allowed – it’s allowed anyway 44 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
45.
Extension Definition
Define an extension as a profile on the base Extension type all the techniques we already talked about Give it a code. URL for the extension is [profile]#[code] Define where it can be used 45 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
46.
Extension Context 46
Code Definition resource The context is all elements matching a particular resource element path. datatype The context is all nodes matching a particular data type element path (root or repeating element) or all elements referencing a particular primitive data type (expressed as the datatype name). mapping The context is all nodes whose mapping to a specified reference model corresponds to a particular mapping structure. The context identifies the mapping target. The mapping should clearly identify where such an extension could be used. extension The context is a particular extension from a particular profile. Expressed as uri#name, where uri identifies the profile and #name identifies the extension code. © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
47.
Search Parameter Property
Meaning name The name to use in the URL type The rules around interpreting the parameter value documentation Description of the parameter xpath XPath used to extract the values (not all parameters have an XPath) target A list of the resource types that are possible targets (if type is a reference) 47 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
48.
Summary Profiles
can “constrain” the use and meaning of the contents of a resource or type There’s a fair bit of complexity in the fine details of the solution Represents 20 years of work on “design by constraint” 48 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
49.
Changes DSTU
Dev Introduce Differential vs Snapshot Decompose Profile into Profile ExtensionDefinition SearchParameter Discriminator 1..1 0..* Add pattern, default value 49 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
50.
Using Profiles
How to validate Code Generation Considerations Future tooling anticipated 50 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
51.
How to validate
Schema – validates the base structure, never profiles Schematron – could generate schematron for a profile (but don’t yet) Java Validator RESTful API Web Validator 51 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
52.
Java Validator
Source (from downloads page): http://hl7.org/documentcenter/public/standards/FHIR/validator.zip Contains validator jar + base definitions + a readme FHIRValidator.jar [source] (-defn [definitions]) (-output [output]) (-profile [profile]) Profile – file name or URL of a Profile resource 52 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
53.
RESTful API
Post the resource to [base]/[type]/_validate(/[id]) Without ID: Is this resource valid? With ID: is this a valid update Validate against a profile: add a profile tag to the HTTP headers: Category: [url]; scheme= "http://hl7.org/fhir/tag/profile" 53 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
54.
Use the Web
Interface http://fhir.healthintersections.com.au/open Go to bottom of page 54 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
55.
UML Theory of
Profiles object Class Model ? + classCode: CS = STD + id: II = 1.2.3.4.5::2234 + statusCode: CS = ACTIVE This instance conforms to all three models. Which is the class? © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
56.
Simple Class Model
object Class Model Student + classCode: CS = STD + id: II = 1.2.3.4.5::2234 + statusCode: CS = ACTIVE © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
57.
“Student” as a
template ? Student is treated as a set of rules instead of a “class” definition – doesn’t take ownership object Class Model IdentifiedPerson + classCode: CS = STD + id: II = 1.2.3.4.5::2234 + statusCode: CS = ACTIVE © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
58.
“Student” as a
template Use Stereotype “Student” to mark the relationship (class or instance level) object Class Model «Student» IdentifiedPerson + classCode: CS = STD + id: II = 1.2.3.4.5::2234 + statusCode: CS = ACTIVE © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
59.
“IdentifiedPerson” as a
template Use Stereotype “Student” and “IdentifiedPerson” to mark the relationships object Class Model «Student,IdentifiedPerson» Role + classCode: CS = STD + id: II = 1.2.3.4.5::2234 + statusCode: CS = ACTIVE © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
60.
OO Design theory
Design by Inheritance Design by Composition Design by Constraint Which is actually design by Contract on steroids 60 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
61.
Code Generation
A profile is not a “specialisation” You can generate them that way, but it’s not a perfect fit class MyProfiledResource extends Resource I generate them as a façade class MyProfiledResource extends ProfileWrapper constructor (Resource wrapped) 61 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
62.
Future Tools
Profile Registry (desperately needed) Profile Comparison Tooling Do profiles overlap Are profiles compatible Clinical Reasoning tools using profiles + additional resources 62 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
63.
Profiles A
tool for managing fractal variance Only as successful as the community wants to make them 63 © 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Download now