カルテ検索機能
「引っ越すことになったので,次回受診時までに紹介状を書いて欲しい」という患者さんがいらっしゃったのだが,不覚にも誰だったか忘れてしまった。少し焦ったが,確かカルテに「引っ越しするので〜」と記録していたはずなので,「引っ越し」でカルテ検索して見つけることができた。カルテ検索機能を作っておいて良かったと思った。
カルテ検索機能は,記載の古い方から検索するように作っていたが,今回,新しいものから開始した方が効率がよいことが分かった。そこで,新しい記載から検索するように書き直した。
カルテ検索機能は,記載の古い方から検索するように作っていたが,今回,新しいものから開始した方が効率がよいことが分かった。そこで,新しい記載から検索するように書き直した。
delegater/DocumentPeekerDelegater.java
public Collection getPatientOfKarte() { if (endModuleId < 0L) return null; // 数えきった場合だけ null が返る Listpm = new ArrayList (); Set karteId = new HashSet (); // 新しい module から検索していく Long startModuleId = endModuleId - increaseStep; if (startModuleId < fromModuleId) startModuleId = fromModuleId; List mc = getService().getModuleModel(startModuleId, endModuleId); // soaSpec, pSpec は getFreeText 必要。それ以外は model内容が toString() で取れる。 for (ModuleModel model : mc) { InfoModel im = (InfoModel) BeanUtils.xmlDecode(model.getBeanBytes()); String role = model.getModuleInfo().getStampRole(); String text = ""; if (role.equals(IInfoModel.ROLE_SOA_SPEC) || role.equals(IInfoModel.ROLE_P_SPEC)) { String xml = ((ProgressCourse) im).getFreeText(); text = extractText(xml); } else { text = im.toString(); } int pos = text.indexOf(searchText); if (pos != -1) { karteId.add(model.getKarte().getId()); } } pm = getService().getPatientOfKarte(karteId); // 空の pm が返ることはあるが,null は返らない endModuleId -= increaseStep; // 次の検索に備えて endModuleId を下げる return pm; }
« メモ欄の自動セーブ | トップページ | 新規カルテにテキストスタンプ挿入 »
「OpenDolphin」カテゴリの記事
- Java 17 への移行(7) - OpenDolphin client の対応 (2023.02.04)
- Java 17 への移行(6) - Hibernate 6 でやらかす(2023.02.03)
- Java 17 への移行(5) - OpenDolphin server の対応(2023.02.02)
- Java 17 への移行(4) - OpenSearch の準備 [ubuntu 編](2023.02.01)
- Java 17 への移行(3) - OpenSearch の準備 [mac 編](2023.01.31)