(ソース コード添付) スプリングブーツ病院入院管理システム卒業プロジェクト 32182

目次

まとめ

1 绪论

1.1系统开发的意义

1.2系统开发的目标

1.3システム開発テクノロジーの特徴

1.4springboot框架介绍

2入院管理システム分析 

2.1 可行性分析

2.2 系统流程分析

2.2.1数据增加流程

2.2.2数据修改流程 5

2.2.3数据删除流程 5

2.3 系统功能分析 6

2.3.1 功能性分析 6

2.3.2 非功能性分析 6

2.4 系统用例分析 7

2.5本章小结 10

3 医院住院管理系统总体设计 11

3.1 系统架构设计 11

3.2 系统功能模块设计 12

3.2.1整体功能模块设计 12

3.2.2系统用户模块设计 12

3.2.3病人管理模块设计 13

3.3 データベース設計

3.3.1 データベースの概念構造の設計

3.3.2 データベースの論理構造の設計

3.4本章小结 22

4病院入院管理システム主要モジュールの設計と実装 2 3

4.1登录模块 3

4.2系统用户模块

4.3科别名称模块 30

4.4病人信息模块 31

4.5病房信息模块 32

4.6收费信息模块 32

5系统测试 33

5.1システム テストの目的

5.2 系统测试用例 34

5.3 系统测试结果 35

结论 36

参考文献 37

  

まとめ

科学技術の急速な発展は人々の日常生活に大きな変化をもたらし、電子情報技術の急速な発展により、さまざまな分野で電子情報技術の応用レベルが普及し、応用されています。情報化時代の到来は、もはや止められないファッショントレンドとなり、人類の発展の歴史は新たな時代を迎えています。実際の運用では、アプリケーションソフトの就業規則や開発手順を基に、Java技術を利用した入院患者管理システムを構築します。

この設計は主に、人間化、高効率、利便性の利点を組み合わせた病院の入院患者管理システムを実装し、システムユーザー、患者情報、請求情報、部門名、病棟情報などの機能モジュールを完成させます。システムはブラウザを介してサーバーと通信し、データのやり取りと変更を実現します。このシステムは、科学的な管理方法と便利なサービスにより、作業効率を向上させ、データ保管のエラーや漏れを削減します。病院の入院患者管理システムは Java 言語を使用し、MVVM モデルに基づいたスプリングブート テクノロジを使用して開発されています。MyEclipse 2017 CI 10 コンパイラを使用して記述されています。データに関しては、主に Microsoft の MySQL リレーショナル データベースがデータ ストレージ メディアとして使用されています。 HTML+CSS技術補完システム開発。

キーワード: スプリングブート テクノロジー、MYSQL、病院入院管理システム

抽象的な

科学技術の急速な発展は人々の日常生活に大きな変化をもたらしました。電子情報技術の急速な発展により、あらゆる分野における電子情報技術の応用レベルが普及し、応用されています。情報化時代の到来は抗しがたいファッショントレンドとなり、人類の発展の歴史は新たな時代を迎えています。実際のアプリケーションでは、アプリケーション ソフトウェアの作業ルールと開発手順を使用して、Java テクノロジを使用して入院患者管理システムを構築します。

この設計は主に人間化、効率性、利便性の利点を統合した病院の入院患者管理システムを実現し、システムユーザー、患者情報、料金情報、部門名、病棟情報およびその他の機能モジュールを完成させます。システムはブラウザを介してサーバーと通信し、データのやり取りと変更を実現します。科学的な管理と便利なサービスにより、作業効率を向上させ、データ保管のミスや漏れを削減します。病院の入院患者管理システムは Java 言語を使用し、開発には MVVM モデルベースの検索スプリングブート テクノロジを使用し、書き込みには MyEclipse 2017 CI 10 コンパイラを使用し、データのデータ ストレージ メディアとして Microsoft の MySQL リレーショナル データベースを使用します。 HTML+CSS技術と連携してシステム開発を完了します。

キーワード:Spring Boot テクノロジー。 MYSQL; 病院入院患者管理システム

1 绪论

1.1系统开发的意义

現在、我が国の医療保健制度と医療保障制度の改革は深化し続けており、病院も市場経済の海の深部への移転を余儀なくされており、経験主義的経営手法は明らかに非科学的かつ後進的な弱点を露呈しています。最も早く使用するにはどうすればよいですか? 病院運営のさまざまな指標を取得する方法、病院職員や人材の科学的な原価計算を行う方法、病院の医療、教育、科学研究の品質管理を確保する方法、情報交換を実行する方法、オンライン診療、病院内および病院外での継続教育など、他の一連の問題が病院の管理者や管理者、さらにはすべての医療スタッフの目の前に突きつけられています。したがって、医療および健康サービスの開発と管理における情報化、デジタル化、およびネットワーク化の関係、ならびに病院の情報化、デジタル化、およびネットワーク化の要件は、今日ほど緊急で大きなプレッシャーにさらされていることはありません。病院情報管理は、このような状況のもとで生み出された応用科学です。

病院の経営は常にマニュアルで行われてきました。手動操作手順は複雑で管理が不便であり、データの正確性と適時性を保証できません。人的資源、物的リソース、時間の無駄になるだけでなく、さらに重要なことに、手動操作はデータ入力エラーを引き起こし、作業効率に影響を与える可能性があります。

コンピュータの性能が向上し続け、価格が低下し続けるにつれて、コンピュータは病院の医療、教育、科学研究、管理などでますます使用されるようになりました。コンピュータ化された病院情報システム (HIS) は、現代の病院の運営において不可欠なインフラストラクチャおよび技術サポート環境となっています。現代の病院の運営を成功させるには、完全に機能し、美しく快適な建物、タイムリーで熟練した医療スタッフ、完全な性能と高精度の医療機器が不可欠であるのと同様に、コンピュータ化された病院情報システムも不可欠です。医療産業は人の健康に関わる重要な事業であり、病院情報システムは医療保険制度の情報源であり、病院の情報化は今後の病院発展の重要な方向性であるだけでなく、重要な分野でもあります。 IT業界への懸念。合理的な設計と完全な機能を備えた検査情報システムは、病院ネットワーク リソースの重要な部分となっており、病院の医療サービスと検査業務の科学的管理を改善する上で非常に重要です。

1.2 システム開発の目標

完成した病院入院管理システムは、簡単な需要分析を通じて病院医療スタッフの業務を支援し、病院医療スタッフの業務効率を向上させることができます。このシステムにより、入院部門における患者と病棟の二大情報の追加・削除・変更・確認の管理が可能となり、医療スタッフの業務負担が軽減されます。このシステムは、システム ユーザーがさまざまなクエリ条件に基づいて対応するデータをクエリできる強力なクエリ機能を提供します。入退室操作は、患者の入退室操作を簡単に実現し、病院の医療スタッフの操作を容易にするためのシステムであり、美しいインターフェイス、簡単な操作、明確で完全な機能を備えている必要があります。システムの運用は非常に効率的である必要があります。データベースの運用はより効率的であり、応答が遅くない必要があります。これには、合理的かつ完全なシステム構築が必要です。

病院の入院患者管理システムを確立することにより、病棟と患者の管理と照会にコンピュータが使用され、病院の入院患者管理の効率と近代化レベルがさらに向上し、病院の入院患者管理スタッフの作業効率の向上に役立ち、体系的な入院患者管理が実現されます。病院の入院患者管理の体系的なワークフロー、標準化と自動化。システムには優れたスケーラビリティが必要です。そのためには、システム アーキテクチャが合理的でスケーラブルであること、および将来の需要の変化を完全に考慮する必要があります。適切に設計されたコードにより、必要に応じてより多くの機能をプラグインすることができます。これを行う利点は、将来必要となる可能性のある変更に対処できることです。これには、システム設計時に優れたソフトウェア フレームワークが必要です。このシステム設計では、システムのセキュリティも重要な目標であり、利用者の不正アクセスを考慮した設計を行う必要があり、利用者の不正アクセスを拒否することで、利用者データの安全性とシステムの安全性を確保する必要があります。

1.3 システム開発技術の特徴

(1) 病院の入院患者管理システムの Web バックグラウンド管理のバックエンドでは、古い jsp+javabean+servlet テクノロジは使用されなくなりましたが、現在の主流の springboot フレームワークが使用され、Java 構成コードが削減され、プログラミング コードが簡素化されています。多くの企業に選ばれているフレームワークの一つでもあります。

(2) 病院の入院患者管理システムにおける Web バックグラウンド管理のフロントエンドは JavaScript フレームワークを使用しており、ajax[8] と jquery を使用してページ デザインを美しくすることができます。

(3) 入院管理システムのデータベースには実行効率の高いMysql5.7を採用しています。

1.4スプリングブートフレームワークの概要

Spring フレームワークは、制御反転特性を備えたコンテナを提供する Java プラットフォーム上のオープン ソース アプリケーション フレームワークです。 Spring フレームワーク自体にはプログラミング モデルに制限はありませんが、Java アプリケーションで頻繁に使用されるため非常に人気があり、後に EJB (Enterprise JavaBeans) モデルの補足として、または代替として使用されるようになりました。 Spring フレームワークは、制御の反転のコア機能の利用や、管理対象オブジェクトのライフサイクルのコンテナ化を実装するための依存関係注入による制御の反転の実装、宣言型トランザクション管理のためのアスペクト指向プログラミングの使用など、開発のための一連のソリューションを提供します。統合 さまざまな永続化テクノロジによってデータ アクセスが管理され、開発を容易にする多数の優れた Web フレームワークが提供されます。 Spring フレームワークには Inversion of Control (IOC) 機能があり、プロジェクトのメンテナンスとテストを容易にするように設計されており、Java のリフレクション メカニズムを通じて Java オブジェクトの統合設定と管理の方法を提供します。 Spring フレームワークは、コンテナを使用してオブジェクトのライフ サイクルを管理します。コンテナは、XML ファイルまたはクラスの特定の Java アノテーションをスキャンすることでオブジェクトを構成できます。開発者は、依存関係の検索または依存関係の注入を通じてオブジェクトを取得できます。 Spring フレームワークにはアスペクト指向プログラミング (AOP) フレームワークがあり、Spring AOP フレームワークはプロキシ モードに基づいており、実行時に構成可能です。AOP フレームワークは主にモジュール間の相互関係をモジュール化します。 Spring フレームワークの AOP フレームワークは基本的な AOP 機能のみを提供しており、AspectJ フレームワークと比較することはできませんが、AspectJ との統合により基本的なニーズにも対応できます。 Spring AOP技術を利用することで、Springフレームワークのトランザクション管理やリモートアクセスなどの機能を実現できます。 Spring のトランザクション管理フレームワークは、Java プラットフォームに抽象化メカニズムを導入し、ローカルおよびグローバル トランザクション、およびネストされたトランザクションが、Java プラットフォーム上のほぼすべての環境でセーブポイントを使用して動作できるようにします。 Spring にはさまざまなトランザクション テンプレートが統合されており、システムはトランザクション テンプレート、XML または Java アノテーションを通じてトランザクションを構成でき、トランザクション フレームワークにはメッセージングやキャッシュなどの機能が統合されています。 Spring のデータ アクセス フレームワークは、開発者がアプリケーションでデータベースを使用するときに遭遇する一般的な問題を解決します。 Java: JDBC、iBATS/MyBATIs、Hibernate、Java Data Objects (JDO)、ApacheOJB、ApacheCayne などのすべての一般的なデータ アクセス フレームワークのサポートを提供するだけでなく、Spring のトランザクション管理と併用してデータ アクセスを提供することもできます。 。 Spring フレームワークは当初、独自の WebMVC フレームワークを構築するつもりはありませんでしたが、開発プロセス中、開発者は、既存の StrutsWeb フレームワークのプレゼンテーション層とリクエスト処理層の間、およびリクエスト処理層とモデルの間の分離が適切ではないと考えていました。それで十分だったので、彼らは SpringMVC を作成しました。

2 病院の入院管理システムの分析

システム分析はプロジェクト開発の前提条件であり、システム分析を通じてシステムの主要ユーザーの基本的なニーズを十分に理解することができ、これがプロジェクト開発の理由でもあります。次に、システム開発の実現可能性分析が行われます。これには、通常、技術的実現可能性、経済的実現可能性などが含まれます。実現可能性分析は、プロジェクト全体の観点からの分析でもあります。次に、プロジェクトの具体的な要件が分析されますが、その分析方法は通常、ユーザーのユースケース図を通じて実装されます。以下に詳しくご紹介します。

2.1 可行性分析

(1) 技術的実現可能性分析

病院入院患者管理システム mysql データベースがストレージに使用され、IDEA や Tomcat などの開発ツールが開発に使用され、作成作業に多くの利便性をもたらします。このシステムはスプリングブートフレームワークを使用して開発されており、これによりシステムのスケーラビリティと保守性が向上し、Java 構成コードが削減され、プログラミング コードが簡素化されます。 > フレームワークも、多くの企業が選択しているフレームワークの 1 つです。 springboot

(2) 経済性分析

開発病院管理システムで使用される開発ソフトウェアは、IDEA 開発ツール、Tomcat8.0 サーバー、MySQL5.7 データベース、Photoshop イメージなどです。これらの環境は、学校現場で体系的に検討されており、追加費用なしで自主的に運用することができ、また、システム開発ツールはインターネットから直接ダウンロードできるため、オープンソースかつ無償で提供されています。経済的な側面も実現可能です。

(3) 運用可能性分析

このプロジェクトを設計する際、私は同様のシステムの多くの成功事例を参考にし、その操作インターフェースと機能を体系的に分析し、多くの事例を組み合わせて人間中心の操作と簡素化された操作を強調し、コンピューターの基本的な知識を持つ人がこのプロジェクトを操作できるようにしました。したがって、運用可能性に問題はない。

2.2 システムプロセス分析

ビジネス プロセスは、システムを使用する際のユーザーのプロセスを示すために、いくつかの特定の記号と線を使用します。システム分析を実行する際、ビジネス プロセスは、開発者がビジネスをより深く理解し、エラーを発見し、システムを改善するのに役立ちます。

2.2.1データ増強プロセス

ユーザーがシステムに正常にログインした後はデータを追加できます。追加されるデータの数は特​​定であり、システムによって生成されます。ユーザーが任意に入力することはできません, 番号以外の追加情報はユーザーが入力します. 入力された情報はシステムによって検証されます. 検証が正当であれば、データは正常に追加されたことが示されます. それ以外の場合は、データが追加されたことがわかります. 、追加は成功しませんでした。図2 -1は、データを追加するときのプロセスを示しています。

図2-1 データ追加フローチャート

2.2.2 データ変更プロセス

データ変更のプロセスは、図2-2に示すように、上記のデータ追加のプロセスと似ています。

図 2-2 データ変更のフローチャート

2.2.3 データ削除プロセス

システムに無駄なデータがある場合関連する管理者は a>これらのデータは削除できます。図2-3はデータ削除のフローチャートです。

図 2-3 データ削除のフローチャート

2.3 システム機能の分析

2.3.1 機能分析

入院管理システムは、 ユーザー従業員にとって管理がより便利になるように設計および実装されています。情報を利用すると、ユーザーは検索と管理にかかる時間と労力を大幅に節約でき、不必要な検索時間を効果的に削減できます。 システムは機能的に分割されドクター クライアント管理者2 人 がほとんどです。

医師のクライアント:

(1) ログイン: 医師はバックグラウンドでアカウントとパスワードを使用してログインできます。医師のアカウントとパスワードはデータベースに直接設定されています。パスワードを忘れた場合は、「パスワードを忘れた場合」をクリックしてパスワードを取得できます。

(2) 個人情報: ログイン後、ユーザーは自分の個人情報とアカウントログイン用のパスワードを変更できます。

(3) 患者情報:「患者情報」ボタンをクリックすると、システム内のすべての患者情報が表示され、医師名、診療科名、患者名から患者情報を照会することができます。特定の患者の場合、背面にある「表示」をクリックして詳細インターフェイスに入ります。

(4) 料金情報:「料金情報」メニューをクリックすると、ご自身の料金情報が表示されます。医師アカウント、診療科名、患者名などから料金情報を照会できます。特定の料金の詳細な情報を知りたい場合は、 をクリックしてください。背面の「詳細」をクリックして詳細インターフェイスに入ります。

(5) 病棟情報:「病棟情報」メニューをクリックすると、自分の病棟情報が表示されます。診療科名、病棟名、病床番号などから病棟情報を照会できます。特定の病棟の詳細な情報を知りたい場合は、 をクリックしてください。次の「詳細」をクリックすると、詳細インターフェイスが表示されます。

管理者側:

(1) 個人情報: ログイン後、管理者は自分の個人情報とアカウント ログインのパスワードを変更できます。

(2) システム ユーザー: 管理者は、管理者、一般ユーザー、医師ユーザーなど、システム内のすべてのユーザー ロールを制御できます。新しいユーザーを追加する必要がある場合は、ページ上の「追加」ボタンをクリックし、プロンプトに従ってユーザーを入力します。ユーザーの後ろにある「削除」ボタンをクリックすると、ユーザーを直接削除できます。

(3) 病棟情報: 「病棟情報」ボタンをクリックすると、システム内のすべての病棟情報が表示されます。部門名、病棟名、ベッド番号による病棟情報の照会がサポートされています。新しい病棟情報を追加する場合は、「追加」をクリックしてください。ボタンをクリックし、画面の指示に従って病棟情報を入力します。「送信」をクリックすると、新しく追加された病棟情報が病棟情報インターフェースに表示されます。病棟をクリックして病棟情報の詳細を表示することも、直接病棟情報を表示することもできます。病棟情報を削除するには、「削除」をクリックします。

(4) 患者情報: システム内のすべての患者情報を表示するには、[患者情報] ボタンをクリックします。ベッド番号またはチェックイン日による患者情報のクエリをサポートします。新しい患者を追加する場合は、[追加] をクリックします。ボタンをクリックし、画面の指示に従って患者情報を入力し、送信をクリックすると、追加した患者情報がデータベースに保存され、同時に「請求情報」ボタンをクリックして、支払いのための患者情報を入力することができます。削除する患者情報を直接選択して送信することもできますので、「削除ボタン」をクリックすると患者情報が削除されます。

(5) 課金情報: システム内のすべての課金情報を表示するには、「課金情報」ボタンをクリックします。合計料金または検査料金による課金情報のクエリをサポートします。新しい課金情報を追加する場合は、「追加」ボタンをクリックして、次に、プロンプトに従って課金情報を入力し、「送信」をクリックします。新しく追加された課金情報が課金情報インターフェースに表示されます。特定の課金情報をクリックして課金情報の詳細を表示することも、直接課金情報を確認することもできます。課金情報を削除するには、「削除」をクリックします。

(6) 部門名: 「部門名」ボタンをクリックすると、すべての部門の名前が表示されます。部門名による部門名情報のクエリをサポートし、同時に追加された部門名を削除することもできます。    

2.3.2 非機能分析

入院患者管理システムの非機能要件には、入院患者管理システムのセキュリティ、信頼性、パフォーマンス、拡張性などが含まれます。詳細は次の 3-1 表で表すことができます。

3-1病院入院管理システムなし機能要件リスト

安全性

主に病院の入院患者管理システムのデータベースのインストール、データベースの使用およびパスワードの設定が基準に準拠する必要があることを指します。

信頼性

信頼性とは、入院患者管理システムがユーザーの指示に従って動作することを意味し、テスト後の信頼性は90%以上です。

パフォーマンス

病院の入院患者管理システムが市場を占有するにはパフォーマンスが必須の条件であるため、パフォーマンスが良いことが最善です。

スケーラビリティ

たとえば、データベースは、システムの非機能要件を確実に満たすために、インターフェイスの使用などの複数の属性を予約します。

使いやすさ

利用者は入院管理システムのページ表示内容に従って操作するだけで済みます。

保守性

病院の入院管理システムの開発は保守性が非常に重要ですが、テストを行った結果、保守性に問題はありませんでした。

2.4 系统用例分析

2.3 の機能の分析を通じて、病院の入院管理システムのユースケース図が得られます。

医師ユーザーの役割の例を図 2-3 に示します。

図 2-3 病院の入院患者管理システムにおける医師ユーザーの役割のユースケース図

Web バックグラウンド管理上の管理者は、病院の入院患者管理システム全体のすべてのデータ情報を維持します。管理者の役割の例を図 2-4 に示します。

図2-4 病院入院患者管理システム管理者の役割のユースケース図

2.5 この章の概要

本章では、主に入院管理システムの実現可能性分析、プロセス分析、機能要件分析、システムユースケース分析を通じて、病院入院管理システム全体で実現すべき機能を決定します。また、病院の入院患者管理システムのコード実装とテストの標準も提供します。

3 入院患者管理システムの全体設計

この章で説明する主な内容には、病院の入院患者管理システムの機能モジュール設計とデータベース システム設計が含まれます。

3.1 系统架构设计

同病院の入院管理システムは、アーキテクチャ的にプレゼンテーション層(UI)、ビジネスロジック層(BLL)、データ層(DL)の3層に分かれている。

図 3-1 病院入院管理システムのアーキテクチャ設計図

プレゼンテーション層 (UI): UI 層とも呼ばれ、主に病院の入院管理システムの UI インタラクション機能を完成させます。優れた UI は、病院の入院管理システムを使用する際のユーザー エクスペリエンスを向上させ、ユーザーの快適さを向上させることができます。 UI のインターフェイス設計は、良好な互換性を実現するために、病院入院管理システムのさまざまなバージョンやさまざまなサイズの解像度にも適応する必要があります。 UI インタラクション機能の要件は合理的であり、ユーザーはインタラクティブな操作を実行する際に一貫したインタラクション結果を得る必要があり、そのためにはプレゼンテーション層がビジネス ロジック層と適切に接続されている必要があります。

ビジネス ロジック層 (BLL): 主に病院の入院管理システムのデータ処理機能を完成させます。ユーザーがプレゼンテーション層から送信したデータはビジネスロジック層で処理されてデータ層に渡され、システムがデータ層から読み込んだデータはビジネスロジック層で処理されてプレゼンテーション層に渡されます。

データ層(DL):病院の入院管理システムのデータはサーバー側のmysqlデータベースに置かれているため、サービス層に属する部分は直接ビジネスロジック層に統合することができます。入院管理システムのデータ保存・管理機能を主に担うデータ層のデータベース。

3.2 システム機能モジュールの設計

3.2.1 全体的な機能モジュール設計

前章では主にシステムの機能要件と非機能要件を分析し、要件に基づいて病院の入院管理システムのユースケースを分析しました。次に、病院の入院管理システムのアーキテクチャ、主要機能、データベースの設計を開始します。前章の需要分析に基づいて導き出された入院患者管理システムの全体設計モジュール図を図 3-2 に示します。

図3-2 入院管理システムの機能モジュール図

3.2.2 ユーザー モジュールの設計

(1) バックエンド管理者は、登録ユーザーの追加、削除、変更、確認を行うことができ、ユーザーモジュールの構成図は以下のとおりです。

図 3-3 ユーザーモジュールの構成図

(2) 各構造の具体的なビジネスロジック

a. ユーザー情報のクエリ: 最も基本的なクエリ機能は、ユーザー ID に基づいてユーザー情報をクエリするように設計されています。この機能は主に管理者のユーザー情報照会とユーザー自身の情報照会に反映されます。

b. ユーザー情報の変更:ユーザーは、名前の変更、パスワードの変更、アバターの変更などの基本情報を状況に応じて変更できます。

c. ユーザーの追加: ユーザーは登録することでアカウントを取得できます。

d. ユーザー情報の削除: 管理者には情報を削除する権限はなく、せいぜいユーザーをブラックリストに追加し、ユーザーのログインを禁止することができます。

3.2.3 患者管理モジュールの設計

(1) 病院の入院管理システムは、 大量の患者情報を保存する必要があります。モジュールの機能構造、具体的な構造図は次のとおりです。

図 3-4 患者管理モジュールの構成図

(2) 各構造の具体的なビジネスロジック

a. 患者情報の追加: 管理者は患者情報を追加できます。

b. 患者情報の削除: 管理者は患者情報を削除できます。

c. 患者情報の照会: 管理者は、照会のために患者情報を照会できます。

3.3 データベース設計

データベースの設計は、一般に需要分析、概念モデル設計、データベーステーブル作成の3つの大きなプロセスから構成されますが、需要分析については前章で説明しましたが、概念モデル設計は概念モデルと論理構造設計の2つに分かれます。

3.3.1 データベースの概念構造設計

以下は、病院の入院患者管理システム全体の主要なデータベース テーブルの全体的な E-R エンティティ関係図です。

図 3-6 病院入院管理システム全体の E-R 関係図

病院の入院患者管理システムのデータベースの全体的な E-R 関係図によると、病院の入院患者管理システムには多くの E-R 図が必要であると結論付けることができます。ここでは主なデータベースの E-R モデル図をいくつか示します。

図 3-7 医師ユーザーの E-R 関係図

図 3-8 課金情報 E-R 関係図

図 3-9 患者情報 E-R 関係図

図 3-10 病棟情報 E-R 関係図

3.3.2 データベースの論理構造設計

前の E-R 関係図から、プロジェクトでは多くのデータ テーブルの作成が必要であることがわかります。以下は、プロジェクト内の主要なデータベース テーブルのリレーショナル モデルです。

テーブルcharge_information(料金情報)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

料金情報id

整数

10

0

N

そして

課金情報ID

2

医師の名前

整数

10

0

そして

N

0

医師アカウント

3

セクション名

可変長文字

64

0

そして

N

セクション名

4

患者名

可変長文字

64

0

そして

N

患者名

5

患者の性別

可変長文字

64

0

そして

N

患者の性別

6

患者の年齢

可変長文字

64

0

そして

N

患者の年齢

7

区名

可変長文字

64

0

そして

N

区名

8

ベッド番号

可変長文字

64

0

そして

N

ベッド番号

9

ベッド代

整数

10

0

そして

N

0

ベッド代

10

薬代

整数

10

0

そして

N

0

薬代

11

検査費用

整数

10

0

そして

N

0

検査料

12

テストコスト

整数

10

0

そして

N

0

テスト費用

13

総経費、全費用、経費全体

可変長文字

64

0

そして

N

総費用

14

その他の備考

文章

65535

0

そして

N

その他の注意事項

15

推薦する

整数

10

0

N

N

0

インテリジェントな推奨事項

16

作成時間

日付時刻

19

0

N

N

CURRENT_TIMESTAMP

作成時間

17

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間

テーブル Doctor_user (ドクター ユーザー)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

医師のユーザーID

整数

10

0

N

そして

医師のユーザーID

2

医師の名前

可変長文字

64

0

そして

N

医師の名前

3

医者のいいえ

可変長文字

64

0

そして

N

医師番号

4

医師_性別

可変長文字

64

0

そして

N

医師の性別

5

セクション名

可変長文字

64

0

そして

N

セクション名

6

生年月日

可変長文字

64

0

そして

N

生年月日

7

勤務日

可変長文字

64

0

そして

N

勤務日

8

その他の備考

文章

65535

0

そして

N

その他の注意事項

9

検査状態

可変長文字

16

0

N

N

合格した

承認状況

10

推薦する

整数

10

0

N

N

0

インテリジェントな推奨事項

11

ユーザーID

整数

10

0

N

N

0

ユーザーID

12

作成時間

日付時刻

19

0

N

N

CURRENT_TIMESTAMP

作成時間

13

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間

テーブルpatient_information(患者情報)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

患者情報ID

整数

10

0

N

そして

患者情報ID

2

医師の名前

整数

10

0

そして

N

0

医師の名前

3

セクション名

可変長文字

64

0

そして

N

セクション名

4

患者名

可変長文字

64

0

そして

N

患者名

5

患者の性別

可変長文字

64

0

そして

N

患者の性別

6

患者の年齢

整数

10

0

そして

N

0

患者の年齢

7

病棟番号

可変長文字

64

0

そして

N

区名

8

ベッド番号

可変長文字

64

0

そして

N

ベッド番号

9

入学日

日付

10

0

そして

N

入学日

10

患者_病気

文章

65535

0

そして

N

患者の病気

11

推薦する

整数

10

0

N

N

0

インテリジェントな推奨事項

12

作成時間

日付時刻

19

0

N

N

CURRENT_TIMESTAMP

作成時間

13

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間

テーブル セクション名 (セクション名)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

セクション名ID

整数

10

0

N

そして

部署名ID

2

セクション名

可変長文字

64

0

そして

N

セクション名

3

推薦する

整数

10

0

N

N

0

インテリジェントな推奨事項

4

作成時間

日付時刻

19

0

N

N

CURRENT_TIMESTAMP

作成時間

5

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間

テーブル user (ユーザー アカウント: ユーザーのログイン情報を保存するために使用されます)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

ユーザーID

中程度の

8

0

N

そして

ユーザーID: [0,8388607] ユーザーはその他のユーザー関連データを取得します

2

smallint

5

0

N

N

1

アカウントのステータス: [0,10](1 利用可能 | 2 異常 | 3 凍結 | 4 ログアウト)

3

ユーザー・グループ

可変長文字

32

0

そして

N

ユーザー グループ: [0,32767] はユーザー ID と権限を決定します

4

ログイン時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

最終ログイン時間:

5

電話

可変長文字

11

0

そして

N

携帯電話番号: [0,11] ユーザーの携帯電話番号。パスワードの取得またはログインに使用されます。

6

電話の状態

smallint

5

0

N

N

0

携帯電話認証: [0,1] (0 は未認証 | 1 は審査中 | 2 は認証済み)

7

ユーザー名

可変長文字

16

0

N

N

ユーザー名: [0,16] ユーザーがログインに使用するアカウント名

8

ニックネーム

可変長文字

16

0

そして

N

ニックネーム: [0,16]

9

パスワード

可変長文字

64

0

N

N

パスワード: [0,32] ユーザーログインに必要な6~16桁または英語のパスワード。

10

Eメール

可変長文字

64

0

そして

N

電子メール: [0,64] ユーザーの電子メール。パスワードの取得またはログインに使用されます。

11

電子メールの状態

smallint

5

0

N

N

0

電子メール認証: [0,1] (0 は未認証 | 1 は審査中 | 2 は認証済み)

12

アバター

可変長文字

255

0

そして

N

アバターアドレス: [0,255]

13

作成時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

作成時間:

テーブル Ward_information (病棟情報)

シリアルナンバー

名前

データの種類

長さ

小数位

Null値を許可する

主キー

デフォルト値

説明する

1

区情報ID

整数

10

0

N

そして

病棟情報ID

2

セクション名

可変長文字

64

0

そして

N

セクション名

3

区名

可変長文字

64

0

そして

N

区名

4

ベッド番号

可変長文字

64

0

そして

N

ベッド番号

5

使用状況

可変長文字

64

0

そして

N

使用状況

6

その他の備考

可変長文字

64

0

そして

N

その他の注意事項

7

推薦する

整数

10

0

N

N

0

インテリジェントな推奨事項

8

作成時間

日付時刻

19

0

N

N

CURRENT_TIMESTAMP

作成時間

9

更新時間

タイムスタンプ

19

0

N

N

CURRENT_TIMESTAMP

更新時間

3.4 この章の概要

病院入院管理システム全体の需要分析は、システム全体のアーキテクチャと機能モジュールの設計に主に焦点を当て、データベース システム設計は、E-R モデルとデータベース ロジック システム設計を確立することで完了しました。

主要モジュールの設計と実装

4.1 ログインモジュール

管理者と医師は、ログインインターフェースにアカウント番号とパスワードを入力し、「ログイン」ボタンをクリックします。システムは、管理者と医師のユーザーのアカウントをユーザーデータベーステーブルに照合します。アカウント番号とパスワードが正しい場合、それぞれのアカウントが照合されます。メイン管理インターフェイス、それ以外の場合は、対応する情報が表示され、ユーザーはログイン インターフェイスに戻ります。メイン インターフェイスは、以下の図 4.1 に示されています。

図4.1 ログインインターフェース図

ログインキーコードは以下の通りです。

/**

     * ログイン

     * @paramデータ

     * @param httpServletRequest

     * @戻る

     */

    @PostMapping("ログイン")

    パブリック マップ<文字列、オブジェクト> login(@RequestBody Map

        Log.info("[ログインインターフェイスの実行]");

        文字列ユーザー名 = data.get("ユーザー名");

        文字列メール = data.get("メール");

        文字列電話 = data.get("電話");

        文字列パスワード = data.get("パスワード");

        リスト結果リスト = null;

        マップ<文字列, 文字列>マップ = 新しい HashMap<>();

        if(ユーザー名 != null && "".equals(ユーザー名) == false){

            map.put("ユーザー名", ユーザー名);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("電子メール", 電子メール);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("電話", 電話);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }それ以外{

            エラーを返す(30000、「アカウントまたはパスワードを空にすることはできません」);

        }

        if (resultList == null || パスワード == null) {

            エラーを返す(30000、「アカウントまたはパスワードを空にすることはできません」);

        }

        //このユーザーが存在するかどうかを判断します

        if (resultList.size()<=0){

            return error(30000, "ユーザーが存在しません");

        }

        ユーザー byユーザー名 = (ユーザー) resultList.get(0);

        マップ<文字列, 文字列> groupMap = 新しい HashMap<>();

        groupMap.put("名前",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            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, "账号或密码不正确");

        }

}

4.2系统用户模块

管理员可以对系统中所有的用户角色进行管控,包含了管理员和医生用户这两种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户,这里以医生用户为例。界面如下图4.2所示。

图4.2系统用户管理界面图

用户管理关键代码如下所示。

@RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

4.3科别名称模块

管理员和医生用户点击“科别名称”这个按钮可以查看到系统中的科别名称,支持通过科别名称进行查询科别信息,如果想要添加新的科别名称,点击“添加”按钮然后根据提示输入科别名称信息,点击“提交”后,在科别名称界面就会显示新增的科别名称,可以点击某一科别查看科别名称的详情,也可以直接点击“删除”进行删除科别名称。界面如下图4.3所示。

图4.3科别名称界面图

4.4病人信息模块

管理员点击“病人信息”会显示出所有的病人信息,支持选择医生姓名或者科别名称或者病人姓名对病人信息进行查询,如果想要添加新的病人信息,点击“添加”按钮,输入病人性别、病人年龄、编程编号、入院日期等信息,点击“提交”按钮就可以添加了,同时可以选择某一条病人信息,点击“删除”进行删除,也可以对用户提交的病人信息收费的信息进行管控。界面如下图4.4所示。

图4.4 病人信息界面图

病人信息关键代码如下所示。

 @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);

}

    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){

        StringBuffer sql = new StringBuffer("INSERT INTO ");

        sql.append("`").append(table).append("`").append(" (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            sql.append("`"+humpToLine(entry.getKey())+"`").append(",");

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(") VALUES (");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("'").append(entry.getValue()).append("'").append(",");

            }else {

                sql.append(entry.getValue()).append(",");

            }

        }

        sql.deleteCharAt(sql.length() - 1);

        sql.append(")");

        log.info("[{}] - 插入操作:{}",table,sql);

        Query query = runCountSql(sql.toString());

        query.executeUpdate();

    }

4.5病房信息模块

管理员点击“病房信息”会显示出所有的病房信息,支持输入科别名称对病房信息进行查询,如果想要添加新的病房信息,点击“添加”按钮,输入科别名称、病房名称、编程编号、使用状态、其他备注等信息,点击“提交”按钮就可以添加了,同时可以选择某一条病房信息,点击“删除”进行删除。界面如下图4.5所示。

图4.5 病房信息界面图

病房信息关键代码如下所示。

@PostMapping("/set")

@Transactional

    public Map<String, Object> set(HttpServletRequest request) throws IOException {

        service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));

        return success(1);

}

    public Map<String,String> readConfig(HttpServletRequest request){

        Map<String,String> map = new HashMap<>();

        map.put(FindConfig.PAGE,request.getParameter(FindConfig.PAGE));

        map.put(FindConfig.SIZE,request.getParameter(FindConfig.SIZE));

        map.put(FindConfig.LIKE,request.getParameter(FindConfig.LIKE));

        map.put(FindConfig.ORDER_BY,request.getParameter(FindConfig.ORDER_BY));

        map.put(FindConfig.FIELD,request.getParameter(FindConfig.FIELD));

        map.put(FindConfig.GROUP_BY,request.getParameter(FindConfig.GROUP_BY));

        map.put(FindConfig.MAX_,request.getParameter(FindConfig.MAX_));

        map.put(FindConfig.MIN_,request.getParameter(FindConfig.MIN_));

        return map;

}

    public Map<String,String> readQuery(HttpServletRequest request){

        String queryString = request.getQueryString();

        if (queryString != null && !"".equals(queryString)) {

            String[] querys = queryString.split("&");

            Map<String, String> map = new HashMap<>();

            for (String query : querys) {

                String[] q = query.split("=");

                map.put(q[0], q[1]);

            }

            map.remove(FindConfig.PAGE);

            map.remove(FindConfig.SIZE);

            map.remove(FindConfig.LIKE);

            map.remove(FindConfig.ORDER_BY);

            map.remove(FindConfig.FIELD);

            map.remove(FindConfig.GROUP_BY);

            map.remove(FindConfig.MAX_);

            map.remove(FindConfig.MIN_);

            return map;

        }else {

            return new HashMap<>();

        }

}

    @Transactional

    public void update(Map<String,String> query,Map<String,String> config,Map<String,Object> body){

        StringBuffer sql = new StringBuffer("UPDATE ").append("`").append(table).append("`").append(" SET ");

        for (Map.Entry<String,Object> entry:body.entrySet()){

            Object value = entry.getValue();

            if (value instanceof String){

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append("'").append(value).append("'").append(",");

            }else {

                sql.append("`"+humpToLine(entry.getKey())+"`").append("=").append(value).append(",");

            }

        }

        sql.deleteCharAt(sql.length()-1);

        sql.append(toWhereSql(query,"0".equals(config.get(FindConfig.LIKE))));

        log.info("[{}] - 更新操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

}

    public String toWhereSql(Map<String,String> query, Boolean like) {

        if (query.size() > 0) {

            try {

                StringBuilder sql = new StringBuilder(" WHERE ");

                for (Map.Entry<String, String> entry : query.entrySet()) {

                    if (entry.getKey().contains(FindConfig.MIN_)) {

                        String min = humpToLine(entry.getKey()).replace("_min", "");

                        sql.append("`"+min+"`").append(" >= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (entry.getKey().contains(FindConfig.MAX_)) {

                        String max = humpToLine(entry.getKey()).replace("_max", "");

                        sql.append("`"+max+"`").append(" <= '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("' and ");

                        continue;

                    }

                    if (like == true) {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" LIKE '%").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("%'").append(" and ");

                    } else {

                        sql.append("`"+humpToLine(entry.getKey())+"`").append(" = '").append(URLDecoder.decode(entry.getValue(), "UTF-8")).append("'").append(" and ");

                    }

                }

                sql.delete(sql.length() - 4, sql.length());

                sql.append(" ");

                return sql.toString();

            } catch (UnsupportedEncodingException e) {

                log.info("拼接sql 失败:{}", e.getMessage());

            }

        }

        return "";

    }

4.6收费信息模块

管理员和医生点击“收费信息”这个按钮可以查看到系统中的收费信息,支持通过医生账号或者科别名称或者病人姓名或者病人性别进行查询收费信息,如果想要添加新的收费信息,点击“添加”按钮然后根据提示输入收费信息,点击“提交”后,在收费信息界面就会显示新增的收费信息,可以点击某一收费信息查看收费信息的详情,也可以直接点击“删除”进行删除收费信息。界面如下图4.6所示。

图4.6收费信息界面图

 收费信息关键代码如下所示。

 @RequestMapping(value = "/del")

    @Transactional

    public Map<String, Object> del(HttpServletRequest request) {

        service.delete(service.readQuery(request), service.readConfig(request));

        return success(1);

}

    @Transactional

    public void delete(Map<String,String> query,Map<String,String> config){

        StringBuffer sql = new StringBuffer("DELETE FROM ").append("`").append(table).append("`").append(" ");

        sql.append(toWhereSql(query, "0".equals(config.get(FindConfig.GROUP_BY))));

        log.info("[{}] - 删除操作:{}",table,sql);

        Query query1 = runCountSql(sql.toString());

        query1.executeUpdate();

    }

5系统测试

5.1系统测试的目的

系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。

5.2 系统测试用例

系统测试包括:用户登录功能测试、病人信息展示功能测试、病人信息添加、病人信息搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:

用户登录功能测试:

表5-1 用户登录功能测试表

用例名称

用户登录系统

目的

测试用户通过正确的用户名和密码可否登录功能

前提

未登录的情况下

测试流程

1) 进入登录页面

2) 输入正确的用户名和密码

预期结果

用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入

实际结果

实际结果与预期结果一致

病人信息查看功能测试:

表5-2 病人信息查看功能测试表

用例名称

病人信息查看

目的

测试病人信息查看功能

前提

用户登录

测试流程

点击病人信息列表

预期结果

可以查看到所有病人信息

实际结果

实际结果与预期结果一致

管理员添加病人信息界面测试:

表5-3 管理员添加病人信息界面测试表

用例名称

病人信息发布测试用例

目的

测试病人信息发布功能

前提

用户正常登录情况下

测试流程

1)点击病人信息管理就,然后点击添加后并填写信息。

2)点击进行提交。

预期结果

提交以后,页面首页会显示新的病人信息 

实际结果

实际结果与预期结果一致

病人信息搜索功能测试:

表5-4病人信息搜索功能测试表

用例名称

病人信息搜索测试

目的

测试病人信息搜索功能

前提

测试流程

1)在搜索框填入搜索关键字。

2)点击搜索按钮。

预期结果

页面显示包含有搜索关键字的员工

实际结果

实际结果与预期结果一致

密码修改功能测试:

表5-5 密码修改功能测试表

用例名称

密码修改测试用例

目的

测试管理员密码修改功能

前提

管理员用户正常登录情况下

测试流程

1)管理员密码修改并完成填写。

2)点击进行提交。

预期结果

使用新的密码可以登录

实际结果

实际结果与预期结果一致

5.3 系统测试结果

通过编写医院住院管理系统的测试用例,已经检测完毕用户登录模块、病人信息查看模块、病人信息添加模块、病人信息搜索模块、密码修改功能测试,通过这5大模块为医院住院管理系统的后期推广运营提供了强力的技术支撑。

结论

至此,医院住院管理系统已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、springboot技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。

当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。

参考文献

[1]沈志元,张文健.基于Java技术的医院管理系统的设计与实现[J].电脑知识与技术,2022,18(32):38-40+54.DOI:10.14004/j.cnki.ckt.2022.1994.

[2]杨一帆.服务于MySQL数据库的在线监测系统设计[J].自动化技术与应用,2022,41(10):179-182.DOI:10.20033/j.1003-7241.(2022)10-0179-04.

[3]谢霜.基于Java技术的网络管理体系结构的应用[J].网络安全技术与应用,2022(10):14-15.

[4]林佳一.混合式教学在高职MySQL数据库课程的实践研究[J].电脑知识与技术,2022,18(26):133-135.DOI:10.14004/j.cnki.ckt.2022.1737.

[5]黄人薇,朱冬玲,唐世文.课程目标达成度评价设计与实践的研究——以MySQL数据库基础与应用为例[J].电脑与电信,2022(09):34-38.DOI:10.15966/j.cnki.dnydx.2022.09.012.

[6]王曼维,杨荻,李岩,及松洁.基于SpringBoot框架的智慧医疗问诊系统设计与实现[J].中国医学装备,2022,19(03):133-136.

[7]孔凡贞,朱萍,黎玮琴,朱珏,季彩芳. 一种基于物联网的精神专科医院住院患者管理系统[P]. 江苏省:CN113990505A,2022-01-28.

[8]喻佳,吴丹新.基于SpringBoot的Web快速开发框架[J].电脑编程技巧与维护,2021(09):31-33.DOI:10.16184/j.cnki.comprg.2021.09.013.

[9]He Xinbin,Bai Yongbin,Yue Lisen,Wang Haixiao,Liu Yi. Design and Implementation of Information System Based on Java Technology Platform[J]. Journal of Physics: Conference Series,2021,2033(1).

[10]许娟. 一种预住院管理系统及方法[P]. 山西省:CN113299377A,2021-08-24.

[11]宋宪锟,荆信莲,范晓棠,贾友波,刘训召.某省三家DRG试点医院病案管理系统住院病案首页功能现状及改进建议[J].中国病案,2021,22(06):13-15.

[12]Fuyuan Cheng. Talent Recruitment Management System for Small and Micro Enterprises Based on Springboot Framework[J]. Advances in Educational Technology and Psychology,2021,5(2).

[13]Qu Xiaona. Application of Java Technology in Dynamic Web Database Technology[J]. Journal of Physics: Conference Series,2021,1744(4).

[14]李竹林,郭跃,车雯雯.基于轻量级框架SpringBoot的家教APP设计与实现[J].河南科技,2021,40(03):22-24.

[15]严杨飞.住院医师规范化培训教学管理系统的实现与应用——以杭州市第一人民医院为例[J].信息系统工程,2020(02):164-165.

[16]郝芳芳. 医院住院管理系统设计与实现[D].沈阳建筑大学,2019.DOI:10.27809/d.cnki.gsjgc.2019.000609.

[17]党莹, 住院病人信息安全的医院信息管理系统研究. 河北省,邢台医学高等专科学校,2017-03-30.

[18]张梅,史洁.医院住院部抗菌药物信息化管理系统及其实施效果分析[J].中国卫生产业,2015,12(08):70-71.DOI:10.16659/j.cnki.1672-5654.2015.08.003.

致  谢

逝者如斯夫,不舍昼夜。转眼间,大用户用户活便已经接近尾声,人面对着离别与结束,总是充满着不舍与茫然,我亦如此,仍记得那年秋天,我迫不及待的提前一天到了学校,面对学校巍峨的大门,我心里充满了期待:这里,就是我新生活的起点吗?那天,阳光明媚,学校的欢迎仪式很热烈,我面对着一个个对着我微笑的同学,仿佛一缕缕阳光透过胸口照进了我心里,同时,在那天我认识可爱的室友,我们携手共同度过了这难忘的两年。如今,我望着这篇论文的致谢,不禁又要问自己:现在,我们就要说再见了吗?

感慨莫名,不知所言。遥想当初刚来学校的时候,心里总是想着工科学校会过于板正,会缺乏一些柔情,当时心里甚至有一点点排斥,但是随着我对学校的慢慢认识与了解,我才认识到了她的美丽,她的柔情,并且慢慢的喜欢上了这个校园,但是时间太快了,快到我还没有好好体会她的美丽便要离开了,但是她带给我的回忆,永远不会离开我,也许真正离开那天我的眼里会满含泪水,我不是因为难过,我只是想将她的样子映在我的泪水里,刻在我的心里。最后,感谢我的老师们,是你们教授了我们知识与做人的道理;感谢我的室友们,是你们陪伴了我如此之久;感谢每位关心与支持我的人。

少年,追风赶月莫停留,平荒尽处是春山。

免费领取项目源码,请关注点赞+私聊

おすすめ

転載: blog.csdn.net/VXbishe/article/details/134835758