검사도구 로더
Clinic-OS Core · Clinic-OS
🏛️ Core
🌐 공개
v1.1.0
src/survey-tools/ 디렉토리에 설치된 검사도구들을 자동으로 로드하여 /ext/survey-tools/* 경로로 라우팅합니다. 기본 타입폼 렌더링과 완전 커스텀 렌더링 두 가지 모드를 지원합니다.
주요 기능
- 기본 렌더링: manifest.json의 questions로 타입폼 스타일 자동 생성
- 커스텀 렌더링: survey.astro, result.astro로 완전 자유 디자인
- 혼합 모드: 검사는 기본, 결과는 커스텀 (또는 반대)
- 검사도구 활성화/비활성화 관리
- HQ 스토어에서 검사도구 다운로드 지원
수정 방법
src/survey-tools/ 폴더에 새 폴더를 만들고 manifest.json을 작성하세요. 커스텀 디자인이 필요하면 survey.astro, result.astro를 추가하세요.
필요 조건
- database:read 권한
- database:write 권한
📖 상세 문서
검사도구 로더 플러그인
src/survey-tools/ 디렉토리에 설치된 검사도구들을 자동으로 로드하고 라우팅하는 코어 플러그인입니다.
검사도구 구조
폴더 구조
src/survey-tools/
├── stress-check/ # 기본 제공 검사도구
│ ├── manifest.json # 메타데이터
│ ├── survey.astro # (선택) 커스텀 검사 페이지
│ └── result.astro # (선택) 커스텀 결과 페이지
├── local/ # 로컬 개발 (gitignored)
│ └── my-tool/
└── store/ # HQ 스토어에서 다운로드 (gitignored)
└── phq-9/
로딩 우선순위
1. local/ - 직접 개발 (최우선) 2. store/ - HQ에서 다운로드 3. 기본 - 코어 제공같은 ID의 검사도구가 여러 곳에 있으면 local > store > core 순서로 적용됩니다.
렌더링 모드
1. 기본 렌더링 (manifest only)
manifest.json에 questions 배열만 정의하면 타입폼 스타일로 자동 생성됩니다.{
"id": "my-survey",
"name": "내 검사",
"questions": [
{"id": "q1", "type": "radio", "label": "질문1", "options": [...]}
],
"scoring": {
"maxScore": 40,
"interpretation": [...]
}
}
2. 커스텀 렌더링 (Astro 컴포넌트)
완전한 디자인 자유도가 필요하면survey.astro, result.astro 파일을 추가하세요.---
// survey.astro
const { toolId, manifest } = Astro.props;
---
3. 혼합 모드
- 검사 페이지는 기본, 결과 페이지만 커스텀
- 또는 그 반대
라우트
| 경로 | 설명 |
|---|---|
/ext/survey-tools/ | 검사도구 목록 |
/ext/survey-tools/:toolId | 검사 실행 |
/ext/survey-tools/:toolId/result/:resultId | 결과 보기 |
데이터 테이블
| 테이블명 | 설명 |
|---|---|
| survey_tool_results | 검사 결과 저장 |
HQ 스토어 연동
관리자 > 검사도구 관리 > 🛒 검사도구 스토어에서 추가 검사도구를 다운로드할 수 있습니다.
다운로드한 검사도구는 src/survey-tools/store/ 폴더에 저장됩니다.