SSMベースの入院患者向け検知・早期警戒情報管理システム
まとめ
入院患者検知・早期警戒情報管理システムの主な機能モジュールは、医師勤務配置管理、病床管理、入院情報管理、退院情報管理、薬剤管理、利用者残高、支払明細管理などであり、ソフトウェア開発指向開発モデル 実際の使用ニーズに合わせた開発とハードウェアのインストール、それに対応するソフトウェアのインストールとプログラムのコーディング作業が改善されました バックグラウンド データの主記憶装置として MySQL が使用され、ssm フレームワーク、Java が使用されます技術、Ajax技術をビジネスに活用 システムのコーディングと開発により、システムのすべての機能が実現されています。この報告書はまず研究の背景、機能、意義を分析し、研究作業の合理性の基礎を築きます。入院患者発見・早期警戒情報管理システムの要件と技術的問題を分析し、システムの必要性と技術的実現可能性を証明し、その後、設計システムで使用する必要がある技術ソフトウェアと設計アイデアの基本的な紹介を行います。そして最終的には入院患者検知・早期警戒情報管理システムとそれを利用した展開運用を導入します。
キーワード: 早期警戒情報管理、ssmフレームワーク、データベース
入院患者発見・早期警戒情報管理システム
概要
入院患者検知・早期警戒情報管理システムの主な機能モジュールは、医師勤務配置管理、病床管理、入院情報管理、退院情報管理、薬剤管理、利用者残高、支払明細管理などであり、オブジェクト指向開発が行われている。ソフトウェア開発とハードウェア構築には、実際の使用のニーズを十分に満たし、対応するソフトウェア構築とプログラムコーディングを向上させるモードが採用されています。MySQL はバックグラウンドデータの主記憶装置として使用され、SSM フレームワーク、Java テクノロジー、Ajax テクノロジーが使用されます。システムのすべての機能を実現するビジネス システムのコーディングと開発に使用されます。この報告書はまず研究の背景、機能、意義を分析し、それが研究活動の合理性の基礎を築きます。本稿では、入院患者の発見、検知および早期警戒情報管理システムのさまざまな要件と技術的問題を分析し、システムの必要性と技術的実現可能性を証明し、システムの設計に必要な技術ソフトウェアと設計アイデアを紹介し、最終的に実現します。入院患者の発見・早期警戒情報管理システムを構築し、導入しています。
キーワード: 早期警戒情報管理、早期警戒情報管理 SSM フレームワーク。データベース
院内の既存情報システムを活用し、入院患者発見・早期警戒情報管理システムを構築し、入院患者の日常看護リスクの早期警戒・監視を実施し、リスク欠陥の発生を低減します。病院のコンピュータ ネットワークを使用して、患者検出および早期警告情報管理システムを確立し、情報を収集および入力し、入院患者の検出および早期警告指標を決定し、値を割り当てます。現在、我が国のほとんどの病院はすでに独自の HIS を持っていますが、これらの病院の情報は十分に統合されておらず、病院管理者の意思決定のニーズを満たすことができません。しかし、既存のシステムの多くは業務の特定の側面や特定の側面のみを対象として設計されており、病院全体の状況を包括的に把握することができず、病院の入院情報管理の自動化・知能化を真に実現することができていません。そのため、限られた経営資源をいかに有効活用し、経営効率を向上させるかが喫緊の課題となっています。上記のタスクをより適切に達成するには、元の情報システムを変革する必要があります。本稿では当院の実情を踏まえ、SSMに基づく一連の入院患者検知・早期警戒情報管理システムを設計し、病院管理レベルの更なる向上を図る。
入院患者発見・早期警戒情報管理システムの開発・導入、必要な業務内容:
(1) まずテーマを決め、構築するシステムを決定し、システムの背景や現状の問題点を事前に体系的に確認します。
(2) システム確認完了後、システム開発要件と合わせてシステム開発に使用した技術を確認する 入院患者発見・早期警戒情報管理システムの開発にはSSMフレームワークを使用し、データベースを利用して構築プラットフォームを開発し、使用された技術が技術分析によって確認され、使用された技術がシステムの実現を完了できるかどうか。
(3) システムで使用する技術を決定し、システムによる利用者の役割分担をオンラインで確認し、利用者の役割分担に応じて設計すべき機能モジュールを決定する入院患者発見・早期警戒情報管理システムの設計主に管理者とユーザーに分かれており、役割や使用する機能モジュールも異なりますが、システムデータベースの内容は対話型であり、ユーザーは自分のニーズに応じていつでも情報を照会でき、システムスタッフは必要に応じてオンライン情報を処理できます。管理者は、すべてのユーザーの詳細なデータ情報を取得し、必要に応じて迅速に処理します。
(4) システムの機能モジュールを確認した後、プログラムとインターフェースを設計する テスト方法は、プログラムの抜け穴を発見し、オンラインでプログラムの抜け穴を解決する テストシステムに問題がなければ、システムは正式な運用のためにアップロードできます。
-
- 論文の構成
市場調査から得られた情報データに基づいて、現在の調査状況と組み合わせ、関連するシステム開発および設計方法を使用して、入院患者の検出および早期警告情報管理システムが最終的に設計されます。
本書は以下の 7 章から構成されています。
第 1 章では、入院患者発見・早期警戒情報管理システムの研究目的と意義を概説し、国内外の研究状況と今後の研究動向を簡潔にまとめ、最後に論文の構成構成を示します。
第 2 章では、この文書で使用される開発手法とツールの概要を説明します。
第 3 章では、システムの各ビジネス プロセスのニーズと実現可能性を簡単に分析します。
第 4 章では、入院患者の発見と早期警戒情報の管理システムを設計します。
第5章では、入院患者検知・早期警戒情報管理システムの実装と関連ページのスクリーンショットを掲載し、具体的な機能実現の操作方法を言語で説明しています。
第 6 章では、テスト ケースを使用して、入院患者検出および早期警告情報管理システムのいくつかの主要な機能モジュールをテストし、最終的にテスト結果を取得します。
第 7 章では全文を要約し、今後の研究の展望を述べている。
ハイパーテキスト転送プロトコル (HTTP) は、World Wide Web 上での情報交換を前提とした、協調的かつ分散型の通信プロトコルです。HTTP は IEIF の国際標準指標であり、関連標準の策定と実装においては、W3C が積極的に参加し、かけがえのない役割を果たしています。ハイパーテキスト マークアップ言語を使用して、サーバーとブラウザ間でドキュメントを転送できます。HTML はドキュメントを構造化するためのマークアップ言語であり、これらのドキュメントには関連情報へのリンクが含まれています。ユーザーはリンクの 1 つをクリックするだけでマルチメディア オブジェクトや画像にアクセスでき、同時にリンク アイテムの追加情報を取得できます。
Javaはアメリカのsun社が開発したプログラミング言語で、マルチプラットフォームに適用可能で互換性が高く、その利点からデータセンター、個人用PC、スーパーコンピュータなどで広く使われており、現在最大の開発者となっています。プロフェッショナルコミュニティ。
JDK はアメリカの sun 社が Java 開発者向けに発売した新しい製品で、JDK がないとインストールされた Java プログラムは実行できません。
SSM (Spring+SpringMVC+MyBatis) フレームワーク セットは、Spring と MyBatis という 2 つのオープンソース フレームワークで構成されます (SpringMVC は Spring の一部です)。単純なデータ ソースを使用する Web プロジェクトのフレームワークとしてよく使用されます。
1.1 春
Spring はプロジェクト全体で Bean を組み立てるための大きなファクトリーのようなもので、構成ファイルで特定のパラメーターを指定してエンティティ クラスのコンストラクターを呼び出し、オブジェクトをインスタンス化できます。プロジェクトにおける接着剤とも言えます。
Spring の核となる考え方は IoC (Inversion of Control) です。つまり、プログラマはオブジェクトを明示的に「新規」にする必要はなくなり、Spring フレームワークにそれを行わせます。
1.2 SpringMVC
SpringMVC は、プロジェクト内のユーザー リクエストをインターセプトします。そのコア サーブレットである DispatcherServlet は、仲介またはフロント デスクの役割を引き受け、HandlerMapping を通じてユーザー リクエストとコントローラーを照合します。コントローラーは、対応するリクエストによって実行される特定の操作です。SpringMVC は、SSH フレームワークの Struts に相当します。
1.3 アパートメント
mybatis は jdbc のカプセル化であり、データベースの基礎となる操作を透過的にします。mybatis の操作は sqlSessionFactory インスタンスを中心に展開します。Mybatis は構成ファイルを通じて各エンティティ クラスの Mapper ファイルに関連付けられており、Mapper ファイルは各クラスで必要な SQL ステートメントのデータベースへのマッピングを構成します。データベースと対話するたびに、sqlSessionFactory を通じて sqlSession を取得し、sql コマンドを実行します。
ページはリクエストをコントローラーに送信し、コントローラーはビジネス層を呼び出してロジックを処理します。ロジック層はリクエストを永続層に送信し、永続層はデータベースと対話して、結果をビジネス層に返します。レイヤーは処理ロジックをコントローラーに送信し、コントローラーはビューを呼び出してデータを表示します。
-
- MySQLデータベース
データベースはシステム開発プロセスに不可欠な部分です。WEB アプリケーションに関しては、MySQL AB は大きな利点を持つ MySQL リレーショナル データベース管理システムを開発しました。MySQL はデータをさまざまなテーブルに保存できるため、非常に柔軟であり、実際のアプリケーションでのシステムの速度も向上します。データベースへのアクセスは標準SQL言語で行われることが多く、MySQLはSQL言語で使用されるため互換性が高いです。データベーステーブルの追加、削除、変更、クエリなどの機能を含むデータベース操作は不可欠です。現在、データベースはリレーショナル データベースと非リレーショナル データベースに分けられます。Mysql はリレーショナル データベースです。Mysql データベースは小規模なリレーショナル データベースです。サイズが小さい、高速、低コストなど、独自の特徴があります。Mysql データベースはこれまでのところ最も人気のあるオープンソース データベースです。
WEB アプリケーション技術では、Mysql データベースはさまざまなオペレーティング システム プラットフォームをサポートしており、プラットフォームごとにインストールと構成は異なりますが、大きな違いはありません。Windows プラットフォームでの Mysql のインストール方法には、バイナリ バージョンとインストール不要バージョンの 2 つがあります。Mysql データベースをインストールした後、サービス プロセスを開始する必要があります。これにより、対応するクライアントがデータベースに接続できるようになり、クライアントはコマンド ラインまたはグラフィカル インターフェイス ツールを介してデータベースにログインできるようになります。
- システム分析
- 実行可能性分析
このシステムの実現可能性は、経済性、技術性、運用性の観点から分析されます。
-
-
- 経済的実現可能性
-
システム全体は設計から開発、テストまで厳格な手順で行われ、外部の技術サポートなしですべての作業タスクが私自身で完了するため、サービスコストと人件費がすべて節約されます。ハードウェアに関しては、中古の携帯電話を使用してコストを節約します。ワークステーションはプロジェクト展開サーバーとデータベースサーバーとして使用され、コストは10,000元未満です。実際のネットワーク展開も他の人件費を必要とせずに自分で完了します。開発プロセス全体は低コストの原則に基づいています。そして消費量が少ない。
-
-
- 技術的な実現可能性
-
技術的実現可能性分析の目的は、システムが既存の技術で実現可能かどうかを確認し、開発効率や完成度を評価することです。技術的実現可能性とは、コンピュータのソフトウェアやハードウェアの開発が現在の技術条件下で開発要件を満たすことができるかどうかを指します。システム開発はSSM言語に基づいて行われるため、システム開発に必要なソフトウェアおよびハードウェアの条件は通常のコンピュータ上で満たすことができます。使用するメモリが比較的少ないため、理論的には、Mysql データベースを使用したソフトウェアの開発および設計に、メモリの使用量が少なすぎても問題はありません。上記の手法は、システム開発の成功と効率を効果的に保証します。
-
-
- 運用可能性
-
入院患者検知・早期警戒情報管理システムのユーザーインターフェースはシンプルで操作が容易で、共通インターフェース画面によるログインやアクセス操作はパソコンから行うことができ、利用者はこれまで使用してきた操作を継続することができます。コンピューター。このシステムの開発はSSMテクノロジーによって開発されており、B/S構造開発のより顕著な特徴は人間化と完全性であり、ユーザーの操作を他のものよりも簡潔かつ便利にします。操作のしやすさ、管理のしやすさ、双方向性の良さがこのシステムの運用に存分に反映されています。
3.2 パフォーマンス分析
性能分析においては、従来の管理方法と比較して、従来の管理方法では手作業で統計を作成し、紙とペンでデータ情報を管理するため、特定のデータ情報の保存や検索に手間がかかります。従来の方法は現在の社会の発展に適応することが難しく、人々の作業効率が低下するだけでなく、多くの人的資源と物的資源が必要となり、時間とコストの面で比較的高価になります。効率性を高め、コンピューターとネットワーク技術に基づいた一連の入院患者の検出と早期警告情報管理システムを開発します。
入院患者発見および早期警報情報管理システムの開発と設計は独立したシステムであり、主に入院患者発見および早期警報情報管理のユーザーの役割と対応する機能モジュールを実現するために、一般的なデータベースがデータの保存と開発に使用されます。早期警戒情報管理システムの実現により、入院患者の発見と早期警戒情報管理システムの実現により、管理上の差異や効率の低下が生じず、従来の情報管理とは正反対の管理が可能となり、リソースの節約が可能になります。 、ビジネスの処理速度も向上し、効率的かつ強力です。
3.3システム運用プロセス
3.3.1ユーザーのログインプロセス
システム セキュリティの最初のハードルは、システムに入るユーザーが、ログインする前にログイン ウィンドウに自分のログイン情報を入力する必要があることです。ユーザーが入力した情報が正確である場合にのみ、ユーザーはオペレーティング システム インターフェイスに入って実行できます。対応する操作では、ユーザーが入力した情報が正しくない場合、ウィンドウにプロンプト ボックスが表示され、ユーザーはログインに失敗します。図 3- に示すように、最初のステップに戻って再入力します。 1.
図 3-1 ログイン操作のフローチャート
3.3.2情報追加処理
入院患者検知・早期警戒情報管理システムでは、必要なデータ情報を随時追加する必要があり、ユーザーが情報を追加するには、追加インターフェースと画面に従って追加するデータ情報を入力する必要があります。チェックボックスの内容 情報入力完了後、データ情報が要件を満たしているか判断され、要件を満たしていれば追加完了、ユーザーが追加した情報が要件を満たしていない場合は、図 3-2 に示すように、最初のステップに戻ってデータ情報を再入力し、判定操作を実行する必要があります。
3.3.3 情報削除処理
どのユーザー役割が不合理なシステム操作インターフェースに入っても、異なる情報コンテンツ操作機能を実行できます。システムデータ情報の削除については、ユーザーが一度情報を削除すると、削除されたデータ情報は復元されません。したがって、ユーザーは、データを削除する場合は、削除対象のコンテンツが削除するかどうかを判断する必要があり、正しいことを確認した後、図 3-3 に示すように、削除操作を確認するを選択します。
図 3-3 情報削除のフローチャート
- システムデザイン
4.1 システムアーキテクチャ設計
入院患者発見・早期警戒情報管理システムプロジェクトの概要設計分析、主な内容は入院患者発見・早期警戒情報管理システム情報の具体的な分析であり、データベースが設計され、データはmysqlデータベースを使用し、システムはより人間らしい操作を採用した設計により、システム内のエラー情報にタイムリーに対処し、フィードバックすることができます。
入院患者検知・早期警戒情報管理システムの設計は既存のネットワークをベースにしており、ユーザー管理、医師勤務配置管理、病床管理、入院情報管理、退院情報管理、薬剤情報管理といった管理者の詳細な管理を実現できる。 、支払明細管理などの把握と統計分析。システムの機能要件に従って確立されたモジュール関係図は次のとおりです。
図 4-1 管理者機能モジュール図
4.2開発プロセスの設計
入院患者発見および早期警報情報管理システムの開発は、システムが使用する管理モジュールとデータベースを分析し、書き込み生成開発、計画、および運用という情報管理アプリケーション プログラムを構築するために必要な 3 つのステップであり、システムが可能かどうかを決定します。プリセット機能を本当に実現できるか、設計が成功した後に実装できるか。開発プロセスでは、各段階は線形シーケンスに厳密に従って開発する必要があり、対応する段階で生成された各作業はテクノロジーによって検証およびチェックできます。設計機能の完了後にシステムが保証されるように、1 つの段階の完了後にそれが正しいこと、次の段階でドラッグ アンド ドロップ現象が発生しないことを確認してください。
入院患者検知および早期警報情報管理システムの開発成功の経験から判断すると、上記の方法は最も明白な効果があり、システム開発の複雑さを最大限に軽減します。図 4-2 に示すように。
図 4-2 開発システムのフローチャート
4.3 データベース設計
データベースは情報システムの基盤であり中核です。データベース設計の良し悪しは、情報システム開発の成否に直結します。データベース テーブルを作成すると、まずエンティティの属性とエンティティ間の関係が決定されます。リレーションシップに基づいてデータ テーブルを作成します。4.3.1エンティティ ER 図
データベースはソフトウェアプログラミング全体の中で最も重要なステップであり、データベース問題では主にデータベース数の決定と構造式の作成が行われます。表示システムは Mysql を使用してデータベースを管理し、データのセキュリティと安定性を確保します。
概念モデルは、現実世界の情報を抽象化し、情報世界をモデル化するように設計されています。これはデータベース設計のための強力なツールです。データベース概念モデル設計では、ER 図を通じて現実世界の概念モデルを記述することができます。システムの ER 図は、システム内のエンティティ間のリンクを示します。また、Mysql データベースは比較的強力な自己保護機能を備えたデータベースであり、主にデータベース エンティティの ER 図を次の図に示します。
(1) 図 4-3 に示す医薬品情報エンティティ図:
図 4-3 医薬品情報エンティティ図
(2) 病院のベッドの物理的なマップを図 4-4 に示します。
図 4-4 病床のエンティティマップ
これらの機能により、入院患者発見・早期警戒情報管理システムのニーズに十分対応できます。このシステムの機能は、システム機能構造の下の図 4-5 に示すように、比較的包括的です。
図 4-5 システム機能構成図
4.3.2 データシート
データ構造の詳細な分析要件に従って、入出力データ量の要件に従って分析し、どのテーブル、構造間の関係を決定し、プロセスを検証、調整、改善、クエリおよび参照できます。ユーザーがより多くのデータと機能を求めるようにするために、データベースを実現できます。
システムが使用するデータベース管理システムの特性に基づいて、データベースの概念モデルを変換して構築します。ただし、このシステムは入院患者発見・早期警戒情報管理システムの機能を十分に考慮すればよく、組織は比較的明確である。
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
入場情報id |
整数 |
11 |
はい |
はい |
入学情報ID |
病院のフロア |
可変長文字 |
64 |
いいえ |
いいえ |
病院の床 |
入院患者 |
整数 |
11 |
いいえ |
いいえ |
入院患者 |
患者名 |
可変長文字 |
64 |
いいえ |
いいえ |
患者名 |
入院患者のベッド |
可変長文字 |
64 |
いいえ |
いいえ |
病院用ベッド |
ベッド数 |
整数 |
11 |
いいえ |
いいえ |
ベッド数 |
滞在日数 |
日にち |
0 |
いいえ |
いいえ |
入院 |
医師番号 |
整数 |
11 |
いいえ |
いいえ |
医師番号 |
医師の名前 |
可変長文字 |
64 |
いいえ |
いいえ |
医師の名前 |
患者の医療記録 |
文章 |
0 |
いいえ |
いいえ |
患者の医療記録 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
部門管理ID |
整数 |
11 |
はい |
はい |
部門管理ID |
部署名 |
可変長文字 |
64 |
いいえ |
いいえ |
部署名 |
位置 |
可変長文字 |
64 |
いいえ |
いいえ |
位置 |
部門ディレクター |
整数 |
11 |
いいえ |
いいえ |
部長 |
部門メンバー |
文章 |
0 |
いいえ |
いいえ |
部員 |
部門プロフィール |
文章 |
0 |
いいえ |
いいえ |
部門概要 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
退院情報id |
整数 |
11 |
はい |
はい |
排出情報ID |
病院のフロア |
可変長文字 |
64 |
いいえ |
いいえ |
病院の床 |
入院患者 |
整数 |
11 |
いいえ |
いいえ |
入院患者 |
患者名 |
可変長文字 |
64 |
いいえ |
いいえ |
患者名 |
ベッド数 |
可変長文字 |
64 |
いいえ |
いいえ |
ベッド数 |
滞在日数 |
日にち |
0 |
いいえ |
いいえ |
入院 |
退院時間 |
日にち |
0 |
いいえ |
いいえ |
放電時間 |
医師番号 |
整数 |
11 |
いいえ |
いいえ |
医師番号 |
医師の名前 |
可変長文字 |
64 |
いいえ |
いいえ |
医師の名前 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
医師のユーザーID |
整数 |
11 |
はい |
はい |
医師ユーザーID |
医師の名前 |
可変長文字 |
64 |
いいえ |
いいえ |
医師の名前 |
医師の性別 |
可変長文字 |
64 |
いいえ |
いいえ |
医師のセックス |
医師番号 |
可変長文字 |
64 |
はい |
いいえ |
医師番号 |
検査状態 |
可変長文字 |
16 |
はい |
いいえ |
承認状況 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
ユーザーID |
整数 |
11 |
はい |
いいえ |
ユーザーID |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
医師の仕事の手配_id |
整数 |
11 |
はい |
はい |
医師の勤務スケジュールID |
医師番号 |
整数 |
11 |
いいえ |
いいえ |
医師番号 |
医師の名前 |
可変長文字 |
64 |
いいえ |
いいえ |
医師の名前 |
デパートメント |
可変長文字 |
64 |
いいえ |
いいえ |
デパートメント |
始まる時間 |
日にち |
0 |
いいえ |
いいえ |
開始時間 |
終了時間 |
日にち |
0 |
いいえ |
いいえ |
終了時間 |
仕事の組織 |
文章 |
0 |
いいえ |
いいえ |
勤務体制 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
薬剤情報id |
整数 |
11 |
はい |
はい |
医薬品情報ID |
薬剤名 |
可変長文字 |
64 |
いいえ |
いいえ |
薬剤名 |
薬剤番号 |
可変長文字 |
64 |
いいえ |
いいえ |
薬剤番号 |
薬の絵 |
可変長文字 |
255 |
いいえ |
いいえ |
薬の絵 |
機能的表示 |
可変長文字 |
64 |
いいえ |
いいえ |
適応症 |
メインコンポーネント |
文章 |
0 |
いいえ |
いいえ |
主成分 |
注意が必要な事項 |
文章 |
0 |
いいえ |
いいえ |
予防 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
病院のベッドID |
整数 |
11 |
はい |
はい |
病院のベッドID |
病院のフロア |
可変長文字 |
64 |
はい |
いいえ |
病院の床 |
total_number_of_beds |
整数 |
11 |
いいえ |
いいえ |
総ベッド数 |
残りのベッド数 |
整数 |
11 |
いいえ |
いいえ |
残りのベッド |
デパートメント |
文章 |
0 |
いいえ |
いいえ |
デパートメント |
ベッド構成 |
文章 |
0 |
いいえ |
いいえ |
ベッド構成 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
支払い詳細ID |
整数 |
11 |
はい |
はい |
支払い詳細ID |
患者番号 |
整数 |
11 |
いいえ |
いいえ |
患者番号 |
患者名 |
可変長文字 |
64 |
いいえ |
いいえ |
患者名 |
ユーザーカード番号 |
可変長文字 |
64 |
いいえ |
いいえ |
利用者カード番号 |
支払金額 |
整数 |
11 |
いいえ |
いいえ |
支払金額 |
支払い時間 |
日付時刻 |
0 |
いいえ |
いいえ |
支払い時間 |
医師番号 |
整数 |
11 |
いいえ |
いいえ |
医師番号 |
医師の名前 |
可変長文字 |
64 |
いいえ |
いいえ |
医師の名前 |
お支払い内容 |
文章 |
0 |
いいえ |
いいえ |
支払い内容 |
お勧め |
整数 |
11 |
はい |
いいえ |
インテリジェントな推奨事項 |
作成時間 |
日付時刻 |
0 |
はい |
いいえ |
作成時間 |
更新時間 |
タイムスタンプ |
0 |
はい |
いいえ |
更新時間 |
名前 |
タイプ |
長さ |
nullではない |
主キー |
ノート |
recharge_record_id |
整数 |
11 |
はい |
はい |
リチャージレコードID |
患者番号 |
整数 |
11 |
いいえ |
いいえ |
患者番号 |
患者名 |
可変長文字 |
64 |
いいえ |
いいえ |
患者名 |
患者の性別 |
可変長文字 |
64 |
いいえ |
いいえ |
患者性别 |
user_card_number |
varchar |
64 |
否 |
否 |
用户卡号 |
recharge_amount |
int |
11 |
否 |
否 |
充值金额 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
名称 |
类型 |
长度 |
不是null |
主键 |
注释 |
user_balance_id |
int |
11 |
是 |
是 |
用户余额ID |
patient_number |
int |
11 |
否 |
否 |
患者编号 |
patient_name |
varchar |
64 |
否 |
否 |
患者姓名 |
patient_gender |
varchar |
64 |
否 |
否 |
患者性别 |
user_card_number |
varchar |
64 |
否 |
否 |
用户卡号 |
user_balance |
int |
11 |
否 |
否 |
用户余额 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
该系统是通过jdbc和MySQL达成连接的,新建一个jdbc.properties文件来填写与数据库连接所需要的驱动和参数。
jdbc.driverClass=com.MySQL.jdbc.Driver
jdbc.url=jdbc:MySQL://localhost:3306/tsi
jdbc.username=root
jdbc.password=123
第一个参数代表MySQL数据库的驱动,第二个参数代表要连接的数据库,第三个和第四个参数代表数据库连接名和密码。
后台与数据库访问主要是通过HQL语句来进行查询的,查询语句中的表名是表格的实体类名,在这种查询语句中*是不允许使用的,除非适合聚合函数一起使用才可以。
用户在填写数据的时候必须与注册页面上的验证相匹配否则会注册失败,注册页面的表单验证是通过JavaScript进行验证的,用户名的长度必须在6到18之间,邮箱必须带有@符号,密码和密码确认必须相同,你输入的密码,系统会根据你输入密码的强度给出指定的值,电话号码和身份证号码必须要求输入格式与生活相符合,当你前台验证通过的时候你点击注册,表单会将你输入的值通过name值传递给后台并保存到数据库中。
用户注册流程图如下图所示。
图5-1用户注册流程图
用户注册代码如下:
/**
* 注册
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
主要由两部分组成,登录前的登录界面以及登录后的用户功能界面。登录界面,要求用户输入用户名和密码,当用户名和密码其中一个输入为空时,给出提示“用户名,密码不能为空”。获取用户名和密码后到数据库中查找,如果用户名存在,以及对应的密码正确,则登录成功,否则登录失败。登录失败后给出提示,并把焦点停在文本框中。登录成功后将该次会话的全局变量username设置为用户名。登录成功后进入会员的功能模块,主要有会员基本信息修改,已经发布族谱申报信息管理,发布信息,和退出功能。退出功能是清除全局变量username的值,并跳回到首页。
登录流程图如下图所示。
图5-1登录流程图
用户登录界面如下图所示。
图5-1登录流程图
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
用户登录/注册成功之后可以修改自己的基本信息。修改页面的表单中每一个input的name值都要与实体类中的参数相匹配,在用户点击修改页面的时候,如果改后用户名与数据库里面重复了,页面会提示该用户名已经存在了,否则通过Id来查询用户,并将用户的信息修改为表单提交的数据。
如果医院床位需要修改,管理员可以通过查询数据库中的医院床位数据,查询医院床位数据是通过ajax技术来进行查询的,需要传递医院楼层等参数然后在返回到该页面中,可以选中要修改或删除的那条信息,如果选中了超过一条数据,页面会挑一个窗口提醒只能选择一条数,如果没有选中数据会挑一个窗口题型必须选择一条数据。当选择确认修改的时候,后台会根据传过来的id到数据库查询,并将结果返回到修改页面中,可以在修改页面中修改刚刚选中的信息当点击确认的时候from表单会将修改的数据提交到后台并保存到数据库中,就是说如果提交的数据数据库中存在就修改,否则就保存。
医院床位界面如下图所示。
图5-1医院床位界面
-
- 医生管理模块的实现
根据需求,需要对医生进行添加、删除或修改详情信息。删除或修改医生时,系统根据医生的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询医生状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加医生时,会给出数据填写的页面,该页面根据填写好的医生编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
医生管理流程图如下图所示。
图5-1医生管理流程图
医生管理页面设计效果如下图所示。
图5-1医生管理界面
医生管理关键代码如下所示。
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
根据需求,需要对科室进行添加、删除或修改详情信息。删除或修改科室时,系统根据科室的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询科室状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加科室时,会给出数据填写的页面,该页面根据填写好的科室编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
科室管理流程图如下图所示。
图5-1科室管理流程图
科室管理页面设计效果如下图所示。
图5-1科室管理界面
科室管理关键代码如下所示。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
-
- 药品管理模块的实现
根据需求,需要对药品信息进行添加、删除或修改详情信息。删除或修改药品信息时,系统根据药品信息的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询药品信息状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加药品信息时,会给出数据填写的页面,该页面根据填写好的药品编号同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
药品信息管理流程图如下图所示。
图5-1药品信息管理流程图
药品信息管理页面设计效果如下图所示。
图5-1药品信息管理界面图
药品信息管理关键代码如下。
public Map<String, Object> success(Object o) {
Map<String, Object> map = new HashMap<>();
if (o == null) {
map.put("result", null);
return map;
}
if (o instanceof List) {
if (((List) o).size() == 1) {
o = ((List) o).get(0);
map.put("result", o);
}else {
String jsonString = JSONObject.toJSONString(o);
JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
map.put("result", objects);
}
} else if (o instanceof Integer || o instanceof String) {
map.put("result", o);
} else {
String jsonString = JSONObject.toJSONString(o);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JSONObject j = service.covertObject(jsonObject);
map.put("result", j);
}
return map
-
- 医院床位管理模块的实现
根据需求,需要对医院床位进行添加、删除或修改详情信息。删除或修改医院床位时,系统根据医院床位的状态判定为可删除状态下,才会给出删除和修改链接,点击删除链接按钮时,请求到达后台,还会先查询医院床位状态再次做出判定能否删除。点击修改链接按钮时,会跳转到修改信息的页面,重新填写好数据后,数据提交到后台会对数据库中相应的记录做出修改。
添加医院床位时,会给出数据填写的页面,该页面根据填写好的医院床位信息同样会事先发送Ajax请求查询编号是否已存在,数据填写好之后提交到后台,会调用相关服务在数据库中插入记录。
医院床位管理流程图如下图所示。
图5-1医院床位管理流程图
医院床位管理页面设计效果如下图所示。
图5-1医院床位管理界面图
医院床位管理关键代码如下。
public Map<String, Object> success(Object o) {
Map<String, Object> map = new HashMap<>();
if (o == null) {
map.put("result", null);
return map;
}
if (o instanceof List) {
if (((List) o).size() == 1) {
o = ((List) o).get(0);
map.put("result", o);
}else {
String jsonString = JSONObject.toJSONString(o);
JSONArray objects = service.covertArray(JSONObject.parseArray(jsonString));
map.put("result", objects);
}
} else if (o instanceof Integer || o instanceof String) {
map.put("result", o);
} else {
String jsonString = JSONObject.toJSONString(o);
JSONObject jsonObject = JSONObject.parseObject(jsonString);
JSONObject j = service.covertObject(jsonObject);
map.put("result", j);
}
return map
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中难以避免,这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果 如系统崩溃,安全信息,系统无法正常启动,导致安装用户手机屏幕等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们 ,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要系统的开发。
软件测试与开发过程是一样的,都必须按照软件工程的正规原理进行,遵守管理学理论。不过,目前国内的软件测试已经积累了大量经验和方法,步骤相对成熟,软件测试的效率也越来越高。
住院病人检测预警信息管理系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在住院病人检测预警信息管理系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给用户使用。
-
- 测试方案设计
6.2.1 测试策略
1、功能测试
从用户的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。
2、性能测试
测试软件程序的整体状况(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载测试和压力测试之间进行分配,在某些情况下,将这两种情况结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但负载测试可以测试系统如何响应增加的负载。
6.2.2 测试分析
测试评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。
软件测试应遵循以下原则:
(1)软件测试应尽快进行,整个测试部分应在软件开发和设计的整个过程中进行。如发现错误,立即处理,将大大减少软件开发的时间,并提高软件的质量。
(2)在软件的各种测试中,测试过程中使用的计划、报告等应妥善处理和存储。其主要目的是为了便于以后系统的维护。
(3)软件测试整个过程中的聚类现象应优先考虑。
(4)对于软件测试,我们应该尽量不去和自己设计的系统进行参考,而是要测试对方的程序,以确保软件测试结果的客观性和公平性。
(5)整个测试计划严格按照软件测试的具体实施细则进行。
(6)对整个测试结果进行综合检查,尽量避免重复错误。
本住院病人检测预警信息管理系统满足用户的要求和需求,本住院病人检测预警信息管理系统的使用能够有效的提高用户的使用率。
测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试用户的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。
- 总结与展望
通过住院病人检测预警信息管理系统的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。
系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
参考文献
[1]艾信,田鹏,吉效科,白文雄,华剑.多算法融合管道泄漏检测预警系统试验研究[J].石油矿场机械,2021,50(06):26-33.
[2]宋鑫,张珣.智慧路灯场景下车祸检测预警系统设计与实现[J].软件导刊,2021,20(10):197-201.
[3]王江霖,黄彩霞,樊旭龙.基于SSM框架的网络资源共享平台的研究与实现[J].电脑知识与技术,2021,17(28):76-78.DOI:10.14004/j.cnki.ckt.2021.2999.
[4]蔡浪,刘彬.基于SSM框架的医院感染信息实时监测系统设计与实现[J].现代信息科技,2021,5(18):24-27.DOI:10.19850/j.cnki.2096-4706.2021.18.007.
[5]冯丽露,康耀龙,高晓晶,王涛.基于SSM框架的数据结构在线评测系统设计与实现[J].中国信息技术教育,2021(13):86-89.
[6]曹华山.SSM框架在Web应用开发中的设计与实现[J].无线互联科技,2021,18(11):108-109.
[7]刘佰强. 基于人脸视频智能分析的日间驾驶员不安全行为检测分类与预警系统[D].西安理工大学,2020.DOI:10.27398/d.cnki.gxalu.2020.000333.
[8]任锴,陈俊,叶宇煌,陈琪.基于SSD-MobileNet的火情检测预警系统[J].电气开关,2020,58(01):34-38.
[9]戴珂泱,周建峰,严风云.舟山跨海大桥基于视觉感知的新一代道路事件检测预警系统应用初探[J].中国交通信息化,2020(01):132-135.DOI:10.13439/j.cnki.itsc.2020.01.020.
[10]季昆,孟丽丽,薛迁,孙晓伟,王才华.基于JavaWeb的产品质量检测预警系统的设计与实现[J].数字技术与应用,2019,37(10):176-177.DOI:10.19695/j.cnki.cn12-1369.2019.10.96.
[11]李昕.电视台安全播出检测预警系统的设计和实施[J].广播与电视技术,2018,45(10):49-53.DOI:10.16171/j.cnki.rtbe.20180010006.
[12]李耀华,游峰,陈康,陈润丰,彭涵宇,方伟创.基于安全云平台和移动互联网的交通烟雾检测预警系统[J].计算机与现代化,2017(02):88-92.
致谢
时光飞逝,转眼间我在学校的这些年生活即将结束,回顾这几年的学习生活,收获良多,既有幸福也有难过,学校生活的结束对于我来说也是一个新的开始。论文即将完成,在此,我心中有许多想要感谢的人。首先感谢我的导师,不仅在学习研究方面加以指导,也在生活和为人处世上给予帮助。还要感谢授课老师,你们严谨的学术精神和积极向上的工作态度都在激励我的成长和进步。感谢多年来一直生活在一起的室友,谢谢你们多年来的陪伴和照顾。最后,要感谢各位论文评审老师,感谢您们在百忙之中抽空评阅本论文并给出宝贵的意见和建议。
点赞+收藏+关注 → 私信领取本源代码、数据库