Skip to content

Instantly share code, notes, and snippets.

@progrhyme
Last active August 3, 2017 12:06
Show Gist options
  • Save progrhyme/73f677ac47a621d21db5bc43755ed39e to your computer and use it in GitHub Desktop.
Save progrhyme/73f677ac47a621d21db5bc43755ed39e to your computer and use it in GitHub Desktop.

MedNight Tokyo #2 〜Web技術でレガシーな医療業界に革命を!エンジニア開発裏話 - connpass

発表資料

捕捉次第、随時更新します。

外部ブログ記事等

聴講メモ

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

@jooohn1234 / M3

  • 電子カルテ
    • クラウドで作ればいいじゃん
      • 簡単ではない
    • 診察 => 会計
  • 会計
    • レセコン
    • 保険請求のためのレセプト作成
    • 窓口会計の計算
    • ほぼ必須
  • 10万クリニック
    • レセコン 9マンクリニック
    • 電子カルテ 3万クリニック
  • 謎のルールがいっぱいある
  • 世の中の電子カルテ
    1. レセコン機能も備えた一体型
    2. レセコンと連携することもできる
    • OSS版のオルカというのがある ... オンプレ型
  • 作りました ... 2番
    • 1年ぐらいで100クリニックに導入された
  • システム構成
    • App ... RoR
      • PostgreSQL
      • 基本的なサーバサイドの処理
      • 初日に動かない
      • 遅い
    • フロントエンド
      • Angular1 => ReactJS
      • RxJS
    • iOSアプリ
      • 手書きカルテ
      • 写真
      • Swift: 2 => 3対応
      • クライアント証明書対応
    • Engine (サーバ)
      • Scala on Skinny Framework
      • Elasticsearch使ったが向いてなかった
      • バスケット分析していた
        • イマイチ => やめた
    • Agent
      • Javaのクライアントアプリ
      • 院内システムの連携ハブとして院内ネットワーク内に常駐
      • socket.ioで常時接続
        • サーバからのリクエストを院内機器に転送
        • ...

CLINICSを支える技術開発体制

  • メドレー / 田中清
  • CLINICS ... 遠隔診療サービス
  • 技術構成
    • 患者向け
    • 医療機関向け
    • オペレータ向け
    • サーバ ... RoR
    • フロントエンド ... Mithril.js
    • ストレージ ... MongoDB, Redis, Elasticsearch
  • システム全体構成
    • RoR on Heroku
      • 非同期で Kinesis にログを投げる
    • AWS
      • Kinesis
        • Lambda 経由で BigQueryへ
      • CF - S3 ... 画像とか
      • SNS
        • クライアントにpush通知飛ばす
      • Cognito
    • Firebase使ってる
  • 体制
    • Product Manager - 1
    • Director - 1
    • Designer - 1
    • Engineer - 5
      • 必要に応じて全員が全レイヤ担当
  • 開発の進め方
    • 3ヶ月を1単位として企画、開発、振り返りを実施
    • KPT
  • FAQ
    • 他職種からの機能要望
    • Slack
    • GitHub Issues / Project
    • 医者とのコミュニケーション

非定型なレポート依頼とPythonで戦う

  • M3 / @yuba
    • 医師免許持ってる
  • M3の紹介
    • 2015年に約60名のエンジニア
  • 背景
    • MR
    • 薬剤情報提供をより効果的にするには? => 成果のフィードバック
    • BIツールの導入?
      • 集計ロジックが特殊
      • ビジネス職の人にとって敷居が高い
  • レポート作成ツールを作ろう
  • 作ったもの
    • 表形式データを作成するツール
      • Patissier ... 内製ツール
    • プラグインでレポート増やせる
      • pythonクラスとして記述
    • 出力: tsv, csv, xls
    • YAMLでクエリを書く
  • ライブラリをOSS化するかも
    • SQLのIN句にリストを安全に渡せるようにするやつ(仮称)
    • scp用のツール
    • RoRみたいにdatabase.ymlに接続設定を外部化するやつ

CLINICSの変化に耐えるMithril / 平木 聡

  • フロントエンド構成
    • Mighril.js
      • babel-plugin-mjsx
    • Babelify => Babel
  • ビルドシステム
    • Browserify + Gulp => Webpack + Gulp
    • Node.js
    • npm => yarn
  • なぜMithrilにしたか
    • ローンチまで時間がなかった
    • Angularは重すぎ
    • VueやReactはView以外で色々考えなきゃいけない
    • VDOMがやはり良いので、Backboneなどもつらい
    • 新規事業なので変化が激しいと予想
      • 受難に対応できそうなものがいい
  • 半年経過
    • コードは多くなった
    • コンポーネントの粒度が細かくなってくる
    • Model以外でm.prop()使わなくなってくる
  • 現在のCLINICS
    • 大本の処理は各画面のindex.jsに集約
    • 気づいたらReduxっぽくなってる
  • Mithril.jsのいいところ
    • APIがシンプル
    • ES2017と親和性が高い
    • 変更に強い
  • 悪いところ
    • APIがシンプルなので設計ちゃんと考えないと破綻する
      • いまはReduxっぽくなった
    • エコシステムが整ってない
    • 1.0に上げにくい
      • マイグレーションガイドがあるが、多くてつらい
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment