Пример #1
0
        public void Merge(PRPA_IN201304UV02 mergeEntity)
        {
            var olds = this.Select(mergeEntity?.controlActProcess?.subject?.registrationEvent?.replacementOf?.priorRegistration?.subject1?.priorRegisteredRole?.id?.extension);

            if (olds is null)
            {
                throw new Exception("不存在 先前的注册角色");
            }

            var news = this.Select(mergeEntity?.controlActProcess?.subject?.registrationEvent?.subject1?.patient?.id.extension);

            if (news is null || news.patient_id.IsEmpty(true))
            {
                throw new Exception("不存在 病人");
            }

            var wb = new WhereBuilder();

            wb["patient_id", true] = news.patient_id;
            DBaser.Delete("IAI_PATIENT", wb);

            DBaser.Update("IAI_PATIENT");
            DBaser["patient_id"] = news.patient_id;

            wb["patient_id", true] = olds.patient_id;
            DBaser.AcceptChanges(wb);
        }
Пример #2
0
        /// <summary>
        /// 日间手术室已签到未发药 已分配窗口
        /// </summary>
        public string InPatientGetCurrentWindow(string ptno, string orderNo)
        {
            var sql = $@"
SELECT      DISTINCT(CHUANGKOU) CODE
FROM        TWOCS_PRSLIP_CHECK
{{0}}
GROUP BY    CHUANGKOU";

            var wb = new WhereBuilder();

            wb.And("PTNO", ptno, true);
            wb.And("ORDERNO", orderNo, true);
            wb.And("FLAG =1", AnalyzableKind.KeepOriginal);
            //wb.And("GBOUT IS NULL", AnalyzableKind.KeepOriginal);
            //wb.And("STATUS =0", AnalyzableKind.KeepOriginal);
            wb.And($@"BDATE <= TO_DATE('{Environ.SlowTime.ToString("yyyy-MM-dd")}','YYYY-MM-DD') 
    AND BDATE >= TO_DATE('{Environ.SlowTime.AddDays(-2).ToString("yyyy-MM-dd")}', 'YYYY-MM-DD') ", AnalyzableKind.KeepOriginal);
            wb.And("CHECKDATE IS not NULL", AnalyzableKind.KeepOriginal);
            wb.And("CHECKTIME IS not NULL", AnalyzableKind.KeepOriginal);
            wb.And("OUTDATE IS  NULL", AnalyzableKind.KeepOriginal);
            wb.And("OUTTIME IS  NULL", AnalyzableKind.KeepOriginal);
            var windows = DBaser.Query <PharmacyWindow>(sql, wb);

            if (windows.Length > 1)
            {
                return(string.Empty);// throw new Exception("一个处方单被分配到多个窗口!");
            }
            if (windows.Length == 0)
            {
                return(string.Empty);//throw new Exception("未找到窗口记录!");
            }
            return(windows.First()?.Code);
        }
Пример #3
0
        /// <summary>
        /// 排队人最少的窗口
        /// </summary>
        /// <param name="dm">是否取毒麻药品</param>
        /// <param name="working"></param>
        public WindowJobs[] GetWorkingWindowsLineUpNums(bool dm, bool working = true)
        {
            var sql  = $@"
SELECT      AA.CHUANGKUO CODE,AA.CHUANGKUO CHUANGKOU ,BB.COUNT FROM (
SELECT      CHUANGKUO       
FROM        TWOCS_PRCAOZUO  P, (
SELECT      CODE 
FROM        TWBAS_BASECODE    
WHERE       BUSINESS='药房'      
AND         BUN='窗口'      
AND         NFLAG1='1') B     
WHERE       JOBDATE = TRUNC(SYSDATE)   
AND         GBEND='0'   
AND         P.CHUANGKUO=B.CODE  
{(dm ? "AND  CHUANGKUO IN ('14','15')" : "")}
GROUP BY    CHUANGKUO
) AA
LEFT JOIN 
(
SELECT      COUNT(*) COUNT ,CHUANGKOU 
FROM (
SELECT      * 
FROM ( 
SELECT      P.PTNO,  p.GBPRINT, p.GBOUT, 
            A.SNAME,A.SEX, A.BIRTHDATE,P.BI CODE, 
            TW_HSP_PMPA.TWBAS_GETNAME.PTBINAME(P.PTNO) CODENAME, 
            P.CHUANGKOU,
            --TW_HSP_PMPA.TWBAS_COMMON.S_CodeName('药房','窗口',P.CHUANGKOU) CHUANGKOU,  
            P.STATUS, A.JUSO, A.JUMIN  ,P.BDATE,P.TUYAKNO,TO_CHAR(P.CHECKTIME,'YYYY-MM-DD HH24:MI') CHECKTIME 
FROM        TW_HSP_OCS.TWOCS_PRSLIP    P, 
            TW_HSP_PMPA.TWBAS_PATIENT  A 
WHERE       P.PTNO     = A.PTNO 
AND ( P.GBOUT = '0' OR P.GBOUT IS NULL )
AND P.STATUS ='0'
AND P.FLAG = '2'
--AND  P.Gbio     = 'O'
AND  P.ENTDATE = TO_DATE( to_char(sysdate,'yyyy-MM-dd'),'YYYY-MM-DD')
) GROUP BY PTNO,  GBPRINT, GBOUT,TUYAKNO,CHECKTIME, 
           SNAME,SEX, BIRTHDATE, CODE,CODENAME, 
           STATUS, JUSO, JUMIN  ,BDATE,CHUANGKOU   
 -- ORDER BY TUYAKNO,GBPRINT 
)
GROUP BY CHUANGKOU
) BB 
ON AA.CHUANGKUO=BB.CHUANGKOU

";
            var jobs = DBaser.Query <WindowJobs>(sql);

            if (dm && jobs.Length == 0)
            {
                return(GetWorkingWindowsLineUpNums(false));
            }
            //throw new Exception("毒麻取药窗口10 、11 未开放!");
            else if (jobs.Length == 0)
            {
                throw new Exception("取药窗口未开放!");
            }
            return(jobs);
        }
Пример #4
0
        /// <summary>
        /// 获取窗口名称
        /// </summary>
        public string GetWindowName(string code)
        {
            if (code.IsEmpty())
            {
                throw new Exception("窗口编号为空!");
            }

            var sql = $@"
SELECT      CODENAME 
FROM        TWBAS_BASECODE    
";
            var wb  = new WhereBuilder();

            wb.And("BUSINESS", "药房");
            wb.And("BUN", "窗口");
            wb.And("GBUSE", "0");
            wb.And("NFLAG1", "1");
            wb.And("CODE", code);
            var result = DBaser.QueryValue <string>(sql, wb);

            if (result.IsEmpty())
            {
                throw new Exception($"无法获取到窗口名称{code}");
            }
            return(result);
        }
Пример #5
0
        public bool DeleteById(string id)
        {
            var wb = new WhereBuilder();

            wb.And("patient_id", id, true);

            return(DBaser.Delete("IAI_PATIENT", wb) > 0);
        }
Пример #6
0
        public IAI_PATIENT Select(string id)
        {
            var wb = new WhereBuilder();

            wb.And("patient_id", id, true);

            return(DBaser.Query <IAI_PATIENT>("Select * From IAI_PATIENT", wb).First());
        }
Пример #7
0
        /// <summary>
        /// 住院发药记录登记
        /// </summary>
        public int InsertIprslip(InPatientCheck inPatient)
        {
            if (inPatient == null)
            {
                return(0);
            }

            var sql = $@" 
INSERT  INTO    TWOCS_IPRSLIP( 
PTNO, BI, INDATE, ADMSEQNO, WARDCODE, ROOMCODE, BEDNO, DEPTCODE, DRCODE,  
ORDERGUBUN, ORDERCODE, BOHUMCODE, BDATE, SUCODE, BUN, SLIPNO, PLUSCODE, PLUSNAME,  
CONTENTS, BCONTENTS, REALQTY, DIV, NAL, QTY, JSQTY,  
GRP, POWDER, TFLAG, SELF, ER, REMARK, PRN, STATUS, BASEUNIT, LABELUNIT,  
 BASEAMT, AMT1, AMT2,  
ORDERNO, PKORDERNO, SEQNO,  
INSERTID, INSERTBUSE, INSERTDATE, INSERTTIME,   
PUMCODE,CHUANGKOU 
 ) 
SELECT  I.PTNO, I.BI, I.INDATE, I.ADMSEQNO, I.WARDCODE, M.ROOMCODE, M.BEDNO, I.DEPTCODE, I.DRCODE,  
I.ORDERGUBUN, I.ORDERCODE, C.BOHUMCODE, I.BDATE, I.SUCODE, I.BUN, I.SLIPNO, I.PLUSCODE, I.PLUSNAME,  
I.CONTENTS, I.BCONTENTS, I.REALQTY, I.DIV, I.NAL, I.QTY, I.JSQTY,  
I.GRP, I.POWDER, I.TFLAG, I.SELF, I.ER, I.REMARK, I.PRN, I.STATUS, C.BASEUNIT, C.LABELUNIT,  
T.BOAMT BASEAMT,T.BOAMT * I.JSQTY AMT1, '' AMT2,
I.ORDERNO, I.PKORDERNO, ROWNUM,  
'001757', '20010107', TRUNC(SYSDATE), TO_CHAR(SYSDATE,'HH24:MI:SS'),   
T.PUMCODE ,'MZ'
FROM    TW_HSP_OCS.TWOCS_IORDER_ZG I,
        TW_HSP_OCS.TWOCS_ORDERCODE C,
        TW_HSP_PMPA.TWBAS_TSUGA T, 
        TW_HSP_PMPA.TWBAS_NSUGA N,
        TW_HSP_PMPA.VIEW_MASTER M 
WHERE   I.PTNO        = '{inPatient.PTNO}'
AND     I.BDATE       <= TO_DATE('{Environ.SlowTime.ToString("yyyy-MM-dd")}','YYYY-MM-DD')
AND     I.BDATE       >= TO_DATE('{Environ.SlowTime.AddDays(-2).ToString("yyyy-MM-dd")}','YYYY-MM-DD')
AND     I.GBPICKUP = '1'
AND     SUBSTR(I.SENDDEPT1,1,2) = '70' 
AND     I.GBAUTO NOT IN ('T','Z') 
AND     I.STATUS = '0'
AND     I.ORDERGUBUN = 'H'
--AND     I.WARDCODE = '{inPatient.WARDCODE}' 
--AND     I.DEPTCODE = '{inPatient.DEPTCODE}' 
--AND     I.DRCODE   = '{inPatient.DRCODE}' 
AND     I.JUPSU = '0' 
AND     N.SUNEXT = I.SUCODE 
AND     (I.STOPCHKID IS NULL OR TRIM(I.STOPCHKID) = '')
AND     I.STOPCHKDATE IS NULL 
AND     I.SUNSUNAP ='3' 
AND     I.ORDERCODE = C.ORDERCODE 
AND     I.SUCODE = T.SUCODE 
AND     I.PTNO = M.PTNO ";

            var count = DBaser.Execute(sql, new WhereBuilder());

            return(count);
        }
Пример #8
0
        /// <summary>
        /// 记录发药分配窗口记录
        /// </summary>
        /// <param name="entity"></param>
        /// <returns></returns>
        public int LogPharm(TWORD_JBINFO_180104 entity)
        {
            DBaser.Insert("TWORD_JBINFO_180104");
            DBaser["JBUSE"]     = entity.JBUSE;
            DBaser["PUMCODE"]   = entity.PUMCODE;
            DBaser["PLACECODE"] = entity.PLACECODE;
            DBaser["MINQTY"]    = entity.MINQTY;


            return(DBaser.AcceptChanges());
        }
Пример #9
0
        /// <summary>
        /// 获取用户名
        /// </summary>
        public string GetPatientName(string ptno)
        {
            var sql = $@"
SELECT      SNAME 
FROM        TWBAS_PATIENT";

            var wb = new WhereBuilder();

            wb.And("ptno", ptno);

            return(DBaser.QueryValue <string>(sql, wb));
        }
Пример #10
0
        /// <summary>
        /// true 收费 false未收费
        /// </summary>
        /// <param name="presNo">门诊处方号</param>
        public bool IsOrderCharged(string presNo)
        {
            var sql = $@"
SELECT      SUNAP
FROM        TWOCS_OORDER";
            var wb  = new WhereBuilder();

            wb.And("PRESNO", presNo);
            var charged = DBaser.QueryValue <int>(sql, wb);

            return(charged == 1);
        }
Пример #11
0
        /// <summary>
        /// 获取 已经 签到病人信息
        /// </summary>
        public InPatientCheck GetInPatientCheckedInfo(string ptno)
        {
            if (ptno.IsEmpty())
            {
                throw new Exception("患者编号为空!");
            }
            var sql    = $@"
SELECT /*+ rule */ 
  DECODE(O.ORDERGUBUN,'B','B','H','H','L') ORDERGUBUN, 
  O.Ptno , M.Sname, M.Sex, M.Age, O.WardCode, M.Roomcode, M.Bedno, 
  TW_HSP_PMPA.TWBAS_GETNAME.WARDNAME(O.WARDCODE) WARDNAME , 
  TW_HSP_PMPA.TWBAS_COMMON.S_CodeName('BASIC','BI',O.BI) BI1 ,O.BI,
  TW_HSP_PMPA.TWBAS_GETNAME.DEPTNAME(O.DEPTCODE) DEPTNAME,O.DEPTCODE, 
  TW_HSP_PMPA.TWBAS_GETNAME.DRNAME(O.DRCODE) DRNAME,O.DRCODE,
  TW_HSP_PMPA.TWBAS_COMMON.S_CodeName('IPD','在院状态',M.AMSET1) AMSET1 ,
  O.JUPSU, M.INDATE 
   FROM TW_HSP_OCS.TWOCS_IORDER_ZG O,
        TW_HSP_PMPA.VIEW_MASTER M ,
        TW_HSP_PMPA.TWBAS_NSUGA N
  WHERE
  o.ptno='{ptno}'
  and O.BDATE <= TO_DATE('{Environ.SlowTime.ToString("yyyy-MM-dd")}','YYYY-MM-DD') 
    AND O.BDATE >= TO_DATE('{Environ.SlowTime.AddDays(-2).ToString("yyyy-MM-dd")}','YYYY-MM-DD') 
    AND O.GBPICKUP = '1'
    AND SUBSTR(O.SENDDEPT1,1,2) = '70' 
    AND O.GBAUTO NOT IN ('T','Z') 
    AND O.STATUS = '0'
    AND O.JUPSU = '1' 
    AND O.ORDERGUBUN = 'H' 
        AND N.SUNEXT = O.SUCODE 
    AND O.SUNSUNAP ='3' 
    AND M.AMSET4 <> '2' 
    AND M.AMSET1 = '0' 
    AND (O.STOPCHKID IS NULL OR TRIM(O.STOPCHKID) = '' ) 
    AND O.STOPCHKDATE IS NULL 
    AND O.PTNO     = M.PTNO
    AND O.BI       = M.BI
    AND O.INDATE   = M.INDATE
    AND O.ADMSEQNO = M.ADMSEQNO
  GROUP BY
  DECODE(O.ORDERGUBUN,'B','B','H','H','L'), 
  O.Ptno , M.Sname, M.Sex, M.Age, O.Bi, O.WardCode, M.Roomcode, M.Bedno, 
  O.DEPTCODE, O.DRCODE, M.AMSET1, O.JUPSU, M.INDATE
";
            var wb     = new WhereBuilder();
            var result = DBaser.Query <InPatientCheck>(sql, wb);

            if (result.Length != 1)
            {
                return(null);
            }
            return(result[0]);
        }
Пример #12
0
        /// <summary>
        /// 是否存在患者信息
        /// </summary>
        public bool ExistPatient(string ptno)
        {
            var sql = $@"
SELECT      COUNT(1) COUNT
FROM        TWBAS_PATIENT";
            var wb  = new WhereBuilder();

            wb.And("ptno", ptno);
            var COUNT = DBaser.QueryValue <int>(sql, wb);

            return(COUNT > 0);
        }
Пример #13
0
        /// <summary>
        /// 更新发药记录表预约状态
        /// </summary>
        /// <param name="ptno">患者编号</param>
        /// <param name="presno">处方号</param>
        /// <param name="tuyakNo">发药序号</param>
        /// <param name="window">窗口号</param>
        public int PrslipMedicationAppointment(string ptno, string presno, string tuyakNo, string window)
        {
            if (ptno.IsEmpty())
            {
                throw new Exception("患者编号为空");
            }
            if (presno.IsEmpty())
            {
                throw new Exception("处方号为空");
            }
            if (tuyakNo.IsEmpty())
            {
                throw new Exception("发药序号为空");
            }
            if (window.IsEmpty())
            {
                throw new Exception("窗口为空");
            }

            var wb = new WhereBuilder();
            //wb.And("PTNO", ptno, true);
            //wb.And("PRESNO", presno, true);
            //wb.And("STATUS", "0", true);
            //wb.And("CHECKDATE IS NULL",AnalyzableKind.KeepOriginal);
            //wb.And("CHECKTIME IS NULL", AnalyzableKind.KeepOriginal);

            //DBaser.Update("TWOCS_PRSLIP");
            //DBaser["CHECKDATE"] = Environ.SlowTime.Date;
            //DBaser["CHECKTIME"] = Environ.SlowTime;
            //DBaser["FLAG"] = "1";
            //DBaser["TuyakNo"] = tuyakNo;
            //DBaser["CHUANGKOU"] = window;
            //var count = DBaser.AcceptChanges(wb);
            var sql = $@"
Update      TWOCS_PRSLIP 
Set         TUYAKNO = '{tuyakNo}',
	        CHUANGKOU = '{window}',
	        CHECKDATE = to_date('{Environ.SlowTime.ToString("yyyy-MM-dd")}','yyyy-mm-dd hh24:mi:ss'),
	        FLAG = 1,
	        CHECKTIME = to_date('{Environ.SlowTime.ToString("yyyy-MM-dd HH:mm:ss")}','yyyy-mm-dd hh24:mi:ss')
Where       PTNO = '{ptno}' 
And         PRESNO = '{presno}' 
--And         STATUS = '0' 
--And         CHECKDATE IS NULL 
--And         CHECKTIME IS NULL";

            var count = DBaser.Execute(sql, wb);

            //if (count <= 0)
            //    throw new Exception($"更新医嘱状态失败", new Exception($"患者编号:{ptno} 处方号:{presno}"));
            return(count);
        }
Пример #14
0
        public override IAI_PROVIDER Select(PRPM_IN306010UV01 queryEntity)
        {
            var wb = new WhereBuilder();

            wb.And("healthcareprovider_id", queryEntity?.controlActProcess?.queryByParameterPayload?.providerID?.value?.extension, true);
            var result = DBaser.Query <IAI_PROVIDER>("Select * From IAI_PROVIDER", wb).First();

            if (result == null)
            {
                throw new Exception("未查找到结果");
            }
            return(result);
        }
Пример #15
0
        /// <summary>
        /// 获取门诊今日处方
        /// </summary>
        public Prescription[] GetOutPresNO(string ptno)
        {
            var sql     = $@"
SELECT      PRESNO 
FROM        TWOCS_OORDER 
WHERE       PTNO = '{ptno}' 
AND         BDATE    = TO_DATE('{Environ.SlowTime.ToString("yyyy-MM-dd")}','YYYY-MM-DD')                          
";
            var wb      = new WhereBuilder();
            var PresNOs = DBaser.Query <Prescription>(sql, wb);

            return(PresNOs);
        }
Пример #16
0
        /// <summary>
        /// 存在登记医嘱True;
        /// </summary>
        public bool ExixtOrder(string orderNO)
        {
            var sql = $@"
SELECT      Count(*) Count 
FROM        TWOCS_PRSLIP_CHECK    
";
            var wb  = new WhereBuilder();

            wb.And("ORDERNO", orderNO);

            var Count = DBaser.QueryValue <int>(sql, wb);

            return(Count > 0);
        }
Пример #17
0
        /// <summary>
        /// 存在登记医嘱True;
        /// </summary>
        public WindowJobs[] GetWindowJobs()
        {
            var sql        = $@"
SELECT      PUMCODE CODE, 
            COUNT(*)COUNT  
FROM        TWORD_JBINFO_180104 
WHERE       MINQTY='药房报道机日志'
and         placecode=to_char(sysdate,'yyyy-MM-dd')
GROUP BY    PUMCODE    
";
            var windowJobs = DBaser.Query <WindowJobs>(sql);

            return(windowJobs);
        }
Пример #18
0
        /// <summary>
        /// 是否存在毒麻药品
        /// </summary>
        public bool HasDMOrder(string PRESNO)
        {
            var sql = $@"
SELECT      COUNT(*) C FROM (
SELECT      (CASE WHEN P.BUN IN ('E0','E1') AND P.GBHIGH IS NULL THEN 'K'  
            WHEN P.BUN IN ('E2') AND P.GBHIGH IS NULL THEN 'Z'  
            WHEN P.BUN IN ('F0','F1') THEN 'C' 
            WHEN P.GBHIGH ='N' AND SLIPNO NOT IN ('1132','2132') THEN 'D' 
            WHEN P.GBHIGH ='N' AND SLIPNO IN ('1132','2132') THEN 'D2' ELSE  '0' END) DM FROM TWOCS_PRSLIP P
            WHERE PRESNO='{PRESNO}' )K WHERE K.DM ='D' ";
            var wb  = new WhereBuilder();
            var r   = DBaser.QueryValue <int>(sql, wb);

            return(r > 0);
        }
Пример #19
0
        /// <summary>
        /// 获取发药编号
        /// </summary>
        /// <returns></returns>
        public int GetTuyakNo()
        {
            var sql = $@"
SELECT      TW_HSP_PMPA.SEQ_TUYAK.NEXTVAL TUYAK 
FROM        DUAL";

            var wb = new WhereBuilder();
            var No = DBaser.QueryValue <int>(sql, wb);

            if (No < 1)
            {
                throw new Exception("错误编号");
            }

            return(No);
        }
Пример #20
0
        /// <summary>
        /// 获取患者的  处方、预约 处方单状态单
        /// </summary>
        public Prescription[] GetInPresNO(string ptno)
        {
            var sql = $@"
SELECT      DISTINCT(PRESNO) PRESNO,BDATE,PTNO 
FROM        TWOCS_IORDER 
{{0}}
GROUP BY    PRESNO,BDATE,PTNO";
            var wb  = new WhereBuilder();

            wb.And("PTNO", ptno, true);
            wb.And("JUPSU in ('0','1')", AnalyzableKind.KeepOriginal);
            wb.And("BDATE=  TRUNC(SYSDATE)", AnalyzableKind.KeepOriginal);
            var PresNOs = DBaser.Query <Prescription>(sql, wb);

            return(PresNOs);
        }
Пример #21
0
        /// <summary>
        /// 获取日间手术病人医嘱
        /// </summary>
        public TWOCS_PRSLIP_CHECK[] GetInpatientOrder(InPatientCheck inPatient)
        {
            if (inPatient == null)
            {
                return new TWOCS_PRSLIP_CHECK[] { }
            }
            ;

            var sql    = $@"
SELECT  I.SENDDEPT1,I.PTNO, I.BI, I.INDATE, I.ADMSEQNO, I.WARDCODE, M.ROOMCODE, M.BEDNO, I.DEPTCODE, I.DRCODE,  
I.ORDERGUBUN, I.ORDERCODE, C.BOHUMCODE, I.BDATE, I.SUCODE, I.BUN, I.SLIPNO, I.PLUSCODE DOSCODE, I.PLUSNAME,  
I.CONTENTS, I.BCONTENTS, I.REALQTY, I.DIV, I.NAL, I.QTY, I.JSQTY,  
I.GRP, I.POWDER, I.TFLAG, I.SELF, I.ER, I.REMARK, I.PRN, I.STATUS, C.BASEUNIT, C.LABELUNIT,  
T.BOAMT BASEAMT,T.BOAMT * I.JSQTY AMT1, '' AMT2,
I.ORDERNO, I.PKORDERNO, ROWNUM,  
'001757', '20010107', TRUNC(SYSDATE), TO_CHAR(SYSDATE,'HH24:MI:SS'),   
T.PUMCODE ,'MZ'
FROM    TW_HSP_OCS.TWOCS_IORDER_ZG I,
        TW_HSP_OCS.TWOCS_ORDERCODE C,
        TW_HSP_PMPA.TWBAS_TSUGA T, 
        TW_HSP_PMPA.TWBAS_NSUGA N,
        TW_HSP_PMPA.VIEW_MASTER M 
WHERE   I.PTNO        = '{inPatient.PTNO}'
AND     I.BDATE       <= TO_DATE('{Environ.SlowTime.ToString("yyyy-MM-dd")}','YYYY-MM-DD')
AND     I.BDATE       >= TO_DATE('{Environ.SlowTime.AddDays(-2).ToString("yyyy-MM-dd")}','YYYY-MM-DD')
AND     I.GBPICKUP = '1'
AND     SUBSTR(I.SENDDEPT1,1,1) = '7' 
AND     I.GBAUTO NOT IN ('T','Z') 
AND     I.STATUS = '0'
AND     I.ORDERGUBUN = 'H'
AND     I.WARDCODE = '{inPatient.WARDCODE}' 
AND     I.DEPTCODE = '{inPatient.DEPTCODE}' 
AND     I.DRCODE   = '{inPatient.DRCODE}' 
AND     I.JUPSU = '0' 
AND     N.SUNEXT = I.SUCODE 
AND     (I.STOPCHKID IS NULL OR TRIM(I.STOPCHKID) = '')
AND     I.STOPCHKDATE IS NULL 
AND     I.SUNSUNAP ='3' 
AND     I.ORDERCODE = C.ORDERCODE 
AND     I.SUCODE = T.SUCODE 
AND     I.PTNO = M.PTNO
";
            var wb     = new WhereBuilder();
            var result = DBaser.Query <TWOCS_PRSLIP_CHECK>(sql, wb);

            return(result);
        }
        public override IAI_MEDICAL_REGISTRATION Insert(PRPA_IN402001UV02 addEntity)
        {
            var data = new IAI_MEDICAL_REGISTRATION()
            {
                encounterevent_id = addEntity.controlActProcess?.subject?.encounterEvent?.id?.extension,
                type_code         = addEntity.controlActProcess?.subject?.encounterEvent?.code?.code,
                effective_time    = addEntity.controlActProcess?.subject?.encounterEvent?.effectiveTime?.value,
                original_text     = addEntity.controlActProcess?.subject?.encounterEvent?.reasonCode?.originalText,
                patient_id        = addEntity.controlActProcess?.subject?.encounterEvent?.subject?.patient?.id.code,
                patient_name      = addEntity.controlActProcess?.subject?.encounterEvent?.subject?.patient?.patientPerson?.name.Value,
                consultant_id     = addEntity.controlActProcess?.subject?.encounterEvent?.admitter?.assignedPerson?.id?.extension,
                consultant_name   = addEntity.controlActProcess?.subject?.encounterEvent?.admitter?.assignedPerson?.assignedPerson?.name,
                location_id       = addEntity.controlActProcess?.subject?.encounterEvent?.location?.serviceDeliveryLocation?.location?.id?.extension,
                location_name     = addEntity.controlActProcess?.subject?.encounterEvent?.location?.serviceDeliveryLocation?.location?.name,
                organization_id   = addEntity.controlActProcess?.subject?.encounterEvent?.location?.serviceDeliveryLocation?.serviceProviderOrganization?.id?.extension,
                medical_type      = EncounterEventTypeCode.ADMITTER.Value(),
            };

            var wb = new WhereBuilder();

            wb.And("encounterevent_id", data.encounterevent_id, true);
            wb.And("medical_type", data.medical_type);

            if (DBaser.QueryValue <int>("select count(*) from IAI_MEDICAL_REGISTRATION", wb) > 0)
            {
                throw new Exception($@"主键冲突{data.consultant_id}已存在。");
            }

            DBaser.Insert("IAI_MEDICAL_REGISTRATION");
            DBaser["encounterevent_id"] = data.encounterevent_id;
            DBaser["type_code"]         = data.type_code;
            DBaser["effective_time"]    = data.effective_time;
            DBaser["original_text"]     = data.original_text;
            DBaser["patient_id"]        = data.patient_id;
            DBaser["patient_name"]      = data.patient_name;
            DBaser["consultant_id"]     = data.consultant_id;
            DBaser["consultant_name"]   = data.consultant_name;
            DBaser["location_id"]       = data.location_id;
            DBaser["location_name"]     = data.location_name;
            DBaser["organization_id"]   = data.organization_id;
            DBaser["medical_type"]      = data.medical_type;



            DBaser.AcceptChanges();
            return(data);
        }
        public override IAI_MEDICAL_REGISTRATION Select(PRPA_IN900300UV02 queryEntity)
        {
            var result = DBaser.Query <IAI_MEDICAL_REGISTRATION>(
                "Select * From IAI_MEDICAL_REGISTRATION",
                new WhereBuilder("medical_type", EncounterEventTypeCode.ADMITTER).And("encounterevent_id", queryEntity
                                                                                      ?.controlActProcess
                                                                                      ?.queryByParameterPayload
                                                                                      ?.careEventID
                                                                                      ?.value
                                                                                      ?.extension)).First();

            if (result == null)
            {
                throw new Exception("无记录");
            }
            return(result);
        }
Пример #24
0
        /// <summary>
        /// 获取全部窗口
        /// </summary>
        public PharmacyWindow[] GetAllWindow()
        {
            var sql = $@"
SELECT      * 
FROM        TW_HSP_PMPA.TWBAS_BASECODE 
{{0}}
Order       By Code ";
            var wb  = new WhereBuilder();

            wb.And("BUSINESS", "药房");
            wb.And("BUN", "窗口");
            wb.And("GBUSE", "0");
            wb.And("NFLAG1", "1");
            var result = DBaser.Query <PharmacyWindow>(sql, wb);

            return(result);
        }
Пример #25
0
        public override IAI_ORGANIZATION Select(PRPM_IN406010UV01 queryEntity)
        {
            var result = DBaser.Query <IAI_ORGANIZATION>(
                "Select * From IAI_ORGANIZATION",
                new WhereBuilder("organization_id",
                                 queryEntity
                                 ?.controlActProcess
                                 ?.queryByParameterPayload
                                 ?.organizationID
                                 ?.value
                                 ?.extension)).First();

            if (result == null)
            {
                throw new Exception("无记录");
            }
            return(result);
        }
Пример #26
0
        /// <summary>
        /// 已签到未取药 true
        /// </summary>
        public bool HadCheckedInWindow(string ptno, string presno)
        {
            var sql = $@"
SELECT      COUNT(*) COUNT 
FROM        TWOCS_PRSLIP";
            var wb  = new WhereBuilder();

            wb.And("PTNO", ptno, true);
            wb.And("PRESNO", presno, true);
            wb.And("BDATE=  TRUNC(SYSDATE)", AnalyzableKind.KeepOriginal);
            wb.And("CHECKDATE IS NOT NULL", AnalyzableKind.KeepOriginal);
            wb.And("CHECKTIME IS NOT NULL", AnalyzableKind.KeepOriginal);

            wb.And("(GBOUT IS NULL OR GBOUT =0) ", AnalyzableKind.KeepOriginal);
            var count = DBaser.QueryValue <string>(sql, wb);

            return(int.TryParse(count, out int result) && result > 0);
        }
Пример #27
0
        /// <summary>
        /// 已签到未发药 已分配窗口
        /// </summary>
        public PharmacyWindow[] GetCurrentWindow(string ptno, string presno)
        {
            var sql = $@"
SELECT      DISTINCT(CHUANGKOU) CODE
FROM        TWOCS_PRSLIP
{{0}}
GROUP BY    CHUANGKOU";
            var wb  = new WhereBuilder();

            wb.And("PTNO", ptno, true);
            wb.And("PRESNO", presno, true);
            wb.And("BDATE=  TRUNC(SYSDATE)", AnalyzableKind.KeepOriginal);
            wb.And("CHECKDATE IS NOT NULL", AnalyzableKind.KeepOriginal);
            wb.And("CHECKTIME IS NOT NULL", AnalyzableKind.KeepOriginal);
            wb.And("(GBOUT IS NULL OR GBOUT =0) ", AnalyzableKind.KeepOriginal);

            return(DBaser.Query <PharmacyWindow>(sql, wb));
        }
        public override IAI_MEDICAL_REGISTRATION Insert(PRPA_IN402003UV02 item)
        {
            var data = new IAI_MEDICAL_REGISTRATION()
            {
                encounterevent_id = item.controlActProcess?.subject?.encounterEvent?.id?.extension,
                type_code         = item.controlActProcess?.subject?.encounterEvent?.code?.code,
                effective_time    = item.controlActProcess?.subject?.encounterEvent?.effectiveTime?.value,
                original_text     = item.controlActProcess?.subject?.encounterEvent?.dischargeDispositionCode.code,
                patient_id        = item.controlActProcess?.subject?.encounterEvent?.subject?.patient?.id.code,
                patient_name      = item.controlActProcess?.subject?.encounterEvent?.subject?.patient?.patientPerson?.name.Value,
                consultant_id     = item.controlActProcess?.subject?.encounterEvent?.discharger?.assignedPerson?.id?.extension,
                consultant_name   = item.controlActProcess?.subject?.encounterEvent?.discharger?.assignedPerson?.assignedPerson?.name?.Value,
                medical_type      = (int)EncounterEventTypeCode.DISCHARGE,
            };

            var wb = new WhereBuilder();

            wb.And("encounterevent_id", data.encounterevent_id);
            wb.And("medical_type", data.medical_type);

            var sql = $@"
Select      *
From        IAI_MEDICAL_REGISTRATION
";

            if (DBaser.QueryValue <int>("Select count(*) From IAI_MEDICAL_REGISTRATION", wb) > 0)
            {
                throw new Exception($@"主键冲突{data.encounterevent_id}已存在。");
            }

            DBaser.Insert("IAI_MEDICAL_REGISTRATION");
            DBaser["encounterevent_id"] = data.encounterevent_id;
            DBaser["type_code"]         = data.type_code;
            DBaser["effective_time"]    = data.effective_time;
            DBaser["original_text"]     = data.original_text;
            DBaser["patient_id"]        = data.patient_id;
            DBaser["patient_name"]      = data.patient_name;
            DBaser["consultant_id"]     = data.consultant_id;
            DBaser["consultant_name"]   = data.consultant_name;
            DBaser["medical_type"]      = data.medical_type;
            DBaser.AcceptChanges();

            return(data);
        }
Пример #29
0
        public override IAI_DICT Select(CodeSystem item)
        {
            var    key     = $"{item.codeSystemName}_{item.code}";
            string myCache = cache[key] as string;

            if (myCache == null)
            {
                CacheItemPolicy policy = new CacheItemPolicy();
                policy.AbsoluteExpiration = DateTime.Now.AddSeconds(60 * 10);

                var wb = new WhereBuilder();
                wb.And("CODE_SYSTEM_NAME", item?.codeSystemName, true);
                wb.And("CODE", item?.code);
                var sql = $@" Select      *
                        From        IAI_DICT ";

                var result = DBaser.Query <IAI_DICT>(sql, wb).First();
                if (result == null)
                {
                    throw new Exception("无记录");
                }
                //return result;
                myCache = result.DISPLAY_NAME;
                cache.Set(key, myCache, policy);
            }
            return(new IAI_DICT
            {
                DISPLAY_NAME = cache.Get(key) as string,
            });


            //var wb = new WhereBuilder();
            //wb.And("CODE_SYSTEM_NAME", item?.codeSystemName, true);
            //wb.And("CODE", item?.code);
            //var sql = $@" Select      *
            //            From        IAI_DICT ";

            //var result = DBaser.Query<IAI_DICT>(sql, wb).First();
            //if (result == null)
            //{
            //    throw new Exception("无记录");
            //}
            //return result;
        }
Пример #30
0
        public override IAI_PATIENT Update(IAI_PATIENT data)
        {
            var wb = new WhereBuilder();

            wb.And("patient_id", data?.patient_id, true);

            DBaser.Update("IAI_PATIENT");
            DBaser["patient_id"]                   = data.patient_id;
            DBaser["id_number"]                    = data.id_number;
            DBaser["name"]                         = data.name;
            DBaser["telecom"]                      = data.telecom;
            DBaser["gender_code"]                  = data.gender_code;
            DBaser["birth_time"]                   = data.birth_time;
            DBaser["street_address_line"]          = data.street_address_line;
            DBaser["state"]                        = data.state;
            DBaser["city"]                         = data.city;
            DBaser["county"]                       = data.county;
            DBaser["street_name_base"]             = data.street_name_base;
            DBaser["street_name"]                  = data.street_name;
            DBaser["house_number"]                 = data.house_number;
            DBaser["postal_code"]                  = data.postal_code;
            DBaser["marital_status_code"]          = data.marital_status_code;
            DBaser["ethnic_group_code"]            = data.ethnic_group_code;
            DBaser["occupation_code"]              = data.occupation_code;
            DBaser["employerorganization_name"]    = data.employerorganization_name;
            DBaser["employerorganization_telecom"] = data.employerorganization_telecom;
            DBaser["asotherids_id1"]               = data.asotherids_id1;
            DBaser["scopingorganization_id1"]      = data.scopingorganization_id1;
            DBaser["asotherids_id2"]               = data.asotherids_id2;
            DBaser["scopingorganization_id2"]      = data.scopingorganization_id2;
            DBaser["personalrelationship_code"]    = data.personalrelationship_code;
            DBaser["personalrelationship_telecom"] = data.personalrelationship_telecom;
            DBaser["relationshipholder1_name"]     = data.relationshipholder1_name;
            DBaser["providerorganization_id"]      = data.providerorganization_id;
            DBaser["providerorganization_name"]    = data.providerorganization_name;
            DBaser["beneficiary_code"]             = data.beneficiary_code;
            if (DBaser.AcceptChanges(wb) <= 0)
            {
                throw new Exception("修改失敗!");
            }

            return(data.Copy());
        }