2015年11月19日 星期四
NQY_UPDATE_PAP
CREATE OR REPLACE PROCEDURE IDEMPIERE.NQY_UPDATE_PAP(P_REGNO VARCHAR2,P_SDATE_B VARCHAR2, P_SDATE_E VARCHAR2)
AS
-- 乳攝檢查檔 更新 鑑驗檔 MAMO 值
-- EXECUTE IDEMPIERE.NQY_UPDATE_PAP ('00073449','1040826','1040826');
-- COMMIT
-- select * from all_tab_cols where column_name='HOSRT' and length(table_name)=7
v_key varchar2(80);
v_result varchar2(20);
v_date varchar2(20);
BEGIN
dbms_output.put_line('--------------------');
--v_search_string := P_REGNO;
-- INNER JOIN FOB003K c ON b.ORDER_NO=a.ORDER_NO -- b.CASENO
-- DELETE IDEMPIERE.NQY_PAP COMMIT
-- SELECT * FROM IDEMPIERE.NQY_PAP
FOR a1 IN (
SELECT
x.序號 ,-- VARCHAR2(40),
x.細胞病理編號 ,-- VARCHAR2(40),
x.個案姓名 ,-- VARCHAR2(40),
x.身份證字號 ,-- VARCHAR2(40),
x.出生日期 ,-- VARCHAR2(40),
SUBSTR(x.採檢日期,1,3)||SUBSTR(x.採檢日期,5,2)||SUBSTR(x.採檢日期,8,2) AS 採檢日期,-- VARCHAR2(40),
x.收到日期 ,-- VARCHAR2(40),
x.確診日期 ,-- VARCHAR2(40),
x.收到天數 ,-- VARCHAR2(40),
x.檢驗天數 ,-- VARCHAR2(40),
x.抹片品質 ,-- VARCHAR2(40),
x.尚可或難以判讀原因 ,--VARCHAR2(40),
x.可能感染 ,--VARCHAR2(40),
x.診斷結果 ,--VARCHAR2(40),
x.支付方式 ,--VARCHAR2(40)
y.REGNO
FROM IDEMPIERE.NQY_PAP x --M200161967
INNER JOIN IPD.FTH008K y ON TRIM(x.身份證字號)=y.IDNO
)LOOP
dbms_output.put_line(a1.REGNO||' : '||a1.採檢日期||'xxx');
FOR a2 IN (
SELECT DISTINCT b.ORDER_NO,
b.CASENO, C.REGNO, b.SDATE, B.OBDATE, b.CODE --b.CODE_TYPE,
FROM IPD.FOB003K b
INNER JOIN IPD.FOB002K c ON C.CASENO=B.CASENO
WHERE 1=1
AND c.REGNO = a1.REGNO
AND b.OBDATE= a1.採檢日期
AND (SUBSTR(b.CODE,1,4)='PAPS' OR b.CODE='031' OR b.CODE='31')
AND b.CANCEL_MARK IS NULL
-- AND EXISTS(SELECT 1
-- FROM IPD.FEX002K d
-- WHERE d.CLASS = 'PAP'
-- AND(d.RESULT IS NULL OR d.RESULT='') --- 還有空白的才做
-- AND d.PKEY_CASENO=b.CASENO )
ORDER BY c.REGNO
)LOOP
dbms_output.put_line(a1.REGNO||' : '||a1.採檢日期||' : '||a2.ORDER_NO||' : '||a2.CASENO||' : '||a2.REGNO||' : '||a2.CODE);
v_result := '';
IF INSTR(a1.診斷結果,'Category 0:') > 0 THEN
v_result := '0';
ELSIF INSTR(a1.診斷結果,'Category 1:') > 0 THEN
v_result := '1';
ELSIF INSTR(a1.診斷結果,'Category 2:') > 0 THEN
v_result := '2';
ELSIF INSTR(a1.診斷結果,'Category 3:') > 0 THEN
v_result := '3';
ELSIF INSTR(a1.診斷結果,'Category 4:') > 0 THEN
v_result := '4';
ELSIF INSTR(a1.診斷結果,'Category 5:') > 0 THEN
v_result := '5';
END IF;
-- COMMIT
v_date := LTRIM(TO_CHAR(TO_NUMBER(TO_CHAR( ADD_MONTHS(SYSDATE,-120) ,'YYYYMMDD'),'99999999') -19110000,'9999999'));
IF LENGTH(v_date) = 5 THEN
v_date := '00'||v_date;
ELSIF LENGTH(v_date) = 6 THEN
v_date := '0'||v_date;
END IF;
/*
UPDATE FEX002K d
SET d.RESULT = v_result,
MEDICAL_DIVISION = 'L006',
REPORT_DATE = v_date,
REPORT_TIME = NULL,
REPORT_USRID= 'L006',
CONFIRM_FLAG = 'Y',
CONFIRM_DATE = v_date,
CONFIRM_TIME = NULL,
CONFIRM_USRID= 'L006'
WHERE d.CLASS = 'MAMO'
AND(d.RESULT IS NULL OR d.RESULT = '')
AND d.PKEY_CASENO=a1.CASENO;
*/
END LOOP;
END LOOP;
END;
/
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言