diff --git a/integration-data/src/main/java/org/bahmni_avni_integration/integration_data/repository/MappingMetaDataRepository.java b/integration-data/src/main/java/org/bahmni_avni_integration/integration_data/repository/MappingMetaDataRepository.java index 9cfc8afe..63e7dbdf 100644 --- a/integration-data/src/main/java/org/bahmni_avni_integration/integration_data/repository/MappingMetaDataRepository.java +++ b/integration-data/src/main/java/org/bahmni_avni_integration/integration_data/repository/MappingMetaDataRepository.java @@ -53,12 +53,24 @@ default String getBahmniValue(MappingGroup mappingGroup, MappingType mappingType return mapping.getBahmniValue(); } + default String getMandatoryBahmniValue(MappingGroup mappingGroup, MappingType mappingType) { + MappingMetaData mapping = findByMappingGroupAndMappingType(mappingGroup, mappingType); + if (mapping == null) throw new RuntimeException(String.format("No mapping found for mapping group: %s, mapping type: %s", mappingGroup, mappingType)); + return mapping.getBahmniValue(); + } + default String getBahmniValue(MappingGroup mappingGroup, MappingType mappingType, String avniValue) { MappingMetaData mapping = findByMappingGroupAndMappingTypeAndAvniValue(mappingGroup, mappingType, avniValue); if (mapping == null) return null; return mapping.getBahmniValue(); } + default String getMandatoryBahmniValue(MappingGroup mappingGroup, MappingType mappingType, String avniValue) { + MappingMetaData mapping = findByMappingGroupAndMappingTypeAndAvniValue(mappingGroup, mappingType, avniValue); + if (mapping == null) throw new RuntimeException(String.format("No mapping found for mapping group: %s, mapping type: %s, avni value: %s", mappingGroup, mappingType, avniValue)); + return mapping.getBahmniValue(); + } + default MappingMetaData getConceptMappingByOpenMRSConcept(String openMRSConceptUuid, BahmniEncounterToAvniEncounterMetaData bahmniEncounterToAvniEncounterMetaData, boolean isIgnorable) { MappingMetaData mappingMetaData = findByMappingGroupAndMappingTypeAndBahmniValue(MappingGroup.Observation, MappingType.Concept, openMRSConceptUuid); if (mappingMetaData == null && !isIgnorable && !bahmniEncounterToAvniEncounterMetaData.isIgnoredInBahmni(openMRSConceptUuid)) diff --git a/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/EnrolmentMapper.java b/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/EnrolmentMapper.java index 4b065943..61b16bf4 100644 --- a/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/EnrolmentMapper.java +++ b/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/EnrolmentMapper.java @@ -77,14 +77,14 @@ private String getEncounterDateTime(Enrolment enrolment, OpenMRSVisit visit, boo private OpenMRSSaveObservation formGroupObservation(Enrolment enrolment, MappingType mappingType) { - var formConcept = mappingMetaDataRepository.getBahmniValue(MappingGroup.ProgramEnrolment, mappingType, enrolment.getProgram()); + var formConcept = mappingMetaDataRepository.getMandatoryBahmniValue(MappingGroup.ProgramEnrolment, mappingType, enrolment.getProgram()); var groupObservation = new OpenMRSSaveObservation(); groupObservation.setConcept(formConcept); return groupObservation; } private OpenMRSSaveObservation existingGroupObs(Enrolment enrolment, MappingType mappingType, OpenMRSFullEncounter existingEncounter) { - var formConceptUuid = mappingMetaDataRepository.getBahmniValue(MappingGroup.ProgramEnrolment, mappingType, enrolment.getProgram()); + var formConceptUuid = mappingMetaDataRepository.getMandatoryBahmniValue(MappingGroup.ProgramEnrolment, mappingType, enrolment.getProgram()); Optional existingGroupObs = existingEncounter.findObservation(formConceptUuid); var groupObservation = new OpenMRSSaveObservation(); existingGroupObs.ifPresent(o -> groupObservation.setUuid(o.getObsUuid())); @@ -162,4 +162,4 @@ private OpenMRSSaveObservation programDataObs(Enrolment enrolment, boolean isExi isExit ? FormatAndParseUtil.toHumanReadableFormat(enrolment.getExitDateTime()) : FormatAndParseUtil.toHumanReadableFormat(enrolment.getEnrolmentDateTime())), ObsDataType.Text); } -} \ No newline at end of file +} diff --git a/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/SubjectMapper.java b/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/SubjectMapper.java index 03c8b3a5..c63a4e1f 100644 --- a/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/SubjectMapper.java +++ b/integrator/src/main/java/org/bahmni_avni_integration/mapper/avni/SubjectMapper.java @@ -59,7 +59,7 @@ public OpenMRSEncounter mapSubjectToExistingEncounter(OpenMRSFullEncounter exist } private List groupObs(List observations) { - var formConcept = mappingMetaDataRepository.getBahmniValue(MappingGroup.PatientSubject, MappingType.CommunityRegistration_BahmniForm); + var formConcept = mappingMetaDataRepository.getMandatoryBahmniValue(MappingGroup.PatientSubject, MappingType.CommunityRegistration_BahmniForm); var groupObservation = new OpenMRSSaveObservation(); groupObservation.setConcept(formConcept); groupObservation.setGroupMembers(observations); @@ -67,7 +67,7 @@ private List groupObs(List obser } private List existingGroupObs(OpenMRSFullEncounter existingEncounter, List observations) { - var formConceptUuid = mappingMetaDataRepository.getBahmniValue(MappingGroup.PatientSubject, MappingType.CommunityRegistration_BahmniForm); + var formConceptUuid = mappingMetaDataRepository.getMandatoryBahmniValue(MappingGroup.PatientSubject, MappingType.CommunityRegistration_BahmniForm); Optional existingGroupObs = existingEncounter.findObservation(formConceptUuid); var groupObservation = new OpenMRSSaveObservation(); existingGroupObs.ifPresent(o -> groupObservation.setUuid(o.getObsUuid())); @@ -85,4 +85,4 @@ private OpenMRSSaveObservation eventDateObs(Subject subject) { var bahmniValue = mappingMetaDataRepository.getBahmniValue(MappingGroup.Common, MappingType.AvniEventDate_Concept); return OpenMRSSaveObservation.createPrimitiveObs(bahmniValue, FormatAndParseUtil.toISODateString(subject.getRegistrationDate()), ObsDataType.Date); } -} \ No newline at end of file +}