住院发药类型配置说明

    1. 住院西药医嘱在开具时,根据医嘱的周期类型,以及一系列药品的数据(新会版本还包括用药途径的类型),在Config. SendMedicineConfiguration这个表里面,查找对应的发药类型。如果在这个表中找不到匹配记录,发药类型为空,数据库中,医嘱的发药类型id=-1,如果住院长期医嘱,在开医嘱的时候,取不到发药类型,之后配置数据是否补回,请求发药都没有发药类型。需要直接更新数据库。另外,发药类型为空的发药单,如果发生退药,无法在退药界面显示退药请求,要先更正发药类型
    2. Config. SendMedicineConfiguration表

    住院发药类型配置说明 - 图1

    1. 如果发现有医嘱,或者发药单,没有发药类型,或发药类型错误,可以用下面的sql查询医嘱用于匹配发药类型的条件,再用对应的条件,查找Config. SendMedicineConfiguration,看看是否有对应的条件或发药类型维护是否正确。

    SELECT AA.*
    ,pe.DISPLAYNAME as 医嘱周期
    ,co.DISPLAYNAME as 贵重标志
    ,sub.DISPLAYNAME as 药品分类
    ,super.DISPLAYNAME as 药品监管类型
    ,fo.DISPLAYNAME as 剂型
    from
    (SELECT ODR.PERIODKIND,A.SUBSTANCECLASSCODEID,M.SUPERVISEKINDCODEID,M.FORMKINDCODEID,M.COSTLYCODEID
    FROM PORX.APPLICATIONMEDICINE A
    JOIN MMAT.MEDICINE M ON A.SUBSTANCEID=M.MEDICINEID
    JOIN MMAT.SUBSTANCE B ON A.SUBSTANCEID=B.SUBSTANCEID
    JOIN POOR.ORDERREQUEST ODR ON A.ORDERREQUESTID=ODR.ORDERREQUESTID
    WHERE
    A.COMBINEDMEDICATIONREQUESTID=67546 —发药单号
    —and a.encounterid=123 —患者id
    —and a.sendmedicinetypeid= -1 —查找无发药类型的请求发药记录
    — 其他条件
    GROUP BY ODR.PERIODKIND,A.SUBSTANCECLASSCODEID,M.SUPERVISEKINDCODEID,M.FORMKINDCODEID,M.COSTLYCODEID) AA
    join concept.codedtermvalue pe on aa.PERIODKIND=pe.codeid and pe.codedtermid=11036 —医嘱周期
    join concept.codedtermvalue co on aa.COSTLYCODEID=co.codeid and co.codedtermid=11038 —贵重标志
    join concept.codedtermvalue sub on aa.SUBSTANCECLASSCODEID=sub.codeid and sub.codedtermid=10849 —药品分类
    join concept.codedtermvalue super on aa.SUPERVISEKINDCODEID=super.codeid and super.codedtermid=11037 —药品监管类型
    JOIN CONCEPT.CODEDTERMVALUE FO ON AA.FORMKINDCODEID=FO.CODEID AND FO.CODEDTERMID=11039 —剂型
    ;

    住院发药类型配置说明 - 图2

    1. 各个条件介绍:
      1. 周期

    住院发药类型配置说明 - 图3

    1. 药品类型

    住院发药类型配置说明 - 图4

    1. 监管类型

    住院发药类型配置说明 - 图5

    1. 剂型类型

    住院发药类型配置说明 - 图6
    剂型并不是用具体的剂型id匹配,是剂型里面的一个“剂型分类”的id,见下图
    住院发药类型配置说明 - 图7

    1. 贵重标志

    住院发药类型配置说明 - 图8

    1. 配置表里面,记录数量,由于配置表,是按照上面几个条件的组合进行配置,所以一个完整的配置表,应该按所有条件可选数量相乘,以上面为例,需要有:2x2x14x5x3=840条记录,新会增加一个用药途径执行类型的条件,有5个选项,则需要有:2x2x14x5x3x5=4200条配置记录,才能完全覆盖所有发药类型,这些发药类型匹配维护,没有界面可以维护,要人手insert进去
    2. 对于发现缺少发药类型的或发药类型错误的发药单的处理。
      1. 根据上面提供的查询脚本,查出发药单对应的药品,用于匹配发药类型的几个条件。
      2. 按这几个条件,查询配置表,看看是否有对应条件的发药类型维护,或者类型是否正确。
      3. 如果b步骤,发药没有维护,或发药类型错误。咨询医院或相关有经验人员,相关条件归属哪个发药类型,补回或更新配置。补回配置的脚本如下,各个条件的具体值,要根据实际填写

    INSERT
    INTO CONFIG.SENDMEDICINECONFIGURATION
    (
    SENDMEDICINETYPEID, PERIODKIND, MEDICINEKINDCODEID, MEDICINESUPERVISEKINDCODEID, MEDICINECOSTLYCODEID, MEDICINEFORMCODEID, ROUTEEXECUTEKINDCODEID, ISDELETED, ROWVERSION )
    VALUES
    ( 4, 1, 1, 0, 1, 3, 0, 0, SYSDATE );

    1. 如果相关维护没有错误,则要检查药品维护里面,与发药类型有关的几个维护是否正确,更正药品的维护
    2. 通过脚本,更新相关发药单与明细的发药类型,更新脚本如下:

    UPDATE PORX.COMBINEDMEDICATIONREQUEST SET SENDMEDICINETYPEID=4 WHERE COMBINEDMEDICATIONREQUESTID=67546;
    UPDATE PORX.APPLICATIONMEDICINE SET SENDMEDICINETYPEID=4 WHERE COMBINEDMEDICATIONREQUESTID=67546;
    UPDATE POOR.SUBADMREQUEST SET SENDMEDICINETYPEID=4 WHERE ORDERREQUESTID IN (SELECT ORDERREQUESTID FROM PORX.APPLICATIONMEDICINE WHERE COMBINEDMEDICATIONREQUESTID=67546);