Σύντομη απάντηση: ένας διακομιστής ορολογίας είναι ένας διακομιστής FHIR εξειδικευμένος σε κωδικούς. Αποθηκεύει CodeSystems (SNOMED CT, LOINC, ICD-10, UCUM, δικές του πίνακες HL7), ValueSets (ονομαστικά υποσύνολα για έναν σκοπό: κωδικοί ζωτικών σημείων, ουσίες αλλεργιών) και ConceptMaps (μεταφράσεις μεταξύ συστημάτων), και απαντά μέσω τυπικών λειτουργιών: $lookup (τι σημαίνει αυτός ο κωδικός;), $validate-code (επιτρέπεται αυτός ο κωδικός εδώ;), $expand (λίστα των κωδικών σε αυτό το value set, προαιρετικά φιλτραρισμένο κατά κείμενο), $translate (τι είναι αυτός ο κωδικός σε εκείνο το άλλο σύστημα;) και $subsumes (είναι το Α ένα είδος του Β;). Οι εφαρμογές τον καλούν αντί να διανέμουν αντίγραφα ορολογιών, οι οποίες είναι μεγάλες, αδειοδοτημένες και ενημερώνονται αρκετές φορές το χρόνο.
Οι πόροι
Ένας διακομιστής ορολογίας FHIR λειτουργεί με τρεις πόρους. Το CodeSystem δηλώνει ένα σύστημα κωδικοποίησης με την κανονική του διεύθυνση URL και έκδοση, με τις έννοιες του ή μια σημείωση ότι το περιεχόμενο βρίσκεται αλλού. Το ValueSet ορίζει ένα σκοπούμενο υποσύνολο κωδικών μέσω κανόνων σύνθεσης και μιας προαιρετικής υπολογισμένης επέκτασης. Το ConceptMap καταγράφει σχέσεις πηγής-στόχου μεταξύ συστημάτων με μια ισοδυναμία για κάθε αντιστοίχιση.
- CodeSystem δηλώνει ένα σύστημα με την κανονική του διεύθυνση URL (
http://snomed.info/sct,http://loinc.org,http://hl7.org/fhir/sid/icd-10), την έκδοσή του, και είτε τις έννοιές του είτε μια δήλωση ότι το περιεχόμενο βρίσκεται αλλού (content: not-presentγια αδειοδοτημένα συστήματα). - ValueSet έχει ένα
compose(κανόνες: συμπερίλαβε όλους τους κωδικούς από ένα σύστημα, συγκεκριμένους κωδικούς, ή ένα φίλτρο όπως απόγονοι του 404684003 Κλινικό εύρημα) και, όταν υπολογίζεται, έναexpansion(η πραγματική λίστα). Οι συνδέσεις στα προφίλ δείχνουν σε value sets· δείτε Προφίλ και επεκτάσεις FHIR. - ConceptMap περιέχει σχέσεις πηγή → στόχος με μια ισοδυναμία (
equivalent,wider,narrower,inexact,unmatched) και προαιρετικές εξαρτήσεις, για χάρτες όπως SNOMED CT προς ICD-10 ή τοπικούς κωδικούς εργαστηρίου προς LOINC.
Οι λειτουργίες, με αιτήματα
Ένας διακομιστής ορολογίας FHIR απαντά σε πέντε τυπικές λειτουργίες: η $lookup επιστρέφει το νόημα ενός κωδικού, η $validate-code ελέγχει αν ένας κωδικός ανήκει σε ένα σύστημα ή σύνολο τιμών, η $expand παραθέτει τους κωδικούς σε ένα σύνολο τιμών, προαιρετικά φιλτραρισμένους κατά κείμενο, η $translate μετατρέπει έναν κωδικό σε άλλο σύστημα μέσω ενός ConceptMap, και η $subsumes ελέγχει αν μια έννοια είναι είδος άλλης.
$lookup: λεπτομέρειες ενός κωδικού.
GET /CodeSystem/$lookup?system=http://loinc.org&code=4548-4
Επιστρέφει έναν πόρο Parameters με display ("Αιμοσφαιρίνη A1c/Αιμοσφαιρίνη.σύνολο στο αίμα"), ονομασίες σε άλλες γλώσσες και ιδιότητες (για LOINC οι έξι άξονες· για SNOMED CT οι γονείς και οι καθοριστικές σχέσεις).
$validate-code: είναι ο κωδικός στο σύστημα, ή στο value set;
GET /ValueSet/$validate-code?url=http://hl7.org/fhir/ValueSet/observation-vitalsignresult&system=http://loinc.org&code=8480-6
Επιστρέφει result: true με την εμφάνιση, ή false με ένα μήνυμα. Οι διακομιστές που επικυρώνουν πόρους καλούν αυτό για κάθε συνδεδεμένο στοιχείο.
$expand: οι κωδικοί σε ένα value set, με φιλτράρισμα κειμένου για πλαίσια αναζήτησης.
GET /ValueSet/$expand?url=http://hl7.org/fhir/ValueSet/condition-code&filter=diabetes&count=20
Επιστρέφει το ValueSet με μια λίστα expansion.contains: κωδικός, σύστημα, εμφάνιση. Έτσι λειτουργεί η αναζήτηση διάγνωσης ενός EHR έναντι του SNOMED CT χωρίς να διατηρεί 360.000 έννοιες τοπικά.
$translate: διασχίζει ένα όριο συστήματος.
GET /ConceptMap/$translate?url=https://lab.example.org/ConceptMap/local-to-loinc&system=https://lab.example.org/codes&code=GLU&targetsystem=http://loinc.org
Επιστρέφει τις αντιστοιχίες με την ισοδυναμία τους. Η ίδια λειτουργία εξυπηρετεί χάρτες SNOMED CT → ICD-10 όπου ο διακομιστής τους φιλοξενεί.
$subsumes: ερωτήσεις ιεραρχίας.
GET /CodeSystem/$subsumes?system=http://snomed.info/sct&codeA=73211009&codeB=44054006
Απαντά subsumes (ο διαβήτης είναι πρόγονος του διαβήτη τύπου 2), subsumed-by, equivalent ή not-subsumed. Η υποστήριξη αποφάσεων τη χρησιμοποιεί για να ρωτήσει είναι αυτή η πάθηση κάποιο είδος διαβήτη; χωρίς να απαριθμεί κάθε υποτύπο.
Οι απαντήσεις είναι πόροι Parameters: μια λίστα ονομασμένων μερών, όχι ένα απλό αντικείμενο, κάτι που εκπλήσσει τους καλούντες για πρώτη φορά.
Διακομιστές που θα συναντήσετε
Οι διακομιστές ορολογίας που συναντώνται συχνότερα στην πράξη είναι οι tx.fhir.org, ο δημόσιος διακομιστής αναφοράς του HL7 που χρησιμοποιείται από τον επικυρωτή του· ο Ontoserver από την CSIRO, ένας εμπορικός διακομιστής πίσω από πολλά εθνικά προγράμματα· ο Snowstorm από τη SNOMED International, ανοιχτού κώδικα και εγγενής για το SNOMED CT· γενικοί διακομιστές FHIR όπως οι HAPI FHIR και Firely Server με λειτουργίες ορολογίας· και εθνικοί διακομιστές που διαχειρίζονται φορείς υγείας.
| Διακομιστής | Ποιος | Σημειώσεις |
|---|---|---|
| tx.fhir.org | HL7 (αναφορά) | Δημόσιος, χρησιμοποιείται από το εργαλείο επικύρωσης HL7 και τον εκδότη IG· LOINC, SNOMED CT (όπου αδειοδοτείται), πίνακες HL7, UCUM. Όχι για κίνηση παραγωγής |
| Ontoserver | CSIRO (Αυστραλία) | Εμπορικός· χρησιμοποιείται από εθνικά προγράμματα (Αυστραλία, UK NHS Ontology Server, Ολλανδία, Βέλγιο)· πλήρες SNOMED CT με ερωτήματα ECL |
| Snowstorm | SNOMED International | Ανοιχτού κώδικα· εγγενές SNOMED CT με API FHIR· τροφοδοτεί τον επίσημο περιηγητή |
| HAPI FHIR, Firely Server, Microsoft/Google/AWS FHIR services | Προμηθευτές | Γενικοί διακομιστές FHIR με λειτουργίες ορολογίας· φορτώστε μόνοι σας τα code systems |
| Εθνικοί διακομιστές | Υπουργεία Υγείας και φορείς | Συχνά Ontoserver ή Snowstorm με την εθνική έκδοση και τοπικά value sets |
Το περιεχόμενο είναι το δύσκολο κομμάτι: το SNOMED CT απαιτεί άδεια εκτός των χωρών μελών, το LOINC απαιτεί αποδοχή των όρων του, οι εθνικές παραλλαγές του ICD-10 έχουν τη δική τους διανομή. Ένας διακομιστής σας παρέχει τις λειτουργίες· εσείς εξακολουθείτε να λαμβάνετε και να φορτώνετε το περιεχόμενο νόμιμα.
Πώς τις χρησιμοποιούν οι εφαρμογές
Οι εφαρμογές χρησιμοποιούν έναν διακομιστή ορολογίας για την επικύρωση κωδικών και μονάδων κατά τη στιγμή της εγγραφής, για την τροφοδότηση πεδίων αναζήτησης μέσω της $expand με φίλτρο κειμένου και σύνολο τιμών, για την εμφάνιση επίσημων ονομάτων μέσω της $lookup, για την αντιστοίχιση τοπικών κωδικών σε LOINC ή SNOMED CT σε ICD-10 μέσω της $translate, και για τη λογική επεξεργασία ιεραρχιών μέσω της $subsumes και της Γλώσσας Περιορισμών Έκφρασης (Expression Constraint Language) του SNOMED CT.
- Επικύρωση κατά τη στιγμή της εγγραφής: απόρριψη ενός Observation του οποίου ο κωδικός LOINC δεν υπάρχει ή η μονάδα του δεν είναι UCUM, με ένα μήνυμα που ονομάζει το πρόβλημα.
- Πλαίσια αναζήτησης:
$expandμεfilterγια επιλογείς διάγνωσης, επέμβασης και φαρμάκων, οριοθετημένα από ένα value set ώστε οι κλινικοί να βλέπουν μόνο σχετικές έννοιες. - Εμφάνιση:
$lookupγια εμφάνιση του επίσημου ονόματος και των μεταφράσεων αντί για αποθήκευση συμβολοσειρών εμφάνισης που ξεφεύγουν από την επικαιρότητα. - Χαρτογράφηση:
$translateγια μετατροπή τοπικών κωδικών εργαστηρίου σε LOINC κατά την εισαγωγή (πώς να χαρτογραφήσετε τοπικούς κωδικούς εργαστηρίου σε LOINC) ή SNOMED CT σε ICD-10 για αναφορές (SNOMED CT vs ICD-10). - Συλλογισμός:
$subsumesκαι η Expression Constraint Language (ECL) του SNOMED (υποστηρίζεται από Ontoserver και Snowstorm μέσω φίλτρων$expand) για τον ορισμό ομάδων και κανόνων κατά ιεραρχία.
Κάντε επιθετική κρυφή μνήμη (η ορολογία αλλάζει δύο φορές το χρόνο, όχι δύο φορές την ημέρα), καρφιτσώστε εκδόσεις στην παραγωγή και αντιμετωπίστε μια διακοπή του διακομιστή ως υποβαθμισμένη επικύρωση αντί για λόγο απόρριψης κάθε εγγραφής.
Στο Anpheros
Η πλατφόρμα Anpheros επικυρώνει τους κωδικούς LOINC και τις μονάδες UCUM που δέχεται για παρατηρήσεις και τους κωδικούς ATC για φάρμακα έναντι της ορολογίας που διανέμει (ένα υποσύνολο LOINC και ο κατάλογος WHO ATC), και τεκμηριώνει το API ορολογίας στον ιστότοπο για προγραμματιστές. Για πλήρη περιήγηση στο SNOMED CT ή ICD-10, παραπέμπει στους επίσημους περιηγητές αντί να αναδιανέμει αδειοδοτημένο περιεχόμενο.
Σχετικές σελίδες
- Επεξήγηση προφίλ και επεκτάσεων FHIR
- Πώς να χαρτογραφήσετε τοπικούς κωδικούς εργαστηρίου σε LOINC
- SNOMED CT vs ICD-10
- CodeableConcept και Coding στο FHIR
- Μονάδες UCUM σε εργαστηριακά αποτελέσματα
- API ιατρικής ορολογίας (ιστότοπος προγραμματιστών)
Πηγές
- HL7 FHIR R4: Διακομιστής Ορολογίας
- HL7 FHIR R4: ValueSet $expand
- HL7 FHIR R4: ConceptMap $translate
- HL7 FHIR R4: CodeSystem $lookup
- Διακομιστής ορολογίας HL7 tx.fhir.org
- Snowstorm (SNOMED International, GitHub)
- Ontoserver (CSIRO)
Συχνές ερωτήσεις
Χρειάζομαι διακομιστή ορολογίας για να χρησιμοποιήσω FHIR;
Όχι για ένα μικρό σύστημα με σταθερή λίστα κωδικών. Μόλις επικυρώνετε κωδικούς από μεγάλα συστήματα, προσφέρετε κλινική αναζήτηση ή μεταφράζετε μεταξύ συστημάτων, ένας διακομιστής ορολογίας σας γλιτώνει από τη διανομή και την ενημέρωση των ορολογιών μόνοι σας.
Μπορώ να χρησιμοποιήσω το tx.fhir.org στην παραγωγή;
Όχι. Είναι ο διακομιστής αναφοράς του HL7 για εργαλεία επικύρωσης και δοκιμές, χωρίς εγγυήσεις υπηρεσιών και με περιορισμούς αδειοδότησης σε ορισμένο περιεχόμενο. Εκτελέστε τον δικό σας ή χρησιμοποιήστε έναν εθνικό ή εμπορικό.
Τι είναι το ECL;
Η Expression Constraint Language του SNOMED CT, μια σύνταξη ερωτημάτων για σύνολα εννοιών (για παράδειγμα << 73211009 για διαβήτη και όλους τους υποτύπους του). Οι διακομιστές που το υποστηρίζουν δέχονται ECL σε φίλτρα ValueSet και $expand.
Πώς γνωρίζω ποια έκδοση SNOMED CT έχει ένας διακομιστής;
Ρωτήστε το CodeSystem (GET /CodeSystem?url=http://snomed.info/sct) και διαβάστε την έκδοσή του, η οποία κωδικοποιεί την έκδοση και την ημερομηνία κυκλοφορίας (για παράδειγμα http://snomed.info/sct/900000000000207008/version/20260301). Καρφιτσώστε το στα αιτήματά σας όταν τα αποτελέσματα πρέπει να είναι αναπαραγώγιμα.
Δοκιμάστε δωρεάν στο sandbox
Η πρώτη σας κλήση FHIR σε 5 λεπτά. Ένα API HL7 FHIR R4 με τη συγκατάθεση του ασθενούς ενσωματωμένη: δοκιμάστε το στο sandbox, στη συνέχεια συνδέστε τη δική σας εφαρμογή ή σύστημα κλινικής.
Δωρεάν · 30 συνθετικοί ασθενείς · χωρίς κάρτα

