Slide 1

Slide 1 text

クラウド電子カルテを 支える魂の技術 @jooohn1234

Slide 2

Slide 2 text

M3, Inc @jooohn1234 ● じょん と呼んでください ● エムスリーのエンジニア ○ Ruby/Scala/JS/Java/[NEW]Swift ○ 好きなメソッドは zip ○ 嫁が農業をやっている

Slide 3

Slide 3 text

電子カルテ

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

巨大な メモアプリ

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

オンプレミス

Slide 10

Slide 10 text

オンプレミス クラウドでつくれば いいじゃん webエンジニア(27歳男性)

Slide 11

Slide 11 text

これが

Slide 12

Slide 12 text

簡単では ない!

Slide 13

Slide 13 text

受付 検査 診察 会計

Slide 14

Slide 14 text

受付 検査 診察 会計

Slide 15

Slide 15 text

レセコン

Slide 16

Slide 16 text

https://ja.wikipedia.org/wiki/レセプトコンピュータ

Slide 17

Slide 17 text

https://ja.wikipedia.org/wiki/レセプトコンピュータ ほぼ必須

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

https://ja.wikipedia.org/wiki/レセプトコンピュータ

Slide 20

Slide 20 text

https://ja.wikipedia.org/wiki/レセプトコンピュータ ・・・

Slide 21

Slide 21 text

簡単では ない!

Slide 22

Slide 22 text

世の中の電子カルテ 1. レセコン機能も備えた一体型 2. レセコンと連携することが可能

Slide 23

Slide 23 text

世の中の電子カルテ 1. レセコン機能も備えた一体型 2. レセコンと連携することが可能

Slide 24

Slide 24 text

https://www.orca.med.or.jp/

Slide 25

Slide 25 text

オンプレミス (現在クラウド化を目指して開発中) https://www.orca.med.or.jp/

Slide 26

Slide 26 text

院内ネットワークの壁 クラウド電子カルテ

Slide 27

Slide 27 text

院内ネットワークの壁 クラウド電子カルテ ?

Slide 28

Slide 28 text

院内ネットワークの壁 クラウド電子カルテ ? ・・・

Slide 29

Slide 29 text

簡単では ない!

Slide 30

Slide 30 text

前置きは ここまで

Slide 31

Slide 31 text

これが

Slide 32

Slide 32 text

クラウド 電子カルテを 支える

Slide 33

Slide 33 text

魂の 技術だ!

Slide 34

Slide 34 text

院内ネットワークの壁

Slide 35

Slide 35 text

院内ネットワークの壁 順番に紹介

Slide 36

Slide 36 text

院内ネットワークの壁 KarteApp Ruby on RailsのAPIサーバ 基本的なサーバーサイドの処理を担 当。 主な魂の対応 ・初日に全く動かない問題 ・処置行為のテーブル多すぎ問題(100 以上のpreload)

Slide 37

Slide 37 text

院内ネットワークの壁 Front es2015/babel SPAを実現。 Angular1 => React移行中 主な魂の対応 ・非動機APIコールの処理順問題 => RxJS ・Angular1 digest loop重すぎ問題 => ReactJSに移行(現在進行系)

Slide 38

Slide 38 text

院内ネットワークの壁 iPadアプリ 手書きでカルテが書けるアプリ。 撮影した写真や、シェーマ(身体部位の 図)を貼り付けたりもできる。 主な魂の対応 ・swift 2=>3への移行 ・クライアント証明書対応(VPNが原因で reject)

Slide 39

Slide 39 text

院内ネットワークの壁 Engine Scala on Skinny Framework 処置行為のレコメンドなど込み入った処 理を担当するマイクロサービス。 主な魂の対応 ・elasticsearch向いてない問題 ・レコメンド結果コントロール不可能問題

Slide 40

Slide 40 text

院内ネットワークの壁 Agent Javaのクライアントアプリ。 院内システムとの連携ハブとして、院内 ネットワーク内に常駐。 クラウドにいるsocket.ioサーバと常時 接続していて、サーバーからのリクエス トを受けて各院内機器にリクエストを 送ったり、変更をサーバに送ったりす る。 主な魂の対応 ・セキュアな接続 ・自動アップデート ・初期データインポート ・数々の機器との連携

Slide 41

Slide 41 text

院内ネットワークの壁 Pubsub nodejs/express のサーバ 主にsocket.ioサーバとして、院内にい るJavaエージェントとの連携を担当。 ブラウザとも常時接続しており、リアルタ イム通知等も行う。 主な魂の対応 ・不安定な常時接続

Slide 42

Slide 42 text

院内ネットワークの壁

Slide 43

Slide 43 text

院内ネットワークの壁 院内との接続 VPNを使っていたが、常時接続するには不安定。 追いづらいネットワークエラーが頻発。 => クライアント証明書での認証に徐々に移行中。

Slide 44

Slide 44 text

院内ネットワークの壁 AWS EC2/Route53/S3/RDS(PostgreSQL)/ElastiCache/SES/KMS/Lambda/CloudWatch など そんなにゴリゴリの構成ではない。

Slide 45

Slide 45 text

院内ネットワークの壁

Slide 46

Slide 46 text

言いたい ことは

Slide 47

Slide 47 text

前例がな いことに

Slide 48

Slide 48 text

魂をこめて 挑戦してい ます!

Slide 49

Slide 49 text

エンジニア

Slide 50

Slide 50 text

[NEW] 04/01 !! Kato-san 担当: たぶんほとんど全部 Bruce 担当: ほとんど全部 jooohn 担当: ほとんど全部

Slide 51

Slide 51 text

FAQ Q. この規模でこの人数で足りてるんですか?

Slide 52

Slide 52 text

FAQ Q. この規模でこの人数で足りてるんですか? A. 足りてません。

Slide 53

Slide 53 text

FAQ Q. この規模でこの人数で足りてるんですか? A. 足りてません。まだまだやれることが山ほどあります。

Slide 54

Slide 54 text

WE ARE HIRING!