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