藥店系統 AgileEAS.NET平臺開發案例分析
首先我們來看看一般的軟件開發流程吧:
這是傳統的軟件開發流程,無非目前的不管是迭代開發、增量開發、敏捷開發無非都是基于傳統開發模式的一些變種。迭代開發是基于傳統的軟件開發流程之上的一種基于原型的迭代開發,開發完成后進行集成測試。增量開發是將每個模塊都走從設計-編碼-測試的流程,最后完成集成測試。敏捷開發是迭代開發+增量開發的合成體。
關于不同的開發模式及開發流程方面的內容,我們后面會詳細的闡述,單獨講述AgileEAS.NET敏捷開發平臺的軟件工程思想的真實體現。不管我們開發什么樣的軟件或者多小的軟件,我們必須先了解需求,才能繼續進行后續的需求分析及詳細設計等后續的流程,所以我們知道了需求的重要性,那么我們本篇就將藥店系統的需求來分析和業務梳理下,整理成需求文檔。
藥店業務流程
下面我們就來分析下藥店的業務流程,當然如果說你對藥店的領域非常的熟悉,你也可以使用DDD來進行開發和設計。我還是按照我對藥店的理解來簡單的分析下,可能還有部分的業務細節我這里沒有體現,還請大家繼續補充,當然如果你對藥店業務特別的熟悉,那么也歡迎大家多多交流。
那么我們就來看看藥店具有的業務流程的主線。
一、藥品入庫:
二、藥品出庫:
三、藥店退藥-供應商:
四、顧客退藥:
五、藥品報損:
六、藥品調價:
七、藥店盤點:
盤點對應藥店的重要性想必是非常重要的,我想上軟件系統的主要目的之一就是為了查看藥店的所有的資金的流向,那么通過盤點來完成,盤點主要是盤點藥品的主要流
向和消耗的實際對比等等,都能體現。
上面我們基本上分析了藥店系統中主體的業務流程,當然我們這里沒有包含一些模塊:藥品采購計劃等,為了簡單期間,我們把這些步驟給省略了,下面來看看我們的需求分析過程吧。
#p#
需求分析
上面我們分析了藥店系統的業務流程,并且給出圖形的描述,相信大家對藥店系統的業務流程有了簡單的認識,下面我們來分析藥店系統的詳細功能需求吧。
1、基礎數據維護:
首先、必須有藥品字典:
該功能是藥店管理系統中的基礎數據信息,如果沒有藥品字典的維護,那么后續的對藥店的進銷存就無從談起,藥品字典是在藥品入庫管理模塊中使用的,將采購的藥品,通過軟件中的藥品入庫功能,選擇藥品字典中的藥品,填寫相應的庫存信息,即可完成入庫的操作。所以該模塊是后續模塊的一個業務流的輸入條件。
其次、必須有供應商:
入庫時必須選擇供應商,否則在后期的供應商退藥時,無法確認退藥給哪個供應商。
再次、藥品類型:
沒有藥品類型,那么藥品的類型無法維護和管理,最后在做收支報表等都無法談起。
2、藥品入庫:
維護基本的藥品入庫信息,具體的信息內容,請參考數據庫詳細設計。
需記錄供應商。
購買日期,購買數量等購買信息。
能方便的維護藥品入庫的信息,并且可以查看,統計等。
3、藥品庫存管理功能:
藥品庫存功能,用于維護藥店中的藥品庫存的一個管理,是該系統的核心,由于藥店中的所有數據信息都以藥品為流轉,所以藥品的庫存管理尤為重要,管理好了藥品的出入庫,報損等功能,可以算是一個微小型規模的簡易ERP,當然功能沒有那么全面和強大。
下面,我們來看下藥品庫存的具體功能:
庫存的盤點與查看功能。
庫存編輯及修改,刪除等相應的操作記錄,必須可以查看相應的維護信息。
具體的模塊交互需求:
藥品庫存是這些模塊信息存儲及信息流的核心。
4、藥品出庫(顧客發藥)
藥品出庫的理解是,將藥品從藥店庫存中出庫或者是顧客零售的功能,主要負責,從藥店庫存中選擇要出庫或零售的藥品,輸入相應的數量,直接有結算的功能,就完成 了,藥品的出庫或零售。
該模塊應該具備的功能:
從庫存中選擇庫存>0的藥品。
自動減去庫存,記錄出庫的藥品記錄信息。
記錄操作員及出庫操作信息。
查詢出庫記錄并可打印。
該模塊與其他模塊之間的關聯:
具體的信息,請參考“數據庫詳細設計”。
5、顧客退藥
顧客退藥與藥品出庫是二個反向的操作,藥品退庫,是將藥品走一個退庫流程,記錄退庫的原因及退庫的操作信息,并且自動將藥店庫存進行更新,該退庫流程,可審核也可以不考慮這塊的內容,一般來說,HIS系統中,都會有審核,藥店一般就不用設計這塊的內容了,所以這里記錄藥品退庫的原因,數量,日期,操作員等等相關信息,方便 統計和查詢。并且在統計分析模塊,提供相應的報表。
該模塊與其他模塊之間的關系:
上面給出了藥品退庫模塊與庫存及統計分析之間的關系。
6、藥品調價
該模塊主要是對現有庫存中的部分藥品的售價進行調整,那么我們必須記錄調價前的價格及調價后的價格,并且要記錄調價后的數量,并且判定,如果調價后的藥品在藥店庫存表中存在,則直接累加庫存,并且將調價前的藥品的庫存數量進行拆檢,否則會造成不一致的情況。
1、選擇要條件的藥品,必須支持查詢和檢索功能。
2、將選擇條件的商品選擇后,可以輸入調價的價格和數量,當然簡單的做法就是全部都條件,目前藥店的系統是這樣做的,相對來說這樣的處理方式簡單,但是不靈活。
3、要保持數據的一致性,調價信息必須記錄:舊售價,新售價,調價數量,調價日期,調價原因等。
4、程序必須能夠滿足調價后扣除原始價格的庫存,并且在庫存表中如果存在新價格的藥品,則累加出新調價后的藥品數量,否則插入一條新的藥品庫存記錄。
7、藥品報損
藥品報損一般是因為藥品失效或者打開后無法再次使用等等,或者其他的原因等等,我們要對庫存中的藥品進行報損的操作,那么首先我們可以分析下其應該具備的功能。
1、可查詢,不同類型的藥品,按關鍵字查詢等。
2、從選擇的數據源中輸入要報損的數量及報損的原因等。
3、報損信息必須記錄下:除了包含基本的藥品信息外,必須還記錄報損原因,報損數量,報損日期等。
4、在報損操作時,同步更新庫存,將報損的數量從現有的庫存量的基礎上去掉。
5、具有打印的功能。
8、藥品盤點
做過醫療相關行業的朋友,應該都比較了解盤點的作用,盤點主要是為了記錄管理系統中的賬目庫存與實際藥品的物理庫存之間的一個對比和同步的過程,如果發現系統中的賬目庫存叫物理庫存大,我們需要在整理完相關的原因之后,進盤盈或者盤虧,然后在這個盤存的間隔的時間段內記錄資金的流入與流出是否平衡等等,都是通過盤點能夠體現出來的東西。所以,一般來說盤點功能是重中之重。
1、必須提供藥品庫存的盤存功能。
2、基于盤存的庫存副本基礎之上進行具體的物理庫存的更新。
3、具有賬目庫存與實際物理庫存之間的同步功能。
4、具有打印功能。
5、統計分析報表功能。
【編輯推薦】