58 lines
1.9 KiB
Bash
58 lines
1.9 KiB
Bash
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
ROOT_DIR="$(cd "${SCRIPT_DIR}/.." && pwd)"
|
|
|
|
echo "=== Phase 30 verification ==="
|
|
|
|
echo "1. Integration tests"
|
|
dotnet test "${ROOT_DIR}/VigilCareClinicalAPI.Tests" \
|
|
--filter "FullyQualifiedName~FhirIngest" \
|
|
--no-restore
|
|
|
|
echo "2. Manual FHIR checks (requires running stack)"
|
|
BASE_URL="${BASE_URL:-http://localhost:5270}"
|
|
API_KEY="${API_KEY:-dev-integration-key-change-in-production}"
|
|
|
|
fhir_post() {
|
|
local path="$1" body="$2"
|
|
curl -sf -X POST "${BASE_URL}${path}" \
|
|
-H "Content-Type: application/fhir+json" \
|
|
-H "X-Api-Key: ${API_KEY}" \
|
|
-d "${body}"
|
|
}
|
|
|
|
echo "2a. CapabilityStatement"
|
|
curl -sf "${BASE_URL}/fhir/R4/metadata" -H "X-Api-Key: ${API_KEY}" | jq -e '.resourceType == "CapabilityStatement"'
|
|
|
|
echo "2b. Admit transaction bundle"
|
|
fhir_post "/fhir/R4" '{
|
|
"resourceType": "Bundle",
|
|
"type": "transaction",
|
|
"entry": [
|
|
{
|
|
"resource": {
|
|
"resourceType": "Patient",
|
|
"identifier": [{ "system": "http://hospital.example/mrn", "value": "MRN-VERIFY-001" }],
|
|
"name": [{ "family": "Verify", "given": ["Phase30"] }],
|
|
"birthDate": "1975-06-01",
|
|
"gender": "male"
|
|
},
|
|
"request": { "method": "POST", "url": "Patient" }
|
|
},
|
|
{
|
|
"resource": {
|
|
"resourceType": "Encounter",
|
|
"status": "in-progress",
|
|
"class": { "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode", "code": "IMP" },
|
|
"identifier": [{ "system": "http://hospital.example/visit", "value": "VISIT-VERIFY-001" }],
|
|
"subject": { "identifier": { "system": "http://hospital.example/mrn", "value": "MRN-VERIFY-001" } },
|
|
"participant": [{ "individual": { "display": "Dr. Verify" } }]
|
|
},
|
|
"request": { "method": "POST", "url": "Encounter" }
|
|
}
|
|
]
|
|
}' | jq -e '.type == "transaction-response"'
|
|
|
|
echo "Phase 30 verification complete." |