Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
danfordnchembi committed Dec 15, 2021
1 parent edaf587 commit 900b2d9
Show file tree
Hide file tree
Showing 11 changed files with 8,469 additions and 702 deletions.
1,422 changes: 749 additions & 673 deletions .idea/workspace.xml

Large diffs are not rendered by default.

10 changes: 9 additions & 1 deletion API/validators.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,16 @@
import json
import pytz
from MasterData import models as master_data_models
import logging
from django.conf import settings


#SETTING UP LOGGING
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)

logging.basicConfig(format=fmt, level=lvl)


#The function will run a check to see if the date is not a future date
def check_if_not_future_date(date):
Expand Down Expand Up @@ -142,7 +150,7 @@ def validate_received_payload(data):
try:
if rule_name == "convert_date_formats":
date = convert_date_formats(val[field])
print(date)
logging.debug(date)
if date == "":
raised_error = "Failed to convert " + field + " with value of " + val[
field] + " to a valid date format."
Expand Down
1 change: 0 additions & 1 deletion API/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)

logging.basicConfig(format=fmt, level=lvl)
logging.debug("Logging started on %s for %s" % (logging.root.name, logging.getLevelName(lvl)))


# Create your views here.
Expand Down
2,540 changes: 2,540 additions & 0 deletions CPTCodesMappings-CSV.csv

Large diffs are not rendered by default.

2,540 changes: 2,540 additions & 0 deletions CPTCodesMappings-CSV_B5qxnuc.csv

Large diffs are not rendered by default.

2,540 changes: 2,540 additions & 0 deletions CPTCodesMappings-CSV_tL8evto.csv

Large diffs are not rendered by default.

29 changes: 18 additions & 11 deletions Core/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,16 @@
from TerminologyServicesManagement import models as terminology_management_services_models
from functools import wraps
from django.db.models import Count
import logging
from django.conf import settings


#SETTING UP LOGGING
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)

logging.basicConfig(format=fmt, level=lvl)


app = Celery()

Expand All @@ -29,7 +39,7 @@ def wrapped(self, *args, **kwargs):
tuple(args) == tuple(task['args']) and
kwargs == task['kwargs'] and
self.request.id != task['id']):
print('task {task_name} ({args}, {kwargs}) is running on {worker}, skipping')
logging.debug('task {task_name} ({args}, {kwargs}) is running on {worker}, skipping')

return None

Expand All @@ -47,12 +57,12 @@ def save_payload_from_csv():
for subdir, _, _ in os.walk(root_path):
for file in os.listdir(subdir):
file_path = os.path.join(root_path, file) # This will join the paths to create one path intelligently
print(file_path)
logging.debug(file_path)
with open(file_path, 'r') as fp:
lines = csv.reader(fp, delimiter=',')

imported_payload = core_views.regenerate_json_payload_from_csv(lines)
print(imported_payload)
logging.debug(imported_payload)

result = validators.validate_received_payload(json.loads(imported_payload))
transaction_status = result["transaction_status"]
Expand All @@ -61,9 +71,9 @@ def save_payload_from_csv():
os.remove(file_path)

if transaction_status is False:
print("validation failed")
logging.debug("validation failed")
else:
print("validation successful")
logging.debug("validation successful")
json_imported_payload = json.loads(imported_payload)
message_type = json_imported_payload["messageType"]
facility_name = json_imported_payload["orgName"]
Expand Down Expand Up @@ -265,7 +275,7 @@ def calculate_and_save_bed_occupancy_rate():
facility_hfr_code)

except Exception as e:
print(e)
logging.debug(e)

bed_occupancy = core_models.BedOccupancy.objects.get(id=bed_occupancy.id)
bed_occupancy.is_processed = True
Expand Down Expand Up @@ -333,7 +343,7 @@ def import_icd_10_codes():
instance_category.save()
else:
pass
print(categories)
logging.debug(categories)

for sub_category in sub_categories:
sub_category_name = sub_category['subCategoryName']
Expand All @@ -353,8 +363,7 @@ def import_icd_10_codes():
instance_sub_category.save()
else:
pass

print(sub_category_name)
logging.debug(sub_category_name)

# loop through the sub sub categories
for sub_sub_category in sub_sub_categories:
Expand All @@ -376,8 +385,6 @@ def import_icd_10_codes():
else:
pass

print(icd_10)

for y in icd_sub_code_array:
icd_10_sub_code = y["icd10Code"]
icd_10_sub_description = y["icd10Name"]
Expand Down
15 changes: 13 additions & 2 deletions Core/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@
from UserManagement import tables as user_management_tables
from django_tables2 import RequestConfig
from TerminologyServicesManagement import models as terminology_services_management_models
import logging
from django.conf import settings
from django.db import transaction


#SETTING UP LOGGING
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)

logging.basicConfig(format=fmt, level=lvl)


# Create your views here.
Expand Down Expand Up @@ -103,7 +113,7 @@ def filter_transaction_lines(request):


def download_cpt_codes_as_csv(request):
queryset = terminology_services_management_models.CPTCode.objects.all()
queryset = terminology_services_management_models.CPTCode.objects.all().defer('is_active')
opts = queryset.model._meta
model = queryset.model
response = HttpResponse(content_type='text/csv')
Expand Down Expand Up @@ -154,6 +164,7 @@ def upload_cpt_codes(request):
return redirect(request.META['HTTP_REFERER'])


@transaction.atomic()
def save_cpt_code_entries(file_path, facility_id, facility_hfr_code):
# Delete all previous mappings

Expand All @@ -171,7 +182,7 @@ def save_cpt_code_entries(file_path, facility_id, facility_hfr_code):
else:
instance_cpt_code_mappings = terminology_services_management_models.CPTCodesMapping()
instance_cpt_code_mappings.cpt_code_id = line[0]
instance_cpt_code_mappings.local_code = line[4]
instance_cpt_code_mappings.local_code = line[5]
instance_cpt_code_mappings.facility_id = facility_id

instance_cpt_code_mappings.save()
Expand Down
9 changes: 9 additions & 0 deletions DHIS/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,15 @@
import calendar
from Core import models as core_models
from MappingsManagement import models as mappings_management_models
import logging
from django.conf import settings


#SETTING UP LOGGING
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)

logging.basicConfig(format=fmt, level=lvl)

app = Celery()

Expand Down
49 changes: 39 additions & 10 deletions MasterData/views.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from django.shortcuts import render, redirect, HttpResponse
from django.shortcuts import render, redirect
from django.db import transaction
from .tables import PayerMappingTable, ExemptionMappingTable, DepartmentMappingTable, WardMappingTable, \
GenderMappingTable, ServiceProviderRankingMappingTable, PlaceODeathMappingTable, CPTCodeMappingTable
from .models import Ward
Expand All @@ -8,6 +9,15 @@
from Core import forms as core_forms
from MappingsManagement import models as mappings_management_models
from TerminologyServicesManagement import models as terminology_management_services_models
import logging
from django.conf import settings


#SETTING UP LOGGING
fmt = getattr(settings, 'LOG_FORMAT', None)
lvl = getattr(settings, 'LOG_LEVEL', logging.DEBUG)

logging.basicConfig(format=fmt, level=lvl)


# Get all the mappings based on facility system admin logged in using the request context variable request
Expand All @@ -24,13 +34,14 @@ def get_departments_page(request):
department_mappings = mappings_management_models.DepartmentMapping.objects.filter(facility=facility)
department_mappings_table = DepartmentMappingTable(department_mappings)
department_mapping_form = DepartmentMappingForm(initial={'facility': request.user.profile.facility})
RequestConfig(request, paginate={"per_page": 10}).configure(department_mappings_table)
RequestConfig(request, paginate={"per_page": 15}).configure(department_mappings_table)
return render(request,
'MappingsManagement/Features/Departments.html', {"department_mappings_table": department_mappings_table,
"department_mapping_form" : department_mapping_form})


# Perform an update for a specific department mapping
@transaction.atomic()
def update_department(request, item_pk):
instance_department = mappings_management_models.DepartmentMapping.objects.get(id=item_pk)
form = DepartmentMappingForm(instance=instance_department)
Expand All @@ -43,7 +54,7 @@ def update_department(request, item_pk):
return redirect(request.META['HTTP_REFERER'])
else:
pass
else:
else:#This block of code will pass the header and update url to a generic page so as to reuse it for all updates
header = "Update Department"
url = "update_department"

Expand All @@ -69,7 +80,7 @@ def get_cpt_codes_page(request):
cpt_code_mappings_table = CPTCodeMappingTable(cpt_code_mappings)
cpt_code_mapping_form = CPTCodesMappingForm(initial={'facility': request.user.profile.facility})
cpt_code_mapping_import_form = core_forms.CPTCodeMappingImportForm()
RequestConfig(request, paginate={"per_page": 10}).configure(cpt_code_mappings_table)
RequestConfig(request, paginate={"per_page": 15}).configure(cpt_code_mappings_table)
return render(request, 'MappingsManagement/Features/CPTCodes.html',
{"cpt_code_mappings_table": cpt_code_mappings_table,
"cpt_code_mapping_form": cpt_code_mapping_form,
Expand All @@ -78,6 +89,7 @@ def get_cpt_codes_page(request):


#Add more mappings to the CPT mappings done
@transaction.atomic()
def update_cpt_code(request, item_pk):
instance_cpt_code = terminology_management_services_models.CPTCodesMapping.objects.get(id=item_pk)
form = CPTCodesMappingForm(instance=instance_cpt_code)
Expand All @@ -90,7 +102,7 @@ def update_cpt_code(request, item_pk):
return redirect(request.META['HTTP_REFERER'])
else:
pass
else:
else:#This block of code will pass the header and update url to a generic page so as to reuse it for all updates
header = "Update CPT code"
url = "update_cpt_code"

Expand All @@ -114,11 +126,13 @@ def get_exemptions_page(request):
exemption_mappings = mappings_management_models.ExemptionMapping.objects.filter(facility=facility)
exemption_mappings_table = ExemptionMappingTable(exemption_mappings)
exemption_mapping_form = ExemptionMappingForm(initial={'facility': request.user.profile.facility})
RequestConfig(request, paginate={"per_page": 10}).configure(exemption_mappings_table)
RequestConfig(request, paginate={"per_page": 15}).configure(exemption_mappings_table)
return render(request, 'MappingsManagement/Features/Exemptions.html', {"exemption_mappings_table":exemption_mappings_table,
"exemption_mapping_form":exemption_mapping_form})


#This function will either update an existing exemption mapping record or load an instance of the
# exemption mapping record in a form for a user
@transaction.atomic()
def update_exemption(request, item_pk):
instance_exemption = mappings_management_models.ExemptionMapping.objects.get(id=item_pk)
form = ExemptionMappingForm(instance=instance_exemption)
Expand All @@ -131,6 +145,7 @@ def update_exemption(request, item_pk):
return redirect(request.META['HTTP_REFERER'])
else:
pass
#This block of code will pass the header and update url to a generic page so as to reuse it for all updates
else:
header = "Update Exemption"
url = "update_exemption"
Expand All @@ -141,6 +156,7 @@ def update_exemption(request, item_pk):
return redirect(request.META['HTTP_REFERER'])


#This function either laods saves a committed form or loads an empty form for the user to map records
def get_payers_page(request):
if request.method == "POST":
payer_mapping_form = PayerMappingForm(request.POST)
Expand All @@ -154,11 +170,13 @@ def get_payers_page(request):
payer_mappings = mappings_management_models.PayerMapping.objects.filter(facility=facility)
payer_mappings_table = PayerMappingTable(payer_mappings)
payer_mapping_form = PayerMappingForm(initial={'facility': request.user.profile.facility})
RequestConfig(request, paginate={"per_page": 10}).configure(payer_mappings_table)
RequestConfig(request, paginate={"per_page": 15}).configure(payer_mappings_table)
return render(request, 'MappingsManagement/Features/Payers.html', {"payer_mappings_table":payer_mappings_table,
"payer_mapping_form":payer_mapping_form})


#this function will either update an existing payer record or load an instance of the payer record in a form for a user
@transaction.atomic()
def update_payer(request, item_pk):
instance_payer = mappings_management_models.PayerMapping.objects.get(id=item_pk)
form = PayerMappingForm(instance=instance_payer)
Expand All @@ -171,7 +189,7 @@ def update_payer(request, item_pk):
return redirect(request.META['HTTP_REFERER'])
else:
pass
else:
else:#This block of code will pass the header and update url to a generic page so as to reuse it for all updates
header = "Update Payer"
url = "update_payer"

Expand All @@ -181,14 +199,17 @@ def update_payer(request, item_pk):
return redirect(request.META['HTTP_REFERER'])


# This function will either load an emoty wards mapping form or save a ward definition after a user clicks on save
def get_wards_page(request):
#Save a new instance
if request.method == "POST":
ward_mapping_form = WardMappingForm(request.POST)

if ward_mapping_form.is_valid():
ward_mapping_form.full_clean()
ward_mapping_form.save()
return redirect(request.META['HTTP_REFERER'])
# Load an empty form
else:
facility = request.user.profile.facility
ward_mappings = Ward.objects.filter(facility=facility)
Expand All @@ -199,6 +220,8 @@ def get_wards_page(request):
"ward_mapping_form":ward_mapping_form})


# Update a ward mapping or load an instance of a ward mapping to a form for the user to verify
@transaction.atomic()
def update_ward(request, item_pk):
instance_ward = Ward.objects.get(id=item_pk)
form = WardMappingForm(instance=instance_ward)
Expand All @@ -220,7 +243,7 @@ def update_ward(request, item_pk):
})
return redirect(request.META['HTTP_REFERER'])


# Load a new gender mapping form or save a gender mapping form
def get_gender_page(request):
if request.method == "POST":
gender_mapping_form = GenderMappingForm(request.POST)
Expand All @@ -239,6 +262,8 @@ def get_gender_page(request):
"gender_mapping_form": gender_mapping_form})


# Update the gender mapping or load an instance of the record on a form
@transaction.atomic()
def update_gender(request, item_pk):
instance_gender = mappings_management_models.GenderMapping.objects.get(id=item_pk)
form = GenderMappingForm(instance=instance_gender)
Expand All @@ -261,6 +286,7 @@ def update_gender(request, item_pk):
return redirect(request.META['HTTP_REFERER'])


# Returns an empty service prvider ranking form or saves the mapping done by the user
def get_service_provider_rankings_page(request):
if request.method == "POST":
service_provider_ranking_mapping_form = ServiceProviderRankingMappingForm(request.POST)
Expand All @@ -281,6 +307,7 @@ def get_service_provider_rankings_page(request):
"service_provider_ranking_mappings_form": service_provider_ranking_mapping_mapping_form})


@transaction.atomic()
def update_service_provider_ranking(request, item_pk):
instance_server_provider_ranking = mappings_management_models.ServiceProviderRankingMapping.objects.get(id=item_pk)
form = ServiceProviderRankingMappingForm(instance=instance_server_provider_ranking)
Expand Down Expand Up @@ -324,6 +351,7 @@ def get_places_of_death_page(request):
"place_of_death_mapping_form": place_of_death_mapping_form})


@transaction.atomic()
def update_place_of_death(request, item_pk):
instance_place_of_death = mappings_management_models.ServiceProviderRankingMapping.objects.get(id=item_pk)
form = ServiceProviderRankingMappingForm(instance=instance_place_of_death)
Expand All @@ -347,6 +375,7 @@ def update_place_of_death(request, item_pk):


#Permanently deletes a mapping that was done by the respective facility
@transaction.atomic()
def delete_mapping(request):
if request.method == "POST":
mapping_id = int(request.POST["mapping_id"])
Expand Down
Loading

0 comments on commit 900b2d9

Please sign in to comment.