An Implementation of Arden Syntax in a Service-oriented - - PowerPoint PPT Presentation

an implementation of arden syntax in a service oriented
SMART_READER_LITE
LIVE PREVIEW

An Implementation of Arden Syntax in a Service-oriented - - PowerPoint PPT Presentation

. An Implementation of Arden Syntax in a Service-oriented Architecture TATSUKAWA Akimichi 1 , 2 KAWAZOE Yoshimasa 1 OHE Kazuhiko 1 1 Department of Medical Informatics and Economics, Graduate School of Medicine, University of Tokyo, Tokyo,


slide-1
SLIDE 1

.

.

An Implementation of Arden Syntax in a Service-oriented Architecture

TATSUKAWA Akimichi1,2 KAWAZOE Yoshimasa1 OHE Kazuhiko1

1Department of Medical Informatics and Economics, Graduate School

  • f Medicine, University of Tokyo, Tokyo, Japan.

2Narimasu Kosei Hospital

May 9th, 2009

slide-2
SLIDE 2

Background

. .

  • Arden Syntax is a standard formalism for

Medical Logic Module (MLM, in short)

  • interoperability problem for sharing

MLMs(i.e. curly brace problem) . Curly Brace Problem: . . . . . . . .

serum_sodium := read { };

slide-3
SLIDE 3

Background

. .

  • Arden Syntax is a standard formalism for

Medical Logic Module (MLM, in short)

  • interoperability problem for sharing

MLMs(i.e. curly brace problem) . Curly Brace Problem: . . . . . . . .

serum_sodium := read { Whatever you want! };

slide-4
SLIDE 4

Background

. .

  • Arden Syntax is a standard formalism for

Medical Logic Module (MLM, in short)

  • interoperability problem for sharing

MLMs(i.e. curly brace problem) . Curly Brace Problem: . . . . . . . .

serum_sodium := read { SELECT * FROM labo_results WHERE labo_code = "3H0100000023261" ORDER BY seq };

slide-5
SLIDE 5

Background

. .

  • Arden Syntax is a standard formalism for

Medical Logic Module (MLM, in short)

  • interoperability problem for sharing

MLMs(i.e. curly brace problem) . Curly Brace Problem: . . . . . . . .

serum_sodium := read { labo_result(’3H0100000023261’, Value, Date) ,latest(Value, Date). };

slide-6
SLIDE 6

Purpose

. . To solve the curly brace problem, and make the Arden Syntax available between various healthcare systems.

slide-7
SLIDE 7

Purpose

. . To solve the curly brace problem, and make the Arden Syntax available between various healthcare systems.

slide-8
SLIDE 8

Purpose

. . To solve the curly brace problem, and make the Arden Syntax available between various healthcare systems.

slide-9
SLIDE 9

Purpose

. . To solve the curly brace problem, and make the Arden Syntax available between various healthcare systems.

slide-10
SLIDE 10

Methods

  • Define a Patient Information Model
  • Design Query Syntax
  • Create web application servers with

REST Web Services

slide-11
SLIDE 11

Patient Information Model

A patient information model represents the healthcare domain for decision support

slide-12
SLIDE 12

Query Syntax

A path should indicate data in the patient information model . Examples: . . . . . . . .

body_weight := read {AQL:1.0d path: /basic_info/weight AQL:1.0d}; serum_sodium := read {AQL:1.0d path: /labo_results/[jlac10(local_code, ’3H0100000023262’)] AQL:1.0d};

slide-13
SLIDE 13

Query Syntax

A path should indicate data in the patient information model . Examples: . . . . . . . .

body_weight := read {AQL:1.0d path: /basic_info/weight AQL:1.0d}; serum_sodium := read {AQL:1.0d path: /labo_results/[jlac10(local_code, ’3H0100000023262’)] AQL:1.0d};

slide-14
SLIDE 14

Query Syntax

A path should indicate data in the patient information model . Examples: . . . . . . . .

body_weight := read {AQL:1.0d path: /basic_info/weight AQL:1.0d}; serum_sodium := read {AQL:1.0d path: /labo_results/[jlac10(local_code, ’3H0100000023262’)] AQL:1.0d};

slide-15
SLIDE 15

System architecture

slide-16
SLIDE 16

System architecture

slide-17
SLIDE 17

System architecture

slide-18
SLIDE 18

System architecture

slide-19
SLIDE 19

System architecture

slide-20
SLIDE 20

System architecture

slide-21
SLIDE 21

System architecture

slide-22
SLIDE 22

REST Web Service

In REST, each resource is identified by its URL and accessed by HTTP method. . . . . . . .

URL: http://proxyehr/institutions /todai/labo_results.xml HTTP Method: POST POST Parameters: <labo_result> <local-code> 6410 </local-code> <value> 150.0 </value> <primary-time> 20080131T120000 </primary-time> </labo_result>

slide-23
SLIDE 23

Conlusions

In order to solve the curly brace problem in Arden Syntax,

  • A common model, the query syntax as

path format, and methods for accessing data are defined

  • REST-styled Service-oriented

architecture is useful for connecting components

slide-24
SLIDE 24

Limitations

  • The patient model is small and limited
  • Some semantic mismatches are left

unsolved (e.g. metrics)

  • The usability and performance of the

system should be evaluated

slide-25
SLIDE 25

Thank you for your attention.

A Pittsburgh view(http://commons.wikimedia.org)

slide-26
SLIDE 26

Arden Syntax MLM I

maintenance: title: Alert for hyponatremia;; mlmname: hyponatremia;; arden: version 2.5;; version: 2.12;; institution: Todai hosp;; author: Akimichi Tatsukawa;; specialist: ;; date: 2009-5-9;; validation: testing;; library: purpose: Alert for hyponatremia;; explanation: ;; keywords: sodium;; citations: ;;

slide-27
SLIDE 27

Arden Syntax MLM II

knowledge: type: data_driven;; data: event_sodium := event {AEL:1.0d path: /labo_results/[jlac10(local code,’3H0100000023261’)] ; AEL:1.0d}; data_sodium := read latest {AQL:1.0d path: /labo_results/[jlac10(local code,’3H0100000023261’)] ; AQL:1.0d}; ;; evoke: event_sodium; ;; logic: conclude data_sodium < 120; ;; action: write "A danger of severe hyponatremia!! "; ;; end:

slide-28
SLIDE 28

REST I

Operation HTTP Method SQL Create POST INSERT Read GET SELECT Update PUT UPDATE Delete DELETE DELETE

slide-29
SLIDE 29

SOAP and REST I

SOAP XML Endpoint 1 Many Client types App App, Web browser Representation XML Many Overhead High Low

slide-30
SLIDE 30

SOAP and REST I

SOAP way

POST /StockQuote HTTP/1.1 Host: www.stockquoteserver.com Content-Type: text/xml; charset="utf-8" Content-Length: nnnn SOAPAction: "Some-URI" <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetLastTradePrice xmlns:m="Some-URI"> <symbol>DIS</symbol> </m:GetLastTradePrice> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

REST style

http://stockquoteserver.example/query?symbol=DIS