Command로 Template 작성하기 2

작성자 이호영 수정일 2022-10-28 11:11

#TwinReader, #template, #terminal

아티클 관련 제품: TwinReader

들어가며


사전 준비 단계

  • Template 저장 위치는 /[Data home]/twinreader/template 입니다. 
  • Command로 Template 작성하기 1의 과정이 선행된 뒤 아래 과정을 진행하여 주시기 바랍니다.


Template 열기

작성할 Template file을 선택하여 작성해 봅니다.
cd /[Data home]/twinreader/template
vi jinryebiTemplate.js


Checkbox data 추출

checkbox data 추출은 적합한 값을 찾아 선정하고 keyword를 찾아 데이터를 추출하는 기능입니다.
    "SearchByCheckbox": [
        {
            "disabled": false,
            "keywordInfoList": [
                {
                    "labels": [
                        "요양기관종류"
                    ],
                    "allowableDepth": 1
                }
            ],
            "checkboxLabelPattern": "의원|병원|보건"
        }
    ]
  • keywordInfoList 
    - checkbox 와 매칭 되는 keyword를 찾기 위한 속성을 정의하는 곳입니다.

  • labels
    - 추출할 checkbox의 keyword를 입력합니다.

  • allowableDepth
    - checkbox keyword의 탐색 허용 범위를 선택하는 것으로 1~5까지 설정 가능합니다.

  • checkboxLabelPattern
    - checkbox 좌우의 label이 작성한 pattern에 해당되면 checkbox와 label을 매핑합니다.



Keyword로 data 추출

keyword로 data 추출은 keyword를 기반으로 데이터를 추출하는 기능입니다.
"SearchByKeyword": [
    {
      "disabled": false,
      "keywordInfo": {
        "labels": [
          "본인부담금"
        ],
        "allowableDepth": 1
      },
      "valueDirectionType": "valuetype",
      "valueInfo": {
        "typeInfo": {
          "type": "number",
          "pattern": ""
        },
        "filters": [
          {
            "key": "relativeKeywordInfoList",
            "value": [
              {
                "labels": [
                  "진찰료"
                ],
                "allowableDepth": 1
              }   
           ]
         }
     ]
 }
  • keywordInfo-labels
    - 검색 할 keyword를 설정합니다.

  • valueDirectionType
    - keyword를 기준으로 값을 찾는 방향을 정의하는 것으로 keyword로 선언된 것은 제외합니다.
    - valuetype : 모든 방향으로 값을 찾습니다.
      right : keyword의 오른쪽 방향으로 찾습니다.
      bottom : keyword의 아래쪽 방향으로 찾습니다.

  • valueInfo
    - 추출 할 value의 type을 정의합니다.

  • valueInfo-type
    - number : 숫자 타입의 data를 추출합니다.
    - text : 문자 타입의 data를 추출합니다
    - pattern : 추출할 data의 형식을 직접 정의하여 추출합니다.

  • value-labels
    - 검색 할 keyword와 연관한 label로 추출 할 value의 대상을 입력합니다.



가장 큰 table data 추출

가장 큰 테이블 데이터 추출은 특정 column을 기준으로 전체 행의 값을 추출하고 다른 column의 값을 연관 정보로 추출하여 테이블의 전체 데이터를 추출합니다.
"LargestTableSearch": [
        {
            "disabled": false,
            "keyColumnInfo": {
                "index": -1,
                "pattern": ""
            }
      }
]
  • keyColumnInfo
    - 추출 기준이 되는 column을 입력합니다.

  • 기준 column의 Index 를 입력합니다.
    - 미 정의 시 행의 값이 가장 많이 있는 column을 기준으로 합니다.

  • 추출 부분


선택적 추출

선택적 추출은 앞선 3단계를 그룹화하고 데이터를 선택하여 추출하는 단계입니다.
{
    "SelectiveSearch": [
        {
            "name": "진료비총액,합계",
            "selectType": "selectall",
            "rules": [
                {
                    "ruleType": "SearchByKeyword",
                    "rule": {
                        "keywordInfo": {
                            "labels": [
                                "진료비총액"
                            ],
                            "allowableDepth": 1
                        },
                        "valueDirectionType": "valuetype",
                        "valueInfo": {
                            "typeInfo": {
                                "type": "number",
                                "pattern": ""
                            },
                            "filters": [
                                {
                                    "key": "",
                                    "value": null
                                }
                            ]
                        },
                        "relativeValueKeywordInfo": [
                            {
                                "labels": [],
                                "allowableDepth": 1
                            }
                        ],
                        "includeRelativeLabel": false
                    }
                },
                {
                    "ruleType": "SearchByKeyword",
                    "rule": {
                        "keywordInfo": {
                            "labels": [
                                "합계"
                            ],
                            "allowableDepth": 1
                        },
                        "valueDirectionType": "valuetype",
                        "valueInfo": {
                            "typeInfo": {
                                "type": "number",
                                "pattern": ""
                            },
                            "filters": [
                                {
                                    "key": "",
                                    "value": null
                                }
                            ]
                        },
                        "relativeValueKeywordInfo": [
                            {
                                "labels": [],
                                "allowableDepth": 1
                            }
                        ],
                        "includeRelativeLabel": false
                    }
                }
            ]
        }
    ],
    "plugin": ""
}
  • name
    - 그룹 구별을 위한 이름 설정
  • selectType
    - 추출 결과 선택하는 부분입니다.
    - selectone : 앞의 3단계(키워드로 데이터 추출, checkbox 데이터 추출, 가장 큰 테이블 데이터 추출)에서 수행한 결과 전부를 선택합니다. 
    - selectall : 앞의 3단계(키워드로 데이터 추출, checkbox 데이터 추출, 가장 큰 테이블 데이터 추출)에서 수행하면서 얻은 결과 값 중 첫 번째 결과 값을 선택합니다. 
  • rules
    - 그룹화 시킬 앞의 단계의 작성 코드를 넣어줍니다.


마무리

  • Template 작성하는 방법 중 정보 인식 단계에 대해 알아보았습니다.
  • 다음 단계인 후 처리 과정에 대하여 Plugin 작성하기를 참고하시기 바랍니다.

아티클이 유용했나요?

훌륭합니다!

피드백을 제공해 주셔서 감사합니다.

도움이 되지 못해 죄송합니다!

피드백을 제공해 주셔서 감사합니다.

아티클을 개선할 수 있는 방법을 알려주세요!

최소 하나의 이유를 선택하세요
CAPTCHA 확인이 필요합니다.

피드백 전송

소중한 의견을 수렴하여 아티클을 개선하도록 노력하겠습니다.

02-558-8300