はじめに
どうも。seigo2016です。
(記事を書くに当たって、前何書いたかな~と見てみると、前回の記事は2019年だとか。驚きました)
今回は、QiitaさんとFast DOCTORさん共催の「Qiita × Fast DOCTOR Health Tech Hackathon」に参加してきた話をしたいと思います。
Qiita × Fast DOCTOR Health Tech Hackathonとは
Qiitaさんと、医療プラットフォームを展開しているファストドクター株式会社の共催で開催された、(医療の現場にフォーカスした、)「ChatGPTを活かした新しいウェブサービス、モバイルアプリの開発」をテーマとしたハッカソンです。
普段あまり知ることの出来ない医療分野の現実について知り、課題解決に取り組めるところに興味を持ち参加しました。
自己紹介
何かと話題の東工大情報理工学院に所属しています。(2019年にはN高のプログラミングクラスに在籍していました。時の流れは速い…)
バックエンドやインフラ・セキュリティに興味を持ち、日々活動しています。ポートフォリオ
実は、プログラミングコンテストはいくつか経験があるのですが、ハッカソンへの参加は初めてだったりします。
今回kaitoyamaと2人で参加しました。
制作したもの
診療情報提供書(紹介状)<->電子カルテの相互変換をサポートするツール
課題
ヒアリングの中で診療情報提供書を電子カルテに記入したり、電子カルテを元に紹介状を書く作業が「ちりつも」で時間がかかっている。
内容
自分はサーバーサイドとフロントの基本部分の開発を担当したので、それについて書きます。
ChatGPTのプロンプトなどについては、kaitoyamaの記事を御覧ください
選定技術
バックエンド
- Python(FastAPI)
- Go(Echo)でも良かったのですが、少しでも慣れている方ということで採用
フロントエンド
- React
- なんとなく
- TailwindCSS
- 慣れていたので
API構成
ちょっとエンドポイントのパスが汚いですが、それはご愛嬌ということで…
- /medical_report
- 紹介書をOCRしてJSONデータを返す
- /medical_report_to_karte
- 紹介書のJSONデータを受け取ってカルテデータを返す
- このときChatGPTで現病歴などについて要約を入れる
- 紹介書のJSONデータを受け取ってカルテデータを返す
- /karte_to_medical_report
- カルテデータを受け取って紹介書データを返す
- このときChatGPTで日付ごとのデータから全体の概要をまとめた文章への要約を行う
- カルテデータを受け取って紹介書データを返す
- /karte_to_evidence(未実装)
- 要約時にどこのカルテを参照したかを返す
- /evidence_to_neutral(未実装)
おわりに
ChatGPTを使用したサービスの開発に興味があったものの、ネタが思いつかず放置していたので、良い機会になりました。また、医師の方に詳しい話を聞くことができたのは非常に貴重な経験だったと思います。
ただ、私が基本の開発、kaitoyamaがプロンプトチューニングで分担したのですが、それぞれ手一杯で、細かな調整や発表資料の作成が大変でした。
次回も開催予定とのことでしたので、その際にはもっと設計や実装がスムーズにできるように成長しておきたいと思います。
最後になりますが、QiitaさんとFast DOCTORの運営の皆様、協力してくださった医師の皆様、ありがとうございました。