业务流程药库.docx
《业务流程药库.docx》由会员分享,可在线阅读,更多相关《业务流程药库.docx(18页珍藏版)》请在冰豆网上搜索。
![业务流程药库.docx](https://file1.bdocx.com/fileroot1/2023-3/29/a34d4286-aa35-4264-9117-04fa7e5c8cde/a34d4286-aa35-4264-9117-04fa7e5c8cde1.gif)
业务流程药库
业务流程—药库
01.1文档属性
创建说明
修改记录
修改说明
01.2单元分析
◇总述
单元名称
说明
药品走向
药品生产商药品供应商药库药局科室病人
权限控制
SELECTAPP_GRANTS.CAPABILITY
INTO:
fs_capability
FROMAPP_GRANTS,USERS
WHERE(APP_GRANTS.USER_ID=USERS.USER_ID)and
(UPPER(RTRIM(APP_GRANTS.APPLICATION))=:
ls_app_name)and
(UPPER(RTRIM(USERS.DB_USER))=:
ls_user);
-----------------------------------------------------------------------------------------------------------------------------------
药库:
1仅作出入库;2仅作药品目录;3仅作价格维护;4仅作公费用药目录维护;8屏蔽初始化设置;
9全部权限,可做初使化,最大权限;
药房:
盘点
月结
◇出入库
单元名称
说明
[出入库]-[入库处理]
入库数量允许为零,这样是为了便于初始化相应药品的库存信息(由于专门的库存初始化功能已封闭,所以只能通过入库处理或盘点来完成库存初始化);
保存前打出来的是通知单,保存后打出来的是凭证;
对于某个特定的库存管理单位,对于同厂商同药品规格同包装规格同批号的药,不同的入库单入进来,drug_stock中以下信息会被刷新为最后一次的入库相关信息:
purchase_price,discount,sub_storage,document_no;
--------------------------------------------------------------------------------------------------------------------------------
account_receivable=sum(Round(purchase_price*quantity,2))+additional_fee
--------------------------------------------------------------------------------------------------------------------------------
Ini.program.importclass=生产入库//系统默认的入库类别
Ini.program.printdocument//入库出库单据处理完毕是否打印入库出库单据(1--是)
[出入库]-[批量入库]
从DRUG_PROVIDE_NOTICE中提取出库单据号,将其对应的出库明细自动填入到入库明细中,可进行包装转换;
出库单主记录的出库日期,用于形成入库单的发票日期,同时原出库单号形成入库单的发票号(药房和药库之间的批量入库功能由于具备了单据号对应关系,所以可以计算包装转换金额差);
[出入库]-[出库处理]
保存前打出来的是通知单,保存后打出来的是凭证;
数量为零的库存记录不会删除;
--------------------------------------------------------------------------------------------------------------------------------
目前零库存记录的存在有两个意义:
1.保留上次入库信息(document_no),方便下次入库时录入
解决办法:
可从以前的入库单中获取;
2.保留入库价,便于日后计算进销差
解决办法:
出库单应关联入库单(出库时从库存中取),从而从入库单中取进价;这个目前已满足,不过由于[出入库]-[入库处理]中提到的“同药同批不同单”对库存的刷新问题,则须重新设计入出存的数据库结构关联;
由此看来,通过调整后,应该可以不必保存零库存记录;
--------------------------------------------------------------------------------------------------------------------------------
Ini.program.exportclass=发放出库//系统默认的出库类别
[出入库]-[申请出库]
根据药房的申请进行出库,如无对应规格则按现有规格进行转换后出库;
出库保存后删除对应的申请项;
(相关参数:
出库时是否要求按申请中指定的规格ini.Pharm.export_specify_pack)
---------------------------------------------------------------------------------------------------------------------------
住院药房录入申请时,选择来源为西药库,申请了A药和B药。
假设在西药库中,B药只有“毒麻类子库房”有,
A药在“片剂子库房”和“毒麻类子库房”都有。
西药库按申请出库时,
选择发往单位为“住院药房”,
选择库房为“片剂子库房”时,只能看到A药的申请,
选择库房为“毒麻类子库房”时,A、B药的申请都能看到。
所以有时说申请丢药,就是这个原因。
由于申请出库保存成功时只会删除相应药品的申请条目,
所以以下两种出库方式均可:
1.在“毒麻类子库房”一起出库A、B药,
2.先在“片剂子库房”出A药,再在“毒麻类子库房”出B药.
---------------------------------------------------------------------------------------------------------------------------
会过滤掉药库库存中无相应药品记录的申请项
[出入库]-[查阅申请]
[出入库]-[入出库记帐]
记帐前的单据可以编辑,记帐后的单据不允许编辑;
记帐后的出库单据,会发送通知单到指定单位(ini.pharm.applicantstorage);
月结应以记帐日期为准来涵括入出库记录,而不是入出库日期,其他涉及库存计算的逻辑亦应注意此点,另:
由此看来,如果用户要核对月结和盘点数据,在查询流水时就必须拥有记帐标志和记帐日期的查询条件;
----------------------------------------------------------------------------------
记帐:
药品入库或者出库时,操作员对单据进行校对确认帐务相符后,按照单据内容修改药品库存的数据的过程。
在本手册中其他地方也叫“确认记帐”。
[出入库]-[入库单据查询]
在查询明细时,打印单据时:
'进价合计:
'+String(if(
profileint("phstore.ini","program","roundfirst",0)=0,
sum(purchase_amountforall),
sum(Round(purchase_amount,2)forall)),'#,###.00').
[出入库]-[出库单据查询]
◇库存管理
[库存管理]-[根据消耗量定库存量高低限]
根据指定日期段内的出库数量和ini文件中的上下限系数(Ini.program.upperratio,Ini.program.lowratio)来确定库存定义中的上下限值:
上限数=出库数量*上限系数,下限数=出库数量*下限系数;
备注:
可扩充以下功能,可选择多条记录,然后只对选择的记录进行上下限调整;
[库存管理]-[药品月结]
(1)第一次月结
//取“与月结期初时间点在同一个月“的,并且“小于等于月结期初时间点”的盘点日期时间点里“最后的一个”
selectmax(check_year_month)into:
ldt_checkdate
fromdrug_inventory_check
whereSTORAGE=:
gs_storage_codeand
trunc(check_year_month,'mm')=trunc(:
idt_startdate,'mm')AND
check_year_month<=:
idt_startdate
usingsqlca;
ifnotisnull(ldt_checkdate)then//存在与月结期初时间点对应的盘点数据
期初数=ldt_checkdate时间点的实盘数据
期末数=期初数+入数(不含盘点入)-出数(不含盘点出),
期末金额=期初金额+入金额(不含盘点入)-出金额(不含盘点出)+调价盈亏;
else
期末数=当前库存数,期末金额=当前库存金额;
期初数=期末数-入数+出数,
期初金额=期末金额-入金额+出金额-调价盈亏;
(2)不是第一次月结
期初数=上月期末数;
期末数=期初数+入-出;
期末金额=期初金额+入金额-出金额+调价盈亏;
[库存管理]-[药品月结按剂型汇总]
[库存管理]-[药品货位维护]
([按货位盘点]选项打开后此功能有效)
对盘点表DRUG_STOCK_LOCATION进行操作,加入货位即是从库存表中加记录到此表中,从货位中移除即是删除指定记录;
保存
[库存管理]-[药品货位盘点]
([按货位盘点]选项打开后此功能有效)
自定义包装数量+拆零数量=货位数量;
[库存管理]-[药品盘点损益]
([按货位盘点]选项打开后此功能有效)
实盘填充时提取货位盘点中的货位数量为实盘数;
[库存管理]-[药品库存盘点]
以子库房为单位进行盘点;
---------------------------------------------------------
盘点一天只允许生成一次;
盘点查询时,可在不受时间部分影响的情况下查取当天盘点数据;
如果设置为允许改库存(ini.program.inventorychangestock),会产生盘点出入库记录,并更改库存;
(优化:
不更改库存,只是产生未记帐的出入库记录。
)
--------------------------------------------------------------------------------------------------------
常见的操作问题:
未填或只填部分实盘数后就最终保存了,导致药品被意外出库;
[库存管理]-[药品入出存]-[入库统计]
[库存管理]-[药品入出存]-[出库统计]
[库存管理]-[药品入出存]-[库存统计]
[库存管理]-[药品入出存]-[入出存统计]
[库存管理]-[药品入出存]-[入出存统计按剂型汇总]
[库存管理]-[药品来源]-[汇总表]
[库存管理]-[药品来源]-[供货商供货情况]
[库存管理]-[药品去向]-[汇总表]
[库存管理]-[药品去向]-[药品去向库房分布]
[库存管理]-[药品去向]-[库房药品去向统计]
[库存管理]-[药品去向]-[单品种去向统计]
[库存管理]-[工作量统计]
类似于[库存管理]-[药品入出存]-[入出存统计]
[库存管理]-[药品类别]-[入出存分类统计]
[库存管理]-[药品类别]-[入出存分类统计分析]
[库存管理]-[出入库对账]
[库存管理]-[单品种账]
[库存管理]-[按入库类型统计]
[库存管理]-[按出库类型统计]
[库存管理]-[过期药品统计]
[库存管理]-[库存限量报警]
[库存管理]-[零库存记录处理]
这是一个不安全的功能,还有用的零库存记录可能会被删除;
[库存管理]-[药品库存定义]
定义库存上下限信息;
[库存管理]-[药品供应维护]
设置库存表中的供应标志(drug_stock.SUPPLY_INDICATOR)
(不可供只是对处方和摆药而言,是对病人的,不限制内部流动,直接的出入库操作不受此限制)
◇采购计划
[采购计划]-[采购计划生成]
药品过滤条件:
货位,指定药品,低于下限;
[生成采购数]是按特定日期段(当天的23:
59:
59为截止日期,回朔参数ini.Program.DrugPlanSumDays指定的天数为开始日期)内的出库数量来填写,按要求的包装规格进行了包装转换;flag=0(仓管暂存),1(仓管保存);
[采购计划]-[采购计划调整]
可调整采购数量和采购供应商,可增加新的药品采购计划条目;flag=2(采购员暂存),3(采购员保存);
对于不想采购的药品,可修改数量为0,而不能删除;
--------------------------------------------------------------------------------------------------------------------------------------------------------------
在选择采购单据号时,系统会自动从入库信息表中获取最近一次的相应药品入库记录(不含“盘点入库”)中供应商的信息,再从表drug_supplier_catalog中获取supplier_id,将其填写到采购计划的采购供应商栏目中;
[采购计划]-[采购计划审核]
可填写审核数量和审核供应商;ifflag=8thenflag=7(采购执行审核)elseflag=4(主任暂存),5(主任审批);
审核后最终保存的数据不允许再进行修改。
[采购计划]-[采购计划执行]
ifflag<>3andflag<>5thenreturn;
Ifflag=3thenflag=8(采购员保存的执行后)elseifflag=5thenflag=9(主任审批的执行后);
[采购计划]-[采购计划查询]
Flag含义:
0-仓管暂存1-仓管保存2-采购员暂存3-采购员保存4-主任暂存5-主任保存7-采购执行审核8-采购执行9-执行;
◇药品查询
[药品查询]-[入库记录查询]
[药品查询]-[出库记录查询]
[药品查询]-[库存量查询]
只能查询某一药品的库存情况
[药品查询]-[中标药品数量统计]
(."DRUG_IMPORT_DETAIL"."ORDER_BATCH"="COMM"."TENDER_DRUG_DICT"."ORDER_BATCH")and
("DRUG_IMPORT_DETAIL"."TENDER_NO"="COMM"."TENDER_DRUG_DICT"."TENDER_NO")and
(."DRUG_IMPORT_DETAIL"."DRUG_CODE"="COMM"."DRUG_DICT"."DRUG_CODE"(+))and
(."DRUG_IMPORT_DETAIL"."DRUG_SPEC"="COMM"."DRUG_DICT"."DRUG_SPEC"(+))
[药品查询]-[药品养护台帐]
只是一个查询打印的功能
[药品查询]-[药品采购验收台帐]
基于入库信息
[药品查询]-[按毒理药品验收记录]
基于入库信息
[药品查询]-[按毒理药品出入库记录]
基于入库、出库、摆药、处方信息
[药品查询]-[进库药品排行榜]
按金额,按数量
◇药品目录
[药品目录]-[药品目录维护]
药品名称字典,药品字典,药品价格维护
------------------------------------------------------------------------------------------------
原药品编码结构:
B1
B2
B3
B4
B5
B6
B7
B8
B9
B10
药品的大类
药品的亚类
流水号
剂型
药品的商品名
新药品编码结构:
B01
B02
B03
B04
B05
B06
B07
B08
B09
B10
B11
B12
B13
B14
B15
B16
B17
B18
B19
B20
------------------------------------------------------------------------------------------------
Q:
对于同一厂家、同一名称、不同规格的药品,采用同一编码,与采用不同编码,两种都可用,系统中推荐使用哪一种?
A:
是否编为同一码的关键区分规则是:
能否混用(或混开);
以盐水和阿莫西林为例,
医嘱开4天盐水用量,每天250毫升,则如果是分开编码,药局可能发出一瓶1000毫升的,这是无法具体用药的;
医嘱开4天阿莫西林用量,这个无论规格如何,都可用药;
因此,盐水应分开编码,阿莫西林则不用
[药品目录]-[公费用药目录维护]
基于费别字典CHARGE_TYPE_DICT;
可增加药品到指定费别,也可将药品字典中指定日期段内的新增药品(基于字段ENTERED_DATETIME)查询出来以加入;
此处维护的数据在医生工作站将用到,医生在开处方或医嘱时将得到相应的提示,提示信息就来自这儿。
[药品目录]-[药品目录查询]
[药品目录]-[药品限制等级维护]
维护表drug_dict中的LIMIT_CLASS字段
[药品目录]-[药品编码停用启用]
停用药品目录必须满足下面的条件:
.药品的所有价格都已经停用。
停用的药品将不能再从输入法中调出。
停用的药设置以下标志:
drug_dict.Stop_flag=1
[药品目录]-[新药发布]
对表“新药发布”(NEW_DRUG_MESSAGE)进行维护;
[药品目录]-[更变药品名称]
更新以下相关表的信息:
药品名称字典(drug_name_dict),药品字典(drug_dict),诊疗项目名称字典(clinic_item_name_dict),
诊疗项目字典(clinic_item_dict),价表名称字典(price_item_name_dict),价表(price_list);
更新输入法词库文件;
[药品目录]-[药品信息维护]
维护表“药品信息”(DRUG_INFO);
记录药品的药理作用,适用症,用法用量,不良反应,注意事项,禁忌等信息;
[药品目录]-[药品相互作用维护]
在药品子系统中只是记录而已,可用于[合理用药]
[药品目录]-[中标药品信息维护]
入库时,如有该药品中标信息,会自动弹出,可选择中标价作为进价;
◇药品价格
[药品价格]-[药品价格维护]
在这里可维护同一药品的各个包装规格的价格,可根据“最小规格”和输入的“包装数量”自动生成“包装规格”;
药品子系统中的零售价和批发价一律以药品价表为依据,通过触发器同步更新大价表
------------------------------------------------------------------------------------------------------------------
Ini.program.retailpriceratio=1.15//价格调整时使用的零售价与批发价格之间的比例关系
[药品价格]-[药品价格查询]
[药品价格]-[药品调价情况统计]
[药品价格]-[药品进价查询]
◇调价管理
[调价管理]-[调价记录维护]
输入调价记录
通过[生成基本价格记录]的按钮,可自动生成最小包装价格维护记录
[调价管理]-[调价确认]
更新价表;
调价盈亏的计算工作由药库中附带的程序HisAServer来执行;
[调价管理]-[调价盈亏统计]
查询调价盈亏
[调价管理]-[调价记录查询]
◇药品会计
[药品会计]-[药品明细账]
填写发票号、发票日期,更新上帐标志、上帐日期(目前操作的是记帐日期)、上帐人(目前操作的是记帐人);
可以过滤出零库存入库单(剔除掉以下部分:
库存中数量大于零的记录对应的入库单号(drug_stock.document_no),即为零库存入库单号);
[药品会计]-[药品总账]
维护表DRUG_LEDGER;
[药品会计]-[上帐单据明细查询]
[药品会计]-[入库单(药库记帐凭证)]
[药品会计]-[药品调价单(药库记帐凭证)]
◇系统设置
[系统设置]-[基础数据设置]
[系统设置]-[药品入库分类字典维护]
在维护“药品出/入库分类字典”时必须有“盘点入库”、“盘点出库”,因为在以下算法逻辑中对其有写死调用:
①月结
②盘点
③采购计划调整中取某药品最后一次入库记录中经销商信息的函数uf_set_supplier;
[系统设置]-[药品出库分类字典维护]
参[系统设置]-[药品入库分类字典维护]
[系统设置]-[药品毒理分类字典]
用于贵重、毒麻等特殊类别药品的管理,可从流水和库存中单独查询出来
[系统设置]-[药品供应商目录维护]
维护“药品供应商”和“药品生产商”;
“药品供应商”有别于“药品生产商”,药品批号指的是生产商批号;
在不同的时间里,同一供应商卖给同一医院同种同批号的药品,可能会是不同的价格;
[系统设置]-[药品剂型字典维护]
[系统设置]-[药品编码描述字典维护]
[系统设置]-[药品类别字典维护]
[系统设置]-[库存单位字典维护]
一级库房,二级库房
[系统设置]-[类别库房字典维护]
1.定义子库房(一个库存管理单位允许再分为小的库房来管理,每个子库房独立使用自己的单据系列,用户根据具体情况将药库分为不同的子库房,如果药库规模较小不需要再细分的话,可以只设置唯一的子库房);
2.出入库单据号的产生规则,在出入库操作之前要定义完毕;
数据表:
DRUG_SUB_STORAGE_DICT;
[系统设置]-[摆药类别字典维护]
维护药品摆药的类别,以及该类别药品医嘱中可能的给药途径
[系统设置]-[摆药类别定义]
维护本药局下某个药品的摆药类别,定义药品摆药时的分类,如:
口服、针剂、大输液等,见药品摆药类别字典。
反映各药局根据摆药工作的需要对药品的分类。
各药局对药品的分类可以不同。
[系统设置]-[特殊管理药品目录维护]
[系统设置]-[价格类别字典]
[系统设置]-[盘点货位字典]
货位基本信息
[系统设置]-[参数设置]
[系统设置]-[数据初始化]-[价格初始化]
(完)