Skip to content

Commit f910322

Browse files
BAH-2433 | refactored to display chief complaint as single concept in hiu
1 parent 266efbf commit f910322

4 files changed

Lines changed: 29 additions & 1 deletion

File tree

.github/workflows/build_and_upload.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ on:
77
push:
88
branches:
99
- master
10+
- BAH-2433
1011
workflow_dispatch:
1112
env:
1213
ORG_NAME: BahmniIndiaDistro

omod/src/main/java/org/bahmni/module/hip/web/model/FhirOPConsult.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.bahmni.module.hip.web.model;
22

3+
import org.apache.logging.log4j.LogManager;
4+
import org.apache.logging.log4j.Logger;
35
import org.bahmni.module.hip.web.service.FHIRResourceMapper;
46
import org.bahmni.module.hip.web.service.FHIRUtils;
57
import org.hl7.fhir.r4.model.Condition;
@@ -17,6 +19,8 @@
1719
import org.hl7.fhir.r4.model.ServiceRequest;
1820

1921
import org.openmrs.EncounterProvider;
22+
import org.openmrs.Obs;
23+
2024
import java.util.List;
2125
import java.util.Date;
2226
import java.util.Objects;
@@ -40,6 +44,7 @@ public class FhirOPConsult {
4044
private final Procedure procedure;
4145
private final List<DocumentReference> patientDocuments;
4246
private final List<ServiceRequest> serviceRequest;
47+
private static Logger logger = LogManager.getLogger(FhirOPConsult.class);
4348

4449
public FhirOPConsult(List<Condition> chiefComplaints,
4550
List<Condition> medicalHistory, Date visitTimeStamp,
@@ -107,8 +112,14 @@ public static FhirOPConsult fromOpenMrsOPConsult(OpenMrsOPConsult openMrsOPConsu
107112
for(int i=0;i<openMrsOPConsult.getMedicalHistoryConditions().size();i++){
108113
fhirMedicalHistoryList.add(fhirResourceMapper.mapToCondition(openMrsOPConsult.getMedicalHistoryConditions().get(i), patient));
109114
}
115+
for(Obs obs:openMrsOPConsult.getObservations()){
116+
logger.warn("openMrsOPConsult.getObservations() ----- "+obs.getConcept().getName());
117+
}
110118
List<Observation> fhirObservationList = openMrsOPConsult.getObservations().stream().
111119
map(fhirResourceMapper::mapToObs).collect(Collectors.toList());
120+
for(Observation obs:fhirObservationList) {
121+
logger.warn("fhirObservationList ----- " + obs.getValue());
122+
}
112123
Procedure procedure = openMrsOPConsult.getProcedure() != null ?
113124
fhirResourceMapper.mapToProcedure(openMrsOPConsult.getProcedure()) : null;
114125
List<DocumentReference> patientDocuments = openMrsOPConsult.getPatientDocuments().stream().

omod/src/main/java/org/bahmni/module/hip/web/service/ConsultationService.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.bahmni.module.hip.web.service;
22

3+
import org.apache.logging.log4j.LogManager;
4+
import org.apache.logging.log4j.Logger;
35
import org.bahmni.module.hip.api.dao.ConsultationDao;
46
import org.bahmni.module.hip.api.dao.OPConsultDao;
57
import org.bahmni.module.hip.web.model.OpenMrsCondition;
@@ -29,6 +31,8 @@ public class ConsultationService {
2931
private final ConsultationDao consultationDao;
3032
private final OPConsultDao opConsultDao;
3133
private final DiagnosticReportService diagnosticReportService;
34+
private static Logger logger = LogManager.getLogger(ConsultationService.class);
35+
public static final String CONCEPT_DETAILS_CONCEPT_CLASS = "Concept Details";
3236

3337
public static Set<String> conceptNames = new HashSet<>(Arrays.asList("Image","Tuberculosis, Treatment Plan","Tuberculosis, Next Followup Visit","Tuberculosis, Plan for next visit","Tuberculosis, Patient Category","Current Followup Visit After",
3438
"Tuberculosis, Plan for next visit","Malaria, Parents Name","Malaria, Death Date", "Childhood Illness, Vitamin A Capsules Provided","Childhood Illness, Albendazole Given","Childhood Illness, Referred out",
@@ -165,7 +169,8 @@ private Map<Encounter, List<Order>> getEncounterListMapForOrders(List<Order> ord
165169
}
166170

167171
private void getGroupMembersOfObs(Obs physicalExamination, List<Obs> groupMembers) {
168-
if (physicalExamination.getGroupMembers().size() > 0) {
172+
logger.warn("getGroupMembersOfObs ----- "+physicalExamination.getConcept().getName()+" ------ class ------ "+physicalExamination.getConcept().getConceptClass().getName());
173+
if (physicalExamination.getGroupMembers().size() > 0 && !CONCEPT_DETAILS_CONCEPT_CLASS.equals(physicalExamination.getConcept().getConceptClass().getName())) {
169174
for (Obs groupMember : physicalExamination.getGroupMembers()) {
170175
if (conceptNames.contains(groupMember.getConcept().getDisplayString())) continue;
171176
getGroupMembersOfObs(groupMember, groupMembers);

omod/src/main/java/org/bahmni/module/hip/web/service/FHIRResourceMapper.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package org.bahmni.module.hip.web.service;
22

3+
import org.apache.logging.log4j.LogManager;
4+
import org.apache.logging.log4j.Logger;
35
import org.bahmni.module.hip.Config;
46
import org.bahmni.module.hip.web.model.OpenMrsCondition;
57
import org.hibernate.Hibernate;
@@ -59,6 +61,8 @@ public class FHIRResourceMapper {
5961
private final EncounterTranslatorImpl encounterTranslator;
6062
private final ObservationTranslatorImpl observationTranslator;
6163
public static Set<String> conceptNames = new HashSet<>(Arrays.asList("Follow up Date", "Additional Advice on Discharge", "Discharge Summary, Plan for follow up"));
64+
public static final String CONCEPT_DETAILS_CONCEPT_CLASS = "Concept Details";
65+
private static Logger logger = LogManager.getLogger(FHIRResourceMapper.class);
6266

6367
@Autowired
6468
public FHIRResourceMapper(PatientTranslator patientTranslator, PractitionerTranslatorProviderImpl practitionerTranslatorProvider, MedicationRequestTranslator medicationRequestTranslator, MedicationTranslator medicationTranslator, EncounterTranslatorImpl encounterTranslator, ObservationTranslatorImpl observationTranslator) {
@@ -229,8 +233,15 @@ public Condition mapToCondition(OpenMrsCondition openMrsCondition, Patient patie
229233
public Observation mapToObs(Obs obs) {
230234
Concept concept = initializeEntityAndUnproxy(obs.getConcept());
231235
obs.setConcept(concept);
236+
if (obs.getGroupMembers().size() > 0 && CONCEPT_DETAILS_CONCEPT_CLASS.equals(obs.getConcept().getConceptClass().getName()) && obs.getFormFieldNamespace() != null) {
237+
Obs[] groupMembersArray = new Obs[obs.getGroupMembers().size()];
238+
groupMembersArray = obs.getGroupMembers().toArray(groupMembersArray);
239+
obs.setValueText(groupMembersArray[2].getValueCoded().getDisplayString() + " " + "since" + " " + groupMembersArray[0].getValueNumeric() + " " + groupMembersArray[1].getValueCoded().getDisplayString());
240+
logger.warn("obs.getConcept().getName() ----- "+obs.getConcept().getName());
241+
}
232242
Observation observation = observationTranslator.toFhirResource(obs);
233243
observation.addNote(new Annotation(new MarkdownType(obs.getComment())));
244+
logger.warn("observation.getValue() ----- "+observation.getValue());
234245
return observation;
235246
}
236247

0 commit comments

Comments
 (0)