refs/refs/fhir-to-omop-demo/data/convert/mapping/009-DiagnosticReport-measurement.sh

142 lines · sh
1#!/bin/bash
3# Converts FHIR DiagnosticReport resources to OMOPCDM measurement records.
5source _common.sh
7REPO="https://github.com/barabo/fhir-to-omop-demo"
8FILE="data/convert/mapping/009-DiagnosticReport-measurement.sh"
10simple_map '
11#--------------------------#-------------------------------#-----------------#
12# FHIR DiagnosticReport # OMOP measurement # Notes #
13#--------------------------#-------------------------------#-----------------#
14 null, # measurement_id # REQUIRED #
15 null, # person_id # REQUIRED #
16 null, # measurement_concept_id # REQUIRED #
17 null, # measurement_date # REQUIRED #
18 null, # measurement_datetime #
19 null, # measurement_time #
20 null, # measurement_type_concept_id # REQUIRED #
21 null, # operator_concept_id #
22 null, # value_as_number #
23 null, # value_as_concept_id #
24 null, # unit_concept_id #
25 null, # range_low #
26 null, # range_high #
27 null, # provider_id #
28 null, # visit_occurrence_id #
29 null, # visit_detail_id #
30 null, # measurement_source_value #
31 null, # measurement_source_concept_id #
32 null, # unit_source_value #
33 null, # unit_source_concept_id #
34 null, # value_source_value #
35 null, # measurement_event_id #
36 null, # meas_event_field_concept_id #
37#--------------------------#-------------------------------#-----------------#
40exit 0
42cat <<NOTES # Everything below is notes.
44# Terminology search:
45https://athena.ohdsi.org/search-terms/terms
47# OMOP CDM 5.4 measurement TABLE
48https://ohdsi.github.io/CommonDataModel/cdm54.html#measurement
49CREATE TABLE measurement (
50 measurement_id integer NOT NULL PRIMARY KEY,
51 person_id integer NOT NULL REFERENCES PERSON (PERSON_ID),
52 measurement_concept_id integer NOT NULL REFERENCES CONCEPT (CONCEPT_ID),
53 measurement_date date NOT NULL,
54 measurement_datetime datetime NULL,
55 measurement_time TEXT NULL,
56 measurement_type_concept_id integer NOT NULL REFERENCES CONCEPT (CONCEPT_ID),
57 operator_concept_id integer NULL REFERENCES CONCEPT (CONCEPT_ID),
58 value_as_number REAL NULL,
59 value_as_concept_id integer NULL REFERENCES CONCEPT (CONCEPT_ID),
60 unit_concept_id integer NULL REFERENCES CONCEPT (CONCEPT_ID),
61 range_low REAL NULL,
62 range_high REAL NULL,
63 provider_id integer NULL REFERENCES PROVIDER (PROVIDER_ID),
64 visit_occurrence_id integer NULL REFERENCES VISIT_OCCURRENCE (VISIT_OCCURRENCE_ID),
65 visit_detail_id integer NULL REFERENCES VISIT_DETAIL (VISIT_DETAIL_ID),
66 measurement_source_value TEXT NULL,
67 measurement_source_concept_id integer NULL REFERENCES CONCEPT (CONCEPT_ID),
68 unit_source_value TEXT NULL,
69 unit_source_concept_id integer NULL REFERENCES CONCEPT (CONCEPT_ID),
70 value_source_value TEXT NULL,
71 measurement_event_id integer NULL,
72 meas_event_field_concept_id integer NULL REFERENCES CONCEPT (CONCEPT_ID)
73);
75# FHIR R4 Example DiagnosticReport Resource
76https://www.hl7.org/fhir/R4B/DiagnosticReport.html
78 "resourceType": "DiagnosticReport",
79 "id": "4220",
80 "meta": {
81 "versionId": "1",
82 "lastUpdated": "2024-06-01T20:19:17.304+00:00",
83 "source": "#8IRCgpLiSxJLv3VD",
84 "profile": [
85 "http://hl7.org/fhir/us/core/StructureDefinition/us-core-diagnosticreport-note"
86 ]
87 },
88 "status": "final",
89 "category": [
90 {
91 "coding": [
92 {
93 "system": "http://loinc.org",
94 "code": "34117-2",
95 "display": "History and physical note"
96 },
97 {
98 "system": "http://loinc.org",
99 "code": "51847-2",
100 "display": "Evaluation+Plan note"
101 }
102 ]
103 }
104 ],
105 "code": {
106 "coding": [
107 {
108 "system": "http://loinc.org",
109 "code": "34117-2",
110 "display": "History and physical note"
111 },
112 {
113 "system": "http://loinc.org",
114 "code": "51847-2",
115 "display": "Evaluation+Plan note"
116 }
117 ]
118 },
119 "subject": {
120 "reference": "Patient/4217"
121 },
122 "encounter": {
123 "reference": "Encounter/4218"
124 },
125 "effectiveDateTime": "1959-02-22T06:37:53-05:00",
126 "issued": "1959-02-22T06:37:53.630-05:00",
127 "performer": [
128 {
129 "reference": "Practitioner/2187",
130 "display": "Dr. Douglass930 Windler79"
131 }
132 ],
133 "presentedForm": [
134 {
135 "contentType": "text/plain",
136 "data": "CjE5NTktMDItMjIKCiMgQ2hpZWYgQ29tcGxhaW50Ck5vIGNvbXBsYWludHMuCgojIEhpc3Rvcnkgb2YgUHJlc2VudCBJbGxuZXNzCkh1bWJlcnRvNDgyCiBpcyBhIDM1IHllYXItb2xkIG5vbi1oaXNwYW5pYyB3aGl0ZSBtYWxlLgoKIyBTb2NpYWwgSGlzdG9yeQpQYXRpZW50IGlzIG1hcnJpZWQuIFBhdGllbnQgaXMgYW4gYWN0aXZlIHNtb2tlciBhbmQgaXMgYW4gYWxjb2hvbGljLgogUGF0aWVudCBpZGVudGlmaWVzIGFzIGhldGVyb3NleHVhbC4KClBhdGllbnQgY29tZXMgZnJvbSBhIGhpZ2ggc29jaW9lY29ub21pYyBiYWNrZ3JvdW5kLgogUGF0aWVudCBoYXMgY29tcGxldGVkIHNvbWUgY29sbGVnZSBjb3Vyc2VzLgpQYXRpZW50IGN1cnJlbnRseSBoYXMgSHVtYW5hLgoKIyBBbGxlcmdpZXMKTm8gS25vd24gQWxsZXJnaWVzLgoKIyBNZWRpY2F0aW9ucwpObyBBY3RpdmUgTWVkaWNhdGlvbnMuCgojIEFzc2Vzc21lbnQgYW5kIFBsYW4KUGF0aWVudCBpcyBwcmVzZW50aW5nIHdpdGggYm9keSBtYXNzIGluZGV4IDMwKyAtIG9iZXNpdHkgKGZpbmRpbmcpLiAKCiMjIFBsYW4KCg=="
137 }
138 ]
141NOTES