Upgrade to Pro — share decks privately, control downloads, hide ads and more …

人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever

Jun Tomioka
February 04, 2019

人類には早すぎる、謎の計算ロジックに立ち向かう / Strugle with the most complicated logic ever

Jun Tomioka

February 04, 2019
Tweet

More Decks by Jun Tomioka

Other Decks in Technology

Transcript

  1. 人類には早すぎる
    謎の計算ロジックに
    立ち向かう
    @jooohn1234

    View Slide

  2. M3, Inc. @jooohn1234
    ● エムスリーデジカルCTO
    ● Scala / FP 好き

    View Slide

  3. 電子カルテとレセコン

    View Slide

  4. 受付 診察 会計

    View Slide

  5. 受付 診察 会計
    電子カルテ
    患者への医療行為を記録

    View Slide

  6. 受付 診察 会計
    レセコン
    会計計算・保険請求

    View Slide



  7. View Slide


  8. View Slide

  9. View Slide

  10. ORCA
    に依存した場合のキャップ
    電カルだけの場合のキャップ
    レセコン単体・一体型のポテンシャル

    View Slide

  11. レセコン
    作っちゃいましょう!
    当時の電カルチーム
    PM

    View Slide

  12. レセコンとは

    View Slide

  13. 医療機関
    レセコン

    View Slide

  14. 医療機関
    レセコン
    合計: 1,000円
    自己負担: 300円
    日時会計処理 (会計計算・記録)
    患者

    View Slide

  15. 医療機関
    レセコン
    月次請求処理 (必要ファイル・書類の作成)
    支払基金・自治体

    View Slide

  16. レセコン
    会計計算、保険請求の処理を担う魔法の機械。
    以下の要素でできている。
    ・診療報酬点数を計算する謎のロジック
    ・保険・公費を適用した際の請求額や窓口会計額などを計算
    する謎のロジック

    View Slide

  17. レセコン
    会計計算、保険請求の処理を担う魔法の機械。
    以下の要素でできている。
    ・診療報酬を計算する謎のロジック
    ・保険・公費を適用した際の請求額や窓口会計額などを計算
    する謎のロジック
    す、すごい!

    View Slide

  18. 安くて
    良いレセコンを
    作りたい!
    謎の
    計算ロジック

    View Slide

  19. レセコンのつくりかた
    ● 製品品質の担保
    ● コード品質の担保

    View Slide

  20. 製品品質の
    担保

    View Slide

  21. View Slide

  22. 協力クリニックを募り、デジレセ・ORCA双
    方に同じ処方内容を入力
    それぞれからレセ電ファイルを出力

    View Slide

  23. 差分を比較、分析。
    改善すべき計算ルールを特定。

    View Slide

  24. 計算ルールを仕様に落とし実装。
    目標差分になるまで改善ループを回す。

    View Slide

  25. この改善サイクルを複数診療科で実行。
    (診療科によって診療パターンが大きく違う)

    View Slide

  26. コード品質の
    担保

    View Slide

  27. エンジニアA
    調剤レセコン開発経験ありのエン
    ジニア
    Rubyが得意
    エンジニアB
    関数型やScalaが得意。
    「メンテを考えたら絶対に静的型
    言語で書くべき。」

    View Slide

  28. ロジックの検証を真っ先に行えるよ
    うにRubyでプロトタイプを作成。
    捨てる前提で爆速で開発。
    長期のメンテナンス性を考慮し、
    Scalaで書き直し。
    計算ロジックを理解、モデルを整理
    しながら清書。
    エンジニアA
    調剤レセコン開発経験ありのエン
    ジニア
    Rubyが得意
    エンジニアB
    関数型やScalaが得意。
    「メンテを考えたら絶対に静的型
    言語で書くべき。」

    View Slide

  29. 結果

    View Slide

  30. 新規導入数の推移(の雰囲気)
    レセ単体・一体型のローン
    チ1年半ほどで、
    新規導入比率が連携型と
    同程度に!

    View Slide

  31. 新規導入数の推移(の雰囲気)
    爆上げ
    間違い
    なし!!

    View Slide

  32. まとめ
    ● サービス成長過程で超えるべき壁がある(あった)
    ○ 一見難しそうに見えるし、実際に難易度は高い(高かった)
    ○ やったリターンは大きい
    (
    大きかった
    )
    ● 工夫で品質を担保する
    ○ 既存の製品をベンチマークとして品質を担保
    ○ 一度作ったプロトタイプを捨てることでコード品質を担保

    View Slide