Skip to content

Commit

Permalink
load to in-mem using ORM's values_list
Browse files Browse the repository at this point in the history
  • Loading branch information
rithviknishad committed Jul 10, 2023
1 parent 387a1e3 commit 1149914
Showing 1 changed file with 25 additions and 12 deletions.
37 changes: 25 additions & 12 deletions care/facility/static_data/medibase.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,33 @@
from django.db.models import CharField, TextField, Value
from django.db.models.functions import Coalesce

from care.facility.models.prescription import MedibaseMedicine


def load_medibase_in_memory():
medibase_objects = MedibaseMedicine.objects.all()
return tuple(
(
obj.external_id,
obj.name,
obj.type,
obj.generic or "",
obj.company or "",
obj.contents or "",
obj.cims_class or "",
obj.atc_classification or "",
return (
MedibaseMedicine.objects.all()
.annotate(
generic_pretty=Coalesce("generic", Value(""), output_field=CharField()),
company_pretty=Coalesce("company", Value(""), output_field=CharField()),
contents_pretty=Coalesce("contents", Value(""), output_field=TextField()),
cims_class_pretty=Coalesce(
"cims_class", Value(""), output_field=CharField()
),
atc_classification_pretty=Coalesce(
"atc_classification", Value(""), output_field=TextField()
),
)
.values_list(
"external_id",
"name",
"type",
"generic_pretty",
"company_pretty",
"contents_pretty",
"cims_class_pretty",
"atc_classification_pretty",
)
for obj in medibase_objects
)


Expand Down

0 comments on commit 1149914

Please sign in to comment.