2014-10-29 3 views
1

로컬 사용자 지정 (NZ)을 사용하여 HL7 REF I12 메시지를 구문 분석하려고합니다.HAPI에서 로컬 사용자 지정을 사용하여 HL7 v2.3 REF 메시지 구문 분석

GenericParser를 사용해 보았을 때 유효성 검사 예외가 계속 발생합니다. 아래 세그먼트에 대한 예를 들어, I 출력을

ca.uhn.hl7v2.validation.ValidationException을 얻을 유지 : 유효성 검사 실패 : 원시 값 '(08) 569-7555는'비어 있거나 미국으로 필요 전화 수

PRD|PP|See T Tan^""^""^^""|""^^^^""^New Zealand||(08)569-7555||14134^NZMC 

내 질문은 :

  • confor를 사용하여 검증을 피할 수있는 방법이 있나요 mance class 생성자
  • CustomModelClasses를 사용하여 고유 한 유효성 검사 클래스를 만들 수 있습니까?

두 경우 모두 해당 또는 자습서 예제 문서에 대한 예제 코드가 있습니까?

답변

0

유효성 검사를 모두 사용하지 않도록 설정하는 것이 응용 프로그램에 대한 옵션 인 경우 유효성 검사 컨텍스트를 NoValidation으로 설정할 수 있습니다. 여기 http://sourceforge.net/p/hl7api/mailman/message/31244500/

유효성 검사를 사용하지 않도록 설정하는 방법의 예는 다음과 같습니다 :

목록은 메일 링 게요! 개발자에서이 스레드를 참조하십시오 여전히 검증이 필요한 경우

HapiContext context = new DefaultHapiContext(); 
context.setValidationContext(new NoValidation()); 
GenericParser parser = context.getGenericParser(); 
String message = ... 
try { 
    parser.parse(message); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

을하지만, 단지에 대한 검증을 변경하려면 특정 규칙을 사용하는 경우 ValidationContext의 자체 구현을 만들어야합니다. 이것은 서브 클래스를 ca.uhn.hl7v2.validation.builder.support.NoValidationBuilder으로 분류하고 configure 메소드를 대체하여 이것을 사용하여 ValidationContextImpl의 인스턴스를 인스턴스화합니다.

NoValidationBuilder의 하위 클래스에서 configure 메소드를 구현하는 방법에 대한 예제는 ca.uhn.hl7v2.validation.builder.support.DefaultValidationBuilder의 소스 코드를 참조하십시오. 현재보고있는 오류 메시지를 생성하는 기본 유효성 검사 컨텍스트입니다.

public Predicate usPhoneNumber() { 
    return matches("(\\d{1,2})?(\\(\\d{3}\\))?\\d{3}-\\d{4}(X\\d{1,5})?(B\\d{1,5})?(C.*)?", 
      "a US phone number"); 
} 
:

public class DefaultValidationBuilder extends DefaultValidationWithoutTNBuilder { 

    @Override 
    protected void configure() { 
     super.configure(); 

     forAllVersions() 
      .primitive("TN") 
       .refersToSection("Version 2.4 Section 2.9.45") 
       .is(emptyOr(usPhoneNumber())); 
    } 

} 

공지 사항이 BuilderSupport에 정의 된 usPhoneNumber 방법의 구현입니다 : 내가 여기에 클래스 목록을 포함하고있어 당신을 위해 쉽게 만들려면