<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://ceur-ws.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=Vol-2644%2Fpaper35</id>
	<title>Vol-2644/paper35 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://ceur-ws.bitplan.com/index.php?action=history&amp;feed=atom&amp;title=Vol-2644%2Fpaper35"/>
	<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;action=history"/>
	<updated>2026-05-05T10:47:58Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.5</generator>
	<entry>
		<id>http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1483&amp;oldid=prev</id>
		<title>Wf: edited by wikiedit</title>
		<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1483&amp;oldid=prev"/>
		<updated>2023-03-30T15:54:31Z</updated>

		<summary type="html">&lt;p&gt;edited by wikiedit&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:54, 30 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l10&quot; &gt;Line 10:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 10:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|storemode=property&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|storemode=property&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|authors=Gerhard Kober,Adrian Paschke&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|authors=Gerhard Kober,Adrian Paschke&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|description=scientific paper published in CEUR-WS Volume 2644&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
	<entry>
		<id>http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1426&amp;oldid=prev</id>
		<title>Wf at 12:23, 30 March 2023</title>
		<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1426&amp;oldid=prev"/>
		<updated>2023-03-30T12:23:34Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:23, 30 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l11&quot; &gt;Line 11:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 11:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|authors=Gerhard Kober,Adrian Paschke&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|authors=Gerhard Kober,Adrian Paschke&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=Freitext=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pdf width=&amp;quot;1500px&amp;quot;&amp;gt;https://ceur-ws.org/Vol-2644/paper35.pdf&amp;lt;/pdf&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pdf width=&amp;quot;1500px&amp;quot;&amp;gt;https://ceur-ws.org/Vol-2644/paper35.pdf&amp;lt;/pdf&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
	<entry>
		<id>http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1425&amp;oldid=prev</id>
		<title>Wf at 12:23, 30 March 2023</title>
		<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1425&amp;oldid=prev"/>
		<updated>2023-03-30T12:23:20Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 12:23, 30 March 2023&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Paper=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Paper=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Paper&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{Paper&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|id=Vol-2644/paper35&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|id=Vol-2644/paper35&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;storemode&lt;/del&gt;=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;property&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;wikidataid&lt;/ins&gt;=&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Q117337882&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|title=Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|title=Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|pdfUrl=https://ceur-ws.org/Vol-2644/paper35.pdf&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|pdfUrl=https://ceur-ws.org/Vol-2644/paper35.pdf&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|dblpUrl=https://dblp.org/rec/conf/ruleml/KoberP20&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|volume=Vol-2644&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|volume=Vol-2644&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|storemode=property&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|authors=Gerhard Kober,Adrian Paschke&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|authors=Gerhard Kober,Adrian Paschke&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;|dblpUrl=https://dblp.org/rec/conf/ruleml/KoberP20&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt; &lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=Freitext=&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pdf width=&amp;quot;1500px&amp;quot;&amp;gt;https://ceur-ws.org/Vol-2644/paper35.pdf&amp;lt;/pdf&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pdf width=&amp;quot;1500px&amp;quot;&amp;gt;https://ceur-ws.org/Vol-2644/paper35.pdf&amp;lt;/pdf&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
	<entry>
		<id>http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1422&amp;oldid=prev</id>
		<title>Wf: modified through wikirestore by wf</title>
		<link rel="alternate" type="text/html" href="http://ceur-ws.bitplan.com/index.php?title=Vol-2644/paper35&amp;diff=1422&amp;oldid=prev"/>
		<updated>2023-03-30T12:03:00Z</updated>

		<summary type="html">&lt;p&gt;modified through wikirestore by wf&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;=Paper=&lt;br /&gt;
{{Paper&lt;br /&gt;
|id=Vol-2644/paper35&lt;br /&gt;
|storemode=property&lt;br /&gt;
|title=Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources&lt;br /&gt;
|pdfUrl=https://ceur-ws.org/Vol-2644/paper35.pdf&lt;br /&gt;
|volume=Vol-2644&lt;br /&gt;
|authors=Gerhard Kober,Adrian Paschke&lt;br /&gt;
|dblpUrl=https://dblp.org/rec/conf/ruleml/KoberP20&lt;br /&gt;
}}&lt;br /&gt;
==Using PROVA-Rule Engine as Dispatching-Service for FHIR-Observation-Resources==&lt;br /&gt;
&amp;lt;pdf width=&amp;quot;1500px&amp;quot;&amp;gt;https://ceur-ws.org/Vol-2644/paper35.pdf&amp;lt;/pdf&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
                 Using PROVA-Rule Engine as&lt;br /&gt;
                    Dispatching-Service for&lt;br /&gt;
                 FHIR-Observation-Resources&lt;br /&gt;
&lt;br /&gt;
                       Gerhard Kober1 and Adrian Paschke2&lt;br /&gt;
                       1&lt;br /&gt;
                        Tiani ”Spirit” GmbH, Vienna, Austria&lt;br /&gt;
                      gerhard[DT]kober[AT]tiani-spirit.com&lt;br /&gt;
         2&lt;br /&gt;
           Fraunhofer FOKUS and Freie Universitaet Berlin, Berlin, Germany&lt;br /&gt;
                   adrian[DT]paschke[AT]fokus.fraunhofer.de&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        Abstract. In a clinical medical environment, vital signs of patients are&lt;br /&gt;
        crucial information. In order to have the right information at the right&lt;br /&gt;
        time available, they need to be evaluated during the storage-process and&lt;br /&gt;
        then be submitted to special store-containers or to alerting-servers. To&lt;br /&gt;
        achieve the goal of observation-information-based dispatching, a rule en-&lt;br /&gt;
        gine is used to be highly flexible in the evaluation of health parameters&lt;br /&gt;
        and limits. The assumption is that such a declarative rule-based ser-&lt;br /&gt;
        vice is easier to maintain, and can also work in a distributed way. The&lt;br /&gt;
        distribution of the rule-engine is in the setting of a clinic-group (where&lt;br /&gt;
        many hospitals work together) fundamental to allow each hospital to&lt;br /&gt;
        work independently of the others.&lt;br /&gt;
&lt;br /&gt;
        Keywords: FHIR · PROVA · Rules&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
1     Introduction&lt;br /&gt;
&lt;br /&gt;
In a clinical-medical environment, vital signs from patients are important for&lt;br /&gt;
diagnoses and the upcoming therapy [5]. Usually, medical doctors are interested&lt;br /&gt;
in two main things by evaluating the vital signs in clinical routine: first, if the&lt;br /&gt;
vital signs are consistent over a timeline, and secondly, if there are outliers in&lt;br /&gt;
medical values [13].&lt;br /&gt;
    So the issue is to detect ’abnormal’ values and decide dynamically where to&lt;br /&gt;
store patient’s data, to have it available for the physician (besides the as ’normal’&lt;br /&gt;
defined vital-sings), who then needs to set actions for the patient.&lt;br /&gt;
    This paper analyzes the use of a rule-engine to fulfill the needs of a future&lt;br /&gt;
’distributed medical rule-engine’. Furthermore, the values of the medical data,&lt;br /&gt;
which exist in the form of FHIR-resources (Fast Healthcare Interoperability Re-&lt;br /&gt;
sources) needs to be extracted, and the decisions need to be taken during the&lt;br /&gt;
storage-process.&lt;br /&gt;
&lt;br /&gt;
    Copyright c 2020 for this paper by its authors. Use permitted under Creative Com-&lt;br /&gt;
    mons License Attribution 4.0 International (CC BY 4.0).&lt;br /&gt;
�    The goal of this work is to set up a system architecture and a workflow that&lt;br /&gt;
allows us to receive FHIR-Observation-resources, which are meant for storage,&lt;br /&gt;
extract the needed values of a particular type of information and decide on the&lt;br /&gt;
retrieved information which storage-endpoint to use.&lt;br /&gt;
    A use-case for this can be found for people who have diabetes, where the&lt;br /&gt;
blood glucose level is highly relevant. So if the level falls under a certain level,&lt;br /&gt;
a doctor (or another medical person) should get notified to help this person.&lt;br /&gt;
Another feature is to have these occurrences for later medical analysis of these&lt;br /&gt;
non-normal medicinal values.&lt;br /&gt;
    A solution for the problem is needed to improve patient care, because of clear,&lt;br /&gt;
relevant information and gathering information for answering medical-clinical&lt;br /&gt;
research questions, based on vital signs.&lt;br /&gt;
&lt;br /&gt;
FHIR (Fast Healthcare Interoperability Resources) is a standard created by HL7&lt;br /&gt;
(Health Level 7) [9]. FHIR defines resources, and they are defined by six layers&lt;br /&gt;
to strap down the big healthcare domain [8]. These layers are:&lt;br /&gt;
 1. Foundation Resources&lt;br /&gt;
 2. Base Resources&lt;br /&gt;
 3. Clinical Resources&lt;br /&gt;
 4. Financial Resources&lt;br /&gt;
 5. Specialized Resources&lt;br /&gt;
 6. Resource Contextualization.&lt;br /&gt;
In this work, the clinical resources from layer three are used. To be more precise,&lt;br /&gt;
the observation-resource is the target-resource. For the support of diagnosis or&lt;br /&gt;
patient monitoring, the observations-resource is a central element in healthcare&lt;br /&gt;
[6]. For the FHIR-Observation, it is mandatory to have the following items in&lt;br /&gt;
the object, which will then be sent to the FHIR-Store: the status and the code.&lt;br /&gt;
The ’Observations-status’ describes the status of result value and is used to track&lt;br /&gt;
the individual results. The observation-status is coded and can just take defined&lt;br /&gt;
values. The code describes the observed entity to understand the meaning of&lt;br /&gt;
the observation. [7]. Also, the value of the actual observation is useful (but not&lt;br /&gt;
mandatory by definition). Other items in the observation can be included, but&lt;br /&gt;
do not need to be. For the solution of the problem, the code and the observation-&lt;br /&gt;
value are important during processing to decide if the value is relevant for making&lt;br /&gt;
decisions, and if so, in which way to use it.&lt;br /&gt;
&lt;br /&gt;
As a rule engine for this dispatching-case PROVA [12] will be used. It supports&lt;br /&gt;
the usage of event-driven reaction rules. Since there is a need in the overall pro-&lt;br /&gt;
cess for high flexibility and the ability of the solution to express event-patterns&lt;br /&gt;
and reactions, the complex event processing-lifecycle supported by Prova is help-&lt;br /&gt;
ful. Related to [4][2] the CEP (complex event processing)-lifecycle contains:&lt;br /&gt;
 – Event Production&lt;br /&gt;
 – Event Definition&lt;br /&gt;
 – Event Selection&lt;br /&gt;
� – Event Aggregation&lt;br /&gt;
 – Event Handling&lt;br /&gt;
 – Event Consumption.&lt;br /&gt;
These events will be processed during the actual execution. Prova provides the&lt;br /&gt;
ability to use a declarative programming paradigm in conjunction with an object-&lt;br /&gt;
oriented programming paradigm. There is a separation on the program-logic (the&lt;br /&gt;
declarative part), the data-access, and optional external procedural computa-&lt;br /&gt;
tions [1].&lt;br /&gt;
    Other possible approaches besides the rule-based to be thought of are more&lt;br /&gt;
restrictive and less flexible. For a very special use-case, a solution could be im-&lt;br /&gt;
plemented ’hardcoded’ by doing all the needed calculations and comparisons in&lt;br /&gt;
the code. Still, if someone likes to change comparison-values or change the use-&lt;br /&gt;
case, it takes a lot of changes in the program logic. Furthermore, if a second&lt;br /&gt;
or a third factor for a decision needs to be taken into account, the ’hardcoded’&lt;br /&gt;
solution will become complicated and hard to maintain. Therefore this is not&lt;br /&gt;
the preferred solution. When taking into account that not only FHIR-resources&lt;br /&gt;
or data structures defined in the medical domain are relevant for making deci-&lt;br /&gt;
sions, a more generic solution is needed. It has to be based on standards and to&lt;br /&gt;
be generic and flexible to build different options for needed decision points. For&lt;br /&gt;
example, there is HL7-Arden-Syntax, which is used for representing procedural&lt;br /&gt;
clinical knowledge in order to share health knowledge bases [3]. These knowledge&lt;br /&gt;
bases are encoded in the Arden Syntax, which is specialized for the needs of the&lt;br /&gt;
language of so-called MLMs (Medical Logic Module). So the Arden-Syntax has&lt;br /&gt;
a strong focus on medical information sharing and is useful for clinical processes.&lt;br /&gt;
Going beyond the clinics and using FHIR, the Arden Syntax has no capabilities&lt;br /&gt;
for obtaining clinical-medical decision support.&lt;br /&gt;
&lt;br /&gt;
2   System design&lt;br /&gt;
The following section describes the planned system architecture, as well as the&lt;br /&gt;
workflow.&lt;br /&gt;
&lt;br /&gt;
                                        Systemarchitecture&lt;br /&gt;
                                                                External FHIR-Servers&lt;br /&gt;
                                                               (e.g. Storage endpoint, or other DMRE)&lt;br /&gt;
                   FHIR-Client&lt;br /&gt;
&lt;br /&gt;
                                                                External FHIR-Servers&lt;br /&gt;
&lt;br /&gt;
                DMRE&lt;br /&gt;
&lt;br /&gt;
                                        DMRE FHIR Service&lt;br /&gt;
                                                                     Knowledgebase&lt;br /&gt;
                Restful FHIR-Server         Prova-Receiver&lt;br /&gt;
                                             Prova-Sender                    Extractor&lt;br /&gt;
                                              FHIR-Client                   Dispatcher&lt;br /&gt;
                                           ObservationParser&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                  Fig. 1. Systemarchitecture&lt;br /&gt;
�   The following components are within the system architecture:&lt;br /&gt;
 – FHIR-Client&lt;br /&gt;
 – Restful FHIR-Server&lt;br /&gt;
 – DMRE FHIR-Service&lt;br /&gt;
    • Prova-Receiver&lt;br /&gt;
    • Prova-Sender&lt;br /&gt;
    • FHIR-Client&lt;br /&gt;
    • ObservationParser&lt;br /&gt;
 – Knowledgebase&lt;br /&gt;
    • Extractor&lt;br /&gt;
    • Dispatcher&lt;br /&gt;
 – external FHIR-Server&lt;br /&gt;
The following section describes the relations between the components having in&lt;br /&gt;
mind the workflow as well.&lt;br /&gt;
&lt;br /&gt;
The system architecture: From an architectural point of view, the solution is&lt;br /&gt;
based on FHIR as a state-of-the-art standard for sending and receiving medi-&lt;br /&gt;
cal data. Therefore, any (external) FHIR-Client is needed to send the FHIR-&lt;br /&gt;
Observations to a so-called ’Distributed Medical Rule Engine’ (DMRE) which&lt;br /&gt;
contains a FHIR-Server. The DMRE is a container for different services, which&lt;br /&gt;
need to be accessed during transaction time.&lt;br /&gt;
    The FHIR-Client is responsible for the creation of conformant JSON-objects,&lt;br /&gt;
containing the appropriate values for the designated resource. The FHIR-Server&lt;br /&gt;
provides a RESTful-service to receive FHIR-resources (e.g., Patient-resources,&lt;br /&gt;
Observation-resources) by using HTTP. The server has to be able to accept&lt;br /&gt;
HTTP-calls for inserting, updating, and deleting resources.&lt;br /&gt;
    The DMRE-FHIR-Service is a service that provides the interfaces for the&lt;br /&gt;
PROVA-rule-engine, as well as an FHIR-Client and an Observation parser. The&lt;br /&gt;
rule-engine interacts with the Knowledge base. The knowledgebase contains the&lt;br /&gt;
rules. There are rules which define which value needs to be extracted for further&lt;br /&gt;
processing, and also rules for the dispatching of the FHIR-resources. These rules&lt;br /&gt;
are providing the ’logic’ in the workflow during execution-time.&lt;br /&gt;
    The DMRE-FHIR-Service can send incoming requests from the FHIR-Server&lt;br /&gt;
to the extractor-rule. Secondly, the DMRE-FHIR-Service can receive incoming&lt;br /&gt;
requests from the Rules for upcoming processing. Here is meant to either get the&lt;br /&gt;
information of extraction (which value to extract from the FHIR-Observation),&lt;br /&gt;
or the dispatch information (where to process the FHIR-Observation to). For the&lt;br /&gt;
extraction, the Observation-parser is needed, to grab the relevant information&lt;br /&gt;
(requested code and value), if it exists in the observation. This DMRE-FHIR-&lt;br /&gt;
Service exists as an extra service because of the option to have another incoming&lt;br /&gt;
path than the FHIR-Server (which intercepts the request). The external FHIR-&lt;br /&gt;
Server is the chosen endpoint by the rule-engine, executed by the FHIR-Client&lt;br /&gt;
in the DMRE-FHIR-Service. This endpoint could be the goal (target) server,&lt;br /&gt;
which is responsible for the persistence of the observation resource. It could be&lt;br /&gt;
another DMRE-RESTful-FHIR-Server-instance, which proceeds other rules and&lt;br /&gt;
�takes a different decision (based on a different set of rules). That means it is&lt;br /&gt;
possible to have the integrated rule-engine used in a distributed way, and no&lt;br /&gt;
central component is needed. Still, it could be on the edge of a wide distributed&lt;br /&gt;
inter-operable health system.&lt;br /&gt;
   The system architecture is designed to intercept the incoming FHIR-Observation-&lt;br /&gt;
request for the information extraction and make decisions based on the rules&lt;br /&gt;
about the FHIR endpoint.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Workflow: For the current use-case, the workflow during the transaction process&lt;br /&gt;
in this architecture is based on the fact that an observation-type (e.g. a heart-rate&lt;br /&gt;
or glucose-level) and a decision for ’normal’ or ’not normal’ is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                            FHIR-Client&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                         Observation&lt;br /&gt;
           execution&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                           Send&lt;br /&gt;
            Return&lt;br /&gt;
             result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                       FHIR-Restful&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                         Server&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                          Observation&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                           Forward&lt;br /&gt;
                execution&lt;br /&gt;
                 Return&lt;br /&gt;
                  result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                            DMREFhirServer&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                          ProvaService.send („extractor“, Observation)&lt;br /&gt;
                                                                                                                                                                                                                                               Save Observation temporary&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                            Send Back observation and value to extract&lt;br /&gt;
                                                                                                                                                                                               Return extracted value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                        Extract needed Value&lt;br /&gt;
                                                      Forward Observation to desired endpoint&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                        Send extracted value&lt;br /&gt;
                                                                                                Return FHIR-Endpoint&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                       Observation-&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                         Parser&lt;br /&gt;
                            Return execution result&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                       Knowledgebase&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                         (Extractor)&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                         Check for needed Value&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                       Knowledgebase&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                        (Dispatcher)&lt;br /&gt;
                                                                                                                                                        Check if value is normal or not&lt;br /&gt;
                                                                                                                       Choose FHIR-Endpoint to submit&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                       Server (storage)&lt;br /&gt;
                                                                                                                                                                                                                                                                                                                                                                                                        External FHIR-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
          Fig. 2. Sequence FHIR-Client, Interception and final submission&lt;br /&gt;
�    The workflow starts by having an FHIR-Client submitting an FHIR-Observation&lt;br /&gt;
to the DMRE-FHIR-Restful-Server. The DMRE-FHIR-Restful-Server intercepts&lt;br /&gt;
the request by calling the DMRE-FHIR-Service and forwarding the observation&lt;br /&gt;
there. This DMRE-FHIR-Service is the core component in the workflow since&lt;br /&gt;
it coordinates requests and takes care of responding to the initial requestor.&lt;br /&gt;
The DMRE-FHIR-Service forwards the observation to the ’extractor’-Rulebase.&lt;br /&gt;
This extractor is aware of which value needs to be extracted to have the right&lt;br /&gt;
information for the upcoming dispatching. The extractor-rule returns than the&lt;br /&gt;
’to-be-extracted’ value and observation. This task of filling the needed value&lt;br /&gt;
and an FHIR-Observation can also be done by any external component. The&lt;br /&gt;
DMRE-FHIR-Service keeps the current observation to proceed with the follow-&lt;br /&gt;
ing parsing and extraction. The observation-parser simply returns the extracted&lt;br /&gt;
value, which will then be submitted to the ’dispatch’-rule. This rule decides&lt;br /&gt;
(e.g., if a value is a normal value or a not-normal value), based on the configu-&lt;br /&gt;
ration of the rules and the extracted value, which FHIR-Server-Endpoint to use&lt;br /&gt;
for the (final) submission. The ’dispatch’-rule finally returns the endpoint to the&lt;br /&gt;
DMRE-FHIR-Service, which then acts as an FHIR-Client and submits the initial&lt;br /&gt;
observation to the decided endpoint. The endpoint returns an execution-result,&lt;br /&gt;
which will be processed back through the entire processing-chain, to have the&lt;br /&gt;
initial FHIR-Client informed about successful storage.&lt;br /&gt;
    The general workflow during the execution process is for every observation-&lt;br /&gt;
type and the attached values the same, but the specific details on ’what’ goal&lt;br /&gt;
need to be achieved can be changed due to the needs of the use case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3     Implementation&lt;br /&gt;
&lt;br /&gt;
The implementation of the Distributed Medical Rule Engine (DMRE) is done in&lt;br /&gt;
Java by including Prova-libraries for the rule-engine-parts and the HAPI-FHIR-&lt;br /&gt;
Library [10] for essential FHIR services.&lt;br /&gt;
    For testing a sample use case, a reduced example from the HL7-FHIR-&lt;br /&gt;
Resource page of samples is used. This one is then sent via HTTP-Post to the&lt;br /&gt;
FHIR-Endpoint in the DMRE.&lt;br /&gt;
    The HAPI-FHIR-Library provides a servlet, which allows us to set up an&lt;br /&gt;
FHIR-Server in general, but without having specific resources implemented. This&lt;br /&gt;
allows us to build up our own needs in the implementation, by creating for&lt;br /&gt;
example a specific ’RestfulObservationResourceProvider’, which then can call&lt;br /&gt;
the DMRE-FHIR-Service-code. The DMRE-FHIR-Service acts as a client for&lt;br /&gt;
sending the received JSON-Object to the rule-engine. The call is submitted to&lt;br /&gt;
the extractor. A sample listening for the extractor is in Listening 1.1.&lt;br /&gt;
&lt;br /&gt;
                              Listing 1.1. Sample Extractor.prova&lt;br /&gt;
:− e v a l ( e x t r a c t o r ( ) ) .&lt;br /&gt;
e x t r a c t o r ( ) :−&lt;br /&gt;
                rcvMult (XID , P r o t o c o l , From , inform ,&lt;br /&gt;
                      { o b s e r v a t i o n −&amp;gt;O b s e r v a t i o n } ) ,&lt;br /&gt;
�         routeTo2 ( O b s e r v a t i o n ) .&lt;br /&gt;
routeTo2 ( O b s e r v a t i o n ) :−&lt;br /&gt;
         sendMsg ( ” XIDExtractor ” , o s g i , ”FHIR” , inform ,&lt;br /&gt;
               { g l u c o s e −&amp;gt;O b s e r v a t i o n } ) .&lt;br /&gt;
&lt;br /&gt;
The knowledgebase (extractor-rule) has the information WHAT to extract. It&lt;br /&gt;
receives the observation as a string, and ’routeTo2’ (which means send it back&lt;br /&gt;
to the Java-process - ’Step 2’) also has the information which observation-type&lt;br /&gt;
to take care of. In the sample, it takes care of the glucose-coding.&lt;br /&gt;
     The java-code contains a Prova-Callback, to receive calls from the rule-engine.&lt;br /&gt;
Prova has a defined ordering of parameters [11] that is used for the decision if&lt;br /&gt;
it is an extraction-task or a dispatching-task. The parameters are the following&lt;br /&gt;
ones [11]:&lt;br /&gt;
 – XID - conversion-ID of the message&lt;br /&gt;
 – Protocol - Name of the message passing protocol&lt;br /&gt;
 – Destination&lt;br /&gt;
 – Performative - the message type broadly characterizing the meaning of the&lt;br /&gt;
   message&lt;br /&gt;
 – Payload&lt;br /&gt;
For this task, the ’Destination’ is used - either ’FHIR’ for the data-extraction&lt;br /&gt;
and further ongoing submission to the second rule-base or ’DISPATCHER’ for&lt;br /&gt;
executing the submission to the next FHIR-Endpoint.&lt;br /&gt;
    Once the Prova-callback is hit by the Destination ’FHIR’, the Java-code tries&lt;br /&gt;
to parse the FHIR-Observation, extract the value from there, and return it, to&lt;br /&gt;
then put this information in a further call to the Dispatcher-rule, to take the&lt;br /&gt;
decision where to send the FHIR-Observation-Resource finally.&lt;br /&gt;
    The dispatching-rule has information about the decision to submit to a dif-&lt;br /&gt;
ferent endpoint, and it also holds the information on the endpoint.&lt;br /&gt;
    In Listening 1.2, a reaction-routing functionality is used to find the correct&lt;br /&gt;
endpoint if the value of the observation is normal or another if it is abnormal.&lt;br /&gt;
Once found out about the status of the value, the ”routeToFHIR” either takes&lt;br /&gt;
the event processing agent for FHIR-Endpoint A (http://hapi.fhir.org/baseR4)&lt;br /&gt;
or B (http://hapi2.fhir.org/baseR4). This information is then sent back to the&lt;br /&gt;
Prova-Callback with the Prova-Destination ’DISPATCH’, to submit the FHIR-&lt;br /&gt;
Observation to the meant endpoint, by using an implementation of an FHIR-&lt;br /&gt;
Client.&lt;br /&gt;
                       Listing 1.2. Sample Dispatcher.prova&lt;br /&gt;
:− e v a l ( d i s p a t c h e r ( ) ) .&lt;br /&gt;
d i s p a t c h e r ( ) :−&lt;br /&gt;
                rcvMult (XID , P r o t o c o l , From , inform ,&lt;br /&gt;
                       { val ue −&amp;gt;O b s e r v a t i o n } ) ,&lt;br /&gt;
                routeToFHIR ( Agent , O b s e r v a t i o n ) ,&lt;br /&gt;
                sendMsg ( ”XID3” , o s g i , ”DISPATCHER” , inform ,&lt;br /&gt;
                       { endpoint −&amp;gt;Agent } ) .&lt;br /&gt;
�routeToFHIR ( ” h t t p : / / h a p i . f h i r . o r g / baseR4 ” , O b s e r v a t i o n ) :−&lt;br /&gt;
          abnormal ( O b s e r v a t i o n ) .&lt;br /&gt;
routeToFHIR ( ” h t t p : / / h a p i 2 . f h i r . o r g / baseR4 ” , O b s e r v a t i o n ) :−&lt;br /&gt;
          normal ( O b s e r v a t i o n ) .&lt;br /&gt;
abnormal ( O b s e r v a t i o n ) :−&lt;br /&gt;
          Observation &amp;gt;7.&lt;br /&gt;
normal ( O b s e r v a t i o n ) :−&lt;br /&gt;
          Observation &amp;lt;=7.&lt;br /&gt;
&lt;br /&gt;
After processing the information to the next FHIR-Server, the response from the&lt;br /&gt;
server is then returned to the client (for successful and also for not successful&lt;br /&gt;
submissions). This is achieved by the HAPI-FHIR-Method ’MethodOutcome’.&lt;br /&gt;
Important to say, that the initial JSON-Object is not changed in terms of con-&lt;br /&gt;
tent. The transformations are done for the necessary extraction to allow the&lt;br /&gt;
decision based on values.&lt;br /&gt;
    The code is available on Github https://github.com/gkober/DMRE. As a&lt;br /&gt;
side note: in the code are two options implemented: first, using ”hardcoded”&lt;br /&gt;
observation-types (by configuration), and secondly, the opportunity for the rule-&lt;br /&gt;
engine is available. The usage of the different options can be done by configura-&lt;br /&gt;
tion.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
4    Results and Discussion&lt;br /&gt;
The presented work shows the ability to achieve rule-based dispatching to dif-&lt;br /&gt;
ferent FHIR-Servers for obtaining patient’s observations, which are critical for&lt;br /&gt;
patient care. The solution is highly flexible, because of the rules which take&lt;br /&gt;
control of the decision-points.&lt;br /&gt;
    During the evaluation of the implementation, simple observations contain-&lt;br /&gt;
ing e.g., glucose-values or heart-rate values, the solution works appropriately by&lt;br /&gt;
the extraction and the dispatching. There is a known issue in the implementa-&lt;br /&gt;
tion, which takes care of ’combined observations’. This means if an observation&lt;br /&gt;
has two or more codes and values (e.g., blood pressure). The implementation is&lt;br /&gt;
susceptible to the correctness of the FHIR-Observation. For example, an obser-&lt;br /&gt;
vation without a value returns in error. Such an observation is, by definition,&lt;br /&gt;
correct, but for a production system, it is probably not relevant to take care of&lt;br /&gt;
this topic.&lt;br /&gt;
    Finally, the architecture and the decision to use the rule-engine Prova turned&lt;br /&gt;
out to be a reasonable solution providing the required flexibility and adaptability&lt;br /&gt;
as well as extendability of the architecture. This helps to improve the overall&lt;br /&gt;
solution of the ’distributed medical rule engine’.&lt;br /&gt;
�5   Future Work&lt;br /&gt;
&lt;br /&gt;
Based on this work, further topics need to be addressed. One is to extend the&lt;br /&gt;
solution for other FHIR-Resources, which are valuable for different types of in-&lt;br /&gt;
formation dispatching and extraction. In the rules, the user mentions the ”type”&lt;br /&gt;
of information which needs to be extracted - therefore, information retrieval from&lt;br /&gt;
a terminology-service needs to found. Also, the dispatching of patient-basis and&lt;br /&gt;
combinations is a field that needs to be addressed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
References&lt;br /&gt;
 1. A.Paschke: Semantic Web Rules,&lt;br /&gt;
    https://pdfs.semanticscholar.org/d8f9/e961df8c4103a2d698f962d3460305d43564.pdf,&lt;br /&gt;
    accessed: 2020-05-06&lt;br /&gt;
 2. A.Paschke: The Reaction RuleML Classification of the Event/Action/State Pro-&lt;br /&gt;
    cessing and Reasoning Space (12 2006),&lt;br /&gt;
    https://arxiv.org/ftp/cs/papers/0611/0611047.pdf&lt;br /&gt;
 3. Arden Syntax v2.10 (Health Level Seven Arden Syntax for Medical Logic Systems,&lt;br /&gt;
    Version 2.10),&lt;br /&gt;
    https://www.hl7.org/implement/standards/product brief.cfm?product id=372,&lt;br /&gt;
    accessed: 2020-05-06&lt;br /&gt;
 4. Semantic CEP with Reaction RuleML,&lt;br /&gt;
    https://de.slideshare.net/swadpasc/paschke-rule-ml2014keynote, accessed: 2020-&lt;br /&gt;
    05-06&lt;br /&gt;
 5. Chalari E., Intas G., S.P.: The Importance of Vital Signs in the Triage of Injured&lt;br /&gt;
    Patients. Critical Care Nursing Quarterly 35, 292–298 (2012). https://doi.org/doi:&lt;br /&gt;
    10.1097/CNQ.0b013e318255d6b3&lt;br /&gt;
 6. Observation - FHIR v4.0.1,&lt;br /&gt;
    https://www.hl7.org/fhir/observation.html, accessed: 2020-05-06&lt;br /&gt;
 7. Observation - FHIR v4.0.1 - Definitions,&lt;br /&gt;
    https://www.hl7.org/fhir/observation-definitions.html#Observation.code,&lt;br /&gt;
    Accessed: 2020-05-06&lt;br /&gt;
 8. HL7 FHIR: Architect’s Introduction,&lt;br /&gt;
    https://www.hl7.org/fhir/overview-arch.html, accessed: 2020-05-06&lt;br /&gt;
 9. HL7 FHIR: Summary,&lt;br /&gt;
    https://www.hl7.org/fhir/summary.html, accessed: 2020-05-06&lt;br /&gt;
10. HAPI FHIR - The Open Source FHIR API for Java,&lt;br /&gt;
    https://hapifhir.io, accessed: 2020-05-06&lt;br /&gt;
11. Kozlenkov, A.: Prova Rule Language Version 3.0, User’s guide (May 2010)&lt;br /&gt;
12. Prova rule language, https://github.com/prova/prova, accessed: 2020-05-06&lt;br /&gt;
13. Versloot, M.: Evidence based decisions in nursing and their effect on&lt;br /&gt;
    quality of care. Ph.D. thesis, Faculty of Medicine (AMC-UvA) (2012),&lt;br /&gt;
    https://hdl.handle.net/11245/1.385728&lt;br /&gt;
�&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Wf</name></author>
	</entry>
</feed>