아티클 관련 제품: TwinReader
들어가며
- Twinreader 분석 후 처리를 위해 사용하는 plugin 작성 방법에 대해 알아봅니다.
- 분석 완료 후 별도의 처리가 필요하지 않은 경우 plugin 생략 가능합니다.
- 한 개의 template와 한 개의 plugin으로 매핑됩니다.
- plugin은 JavaScript로 구성되어야 합니다.
Plugin이란?
- template rule을 적용 한 후 처리 작업으로 라벨과 좌표 데이터만 출력하는 결과 등으로 포맷을 변경합니다.
- plugin 적용을 위한 사전 작업으로 인식 단어 변환(keywordInfo), 키워드로 데이터 추출(SearchByKeyword)이 선행 되어야 합니다.
Plugin 경로
- twinreader 저장 경로 내 plugin 디렉터리 안에 위치합니다.
/agilesoda/twinreader/template/plugin/sampleFormat.js
Plugin 작성하기
- plugin 기본 형식으로 해당 code를 작성하고 반드시 return 값이 존재 하도록 합니다.
"use strict"; exports.plugin = function (templateResultData, refineOCRData) { //////////////////plugin code space start////////////////// return templateResultData; //////////////////plugin code space end////////////////// };
- Plugin 작성 예시
- 예약 진료비를 포함하고 있는 진료비 영수증에서 확인 할 사항은 아래 2가지 입니다.
① 진료 기간이 미래 날짜로 되어 있는 영수증인가?
② 예약 진료비가 존재하는 영수증인가?let deposit = 0; if ( val.label.length > 0 ) { // 유효한 값이 있을 경우 let passCheck = true; if ( val.relativeLabelsInfo?.length > 0 ) { if (val.startsWith("예약진찰료") === true) { deposit = val.label; } } let chkOK = (deposit === 0); if (!chkOK && date) { let today = new Date(); let dateStar = new Date(date.substring(0,10)); chkOK = today >= dateStar; if (chkOK && date.length > 10) { let dateEnd = new Date(date.substring(11,21)); chkOK = today >= dateEnd; } } const checkItem = { detectValue: (chkOK === true) ? "Y":"N", docRecgntKey: "예약진료영수증" }; passCheck = passCheck && chkOK; templateResultData.checkData = { JinRyuBi: checkItem, JinRyuBiCheck: passCheck ? "Y":"N" }; }
- Plugin Debug하기
- plugin에서 작성한 코드가 잘 출력 되는지 확인 할 수 있습니다.
- plugin에서 logging을 선언한 뒤 Twinreader-mgr pod의 log로 출력 하도록 코딩 한 뒤 출력되는 log를 확인합니다.
- Twinreader-mgr pod log 조회 방법
a. plugin에 log 선언하기vi /[DataHome]/twinreader/template/plugin/sampleFormat.js const { Logger } = require(path.join(process.env.INIT_CWD, 'dist', 'common', 'logger'));
b. Twinreader-mgr-pod 이름 확인하기kubectl get pod NAME READY STATUS RESTARTS AGE core-client-7d9ccd8d74-7lf4r 1/1 Running 0 16d ingress-nginx-controller-7586f485b7-9mtwx 1/1 Running 2 156d mgr-deployment-7b54cb98fb-rklkw 1/1 Running 1 29d mysql-59f96bbcb8-t9qw7 1/1 Running 2 156d
c. Twinreader-mgr-pod log 확인kubectl logs -f mgr-deployment-7b54cb98fb-rklkw [Twinreader-mgr] [info] 2022-10-20 10:40:17.311: [Plugin debug] sampleFormat.js start - uXMleRqc8BbJCo+ggGQo9y3EE0ZC5LnnhOyHsCrFG5U=_tif [Twinreader-mgr] [debug] 2022-10-20 13:38:14.852: sampleImg_tif: values = 진료기간: = [2022.09.24] [Twinreader-mgr] [debug] 2022-10-20 13:38:14.867: sampleImg_tif: values = 예약진료비 : = [46,900] [Twinreader-mgr] [info] 2022-10-20 13:38:14.869: [Plugin debug] sampleFormat.js end - uXMleRqc8BbJCo+ggGQo9y3EE0ZC5LnnhOyHsCrFG5U=_tif
마무리
Plugin 에서 분석 완료 후 나온 이미지 파일을 별도의 경로에 저장하거나 분석 결과를 원하는 형태로 구성 가능합니다.
아티클이 유용했나요?
훌륭합니다!
피드백을 제공해 주셔서 감사합니다.
도움이 되지 못해 죄송합니다!
피드백을 제공해 주셔서 감사합니다.
피드백 전송
소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.