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