def build_fhir_age(cls, imis_medication): adult = cls.build_fhir_adult(imis_medication) kid = cls.build_fhir_kid(imis_medication) if adult == "": adult = None if kid == "": kid = None extension = Extension() extension.url = "useContextAge" extension.valueUsageContext = UsageContext() extension.valueUsageContext.code = Coding() extension.valueUsageContext.code.code = "age" extension.valueUsageContext.valueCodeableConcept = CodeableConcept() if adult is not None: coding_adult = Coding() coding_adult.code = adult coding_adult.display = "Adult" extension.valueUsageContext.valueCodeableConcept.coding.append( coding_adult) if kid is not None: coding_kid = Coding() coding_kid.code = kid coding_kid.display = "Kid" extension.valueUsageContext.valueCodeableConcept.coding.append( coding_kid) extension.valueUsageContext.valueCodeableConcept.text = "Adult or Kid" return extension
def build_fhir_gender(cls, imis_medication): male = cls.build_fhir_male(imis_medication) female = cls.build_fhir_female(imis_medication) if male == "": male = None if female == "": female = None extension = Extension() extension.url = "useContextGender" extension.valueUsageContext = UsageContext() extension.valueUsageContext.code = Coding() extension.valueUsageContext.code.code = "gender" extension.valueUsageContext.valueCodeableConcept = CodeableConcept() if male is not None: coding_male = Coding() coding_male.code = male coding_male.display = "Male" extension.valueUsageContext.valueCodeableConcept.coding.append( coding_male) if female is not None: coding_female = Coding() coding_female.code = female coding_female.display = "Female" extension.valueUsageContext.valueCodeableConcept.coding.append( coding_female) extension.valueUsageContext.valueCodeableConcept.text = "Male or Female" return extension
def build_fhir_item_type_extension(cls, imis_medication): extension = Extension() extension.url = "topic" extension.valueCodeableConcept = cls.build_codeable_concept( "DefinitionTopic", "http://terminology.hl7.org/CodeSystem/definition-topic", text=imis_medication.type) return extension
def build_extension(fhir_patient, imis_insuree, value): extension = Extension() if value == "head": extension.url = "https://openimis.atlassian.net/wiki/spaces/OP/pages/960069653/FHIR+extension+isHead" extension.valueBoolean = imis_insuree.head elif value == "validity_from": extension.url = "https://openimis.atlassian.net/wiki/spaces/OP/pages/960331779/FHIR+extension+registrationDate" if imis_insuree.validity_from is None: extension.valueString = "" else: extension.valueString = imis_insuree.validity_from elif value == "family.location.code": extension.url = "https://openimis.atlassian.net/wiki/spaces/OP/pages/960495619/FHIR+extension+Location" if hasattr(imis_insuree, "family") and imis_insuree.family is not None: if imis_insuree.family.location.code is not None: extension.valueString = imis_insuree.family.location.code else: extension.valueString = "" else: extension.valueString = "" elif value == "education.education": extension.url = "https://openimis.atlassian.net/wiki/spaces/OP/pages/960331788/FHIR+extension+Education" if hasattr(imis_insuree, "education") and imis_insuree.education is not None: if imis_insuree.education.education is not None: extension.valueString = imis_insuree.education.education else: extension.valueString = "" else: extension.valueString = "" else: extension.url = "https://openimis.atlassian.net/wiki/spaces/OP/pages/960135203/FHIE+extension+Profession" if hasattr( imis_insuree, "profession") and imis_insuree.profession is not None: if imis_insuree.profession.profession is not None: extension.valueString = imis_insuree.profession.profession else: extension.valueString = "" else: extension.valueString = "" fhir_patient.extension.append(extension)
def build_unit_price_extension(cls, value): extension = Extension() money = Money() extension.url = "unitPrice" extension.valueMoney = money extension.valueMoney.value = value if hasattr(core, 'currency'): extension.valueMoney.currency = core.currency return extension
def build_fhir_venue(cls, imis_medication): display = "" if imis_medication.care_type == "O": display = "Out-patient" if imis_medication.care_type == "I": display = "In-patient" if imis_medication.care_type == "B": display = "Both" extension = Extension() if imis_medication.care_type is not None: extension.url = "useContextVenue" extension.valueUsageContext = UsageContext() extension.valueUsageContext.code = Coding() extension.valueUsageContext.code.code = "venue" extension.valueUsageContext.valueCodeableConcept = CodeableConcept( ) coding_venue = Coding() coding_venue.code = imis_medication.care_type coding_venue.display = display extension.valueUsageContext.valueCodeableConcept.coding.append( coding_venue) extension.valueUsageContext.valueCodeableConcept.text = "Clinical Venue" return extension
def build_fhir_item_frequency_extension(cls, imis_medication): extension = Extension() extension.url = "frequency" extension.valueInteger = imis_medication.frequency return extension
def build_poverty_status_extension(cls, imis_insuree): extension = Extension() extension.url = "povertyStatus" extension.valueBoolean = imis_insuree.family.poverty return extension
def __build_date_extension(cls, value, name): ext_date = Extension() ext_date.url = name ext_date.valueDate = value.isoformat() if value else None return ext_date