Skip to content

Commit 08c9065

Browse files
committed
Move terminology modules into terminology module.
1 parent dda8a9e commit 08c9065

File tree

9 files changed

+51
-41
lines changed

9 files changed

+51
-41
lines changed

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ dist:
77

88
build:
99
mkdir -p build
10-
python3 -m $(NAME).save_codes
10+
python3 -m $(NAME).main
1111

1212
deploy: dist
1313
twine upload dist/*

ortho_codes/__init__.py

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +0,0 @@
1-
import json
2-
3-
class Code:
4-
def __init__(self, system, code, display, synonyms = []):
5-
self.system = system
6-
self.code = code
7-
self.display = display
8-
self.synonyms = synonyms
9-
10-
def to_json(self):
11-
return json.dumps({
12-
'system': self.system,
13-
'code': self.code,
14-
'display': self.display,
15-
'synonyms': self.synonyms
16-
}, indent=4)
17-

ortho_codes/save_codes.py renamed to ortho_codes/main.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,39 @@
99
import json
1010
import csv
1111
from pathlib import Path
12-
from . import Code, snomed, hl7, vendors
12+
13+
from ortho_codes.terminology import hl7, open_ortho, snomed, vendors
14+
from ortho_codes.terminology import Code
15+
1316

1417
build_path = Path('.', 'build')
1518

19+
1620
def save_to_json(data, filename):
1721
with open(filename, 'w') as f:
1822
json.dump(data, f, indent=4)
1923

24+
2025
def save_to_csv(data, filename):
2126
with open(filename, 'w', newline='') as f:
2227
writer = csv.writer(f)
2328
writer.writerow(['Key', 'System', 'Code', 'Display'])
2429
for key, value in data.items():
25-
writer.writerow([key, value['system'], value['code'], value['display']])
30+
writer.writerow(
31+
[key, value['system'], value['code'], value['display']])
32+
2633

2734
def module_to_dict(module):
2835
Codes = {name: getattr(module, name) for name in dir(module)
2936
if isinstance(getattr(module, name), Code)}
3037

3138
# Convert Code instances to dictionaries for JSON and CSV
3239
return {name: {'system': code.system, 'code': code.code, 'display': code.display}
33-
for name, code in Codes.items()}
40+
for name, code in Codes.items()}
3441

3542

3643
if __name__ == "__main__":
37-
for module in (snomed, hl7, vendors):
44+
for module in (snomed, hl7, vendors, open_ortho):
3845
dict_module = module_to_dict(module)
3946
save_to_json(dict_module, build_path / f'{module.__name__}.json')
4047
save_to_csv(dict_module, build_path / f'{module.__name__}.csv')

ortho_codes/terminology/__init__.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import json
2+
3+
class Code:
4+
def __init__(self, system, code, display, synonyms = []):
5+
self.system = system
6+
self.code = code
7+
self.display = display
8+
self.synonyms = synonyms
9+
10+
def to_json(self):
11+
return json.dumps({
12+
'system': self.system,
13+
'code': self.code,
14+
'display': self.display,
15+
'synonyms': self.synonyms
16+
}, indent=4)
17+
File renamed without changes.

ortho_codes/open_ortho.py renamed to ortho_codes/terminology/open_ortho.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
Used whenever a code is necessary, for various implementations.
44
"""
55
from . import Code
6+
PREFIX = 'OPOR'
67

78
def make_code(s):
89
"""
@@ -19,11 +20,12 @@ def make_code(s):
1920

2021
class NAMESPACES:
2122
root_uid = "1.3.6.1.4.1.61741.11.3"
22-
url = "http://open-ortho.org/codes"
23+
url = "http://open-ortho.org/terminology"
2324

2425
IV01 = Code(
2526
system=NAMESPACES.url,
2627
code=f"{NAMESPACES.root_uid}.{make_code('IV01')}",
2728
display='Intraoral Right Buccal Segment, Centric Occlusion, Direct View',
2829
synonyms=[''])
2930
""" Used for ... """
31+

ortho_codes/snomed.py renamed to ortho_codes/terminology/snomed.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,41 @@
55
"""
66
from . import Code
77

8-
class NAMESPACES:
9-
snomedct = "http://snomed.info/sct"
8+
PREFIX = "SCT"
9+
SYSTEM = "http://snomed.info/sct"
1010

11-
dental_chair = Code(
12-
system=NAMESPACES.snomedct,
11+
class CodeSnomed(Code):
12+
13+
def __init__(self,**kwargs):
14+
self.prefix = PREFIX
15+
self.system = SYSTEM
16+
self.code = kwargs.get('code')
17+
self.display = kwargs.get('display')
18+
19+
dental_chair = CodeSnomed(
1320
code='706356006',
1421
display='Dental examination/treatment chair')
1522

16-
orthod_treatment_perm_class1 = Code(
17-
system=NAMESPACES.snomedct,
23+
orthod_treatment_perm_class1 = CodeSnomed(
1824
code='3891000',
1925
display='Comprehensive orthodontic treatment, permanent dentition, for class I malocclusion')
2026

21-
ortho_treatment = Code(
22-
system=NAMESPACES.snomedct,
27+
ortho_treatment = CodeSnomed(
2328
code='122452007',
2429
display='Comprehensive orthodontic treatment')
2530

26-
orthodontist = Code(
27-
system=NAMESPACES.snomedct,
31+
orthodontist = CodeSnomed(
2832
code='37504001',
2933
display='Orthodontist')
3034

31-
clinical_staff = Code(
32-
system=NAMESPACES.snomedct,
35+
clinical_staff = CodeSnomed(
3336
code='4162009',
3437
display='Dental assistant')
3538

36-
admin_staff = Code(
37-
system=NAMESPACES.snomedct,
39+
admin_staff = CodeSnomed(
3840
code='224608005',
3941
display='Administrative healthcare staff')
4042

41-
tech_support = Code(
42-
system=NAMESPACES.snomedct,
43+
tech_support = CodeSnomed(
4344
code='159324001',
4445
display='Technical assistant')

ortho_codes/vendors.py renamed to ortho_codes/terminology/vendors.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44

55
class NAMESPACES:
66
topsortho = "http://topsortho.com/topsdb"
7-
open_ortho = "http://open-ortho.org/codes"
7+
open_ortho = "http://open-ortho.org/terminology"

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
# package_data={'yourpackage': ['data/*.dat']}, # Include specific package data
3232
entry_points={ # Allows you to create command-line scripts
3333
'console_scripts': [
34-
'oo-codes=ortho_codes.save_codes:main',
34+
'oo-codes=ortho_codes.main:main',
3535
],
3636
},
3737
)

0 commit comments

Comments
 (0)