Điều kiện
Ứng dụng sandbox, ứng dụng khách OAuth, phạm vi Observation và đối tượng giả lập.
NHÀ PHÁT TRIỂN
Hoàn thành trọn vẹn một luồng Observation giả lập, bao gồm định danh, phạm vi quyền, ngữ nghĩa FHIR, tính lũy đẳng và mã tương quan.
Ứng dụng sandbox, ứng dụng khách OAuth, phạm vi Observation và đối tượng giả lập.
Dùng loại ứng dụng khách và luồng OAuth 2.1/OIDC được cấp; ứng dụng khách có người dùng dùng Authorization Code + PKCE.
Gửi FHIR R4 Observation với định danh giả lập và khóa lũy đẳng (idempotency key).
Kiểm tra trạng thái, mã tương quan, nhật ký tích hợp (Integration Logs) và gửi lặp yêu cầu để xác thực tính lũy đẳng.
curl -X POST https://sandbox.example.invalid/fhir/Observation \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/fhir+json" \
-H "Idempotency-Key: demo-obs-001" \
--data '{"resourceType":"Observation","status":"final","subject":{"reference":"Patient/synthetic-001"},"code":{"text":"Synthetic systolic blood pressure"},"valueQuantity":{"value":120,"unit":"mmHg"}}' var req = HttpRequest.newBuilder(URI.create(base + "/fhir/Observation"))
.header("Authorization", "Bearer " + token)
.header("Content-Type", "application/fhir+json")
.header("Idempotency-Key", "demo-obs-001")
.POST(HttpRequest.BodyPublishers.ofString(syntheticObservationJson))
.build();
var res = HttpClient.newHttpClient().send(req, HttpResponse.BodyHandlers.ofString());const res = await fetch(`${base}/fhir/Observation`, {
method: "POST",
headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/fhir+json", "Idempotency-Key": "demo-obs-001" },
body: JSON.stringify(syntheticObservation)
});
if (!res.ok) throw await res.json();val request = Request.Builder()
.url("$base/fhir/Observation")
.header("Authorization", "Bearer $token")
.header("Content-Type", "application/fhir+json")
.header("Idempotency-Key", "demo-obs-001")
.post(syntheticObservationJson.toRequestBody("application/fhir+json".toMediaType()))
.build()var request = URLRequest(url: URL(string: base + "/fhir/Observation")!)
request.httpMethod = "POST"
request.setValue("Bearer \(token)", forHTTPHeaderField: "Authorization")
request.setValue("application/fhir+json", forHTTPHeaderField: "Content-Type")
request.setValue("demo-obs-001", forHTTPHeaderField: "Idempotency-Key")
request.httpBody = syntheticObservationDataBắt đầu nhanh chỉ chứng minh một luồng Observation giả lập. Vận hành chính thức cần có người phụ trách tích hợp, phạm vi quyền, bảo vệ thông tin xác thực, kiểm thử lỗi/thử lại, giám sát và bằng chứng khôi phục.