Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
HAPI FHIR 개요
HAPI FHIR란?
역사
- HL7 v2 라이브러리로 2001년 시작한 HAPI
- HAPI FHIR은 2013년에 처음 출시되었습니다
기능
- HAPI FHIR는 자바로 구현된 FHIR.
- 라이브러리를 제공하여 FHIR 자원을 CRUD (생성,읽기,업데이트, 삭제) 및 검색할 수 있다.
- 서버 프레임워크는 인증, 권한 부여 및 감사 추적을 지원하나.
HAPI FHIR Modules
서버 개요
HAPI 기본 아키텍처
- 아래 이미지는 임의로 설계한 Architecture이며 HAPI FHIR에서 제공하는 공식 Architecture는 아님, FHIR는 spring-context, spring-annotation기반으로 구현이된 framework이기 때문에 MVC패턴과 유사한 모습을 보여주고 있음. 단지 명칭만 다르다는 것을 인지하면 쉽게 구현 가능
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
FHIR Plain Server 구성요소
- FhirContext - fhir버전을 등록하여 Context(버전 같은 것)를 등록
- Model - HL7에 있는 Json형태를 쉽게 구현하기 위해 만들어 놓은 java class
- Provider - Provider를 이용하여 api 호출에서 필요한 정보 정제 및 전달
- Interceptor - Interceptor HTML을 그려주는 로직이 있는 곳
FHIR 구동원리
- Front에서 Back으로 정보 요청 - API 호출
- AppContext에서 요청에 맞는 Provider를 찾아 해당 메소드 호출
- Provider에서 관련 정보 DB에 호출
- Provider는 필요한 정보에 맞게 Model을 구성하여 App-Context에 전달
- AppContext는 해당 정보를 필요한 화면을 구성할 수 있게 Interceptor를 호출
- Interceptor는 필요한 내용 HTML로 만들어 Client에 Response 해줌
HAPI FHIR Context
- 대부분의 HAPI-FHIR API의 시작점은 FirContext 클래스입니다.
- FhirContext는 두 개의 파서를 포함한 나머지 API의 팩토리 역할을 합니다:
- FirContext는 한 번 생성되어 재사용되도록 설계되었습니다(성능에 중요)
HAPI FHIR 서버 소개
Plain Server
JPA Server
- HAPI FHIR JPA 서버는 관계형 데이터베이스에 대한 FHIR 서버의 완전한 구현입니다. 일반 서버와 달리 JPA 서버는 자체 데이터베이스 스키마를 제공하고 코딩 없이 모든 저장 및 검색 논리를 처리합니다.
Image Not Showing
Possible Reasons
- The image file may be corrupted
- The server hosting the image is unavailable
- The image path is incorrect
- The image format is not supported
Learn More →
HAPI JPA 서버에는 다음과 같은 구성 요소가 있습니다:
- 리소스 공급자: RESTful 서버 리소스 공급자는 지정된 FHIR 릴리스의 각 리소스 유형에 대해 제공됩니다. 각 리소스 공급자는 지정된 리소스 유형에 대해 FHIR 사양에 정의된 전체 검색 매개 변수 집합을 구현하는 @Search 방법을 구현합니다.
- 또한 리소스 제공자는 읽기, 만들기, 삭제 등과 같은 다른 모든 FHIR 방법을 구현하는 슈퍼 클래스를 확장합니다.
- 이러한 리소스 공급자는 HAPI 빌드 프로세스의 일부로 생성되므로 Git에 체크인되지 않습니다. 자원 제공자들은 검색, 업데이트 등에서 실제로 어떤 논리도 구현하지 않는다. Restful Server를 통해 수신 HTTP 호출을 수신하고 수신 요청을 DAO로 전달합니다.
- HAPI DAO: DAO는 실제로 기본 JPA API를 사용하여 FHIR 리소스의 저장, 인덱싱 및 검색과 관련된 모든 데이터베이스 비즈니스 로직을 구현합니다.
- 최대 절전 모드: HAPI JPA 서버는 최대 절전 모드에서 구현한 JPA 라이브러리를 사용합니다. 최대 절전 모드 특정 기능이 사용되지 않으므로 라이브러리는 다른 공급자(예: Eclipselink)와도 함께 작동해야 하지만 정기적으로 테스트되지는 않습니다.
- 데이터베이스: RESTful 서버는 내장된 Derby 데이터베이스를 사용하지만 최대 절전 모드에서 지원하는 모든 데이터베이스와 통신하도록 구성할 수 있습니다.
Testing