# API αποτελεσμάτων εργαστηρίου: HL7 v2, FHIR και LOINC

> Πώς τα αποτελέσματα εργαστηρίου ταξιδεύουν ως δεδομένα HL7 v2 και FHIR R4, τι πρέπει να περιέχει ένα αποτέλεσμα και πώς να λαμβάνετε εργαστηριακές αναφορές σε ένα αρχείο FHIR, με ένα πραγματικό παράδειγμα.

Source: https://developers.anpheros.com/el/guides/lab-results-api

**Ένα API αποτελεσμάτων εργαστηρίου παραδίδει τα αποτελέσματα εργαστηρίου ως δομημένα δεδομένα — κωδικός εξέτασης, τιμή, μονάδα, εύρος αναφοράς, κατάσταση και ώρα — αντί για PDF, ώστε το λογισμικό να μπορεί να τα αποθηκεύει, να τα συγκρίνει, να τα απεικονίζει και να τα μοιράζεται.** Σήμερα αυτά τα δεδομένα ταξιδεύουν σε τρεις μορφές: μηνύματα HL7 v2 ORU^R01 (ακόμα η ραχοκοκαλιά μεταξύ εργαστηρίων και νοσοκομείων), πόροι HL7 FHIR R4 `Observation` και `DiagnosticReport` (η μορφή των σύγχρονων API) και εξαγωγές CSV, JSON ή PDF ειδικές για εργαστήρια. Αυτή η σελίδα εξηγεί πώς ταιριάζουν τα κομμάτια, τι πρέπει να μεταφέρει ένα καλό API αποτελεσμάτων εργαστηρίου και πώς να λαμβάνετε εργαστηριακά δεδομένα στο αρχείο FHIR ενός ασθενούς με το Anpheros.

## Ποιος ανταλλάσσει εργαστηριακά αποτελέσματα και σε ποια μορφή

| Από → Προς | Συνήθης μορφή σήμερα | Σημειώσεις |
|---|---|---|
| Εργαστήριο → σύστημα νοσοκομείου ή κλινικής | HL7 v2 ORU^R01 (στις ΗΠΑ συχνά σύμφωνα με τον οδηγό HL7 v2.5.1 Laboratory Results Interface) | Οι παραγγελίες πηγαίνουν αντίστροφα ως μηνύματα ORM/OML |
| Εργαστήριο → δημόσιος φορέας υγείας | Ηλεκτρονική αναφορά εργαστηριακών αποτελεσμάτων HL7 v2, όλο και περισσότερο FHIR | Μόνο αναφερόμενες παθήσεις |
| Σύστημα κλινικής → εφαρμογή ασθενούς | FHIR R4 μέσω API πρόσβασης ασθενούς | Στις ΗΠΑ, πιστοποιημένα EHR εκθέτουν εργαστηριακά αποτελέσματα ως FHIR (US Core). Στην ΕΕ, ο Ευρωπαϊκός Χώρος Δεδομένων Υγείας αναφέρει τα εργαστηριακά αποτελέσματα μεταξύ των κατηγοριών δεδομένων προτεραιότητας. |
| Εργαστήριο → ασθενής | Αναφορά PDF, πύλη, μερικές φορές CSV | Η μορφή που λαμβάνουν στην πραγματικότητα οι περισσότεροι ασθενείς |
| Εφαρμογή → μοντέλο AI | Δομημένο πλαίσιο που δημιουργείται από Observations | Χρειάζεται κωδικούς και μονάδες για να είναι αξιόπιστο |

Η κατεύθυνση έχει σημασία: ένα σύστημα πληροφοριών εργαστηρίου (LIS) είναι η πηγή αλήθειας για ένα αποτέλεσμα, και κάθε σύστημα που ακολουθεί διατηρεί ένα αντίγραφο. Αυτό που καθιστά τα αντίγραφα αξιόπιστα είναι ότι το καθένα διατηρεί τον κωδικό, τη μονάδα, το εύρος και την προέλευση της τιμής.

## Τι πρέπει να μεταφέρει ένα εργαστηριακό αποτέλεσμα

Ένα αποτέλεσμα που λέει μόνο "Γλυκόζη 126" δεν μπορεί να ερμηνευτεί με ασφάλεια. Ένα πλήρες αποτέλεσμα περιέχει:

- **Έναν τυπικό κωδικό.** Το LOINC αναγνωρίζει την αναλυόμενη ουσία, το δείγμα και τη μέθοδο: `2345-7` είναι γλυκόζη σε ορό ή πλάσμα, `2339-0` είναι γλυκόζη σε ολικό αίμα. Ο δικός κωδικός του εργαστηρίου μπορεί να ταξιδέψει δίπλα του.
- **Μια τιμή με μονάδα.** Ιδανικά μια μονάδα UCUM (`mg/dL`, `mmol/L`, `10*3/uL`), ώστε οι τιμές από δύο εργαστήρια να μπορούν να μετατραπούν και να συγκριθούν.
- **Το εύρος αναφοράς** που χρησιμοποίησε το εργαστήριο, και μια **σημαία ερμηνείας** (H, L, N…) όταν το εργαστήριο παρέχει μία.
- **Κατάσταση:** προκαταρκτικό, τελικό, διορθωμένο ή τροποποιημένο. Οι διορθώσεις συμβαίνουν· ένα API πρέπει να σας επιτρέπει να δείτε τη νέα έκδοση χωρίς να χάσετε την παλιά.
- **Χρόνοι:** πότε συλλέχθηκε το δείγμα (`effectiveDateTime`) και πότε δημοσιεύθηκε το αποτέλεσμα (`issued`).
- **Προέλευση:** ποιο εργαστήριο το παρήγαγε και σε ποια αναφορά ή παραγγελία ανήκει.

Στο FHIR R4 κάθε αποτέλεσμα είναι ένα `Observation` με `category = laboratory`, και η αναφορά που τα ομαδοποιεί είναι ένα `DiagnosticReport` που παραθέτει τις Παρατηρήσεις σε `result`. Έγκυρα παραδείγματα και των δύο, με τα λάθη που οι επικυρωτές αναφέρουν συχνότερα, βρίσκονται στα [Παραδείγματα JSON FHIR R4](https://developers.anpheros.com/tools/fhir-examples/observation-lab-result) — δείτε επίσης το [παράδειγμα DiagnosticReport](https://developers.anpheros.com/tools/fhir-examples/diagnostic-report).

## HL7 v2 και FHIR παράλληλα

Το ίδιο αποτέλεσμα λιπιδαιμικού προφίλ, όπως το στέλνουν σήμερα τα περισσότερα εργαστήρια και όπως θα έπρεπε να το αποθηκεύει ένα API:

```
OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
```

| Πεδίο HL7 v2 | Σημασία | Στοιχείο FHIR R4 Observation |
|---|---|---|
| OBX-3 `2093-3^Cholesterol^LN` | Εξέταση, κωδικοποιημένη σε LOINC | `code.coding` (σύστημα `http://loinc.org`) |
| OBX-5 `212`, OBX-2 `NM` | Αριθμητική τιμή | `valueQuantity.value` |
| OBX-6 `mg/dL` | Μονάδα | `valueQuantity.unit` |
| OBX-7 `<200` | Εύρος αναφοράς | `referenceRange.high` |
| OBX-8 `H` | Σημαία ανωμαλίας | `interpretation` |
| OBX-11 `F` | Τελικό αποτέλεσμα | `status = final` |
| OBX-14 | Χρόνος παρατήρησης | `effectiveDateTime` |

Η μετατροπή μεταξύ των δύο είναι κυρίως αντιστοίχιση πεδίων. Τα δύσκολα σημεία βρίσκονται αλλού: εργαστήρια που στέλνουν τους δικούς τους κωδικούς αντί για LOINC, αριθμοί γραμμένοι ως κείμενο (`"6,4"`, `"<5"`), εύρη σε διάφορες σημειώσεις και αναφορές που αποστέλλονται ξανά μετά από ένα χρονικό όριο. [Πώς να ομαλοποιήσετε ιατρικά δεδομένα](https://developers.anpheros.com/el/guides/normalize-medical-data) καλύπτει αυτά λεπτομερώς.

## Λήψη αποτελεσμάτων εργαστηρίου σε εγγραφή FHIR με το Anpheros

Το Anpheros αποθηκεύει την εγγραφή κάθε ασθενούς ως HL7 FHIR R4 και διαθέτει έναν [σύνδεσμο εργαστηρίου](https://developers.anpheros.com/el/guides/lab-connector): ένα αίτημα δέχεται ολόκληρη την αναφορά ως HL7 v2, CSV ή JSON και επιστρέφει εργαστηριακές Παρατηρήσεις (Observations) με κωδικούς LOINC, εύρη αναφοράς, ερμηνεία και προέλευση.

```bash
curl -s -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: x-application/hl7-v2+er7" \
  -H "X-Anpheros-Source-System: springfield-lis" \
  --data-binary @lipid-panel.hl7
```

Για ένα πάνελ λιπιδίων τριών γραμμών (χοληστερόλη, HDL, τριγλυκερίδια), η απάντηση, από μια τοπική εκτέλεση της πλατφόρμας, είναι:

```json
{
  "created": 3, "skipped": 0, "unmapped": [], "warnings": [],
  "observations": [
    {"id": "26ed9219-…", "marker": "Cholesterol", "code": "2093-3", "system": "http://loinc.org",
     "value": 212.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "2633d1d4-…", "marker": "HDL cholesterol", "code": "2085-9", "system": "http://loinc.org",
     "value": 48.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "a02520bb-…", "marker": "Triglyceride", "code": "2571-8", "system": "http://loinc.org",
     "value": 165.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"}
  ]
}
```

Κάθε αποθηκευμένο αποτέλεσμα είναι μια τυπική FHIR R4 Παρατήρηση (Observation), αναγνώσιμη από οποιονδήποτε πελάτη FHIR:

```json
{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "2093-3",
                        "display": "Cholesterol [Mass/volume] in Serum or Plasma"}], "text": "Cholesterol"},
  "subject": {"reference": "Patient/4c3062d9-…"},
  "effectiveDateTime": "2026-10-02T07:45:00Z",
  "valueQuantity": {"value": 212.0, "unit": "mg/dL"},
  "interpretation": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", "code": "H"}]}],
  "referenceRange": [{"high": {"value": 200.0, "unit": "mg/dL"}}]
}
```

Η αποστολή του ίδιου μηνύματος ξανά δεν δημιουργεί τίποτα νέο (`"created": 0, "skipped": 3`): κάθε γραμμή λαμβάνει ένα σταθερό αναγνωριστικό από το αναγνωριστικό αναφοράς, τον κωδικό, την ημερομηνία και την τιμή. Οι δείκτες που η πλατφόρμα δεν μπορεί να αντιστοιχίσει σε LOINC διατηρούν τον κωδικό του εργαστηρίου και επιστρέφουν στο `unmapped`, ώστε να μπορείτε να διορθώσετε την αντιστοίχιση στην πηγή.

Η ανάγνωση των αποτελεσμάτων είναι μια τυπική αναζήτηση FHIR:

```bash
curl -s "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&category=laboratory&code=http://loinc.org|2093-3" \
  -H "Authorization: Bearer $KEY"
```

Άλλοι τρόποι εισόδου και εξόδου των ίδιων δεδομένων:

- **Απευθείας FHIR:** `POST /fhir/R4/Observation`, ή ένα Bundle συναλλαγής με το `DiagnosticReport` και τις Παρατηρήσεις του (Observations) μαζί.
- **Γεγονότα:** ένα [webhook](https://developers.anpheros.com/el/guides/webhooks) `resource.created` ανά Παρατήρηση (Observation), ώστε μια κλινική ή μια εφαρμογή να μπορεί να αντιδρά όταν φτάνουν αποτελέσματα.
- **Για ανθρώπους και AI:** ο ασθενής βλέπει τα αποτελέσματα στην εφαρμογή του· εφαρμογές στις οποίες συναινεί τα διαβάζουν· το `POST /v1/context` παρέχει σε ένα μοντέλο AI μια περίληψη με ετικέτα πηγής που περιλαμβάνει πρόσφατες εργαστηριακές τιμές.
- **Προέλευση:** κάθε εισαγόμενο αποτέλεσμα καταγράφει `author_type = import`, το σύστημα πηγής και το αναγνωριστικό αναφοράς ([προέλευση ιατρικών δεδομένων](https://developers.anpheros.com/el/guides/medical-data-provenance)).

Η πλήρης αναλυτική παρουσίαση, με μια αναφορά CSV, ένα μήνυμα HL7 v2, μη αντιστοιχισμένους δείκτες και επαναλαμβανόμενες αναφορές σε έναν συνθετικό ασθενή, βρίσκεται στο σεμινάριο [Πώς να εισάγετε εργαστηριακά αποτελέσματα σε μια εγγραφή FHIR](https://developers.anpheros.com/el/guides/import-lab-results-fhir).

## Ελέγξτε τα αποτελέσματα πριν τα στείλετε

Ο δωρεάν [FHIR R4 validator](https://developers.anpheros.com/tools/fhir-validator) ελέγχει τη δομή ενός Observation και τα απαιτούμενα value sets, και με το `eu-lab` profile ελέγχει επίσης τι πρέπει να περιέχει ένα εργαστηριακό αποτέλεσμα: την κατηγορία `laboratory`, έναν κωδικό LOINC, ένα υποκείμενο, μια κατάσταση final-type, μια ώρα, μια τιμή, μια μονάδα UCUM και ένα εύρος αναφοράς. Οι ίδιοι έλεγχοι εκτελούνται στην πλατφόρμα μέσω του `POST /fhir/R4/Observation/$validate?profile=eu-lab`.

## Επιλογή API για εργαστηριακά αποτελέσματα: λίστα ελέγχου

- Αποθηκεύει τα αποτελέσματα ως FHIR R4 Observations με κωδικούς LOINC, ή ως γραμμές στο δικό του σχήμα;
- Μπορεί να δεχτεί τις μορφές που στέλνουν πραγματικά τα εργαστήρια (HL7 v2 στα περισσότερα νοσοκομεία, CSV ή PDF από μικρότερα εργαστήρια);
- Τι συμβαίνει σε έναν δείκτη που δεν μπορεί να αντιστοιχιστεί: απορρίπτεται, παραλείπεται ή διατηρείται με τον κωδικό του εργαστηρίου;
- Είναι οι επαναλήψεις ασφαλείς, ή μια εκ νέου υποβληθείσα αναφορά δημιουργεί διπλότυπα;
- Έχουν οι διορθωμένες τιμές εκδοτική διαχείριση, με την προηγούμενη τιμή να είναι ακόμα αναγνώσιμη;
- Καταγράφεται η προέλευση κάθε τιμής και είναι ορατή στον ασθενή;
- Ποιος μπορεί να διαβάσει τα αποτελέσματα και αποφασίζεται αυτό από τη συγκατάθεση του ασθενούς;

## Τι δεν κάνει το Anpheros

Το Anpheros δεν είναι σύστημα πληροφοριών εργαστηρίου και δεν συνδέεται με εμπορικά εργαστηριακά δίκτυα: η αναφορά αποστέλλεται από το εργαστήριο, την κλινική ή την εφαρμογή του ασθενούς. Δεν δρομολογεί παραγγελίες εργαστηρίου, δεν διαβάζει αναφορές PDF μέσω αυτού του API (η εφαρμογή Anpheros Daily εξάγει αποτελέσματα από φωτογραφίες και PDF από την πλευρά του ασθενούς) και δεν ερμηνεύει κλινικά τα αποτελέσματα. Οι μονάδες αποθηκεύονται όπως τις στέλνει το εργαστήριο· η μετατροπή τους σε κωδικούς UCUM είναι ευθύνη του αποστολέα, όπως περιγράφεται στο [Πώς να κανονικοποιήσετε ιατρικά δεδομένα](https://developers.anpheros.com/el/guides/normalize-medical-data).

## Συχνές Ερωτήσεις

### Τι είναι ένα API αποτελεσμάτων εργαστηρίου;
Μια διεπαφή που επιτρέπει στο λογισμικό να στέλνει ή να λαμβάνει εργαστηριακά αποτελέσματα ως δομημένα δεδομένα — μια κωδικοποιημένη εξέταση, μια τιμή με μονάδα, ένα εύρος αναφοράς, μια κατάσταση και μια χρονική σήμανση — αντί για ένα έγγραφο. Τα σύγχρονα API αποτελεσμάτων εργαστηρίου χρησιμοποιούν τους πόρους Observation και DiagnosticReport του HL7 FHIR R4. Οι περισσότεροι εργαστηριακοί πάροχοι εξακολουθούν να εκπέμπουν μηνύματα HL7 v2 ORU^R01.

### Ποιο σύστημα κωδικοποίησης αναγνωρίζει τις εργαστηριακές εξετάσεις;
LOINC. Κάθε κωδικός LOINC ονομάζει την αναλυόμενη ουσία, το δείγμα και συχνά τη μέθοδο, επομένως οι `2345-7` (γλυκόζη σε ορό ή πλάσμα) και `2339-0` (γλυκόζη σε ολικό αίμα) είναι διαφορετικά αποτελέσματα. Οι μονάδες εκφράζονται καλύτερα σε UCUM.

### Ποια είναι η διαφορά μεταξύ ενός Observation και ενός DiagnosticReport;
Ένα Observation είναι ένα μεμονωμένο αποτέλεσμα, όπως η χοληστερόλη 212 mg/dL. Ένα DiagnosticReport είναι η αναφορά στο σύνολό της — η παραγγελθείσα πάνελ, ποιος την εξέδωσε και πότε — και παραθέτει τα Observations της στο `result`.

### Μπορώ να εισαγάγω μηνύματα εργαστηριακών εξετάσεων HL7 v2 σε έναν διακομιστή FHIR;
Ναι. Κάθε τμήμα OBX αντιστοιχεί σε ένα Observation (OBX-3 στο `code`, OBX-5 και OBX-6 στο `valueQuantity`, OBX-7 στο `referenceRange`, OBX-8 στο `interpretation`). Ο σύνδεσμος εργαστηρίου Anpheros το κάνει αυτό σε ένα αίτημα και διατηρεί το αναγνωριστικό αναφοράς του εργαστηρίου στο Provenance.

### Πώς μπορώ να αποφύγω διπλότυπα εργαστηριακά αποτελέσματα όταν μια αναφορά επανυποβάλλεται;
Δώστε σε κάθε αποτέλεσμα ένα σταθερό αναγνωριστικό που προέρχεται από την αναφορά, την εξέταση, την ώρα και την τιμή, και παραλείψτε τις γραμμές των οποίων το αναγνωριστικό υπάρχει ήδη. Ο σύνδεσμος εργαστηρίου Anpheros το κάνει αυτό αυτόματα και αναφέρει τον αριθμό ως `skipped`.

## Σχετικά

- [Αντιστοίχιση HL7 v2 σε FHIR](https://developers.anpheros.com/el/guides/hl7-v2-to-fhir-mapping): κάθε τμήμα και πεδίο OBX
- [Πώς να εισαγάγετε εργαστηριακά αποτελέσματα σε ένα αρχείο FHIR](https://developers.anpheros.com/el/guides/import-lab-results-fhir): ο οδηγός βήμα προς βήμα
- [Συνδέτης εργαστηρίου](https://developers.anpheros.com/el/guides/lab-connector): η αναφορά τελικού σημείου
- [Πώς να κανονικοποιήσετε ιατρικά δεδομένα](https://developers.anpheros.com/el/guides/normalize-medical-data): LOINC, UCUM, ημερομηνίες, εύρη και διπλότυπα
- [Επεξήγηση προέλευσης ιατρικών δεδομένων](https://developers.anpheros.com/el/guides/medical-data-provenance)
- [Συστήματα κωδικοποίησης FHIR](https://developers.anpheros.com/el/guides/fhir-code-systems)
- [Πώς να ενσωματώσετε συστήματα κλινικής με ένα backend FHIR](https://developers.anpheros.com/el/guides/integrate-clinic-systems-fhir)
- [FHIR vs HL7 v2: πρακτικές διαφορές](https://developers.anpheros.com/el/guides/fhir-vs-hl7-v2)
- [HL7 v2 και FHIR για κλινικούς πίνακες ελέγχου](https://developers.anpheros.com/el/guides/clinical-dashboard-hl7-fhir): από ένα εργαστηριακό μήνυμα σε ένα πλακίδιο πίνακα ελέγχου
