"Without interoperability there can be no real CDSS. Standards-based data exchange makes seamless information flow between healthcare systems possible."
FHIR (Fast Healthcare Interoperability Resources) is the HL7 standard for modern healthcare data exchange. WIA-MED-015 requires HL7 FHIR R4 or later.
| Concept | Description |
|---|---|
| Resources | Units of data such as Patient, Observation and Medication |
| RESTful API | Standard HTTP-based API (GET, POST, PUT, DELETE) |
| JSON/XML | Web-friendly data formats |
| Extensions | Standard extension mechanism |
// Patient resource example (JSON)
{
"resourceType": "Patient",
"id": "example",
"name": [{
"family": "Kim",
"given": ["Min-su"]
}],
"gender": "male",
"birthDate": "1985-03-15",
"address": [{
"city": "Seoul",
"postalCode": "06234"
}]
}
// Observation resource (blood pressure)
{
"resourceType": "Observation",
"status": "final",
"category": [{
"coding": [{
"system": "http://terminology.hl7.org/CodeSystem/observation-category",
"code": "vital-signs"
}]
}],
"code": {
"coding": [{
"system": "http://loinc.org",
"code": "85354-9",
"display": "Blood pressure panel"
}]
},
"subject": {"reference": "Patient/example"},
"effectiveDateTime": "2025-01-15T09:30:00Z",
"component": [
{
"code": {"coding": [{"system": "http://loinc.org", "code": "8480-6", "display": "Systolic blood pressure"}]},
"valueQuantity": {"value": 140, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}
},
{
"code": {"coding": [{"system": "http://loinc.org", "code": "8462-4", "display": "Diastolic blood pressure"}]},
"valueQuantity": {"value": 90, "unit": "mmHg", "system": "http://unitsofmeasure.org", "code": "mm[Hg]"}
}
]
}
# Read a patient
GET /Patient/12345
# The patient's most recent blood-pressure observations
GET /Observation?patient=12345&code=85354-9&_sort=-date&_count=10
# The patient's active medications
GET /MedicationStatement?patient=12345&status=active
# Create a new prescription
POST /MedicationRequest
{
"resourceType": "MedicationRequest",
"status": "active",
"intent": "order",
"subject": {"reference": "Patient/12345"},
"medicationCodeableConcept": {
"coding": [{
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
"code": "314076",
"display": "lisinopril 10 MG Oral Tablet"
}]
},
"dosageInstruction": [{
"text": "Take 10 mg once daily"
}]
}
Standardized terminologies are essential for consistent exchange of medical data.
| Standard | Use | Example |
|---|---|---|
| SNOMED CT | Diagnoses, findings, procedures | 44054006 = Type 2 diabetes mellitus |
| LOINC | Laboratory tests and observations | 2345-7 = Glucose [Mass/volume] in Serum or Plasma |
| RxNorm | Medications | 314076 = lisinopril 10 MG Oral Tablet |
| ICD-10 | Diagnosis codes (billing) | E11.9 = Type 2 diabetes mellitus without complications |
| CPT | Procedure codes (billing, US) | 99213 = established-patient office visit |
| UCUM | Units of measure | mg/dL, mm[Hg] |
CDS Hooks is the HL7 standard for integrating a CDSS into the EHR workflow. WIA-MED-015 requires CDS Hooks 2.0 or later.
1. An event occurs in the EHR
β
2. A hook fires (e.g., "order-sign")
β
3. EHR β CDS service request
{
"hook": "order-sign",
"hookInstance": "d1577c69-dfbe-44ad-ba6d-3e05e953b2ea",
"context": {
"userId": "Practitioner/example",
"patientId": "12345",
"draftOrders": { ... }
}
}
β
4. The CDS service performs its analysis
- DDI check
- Allergy check
- Dose verification
β
5. CDS service β EHR response (Cards)
{
"cards": [
{
"summary": "β οΈ Warfarin-Aspirin interaction",
"indicator": "warning",
"detail": "Increased bleeding risk...",
"source": {"label": "WIA-MED-015 DDI service"},
"suggestions": [
{"label": "Review antiplatelet choice"}
]
}
]
}
β
6. The EHR displays the cards in the UI
β
7. The physician decides (accept / choose alternative / override)
| Hook | When it fires |
|---|---|
| patient-view | When a patient's chart is opened |
| medication-prescribe | When a medication is prescribed (earlier hook, superseded by order-select / order-sign; still used in the WIA-MED-015 spec examples) |
| order-select | When a test, procedure or medication order is selected |
| order-sign | When orders are signed (finalized) |
| encounter-discharge | When a patient is being discharged (medication reconciliation) |
| encounter-start | When an encounter begins (relevant alerts, history reminders) |
| Dimension | Description | Validation method |
|---|---|---|
| Completeness | No required data missing | Required-field checks |
| Accuracy | Data reflects reality | Range checks, logic checks |
| Consistency | No contradictions | Cross-validation |
| Timeliness | Data is current | Timestamp checks |
| Validity | Conforms to formats/standards | Schema validation |
// Blood-pressure data validation
{
"systolic": 140,
"diastolic": 90
}
Validation rules:
β
Completeness: systolic AND diastolic present
β
Range: 50 < systolic < 300
β
Range: 30 < diastolic < 200
β
Logic: systolic > diastolic
β οΈ Warning: systolic >= 130 (above the < 130/80 target)
// Medication data validation
{
"medication": "Lisinopril",
"dose": "10",
"unit": "mg",
"route": "PO"
}
Validation:
β
RxNorm code matched
β
Dose range (2.5-80 mg/day)
β
Valid route of administration
β
Frequency format
| Regulation | Region | Core requirements |
|---|---|---|
| HIPAA | United States | PHI protection, safeguards, audit controls |
| GDPR | EU | Lawful basis/consent, right of access, right to erasure |
| PIPL | China | Personal-information protection, data localization |
| Personal Information Protection Act (PIPA) | Korea | Consent to collection, safeguards, breach notification |
| Key point | Summary |
|---|---|
| HL7 FHIR | RESTful API, JSON/XML, resources |
| Terminology standards | SNOMED CT, LOINC, RxNorm, ICD-10 |
| CDS Hooks | Workflow-integration standard |
| Data quality | Completeness, accuracy, consistency, timeliness, validity |
| Security | HIPAA and GDPR compliance, encryption, access control |
εΌηδΊΊι Β· Benefit All Humanity
Β© 2025 WIA - World Certification Industry Association