Ruby Movement on - - PowerPoint PPT Presentation

ruby
SMART_READER_LITE
LIVE PREVIEW

Ruby Movement on - - PowerPoint PPT Presentation

Ruby Movement on medical standard and its implementation by Ruby Shinji KOBAYASHI; Ehime University Agenda Who am I?


slide-1
SLIDE 1

医療情報分野における標準化の動向 と Ruby 言語による実装

Movement on medical standard and its implementation by Ruby

小林慎治; 愛媛大学医学部第一内科 Shinji KOBAYASHI; Ehime University

slide-2
SLIDE 2

Who am I? Why do I use Ruby?

Agenda

slide-3
SLIDE 3

e-Health care in Japan and My bibliography

Era E-Health in Japan My bibliography 1970 Happy Origin Start for research Born in Saga Japan at April 19, 1970 1980 Hopeful development 'Receipt computer' Claiming system for insurance Manga, Anime, Computer Medical student/ Kyushu University 1990 Painful growth Clinical Physicians Order / Entry system MD license, 1995 Resident, Clinical hematology/oncology 2000 Explosion Electronic medical record/Electronic health record, full digital

  • PhD. research and

development on OSS in medical field

slide-4
SLIDE 4

I can do it better!

slide-5
SLIDE 5

Why do I use Ruby?

 Cost to change brain mode

 Lower cost  Short time

 Open source software

 Free to use, financially, politically

 Object Oriented Programing Language

 Next challenge

 To learn innovative skill of software

 Experimental, research use

slide-6
SLIDE 6

Health care environment of Japan

 Total health insurance system

 To provide average level health care to all nations.

 Universal access

 When, Where, Who, What

 High cost performance

 Low cost  Longest life span  Minimal level maternal/infant mortality

slide-7
SLIDE 7

Japanese Medical Insurance System

 From a patient and a medical perspective

 All citizens are able to join one insurance system  Free access to providers and specialists  Fee-for-service payment  Providers must submit claims for processing by the

10th of the month following the visit.

 Co-payments collected by providers each visit  Each prefecture and county-level government, as

well as cities, towns and villages, has its own individual system of additional subsidies for medical care payments. Average life span and infant mortality rates are among the best in the world!

slide-8
SLIDE 8

Health expenditure/GDP

slide-9
SLIDE 9

'Receipt' claim form

 Demographics  Insurance number  Diagnosis  Laboratory test/exam  Procedure  Prescription  Many local rules

slide-10
SLIDE 10

'Receipt computer'

 Claiming/billing application

 Calculate medical claim under complex rule  Print out 'Receipt'

 Database

 Patients' demographics

 Name, birthday, insurance

 Disease, drug, procedures

 Proprietary

 Data can be utilized for only 'Receipt' work

slide-11
SLIDE 11

Problems of e-Health (in Japan)

 High cost, Low investment

 Oligopoly market  Suppression to raising cost for health care

 Many standards, few implementation

 'Paper' standard, restriction to use  'Proprietary' standards

 'Lock in'

 Vendor lock in → Oligopoly  Data lock in → absence of reusability

 How many patients? Disease outcome?

slide-12
SLIDE 12

AYDBTU?

VENDOR: ALL YOUR DATA ARE BELONG TO US!?

slide-13
SLIDE 13

OSS

 Open license, free distribution

 Share intellectual resources

 Avoid 'lock in'

 Health data has long life time as Human.  Assurance for future availability

 Drives open standard

 Reference implementation accelerate 'OPEN'

standard

 Cost reduction

 Not aim, but result.

slide-14
SLIDE 14

ORCA Project

 JMA Standard Receipt Computer

 OSS, under GPL 2.0(translated into Japanese)  Avoid 'lock-in'

 Standard

 Implementation based 'de facto'  MML/CLAIM protocol ↔ EMR

 Collect data

 Health care policy based data against meaningless

government policy

slide-15
SLIDE 15

Grace Murray Hopper

slide-16
SLIDE 16

16

Adoption of ORCA

slide-17
SLIDE 17

17

Adoption of ORCA(May 2002 ~April 2010)

17

Working・・・8800 Preparing・・・1145 Planning・・・ 498

【specification】 ・OSS+Billing software, morethan 1M steps ・Process 1T JPY( 10B USD) claims/year ・Only 2 week for adjust new rules/2years

slide-18
SLIDE 18

Made in Matsue

slide-19
SLIDE 19

OSS2010, Notre Dame, USA

slide-20
SLIDE 20

OSS2010, Notre Dame, USA

slide-21
SLIDE 21

MOSC2010, Kuala Lumpur

slide-22
SLIDE 22

MOSC2010, Kuala Lumpur

slide-23
SLIDE 23

Open Source EHR Summit, 2012

slide-24
SLIDE 24

Problems on medical standards

 Many standards, few implementations

 About 250 standards  'Proprietary' standards

 Lack of interoperability

 Not accessable 'Connectathon'  Harmonization not sound cooperatively

 Political flames

 Academics, Commercialisms,....

 Too many inquiries

 Too greedy

slide-25
SLIDE 25

2011/12/14 CIMI press release

  • CIMIとは

– 臨床情報モデリングイニシアティブ(CIMI; Clinical

Information Modeling Initiative)は、健康に関 する記録やメッセージ文書として作成され保存さ れる情報が意味論的に相互運用可能なものとな るために、健康情報の内容を表現する共通形式に ついての詳細な仕様を提供するための国際的な 共同研究である。(2011年7月から活動)

  • 2011/11/29-12/1 London meeting

– グループとしての基本方針

slide-26
SLIDE 26

Principle

  • CIMI specifications will be freely available to

all.

  • CIMI is committed to making these

specifications available in a number of formats, beginning with the Archetype Definition Language (ADL) from the openEHR Foundation (ISO 13606.2) and the Unified Modeling Language (UML).

  • 3. CIMI is committed to transparency in its

work product and process.

slide-27
SLIDE 27

Approach

  • ADL 1.5 will be the initial formalism for representing clinical

models in the repository.

  • CIMI will use the openEHR constraint model
  • A set of UML stereotypes, XMI specifications and transformations

will be concurrently developed using UML 2.0 and OCL as the constraint language.

  • A Work Plan for how the AOM and target reference models will be

maintained and updated will be developed and approved by the end of January 2012.

  • Lessons learned from the development and implementation of the

HL7 Clinical Statement Pattern and HL7 RIM as well as from the Entry models of 13606, openEHR and the SMART (Substitutable Medical Apps, Reusable Technologies) initiative will inform baseline inputs into this process.

slide-28
SLIDE 28

Clinical modelingとは

  • 臨床概念の明確化

– 集めるべき情報は何か。項目はどれか。 – 「血圧」と言う場合に考慮されるべき情報は何か

  • 臨床概念の構造化

– 概念同士の関係を明らかにする – オントロジー、シソーラス

  • 臨床概念の結合

– ユースケースに合わせて必要に応じて概念を組み

合わせる(CDA-RIM, Archetype-Template)

slide-29
SLIDE 29

The openEHR Project

slide-30
SLIDE 30

Features of the openEHR

 Open Source implementation based standard

 Free to use  Not paper based standad  Reference implementation

 Eiffel, Java, C#

 Two level modeling

 Separate clinical domain concept from technical

architecture

 Archetype model/reference model

slide-31
SLIDE 31

Semantic interoperability

  • f healthcare

information

slide-32
SLIDE 32

Semantic interoperability

 One record, multiple use

 Health care provider

 Clinical use, history presentation

 Government

 Public health

 Researcher

 Clinical trial

 Domain authorized concept model

 Computer processable  Domain experts authored

slide-33
SLIDE 33

Known difficulties

slide-34
SLIDE 34

Multiple inheritance

slide-35
SLIDE 35

Single inheritance + mixin (implementation)

slide-36
SLIDE 36

ISO8601_DATE

rm::support::assumed_library

ISO8601_TIME ISO8601_DATE_TIME

slide-37
SLIDE 37

ISO8601_Date_Time

+year +month +day +hour +minute +second +fractional_second +as_string

ISO8601_Date

+year +month +day +as_string

ISO8601_Time

+hour +minute +second +fractional_second +as_string

slide-38
SLIDE 38

Module = Class - constructor

slide-39
SLIDE 39

Class = Module + constructor

slide-40
SLIDE 40

ISO8601_Date_Module +year +month +day +as_string

ISO8601_Date

+initialize

slide-41
SLIDE 41

ISO8601_Time_Module +hour +minute +second +fractional_second +as_string ISO8601_Tim e +initialize

slide-42
SLIDE 42

ISO8601_Date_Time +initialize +as_string ISO8601_Date_Module +year +month +day +as_string ISO8601_Time_Module +hour +minute +second +fractional_second +as_string

a

mixin

slide-43
SLIDE 43

Circular import

slide-44
SLIDE 44

A.java import B public class A B.java import A public class B

slide-45
SLIDE 45

ab.rb class A end class B end

slide-46
SLIDE 46

a.rb require B class A b.rb require A class B

slide-47
SLIDE 47

Support Data Types Data Structures Security Commo n Composition Archetype prof Template OM

Integratio

n

Integratio

n

Demographi c EHR EHR

AOM ADL

slide-48
SLIDE 48

Language AM RM Total Eiffel 10,145 8,258 18,403 C# 5,472 17,488 22,960 Java 11,603 3,642 15,245 Ruby 945 3,358 4,303

Effective steps of libraries

slide-49
SLIDE 49

Magic of Duck typing

slide-50
SLIDE 50

ADL Parser

 Archetype Definition Language

 Portable domain specific language  Concept describing language  Ontology based data definition

 Grammatical issues

 Partially left recursive  Lexical traverse

 cADL, dADL

slide-51
SLIDE 51

Parser algorithm

 LALR(1)

 Most popular implementation  Grammatical flexibility  Exponential computing cost

 LL(k)

 Classical simple way  Grammatical restriction

 PEG/Packrat

 LL/Memoize, best performance

slide-52
SLIDE 52

Packrat ADL parser implementation

 Algorithm

 Packrat/PEG

 Grammar

 Convert yacc type LALR(1) rule to PEG  Remove left recursion

A → A α1∣⋯∣A αn∣β1⋯ ∣βm A →β1A '∣⋯ ∣βm A' A ' →ε∣α1A '∣⋯∣αn A '

slide-53
SLIDE 53

Parser benchmark

slide-54
SLIDE 54

Impact

 Download

 More than 2,300(70/version)

 GitHub

 1fork, 8watchers

slide-55
SLIDE 55

How to install

gem install openehr

slide-56
SLIDE 56

How to use

require 'openehr' parser = ADLParser.new(adl_file) archetype = parser.parse

slide-57
SLIDE 57

Mission

 ADL Validator  ADL Serializer  Rails

 generator for erb template, migration, controlle  15min EHR!

 Archetype flattener, etc, etc  Education of Object Oriented technology for

medical informaticians

slide-58
SLIDE 58

Discussion

 Ruby proved its capability to implement

  • penEHR specification with known

implementation problems.

 Programming steps could be reduced, but

efficiency for EHR development needs another study.

 Runtime performance is a known deficit of

  • Ruby. Our benchmark tests also proved lower

performance than Java runtime, but it was within the tolerable speed.