Skip to content

Instantly share code, notes, and snippets.

@ryumtym
Last active September 15, 2023 06:51
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryumtym/b091d78c7035328919fe2283e2b965b8 to your computer and use it in GitHub Desktop.
Save ryumtym/b091d78c7035328919fe2283e2b965b8 to your computer and use it in GitHub Desktop.
node-red.md

電子カルテと業務革新―医療情報システム構築における業務フローモデルの活用

TI-023: 投薬実施(内服・外用)プロセスの大まかな流れ

  1. 受け持ち看護師のプロセスが開始
  2. 受け持ち看護師のプロセス完了後、入院患者と服薬介助係のプロセスが同時に開始する
  3. 患者と服薬介助係のプロセス終了後、看護師が実施入力を行い、TI-023フロー完了。

b7392f0092fd5609ce037da47324bc9a

node-red上で再現

TI-023の場合、看護師/患者/服薬介助係で異なるプロセスを行うため、フローを分解する
フロー実施に必要な情報や、実施されたフローを履歴として格納するための配列を用意したdataBundleオブジェクトをSTART押下後に作成

76648a2260e4fd67efee1e8f5dfa43f2 (4)

  • 受け持ち看護師の確認完了後、入院患者と服薬介助係のフローに移行する。
  • 入院患者と服薬介助係のフローは同時進行のため、join-waitで両方が完了するまで待機し、薬剤服薬完了後、受け持ち看護師のフローに再度移行する。
  • 最後に受け持ち看護師が実施入力をして終了

95feaa6b8731e24dc8c4561654c7f558

今回使用したjoin-waitは別途インストールする必要あり。(下記url参考)

パレットにノードを追加する

TI-023 ペースト方法&フロー

Screen-Recording-2022-09-01-at-04 20 30 74-PM

[{"id":"ff184b2f.007928","type":"comment","z":"5a5b1676.c406c8","name":"受け持ち看護師","info":"","x":160,"y":160,"wires":[]},{"id":"b1ffc05.5c0174","type":"function","z":"5a5b1676.c406c8","name":"薬を服用、使用する","func":"msg.payload = \"入院患者:薬を服用、使用する\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":360,"y":360,"wires":[["c85e5b7f.ad5d18"]]},{"id":"41b71813.307758","type":"function","z":"5a5b1676.c406c8","name":"患者の本人確認を行う","func":"msg.bundle.entry.push(\"受け持ち看護師:患者の本人確認を行う\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":680,"y":240,"wires":[["c2771780.e13cb8"]]},{"id":"c2771780.e13cb8","type":"function","z":"5a5b1676.c406c8","name":"薬を渡し、必要なら服用、使用の説明をする。","func":"msg.bundle.entry.push(\"受け持ち看護師:薬を渡し、必要なら服用、使用の説明をする\");\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":980,"y":240,"wires":[["a65a268.b695bd8"]]},{"id":"ff8632f8.8d734","type":"function","z":"5a5b1676.c406c8","name":"麻薬なら麻薬処方せんと麻薬記録票を薬剤部門に搬送する","func":"msg.bundle.entry.push(\"受け持ち看護師:麻薬なら麻薬処方せんと麻薬記録票を薬剤部門に搬送する\");\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":940,"y":560,"wires":[["29b7b05f.6e3d8"]]},{"id":"1518eecc.fe0d01","type":"comment","z":"5a5b1676.c406c8","name":"入院患者","info":"","x":140,"y":320,"wires":[]},{"id":"5d3acd8a.0cf6f4","type":"comment","z":"5a5b1676.c406c8","name":"服薬介助係","info":"","x":140,"y":420,"wires":[]},{"id":"5bc68428.6d403c","type":"switch","z":"5a5b1676.c406c8","name":"分岐","property":"bundle.mayaku","propertyType":"msg","rules":[{"t":"eq","v":"true","vt":"str"},{"t":"neq","v":"true","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":650,"y":600,"wires":[["ff8632f8.8d734"],["29b7b05f.6e3d8"]]},{"id":"29b7b05f.6e3d8","type":"debug","z":"5a5b1676.c406c8","name":"END","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1250,"y":600,"wires":[]},{"id":"5afb5051.b9bee","type":"switch","z":"5a5b1676.c406c8","name":"分岐","property":"bundle.yakuzai","propertyType":"msg","rules":[{"t":"eq","v":"患者管理薬剤","vt":"str"},{"t":"eq","v":"看護師管理薬剤","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":470,"y":200,"wires":[["34e33bda.959554"],["41b71813.307758"]]},{"id":"82fd3be3.e0c778","type":"complete","z":"5a5b1676.c406c8","name":"If 確認完了 isTrue ","scope":["34e33bda.959554","a65a268.b695bd8"],"uncaught":false,"x":160,"y":360,"wires":[["b1ffc05.5c0174"]]},{"id":"34e33bda.959554","type":"debug","z":"5a5b1676.c406c8","name":"確認完了","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1240,"y":180,"wires":[]},{"id":"5089a9dd.13b858","type":"complete","z":"5a5b1676.c406c8","name":"If 薬剤服用完了 isTrue ","scope":["99e421c4.8317d"],"uncaught":false,"x":180,"y":600,"wires":[["6c50348d.9a756c"]]},{"id":"1fdfdb7.57acd25","type":"complete","z":"5a5b1676.c406c8","name":"If 確認完了 isTrue ","scope":["34e33bda.959554","a65a268.b695bd8"],"uncaught":false,"x":160,"y":460,"wires":[["4391d77e.315bc8"]]},{"id":"db8b8316.2474","type":"template","z":"5a5b1676.c406c8","name":"dateBundle","field":"bundle","fieldType":"msg","format":"handlebars","syntax":"plain","template":"{\n  \"yakuzai\":\"看護師管理薬剤\",\n  \"mayaku\":\"true\",\n  \"entry\": []\n}","output":"json","x":290,"y":80,"wires":[["f634233f.75b1b"]]},{"id":"a061e2f4.8f80d","type":"inject","z":"5a5b1676.c406c8","name":"START","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":150,"y":80,"wires":[["db8b8316.2474"]]},{"id":"99e421c4.8317d","type":"debug","z":"5a5b1676.c406c8","name":"薬剤服用完了","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1180,"y":400,"wires":[]},{"id":"a65a268.b695bd8","type":"debug","z":"5a5b1676.c406c8","name":"確認完了","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":1240,"y":240,"wires":[]},{"id":"4391d77e.315bc8","type":"function","z":"5a5b1676.c406c8","name":"薬の服用、使用の介助を行う","func":"msg.payload  = \"服薬介助係:薬の服用、使用の介助を行う\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":380,"y":460,"wires":[["22fd971b.d20c28"]]},{"id":"6c50348d.9a756c","type":"function","z":"5a5b1676.c406c8","name":"患者の状態、実施内容を記録する","func":"msg.bundle.entry.push(\"受け持ち看護師:患者の状態、実施内容を記録する\");\n\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":440,"y":600,"wires":[["5bc68428.6d403c"]]},{"id":"f634233f.75b1b","type":"function","z":"5a5b1676.c406c8","name":"患者が投薬可能な状態か確認する","func":"msg.bundle.entry.push(\"受け持ち看護師:患者が投薬可能な状態か確認する\");\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":220,"y":200,"wires":[["5afb5051.b9bee"]]},{"id":"76f44b5f.7638e4","type":"function","z":"5a5b1676.c406c8","name":"bundle.entryに格納","func":"let v = Object.keys(msg.paths);\nfor(let i=0; i<v.length; i++){\n    msg.bundle.entry.push(msg.paths[v[i]]);\n}\n\n\n\n// msg.bundle = msg.bundle\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":970,"y":400,"wires":[["99e421c4.8317d"]]},{"id":"46e778f1.021088","type":"join-wait","z":"5a5b1676.c406c8","name":"","paths":"[\"path_1\", \"path_2\"]","pathsToExpire":"","useRegex":false,"warnUnmatched":false,"pathTopic":"paths","pathTopicType":"msg","correlationTopic":"","correlationTopicType":"msg","timeout":"5","timeoutUnits":"1000","exactOrder":"false","firstMsg":"true","mapPayload":"true","disableComplete":false,"persistOnRestart":false,"x":780,"y":400,"wires":[["76f44b5f.7638e4"],[]]},{"id":"c85e5b7f.ad5d18","type":"change","z":"5a5b1676.c406c8","name":"Set path_1","rules":[{"t":"set","p":"paths","pt":"msg","to":"path_1","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":360,"wires":[["46e778f1.021088"]]},{"id":"22fd971b.d20c28","type":"change","z":"5a5b1676.c406c8","name":"Set path_2","rules":[{"t":"set","p":"paths","pt":"msg","to":"path_2","tot":"str"}],"action":"","property":"","from":"","to":"","reg":false,"x":590,"y":460,"wires":[["46e778f1.021088"]]},{"id":"28927d96.377d52","type":"comment","z":"5a5b1676.c406c8","name":"受け持ち看護師","info":"","x":160,"y":560,"wires":[]}]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment