

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# HealthLake에 대한 FHIR `$questionnaire-package` 작업
<a name="reference-fhir-operations-questionnaire-package"></a>

`$questionnaire-package` 작업은 FHIR 설문과 설문을 렌더링하고 처리하는 데 필요한 모든 종속성이 포함된 포괄적인 번들을 검색합니다. 이 작업은 [Da Vinci 설명서 템플릿 및 규칙(DTR) 구현 가이드를](https://hl7.org/fhir/us/davinci-dtr/OperationDefinition-questionnaire-package.html) 구현하여 의료 워크플로의 설명서 요구 사항에 맞게 동적 양식 렌더링을 활성화합니다.

## 작동 방식
<a name="questionnaire-package-how-it-works"></a>
+ **요청**: 적용 범위 및 주문 컨텍스트와 함께 필요한 설문지(들)를 식별하는 파라미터를 전송합니다.
+ **검색**: HealthLake는 설문지와 모든 종속성(ValueSets, CQL 라이브러리 등)을 수집합니다.
+ **패키지**: 모든 리소스가 표준화된 형식으로 함께 번들링됩니다.
+ **응답**: 렌더링 및 데이터 수집을 위한 전체 패키지를 받습니다.

**사용 사례**  

+ **사전 승인 설명서**: 사전 승인 요청에 필요한 임상 정보 수집
+ **적용 범위 요구 사항**: 지급인 적용 범위 요구 사항을 충족하는 데 필요한 문서 수집
+ **임상 데이터 교환**: 지급자에게 제출할 임상 데이터 구조화
+ **동적 양식**: 환자 데이터 및 조건부 로직이 미리 채워진 설문지 렌더링

## API 엔드포인트
<a name="questionnaire-package-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Questionnaire/$questionnaire-package  
Content-Type: application/fhir+json
```

## 요청 파라미터
<a name="questionnaire-package-request-parameters"></a>

### 입력 파라미터
<a name="questionnaire-package-input-parameters"></a>

요청 본문에는 다음 파라미터와 함께 FHIR 파라미터 리소스가 포함되어야 합니다.


| 파라미터 | Type | 카디널리티 | 설명 | 
| --- | --- | --- | --- | 
| coverage | 적용 범위 | 1..\$1 (필수) | 문서에 대한 멤버 및 적용 범위를 설정하기 위한 적용 범위 리소스(들) | 
| questionnaire | canonical | 0..\$1 | 반환할 특정 설문 조사(들)의 정식 URL(들)(버전을 포함할 수 있음) | 
| order | Resource | 0..\$1 | 리소스(DeviceRequest, ServiceRequest, MedicationRequest, Encounter, Appointment)를 주문하여 컨텍스트 설정 | 
| changedSince | dateTime | 0..1 | 있는 경우이 타임스탬프 이후에 변경된 리소스만 반환합니다. | 

### 파라미터 검증 규칙
<a name="questionnaire-package-parameter-validation"></a>

**다음 중 하나 이상을 제공해야 합니다**(필수 외에도 `coverage`).
+ 하나 이상의 `questionnaire` 정식 URLs
+ 하나 이상의 `order` 리소스

**유효한 요청 조합:**  

+ `coverage` \$1 `questionnaire`
+ `coverage` \$1 `order`
+ `coverage` \$1 `questionnaire` \$1 `order`

## 요청 예제
<a name="questionnaire-package-example-request"></a>

```
POST /datastore/example-datastore/r4/Questionnaire/$questionnaire-package  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": {  
        "resourceType": "Coverage",  
        "id": "example-coverage",  
        "status": "active",  
        "beneficiary": {  
          "reference": "Patient/example-patient"  
        },  
        "payor": [{  
          "reference": "Organization/example-payer"  
        }],  
        "class": [{  
          "type": {  
            "coding": [{  
              "system": "http://terminology.hl7.org/CodeSystem/coverage-class",  
              "code": "group"  
            }]  
          },  
          "value": "12345"  
        }]  
      }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0"  
    },  
    {  
      "name": "order",  
      "resource": {  
        "resourceType": "ServiceRequest",  
        "id": "example-service-request",  
        "status": "active",  
        "intent": "order",  
        "code": {  
          "coding": [{  
            "system": "http://www.ama-assn.org/go/cpt",  
            "code": "94660",  
            "display": "Continuous positive airway pressure ventilation (CPAP)"  
          }]  
        },  
        "subject": {  
          "reference": "Patient/example-patient"  
        }  
      }  
    },  
    {  
      "name": "changedSince",  
      "valueDateTime": "2024-01-01T00:00:00Z"  
    }  
  ]  
}
```

## 응답 형식
<a name="questionnaire-package-response-format"></a>

### 성공 응답(200 OK)
<a name="questionnaire-package-success-response"></a>

작업은 하나 이상의 **패키지 번들이 포함된 FHIR 파라미터 리소스를 반환합니다**. 각 패키지 번들에는 다음이 포함됩니다.


| 입력 유형 | 카디널리티 | 설명 | 
| --- | --- | --- | 
| 설문 조사 | 1 | 렌더링할 설문지 | 
| QuestionnaireResponse | 0..1 | 미리 채워지거나 부분적으로 완료된 응답(해당하는 경우) | 
| 라이브러리 | 0..\$1 | 사전 모집단 및 조건부 로직이 포함된 CQL 라이브러리 | 
| ValueSet | 0..\$1 | 확장된 ValueSets(확장이 <40인 응답 선택의 경우) | 

**Example 응답의 예**  

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "PackageBundle",  
      "resource": {  
        "resourceType": "Bundle",  
        "id": "questionnaire-package-example",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/DTR-QPackageBundle"]  
        },  
        "type": "collection",  
        "timestamp": "2024-03-15T10:30:00Z",  
        "entry": [  
          {  
            "fullUrl": "http://example.org/fhir/Questionnaire/home-oxygen-therapy",  
            "resource": {  
              "resourceType": "Questionnaire",  
              "id": "home-oxygen-therapy",  
              "url": "http://example.org/fhir/Questionnaire/home-oxygen-therapy",  
              "version": "2.0",  
              "status": "active",  
              "title": "Home Oxygen Therapy Documentation",  
              "item": [  
                {  
                  "linkId": "1",  
                  "text": "Patient diagnosis",  
                  "type": "choice",  
                  "answerValueSet": "http://example.org/fhir/ValueSet/oxygen-diagnoses"  
                }  
              ]  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/Library/oxygen-prepopulation",  
            "resource": {  
              "resourceType": "Library",  
              "id": "oxygen-prepopulation",  
              "url": "http://example.org/fhir/Library/oxygen-prepopulation",  
              "version": "1.0",  
              "type": {  
                "coding": [{  
                  "system": "http://terminology.hl7.org/CodeSystem/library-type",  
                  "code": "logic-library"  
                }]  
              },  
              "content": [{  
                "contentType": "text/cql",  
                "data": "bGlicmFyeSBPeHlnZW5QcmVwb3B1bGF0aW9u..."  
              }]  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/ValueSet/oxygen-diagnoses",  
            "resource": {  
              "resourceType": "ValueSet",  
              "id": "oxygen-diagnoses",  
              "url": "http://example.org/fhir/ValueSet/oxygen-diagnoses",  
              "status": "active",  
              "expansion": {  
                "timestamp": "2024-03-15T10:30:00Z",  
                "contains": [  
                  {  
                    "system": "http://hl7.org/fhir/sid/icd-10",  
                    "code": "J44.0",  
                    "display": "COPD with acute lower respiratory infection"  
                  },  
                  {  
                    "system": "http://hl7.org/fhir/sid/icd-10",  
                    "code": "J96.01",  
                    "display": "Acute respiratory failure with hypoxia"  
                  }  
                ]  
              }  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/QuestionnaireResponse/example-prepopulated",  
            "resource": {  
              "resourceType": "QuestionnaireResponse",  
              "id": "example-prepopulated",  
              "questionnaire": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0",  
              "status": "in-progress",  
              "subject": {  
                "reference": "Patient/example-patient"  
              },  
              "basedOn": [{  
                "reference": "ServiceRequest/example-service-request"  
              }],  
              "item": [  
                {  
                  "linkId": "1",  
                  "text": "Patient diagnosis",  
                  "answer": [{  
                    "valueCoding": {  
                      "system": "http://hl7.org/fhir/sid/icd-10",  
                      "code": "J44.0",  
                      "display": "COPD with acute lower respiratory infection"  
                    }  
                  }]  
                }  
              ]  
            }  
          }  
        ]  
      }  
    },  
    {  
      "name": "Outcome",  
      "resource": {  
        "resourceType": "OperationOutcome",  
        "issue": [{  
          "severity": "information",  
          "code": "informational",  
          "details": {  
            "text": "Successfully retrieved questionnaire package"  
          }  
        }]  
      }  
    }  
  ]  
}
```

## 작업 워크플로
<a name="questionnaire-package-operation-workflow"></a>

**HealthLake가 요청을 처리하는 방법**  
를 호출하면 `$questionnaire-package` HealthLake는 다음 단계를 수행합니다.

1. **환자 및 지급인 식별**: `coverage` 파라미터에서 환자 및 보험 조직을 추출합니다.

1. **올바른 설문 조사 찾기**:
   + ** 파라미터** **사용**`questionnaire`: 제공한 정식 URL을 사용합니다.
   + ** 파라미터** **사용**`order`: 주문 코드(CPT/HCPCS/LOINC) 및 지급인과 일치하여 적절한 설문지를 찾습니다.

1. **종속성 수집**: 설문지를 렌더링하는 데 필요한 모든 것을 자동으로 검색합니다.
   + **CQL 라이브러리** - 사전 모집단 및 조건부 질문을 위한 로직
   + **ValueSets** - 응답 선택 사항(<40 옵션인 경우 자동으로 확장됨)
   + **QuestionnaireResponse** - 진행 중이거나 완료된 기존 응답

1. **모든 것을 함께 패키징합니다**.
   + 모든 리소스를 번들링합니다(각 리소스는 한 번만 포함됨).
   + 제공된 경우 `changedSince` 타임스탬프를 기준으로 필터링
   + 리소스가 누락된 `Outcome` 경우에 경고를 추가합니다.

**결과**: 렌더링 준비가 완료된 독립형 패키지입니다.

## 오류 응답
<a name="questionnaire-package-error-responses"></a>

### 400 잘못된 요청
<a name="questionnaire-package-400-error"></a>

요청 검증에 실패하면 반환됩니다.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "required",  
    "details": {  
      "text": "At least one of 'questionnaire' or 'order' must be provided along with 'coverage'"  
    }  
  }]  
}
```

### 424 종속성 실패
<a name="questionnaire-package-424-error"></a>

종속 리소스를 검색할 수 없을 때 반환됩니다.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "warning",  
    "code": "not-found",  
    "details": {  
      "text": "Referenced Library 'http://example.org/fhir/Library/missing-library' could not be retrieved"  
    }  
  }]  
}
```

### 401 권한이 없음
<a name="questionnaire-package-401-error"></a>

인증 자격 증명이 누락되거나 유효하지 않을 때 반환됩니다.

### 403 금지됨
<a name="questionnaire-package-403-error"></a>

인증된 사용자에게 요청된 리소스에 액세스할 수 있는 권한이 없는 경우 반환됩니다.

### 406 허용되지 않음
<a name="questionnaire-package-406-error"></a>

요청된 콘텐츠 유형을 제공할 수 없을 때 반환됩니다.

### 409 충돌
<a name="questionnaire-package-409-error"></a>

버전 또는 동시성 충돌이 있을 때 반환됩니다.

### 410 사라짐
<a name="questionnaire-package-410-error"></a>

요청된 리소스가 영구적으로 삭제되면 반환됩니다.

### 429 요청이 너무 많음
<a name="questionnaire-package-429-error"></a>

속도 제한을 초과하면 반환됩니다.

### 500 Internal Server Error
<a name="questionnaire-package-500-error"></a>

예기치 않은 서버 오류가 발생할 때 반환됩니다.

### 501 구현되지 않음
<a name="questionnaire-package-501-error"></a>

요청된 작업이 아직 구현되지 않은 경우 반환됩니다.

## 검증 규칙
<a name="questionnaire-package-validation-rules"></a>

### 입력 검증
<a name="questionnaire-package-input-validation"></a>
+ `coverage` 파라미터 필요****(1..\$1 카디널리티)
+ `questionnaire` 또는 중 하나 이상을 제공해야 `order` 합니다.
+ 모든 적용 범위 리소스는 유효한 FHIR 리소스여야 합니다.
+ 모든 주문 리소스는 유효한 FHIR 리소스여야 합니다.
+ 정식 URLs 올바른 형식이어야 합니다.
+ `changedSince`는 유효한 ISO 8601 dateTime이어야 합니다.

### QuestionnaireResponse 검증
<a name="questionnaire-package-response-validation"></a>
+ `status`가 적절해야 함(`in-progress`, `completed`, `amended`)
+ 구조는 참조된 설문 조사와 일치해야 합니다.
+ `basedOn`는 유효한 주문 리소스를 참조해야 합니다.
+ `subject`는 유효한 환자 리소스를 참조해야 합니다.

### 리소스 중복 제거
<a name="questionnaire-package-resource-dedup"></a>
+ 각 리소스는 번들에 한 번만 표시됩니다.
+ 예외: 동일한 리소스의 다른 버전이 모두 포함될 수 있습니다.
+ 리소스는 표준 URL 및 버전으로 식별됩니다.

## 성능 사양
<a name="questionnaire-package-performance-specs"></a>


| 지표 | 사양 | 
| --- | --- | 
| 리소스 수 제한 | 번들당 리소스 500개 | 
| 번들 크기 제한 | 최대 5MB | 

## 필수 권한
<a name="questionnaire-package-required-permissions"></a>

`$questionnaire-package` 작업을 사용하려면 IAM 역할에 다음이 있는지 확인합니다.
+ `healthlake:QuestionnairePackage` - 작업을 호출하려면
+ `healthlake:ReadResource` - 설문 조사 및 종속 리소스를 검색하려면
+ `healthlake:SearchWithPost` - QuestionnaireResponse 및 관련 리소스를 검색하려면

**FHIR 범위에 대한 SMART**  
**최소 필수 범위:**
+ **SMART v1**: `user/Questionnaire.read user/Library.read user/ValueSet.read user/QuestionnaireResponse.read`
+ **SMART v2**: `user/Questionnaire.rs user/Library.rs user/ValueSet.rs user/QuestionnaireResponse.rs`

## 중요한 구현 참고 사항
<a name="questionnaire-package-implementation-notes"></a>

### 리소스 검색 전략
<a name="questionnaire-package-retrieval-strategy"></a>

**설문 조사 식별 우선 순위:**  

+ **표준 URL**(`questionnaire`파라미터가 제공된 경우) - 최고 우선 순위
+ **주문 분석**(`order`파라미터가 제공된 경우):
  + 주문 코드(CPT, HCPCS, LOINC)를 지급인 의료 정책과 일치시킵니다.
  + 담당률 지급인을 사용하여 지급인별 설문지 필터링
  + 추가 컨텍스트에 대한 사유 코드 고려

### 종속성 해결
<a name="questionnaire-package-dependency-resolution"></a>

**CQL 라이브러리:**  

+ 설문지 리소스의 `cqf-library` 확장을 통해 검색됨
+ 유형을 `Library.relatedArtifact` 사용하여를 통해 종속 라이브러리를 재귀적으로 가져옵니다. `depends-on` 
+ 모든 라이브러리 종속성이 패키지에 포함됨

**ValueSets:**  

+ 개념이 40개 미만인 경우 자동으로 확장됨
+ 더 큰 ValueSets 확장 없이 포함됩니다.
+ 설문 조사 및 라이브러리 리소스 모두에서 참조되는 ValueSets가 포함됩니다.

### QuestionnaireResponse 사전 모집단
<a name="questionnaire-package-prepopulation"></a>

작업은 다음과 같은 경우 미리 채워진 데이터가 포함된 QuestionnaireResponse를 반환할 수 있습니다.
+ 진행 중이거나 완료된 기존 응답이 발견됨
+ 연결된 라이브러리의 CQL 로직은 환자 레코드에서 데이터를 추출할 수 있습니다.
+ 응답은 관련 순서 및 적용 범위와 연결됩니다.

**QuestionnaireResponse 검색 기준:**  



| 검색 파라미터 | FHIR 경로 | 설명 | 
| --- | --- | --- | 
| based-on | QuestionnaireResponse.basedOn | ServiceRequest 또는 CarePlan에 대한 링크 | 
| patient | QuestionnaireResponse.subject | 주제인 환자 | 
| questionnaire | QuestionnaireResponse.questionnaire | 답변 중인 설문 | 

### 리소스 필터링 변경
<a name="questionnaire-package-changed-filtering"></a>

`changedSince` 파라미터가 제공되는 경우:
+ 지정된 타임스탬프 **이후에** 수정된 리소스만 포함됩니다.
+ 리소스가 변경되지 않은 경우는 빈 패키지`200 OK`와 함께를 반환합니다.
+ 증분 업데이트 및 캐싱 전략에 유용합니다.
+ 타임스탬프 비교는 리소스 `meta.lastUpdated` 필드를 사용합니다.

### 여러 패키지 번들
<a name="questionnaire-package-multiple-bundles"></a>

작업은 다음과 같은 경우 **여러 패키지 번들을** 반환할 수 있습니다.
+ 정식 URLs 통해 여러 설문이 요청됩니다.
+ 여러 주문에 서로 다른 설문지 필요
+ 동일한 설문 조사의 다른 버전이 적용됩니다.

각 패키지 번들에는 필요한 모든 종속성이 포함되어 있습니다.

## 일반 사용 사례
<a name="questionnaire-package-common-use-cases"></a>

### 사용 사례 1: 사전 승인 설명서
<a name="questionnaire-package-use-case-1"></a>

**시나리오**: 공급자는 사전 승인을 받기 전에 가정용 항기 치료용 설명서를 수집해야 합니다.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Patient's insurance coverage */ }  
    },  
    {  
      "name": "order",  
      "resource": {  
        "resourceType": "ServiceRequest",  
        "code": {  
          "coding": [{  
            "system": "http://www.ama-assn.org/go/cpt",  
            "code": "94660"  
          }]  
        }  
      }  
    }  
  ]  
}
```

**결과**: 환자 바이탈과 EHR의 진단 코드로 미리 채워진, 항산기 치료 설문지가 포함된 패키지를 반환합니다.

### 사용 사례 2: 특정 설문 조사 버전 검색
<a name="questionnaire-package-use-case-2"></a>

**시나리오**: 규정 준수를 위해 공급자에게 특정 버전의 설문지가 필요합니다.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/dme-request|3.1.0"  
    }  
  ]  
}
```

**결과**: 모든 종속성과 함께 정확히 버전 3.1.0의 Dell 요청 설문지를 반환합니다.

### 사용 사례 3: 업데이트 확인
<a name="questionnaire-package-use-case-3"></a>

**시나리오**: 공급자는 마지막 검색 이후 업데이트된 설문지 리소스가 있는지 확인하려고 합니다.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/medication-request"  
    },  
    {  
      "name": "changedSince",  
      "valueDateTime": "2024-03-01T00:00:00Z"  
    }  
  ]  
}
```

**결과**: 2024년 3월 1일 이후에 수정된 리소스만 반환하거나 변경되지 않은 경우 빈 패키지를 반환합니다.

### 사용 사례 4: 여러 주문
<a name="questionnaire-package-use-case-4"></a>

**시나리오**: 공급자가 서로 다른 설문지가 필요할 수 있는 여러 서비스 요청을 제출합니다.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "order",  
      "resource": { /* ServiceRequest for imaging */ }  
    },  
    {  
      "name": "order",  
      "resource": { /* ServiceRequest for DME */ }  
    }  
  ]  
}
```

**결과**: 해당하는 각 설문에 대해 하나씩 여러 패키지 번들을 반환합니다.

## 다른 Da Vinci IGs와 통합
<a name="questionnaire-package-integration"></a>

### 적용 범위 요구 사항 검색(CRD)
<a name="questionnaire-package-crd-integration"></a>

**워크플로 통합:**  

+ 공급자가 EHR에서 서비스 주문
+ CRD 후크 발사, 적용 범위 요구 사항 확인
+ 지급인이 문서가 필요함을 나타내는 응답
+ 공급자가를 호출`$questionnaire-package`하여 설명서 양식을 검색합니다.
+ 공급자가 설문지를 작성합니다.
+ 설명서는 PAS 또는 CDex를 통해 제출됩니다.

### 사전 승인 지원(PAS)
<a name="questionnaire-package-pas-integration"></a>

**워크플로 통합:**  

+ `$questionnaire-package`를 사용하여 설명서 요구 사항 검색
+ 필수 임상 데이터로 QuestionnaireResponse 작성
+ 완료된 QuestionnaireResponse와 `Claim/$submit` 함께를 사용하여 사전 권한 부여 제출
+ 를 사용하여 상태 확인 `Claim/$inquire`

### 임상 데이터 교환(CDex)
<a name="questionnaire-package-cdex-integration"></a>

**워크플로 통합:**  

+ 지급인이 클레임에 대한 추가 문서를 요청합니다.
+ 공급자는 `$questionnaire-package`를 사용하여 구조화된 데이터 수집 양식을 검색합니다.
+ 공급자가 QuestionnaireResponse를 완료합니다.
+ CDex 연결 워크플로를 통해 지급자에게 문서가 제출됩니다.

## 문제 해결 가이드
<a name="questionnaire-package-troubleshooting"></a>

### 문제: 반환된 설문지 없음
<a name="questionnaire-package-no-questionnaire"></a>

**가능한 원인:**  

+ 정식 URL이 데이터 스토어의 설문과 일치하지 않습니다.
+ 주문 코드가 지급인의 의료 정책에 있는 설문에 매핑되지 않음
+ 담당 지급인에 연결된 설문지가 없음

**솔루션**  

+ 표준 URL이 올바르고 설문 조사가 존재하는지 확인합니다.
+ 주문 코드(CPT/HCPCS)가 올바르게 지정되었는지 확인
+ 지급인 조직에 구성된 설문지가 있는지 확인

### 문제: 패키지의 종속성 누락
<a name="questionnaire-package-missing-dependencies"></a>

**가능한 원인:**  

+ 참조된 라이브러리 또는 ValueSet가 데이터 스토어에 존재하지 않음
+ 라이브러리 참조가 손상되었거나 잘못되었습니다.
+ ValueSet 확장 실패

**솔루션**  

+ 누락된 리소스에 대한 경고가 있는지 `Outcome` 파라미터 확인
+ 참조된 모든 리소스가 데이터 스토어에 있는지 확인
+ ValueSet URLs 올바르고 확인 가능한지 확인

### 문제: changedSince가 있는 빈 패키지
<a name="questionnaire-package-empty-package"></a>

**가능한 원인:**  

+ 이는 예상되는 동작입니다. 지정된 타임스탬프 이후 리소스가 수정되지 않았습니다.

**솔루션**  

+ 패키지의 캐시된 버전 사용
+ `changedSince` 파라미터를 제거하여 전체 패키지 검색

### 문제: QuestionnaireResponse가 미리 채워지지 않음
<a name="questionnaire-package-not-prepopulated"></a>

**가능한 원인:**  

+ 기존 QuestionnaireResponse를 찾을 수 없음
+ CQL 라이브러리 로직이 필요한 데이터를 추출할 수 없음
+ 환자 데이터가 누락되었거나 불완전함

**솔루션**  

+ 이는 예상할 수 있습니다. 모든 설문지에 사전 모집단 로직이 있는 것은 아닙니다.
+ 환자 데이터가 데이터 스토어에 존재하는지 확인
+ 데이터 추출 요구 사항에 대한 CQL 라이브러리 로직 검토

## 모범 사례
<a name="questionnaire-package-best-practices"></a>

### 1. 버전URLs 사용
<a name="questionnaire-package-bp-versions"></a>

특정 설문지를 요청할 때는 항상 버전 번호를 지정하십시오.

```
{  
  "name": "questionnaire",  
  "valueCanonical": "http://example.org/fhir/Questionnaire/dme|2.1.0"  
}
```

**이유**: 일관성을 보장하고 설문이 업데이트될 때 예기치 않은 변경을 방지합니다.

### 2. 성능 측면에서 changedSince 활용
<a name="questionnaire-package-bp-changed-since"></a>

자주 액세스하는 설문지의 경우 `changedSince`를 사용하여 데이터 전송을 최소화합니다.

```
{  
  "name": "changedSince",  
  "valueDateTime": "2024-03-10T15:30:00Z"  
}
```

**이유**: 업데이트된 리소스만 검색하여 지연 시간과 대역폭 사용량을 줄입니다.

### 3. 전체 적용 범위 정보 포함
<a name="questionnaire-package-bp-coverage"></a>

올바른 설문 선택을 위해 포괄적인 적용 범위 세부 정보를 제공합니다.

```
{  
  "name": "coverage",  
  "resource": {  
    "resourceType": "Coverage",  
    "beneficiary": { "reference": "Patient/123" },  
    "payor": [{ "reference": "Organization/payer-abc" }],  
    "class": [{ /* Group/plan information */ }]  
  }  
}
```

**이유**: HealthLake가 지급인별 설문지 및 요구 사항을 식별하는 데 도움이 됩니다.

## 관련 작업
<a name="questionnaire-package-related-operations"></a>
+ `Claim/$submit` - 완료된 설명서와 함께 사전 권한 부여 요청 제출
+ `Claim/$inquire` - 제출된 사전 권한 부여의 상태 확인
+ `ValueSet/$expand` - 답변 선택에 대한 ValueSets 확장