HL7 WGM // AID Session // 2015-05-10 Ben Kraufmann DYNAMIC WEB FORMS WITH FHIR® AND XRX.
-
Upload
arleen-sherman -
Category
Documents
-
view
219 -
download
2
Transcript of 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
2© Fraunhofer FOKUS
APPLICATION DOMAIN // DEMIS
Support public health in coping with epidemics
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
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>
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
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
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
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