hl7 wgm // aid session // 2015-05-10 ben kraufmann dynamic web forms with fhir® and xrx

8
HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

Upload: arleen-sherman

Post on 27-Dec-2015

217 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

HL7 WGM // AID Session // 2015-05-10

Ben Kraufmann

DYNAMIC WEB FORMSWITH FHIR® AND XRX

Page 2: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

2© Fraunhofer FOKUS

APPLICATION DOMAIN // DEMIS

Support public health in coping with epidemics

Page 3: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

3© Fraunhofer FOKUS

• FHIR for modeling and messaging

• Dynamic web forms with W3C XForms

• Transform FHIR profiles by means of an XProc/XSLT pipeline

TECHNICAL FRAMEWORK

Page 4: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

4© Fraunhofer FOKUS

• Flat structure to deep structure

• Inline XSD details

• Inline XPath expressionsto identify slices, andto apply constrains

FIRST STEP: AUGMENT FHIR PROFILE

<f:element> <f:path value="Patient.details.name"/> <d:children> <f:element> <f:path value="Patient.details.name.use"/> <d:name value="use"/> <d:enum> <d:item value="usual"/> <d:item value="official"/> <d:item value="temp"/> <d:item value="nickname"/> <d:item value="anonymous"/> <d:item value="old"/> <d:item value="maiden"/> </d:enum> <d:predicate xpath="..."/> </f:element>

Page 5: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

5© Fraunhofer FOKUS

• Templates for FHIR documents

• XForms Views with input fields

• Bindings that link Templates with Views

• Data validators, i. e. bindings constraints

• Actions, that load vocabularies from CTS2-store or FHIR server

SECOND STEP: GENERATE WEB FORMS

Page 6: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

6© Fraunhofer FOKUS

<element> <path value="Patient.details.birthDate" /> <definition> <min value="0" /> <max value="1" /> <type> <code value="dateTime" /> </type> </definition> </element>

<xf:bind nodeset="instance('i-main')/../f:Patient/f:details/f:birthDate/@value" type="xs:dateTime" />

<xf:input ref="instance('i-main')/../f:Patient/f:details/f:birthDate/@value">

APPLY TYPE CONSTRAINTS

Page 7: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

7© Fraunhofer FOKUS

<xs:element name="family" type="string" minOccurs="0" maxOccurs="unbounded">

<xf:trigger> <xf:label>+</xf:label> <xf:action ev:event="DOMActivate"> <xf:insert at="last()" nodeset="instance('i-main')/../f:Patient/f:details/f:name/f:given" position="after"/> </xf:action></xf:trigger>

MULTIPLICITY AND SLICING

Page 8: HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX

8© Fraunhofer FOKUS

<definition> <type> <code value="CodeableConcept" /> </type> <binding value="ConditionEvidenceCode"/></definition>

<binding> <name value="ConditionEvidenceCode" /> <type value="reference" /> <referenceUri value="urn:oid:1.2.276.0.76.3.1.163.11.100145"/></binding>

VALUE SETS AND CODE SYSTEMS // 1