class FacilityBasicInfoSerializer(serializers.ModelSerializer): local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) facility_type = serializers.SerializerMethodField() def get_facility_type(self, facility): return { "id": facility.facility_type, "name": FACILITY_TYPES[facility.facility_type - 1][1] } class Meta: model = Facility fields = ( "id", "name", "local_body", "district", "state", "local_body_object", "district_object", "state_object", "facility_type", )
class FacilityBasicInfoSerializer(serializers.ModelSerializer): id = serializers.UUIDField(source="external_id", read_only=True) ward_object = WardSerializer(source="ward", read_only=True) local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) facility_type = serializers.SerializerMethodField() def get_facility_type(self, facility): return { "id": facility.facility_type, "name": facility.get_facility_type_display() } class Meta: model = Facility fields = ( "id", "name", "local_body", "district", "state", "ward_object", "local_body_object", "district_object", "state_object", "facility_type", )
class PatientListSerializer(serializers.ModelSerializer): id = serializers.CharField(source="external_id", read_only=True) facility = serializers.UUIDField(source="facility.external_id", allow_null=True, read_only=True) facility_object = FacilityBasicInfoSerializer(source="facility", read_only=True) ward_object = WardSerializer(source="ward", read_only=True) local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) blood_group = ChoiceField(choices=BLOOD_GROUP_CHOICES, required=True) disease_status = ChoiceField(choices=DISEASE_STATUS_CHOICES, default=DiseaseStatusEnum.SUSPECTED.value) source = ChoiceField(choices=PatientRegistration.SourceChoices) class Meta: model = PatientRegistration exclude = ( "created_by", "deleted", "ongoing_medication", "patient_search_id", "year_of_birth", "meta_info", "countries_travelled_old", "allergies", "external_id", ) read_only = TIMESTAMP_FIELDS
class FacilitySerializer(serializers.ModelSerializer): """Serializer for facility.models.Facility.""" facility_type = ChoiceField(choices=FACILITY_TYPES) # A valid location => { # "latitude": 49.8782482189424, # "longitude": 24.452545489 # } location = PointField(required=False) local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) class Meta: model = Facility fields = [ "id", "name", "local_body", "district", "state", "facility_type", "address", "location", "oxygen_capacity", "phone_number", "local_body_object", "district_object", "state_object", ]
class UserSerializer(SignUpSerializer): user_type = ChoiceField(choices=User.TYPE_CHOICES, read_only=True) is_superuser = serializers.BooleanField(read_only=True) local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) class Meta: model = User fields = ( "id", "username", "first_name", "last_name", "email", "user_type", "local_body", "district", "state", "phone_number", "gender", "age", "is_superuser", "verified", "local_body_object", "district_object", "state_object", ) read_only_fields = ("is_superuser", "verified", "user_type", "ward", "local_body", "district", "state") extra_kwargs = {"url": {"lookup_field": "username"}}
class UserListSerializer(serializers.ModelSerializer): local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) class Meta: model = User fields = ("id", "first_name", "last_name", "local_body_object", "district_object", "state_object")
class PatientListSerializer(serializers.ModelSerializer): local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) class Meta: model = PatientRegistration exclude = ("created_by", "deleted")
class UserListSerializer(serializers.ModelSerializer): local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) user_type = ChoiceField(choices=User.TYPE_CHOICES, read_only=True) class Meta: model = User fields = ("id", "first_name", "last_name", "local_body_object", "district_object", "state_object", "user_type")
class PatientListSerializer(serializers.ModelSerializer): facility = serializers.IntegerField(source="facility_id", allow_null=True, read_only=True) local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) class Meta: model = PatientRegistration exclude = ("created_by", "deleted")
class PatientListSerializer(serializers.ModelSerializer): facility = serializers.IntegerField(source="facility_id", allow_null=True, read_only=True) facility_object = FacilityBasicInfoSerializer(source="facility", read_only=True) local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) disease_status = ChoiceField(choices=DISEASE_STATUS_CHOICES, default=DiseaseStatusEnum.SUSPECTED.value) source = ChoiceField(choices=PatientRegistration.SourceChoices) class Meta: model = PatientRegistration exclude = ("created_by", "deleted", "ongoing_medication", "patient_search_id", "year_of_birth", "meta_info") read_only = TIMESTAMP_FIELDS
class PatientListSerializer(serializers.ModelSerializer): local_body_object = LocalBodySerializer(source="local_body", read_only=True) district_object = DistrictSerializer(source="district", read_only=True) state_object = StateSerializer(source="state", read_only=True) def to_representation(self, obj): repr = super().to_representation(obj) if not self.context["request"].user.is_superuser: repr.pop("name") repr.pop("phone_number") return repr class Meta: model = PatientRegistration exclude = ("created_by", "deleted")