use of ca.uhn.fhir.model.dstu2.resource.Encounter.Location in project eCRNow by drajer-health.
the class Dstu2CdaHeaderGenerator method getEncompassingEncounter.
public static String getEncompassingEncounter(Encounter en, Practitioner pr, Location loc, Organization org, LaunchDetails details) {
StringBuilder sb = new StringBuilder(2000);
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.COMPONENT_OF_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.ENCOMPASSING_ENC_EL_NAME));
if (en != null) {
sb.append(CdaGeneratorUtils.getXmlForII(details.getAssigningAuthorityId(), en.getId().getIdPart()));
// Add all the encounter identifiers to the Ids
List<IdentifierDt> ids = en.getIdentifier();
if (ids != null) {
for (IdentifierDt id : ids) {
if (id.getSystem() != null && id.getValue() != null) {
sb.append(CdaGeneratorUtils.getXmlForII(CdaGeneratorUtils.getRootOid(id.getSystem(), details.getAssigningAuthorityId()), id.getValue()));
}
}
}
sb.append(Dstu2CdaFhirUtilities.getCodeableConceptXml(en.getType(), CdaGeneratorConstants.CODE_EL_NAME, false));
sb.append(Dstu2CdaFhirUtilities.getPeriodXml(en.getPeriod(), CdaGeneratorConstants.EFF_TIME_EL_NAME));
} else {
sb.append(CdaGeneratorUtils.getXmlForIIUsingGuid());
sb.append(CdaGeneratorUtils.getXmlForNullCD(CdaGeneratorConstants.CODE_EL_NAME, CdaGeneratorConstants.NF_NI));
sb.append(CdaGeneratorUtils.getXmlForNullEffectiveTime(CdaGeneratorConstants.EFF_TIME_EL_NAME, CdaGeneratorConstants.NF_NI));
}
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.RESP_PARTY_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.ASSIGNED_ENTITY_EL_NAME));
sb.append(getPractitionerXml(pr));
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.REP_ORG_EL_NAME));
sb.append(getOrganizationXml(org, details));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.REP_ORG_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.ASSIGNED_ENTITY_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.RESP_PARTY_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.LOCATION_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.HEALTHCARE_FACILITY_EL_NAME));
sb.append(getLocationXml(loc));
sb.append(CdaGeneratorUtils.getXmlForStartElement(CdaGeneratorConstants.SERVICE_PROVIDER_ORG_EL_NAME));
sb.append(getOrganizationXml(org, details));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.SERVICE_PROVIDER_ORG_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.HEALTHCARE_FACILITY_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.LOCATION_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.ENCOMPASSING_ENC_EL_NAME));
sb.append(CdaGeneratorUtils.getXmlForEndElement(CdaGeneratorConstants.COMPONENT_OF_EL_NAME));
return sb.toString();
}
use of ca.uhn.fhir.model.dstu2.resource.Encounter.Location in project eCRNow by drajer-health.
the class Dstu2CdaEicrGenerator method convertDstu2FhirBundletoCdaEicr.
public static String convertDstu2FhirBundletoCdaEicr(Dstu2FhirData data, LaunchDetails details, Eicr ecr) {
StringBuilder eICR = new StringBuilder();
if (data != null) {
Bundle bundle = data.getData();
if (bundle != null) {
List<Entry> entries = bundle.getEntry();
for (Entry ent : entries) {
// Populate data ..this can be moved to the APIs where the bundle is getting created.
if (ent.getResource() instanceof Patient) {
logger.info(" Bundle contains Patient ");
data.setPatient((Patient) ent.getResource());
} else if (ent.getResource() instanceof Practitioner) {
logger.info(" Bundle contains Practitioner ");
data.setPractitioner((Practitioner) ent.getResource());
} else if (ent.getResource() instanceof Encounter) {
logger.info(" Bundle contains Encounter ");
data.setEncounter((Encounter) ent.getResource());
} else if (ent.getResource() instanceof Location) {
logger.info(" Bundle contains Location ");
data.setLocation((Location) ent.getResource());
} else if (ent.getResource() instanceof Organization) {
logger.info(" Bundle contains Organization ");
data.setOrganization((Organization) ent.getResource());
} else if (ent.getResource() instanceof Condition) {
logger.info(" Bundle contains Condition ");
data.getConditions().add((Condition) ent.getResource());
} else if (ent.getResource() instanceof Observation) {
Observation obs = (Observation) ent.getResource();
if (obs.getCategory() != null && obs.getCategory().getCodingFirstRep() != null && obs.getCategory().getCodingFirstRep().getCode() != null && obs.getCategory().getCodingFirstRep().getCode().contentEquals(CdaGeneratorConstants.FHIR_LAB_RESULT_CATEGORY)) {
logger.info(" Bundle contains Lab Results ");
data.getLabResults().add((Observation) ent.getResource());
} else if (obs.getCategory() != null && obs.getCategory().getCodingFirstRep() != null && obs.getCategory().getCodingFirstRep().getCode() != null) {
logger.info("Code for Observation Category = " + obs.getCategory().getCodingFirstRep().getCode());
}
// Compare Code for Travel Obs
// Compare Codes for Pregnancy Obs and sort it out.
} else if (ent.getResource() instanceof DiagnosticReport) {
logger.info(" Bundle contains Diagnostic Report ");
data.getDiagReports().add((DiagnosticReport) ent.getResource());
} else if (ent.getResource() instanceof DiagnosticOrder) {
logger.info(" Bundle contains Diagnostic Order ");
data.getDiagOrders().add((DiagnosticOrder) ent.getResource());
} else if (ent.getResource() instanceof MedicationStatement) {
logger.info(" Bundle contains MedicationStatement ");
data.getMedications().add((MedicationStatement) ent.getResource());
} else if (ent.getResource() instanceof Immunization) {
logger.info(" Bundle contains Immunization ");
data.getImmunizations().add((Immunization) ent.getResource());
}
}
eICR.append(Dstu2CdaHeaderGenerator.createCdaHeader(data, details));
eICR.append(Dstu2CdaBodyGenerator.generateCdaBody(data, details));
eICR.append(CdaGeneratorUtils.getEndXMLHeaderForCdaDocument());
}
} else {
logger.error(" No Fhir Bundle Available to create CDA Documents ");
}
return eICR.toString();
}
use of ca.uhn.fhir.model.dstu2.resource.Encounter.Location in project eCRNow by drajer-health.
the class LoadingQueryDstu2Bundle method createDSTU2Bundle.
public Bundle createDSTU2Bundle(LaunchDetails launchDetails, Dstu2FhirData dstu2FhirData, Date start, Date end) {
Bundle bundle = new Bundle();
logger.info("Initializing FHIR Context for Version:::: {}", launchDetails.getFhirVersion());
FhirContext context = fhirContextInitializer.getFhirContext(launchDetails.getFhirVersion());
logger.info("Initializing Client");
IGenericClient client = fhirContextInitializer.createClient(context, launchDetails);
// GET Patient Details and Add to Bundle
try {
logger.info("Get Patient Data");
Patient patient = (Patient) fhirContextInitializer.getResouceById(launchDetails, client, context, "Patient", launchDetails.getLaunchPatientId());
Entry patientEntry = new Entry();
patientEntry.setResource(patient);
bundle.addEntry(patientEntry);
} catch (Exception e) {
logger.error("Error in getting Patient Data", e);
}
// Step 1: Get Encounters for Patient based on encId. (Create a method to get
// encounters)
// If encId is null, find encounters for patient within the start and end time
// provided.
// Add to the bundle.
// As you are adding to the bundle within Fhir Data, add the codeable concept
// also to the list of encounterCodes.
Encounter encounter = null;
try {
logger.info("Get Encounter Data");
encounter = dstu2ResourcesData.getEncounterData(context, client, launchDetails, dstu2FhirData, start, end);
if (encounter.getParticipant() != null) {
List<Participant> participants = encounter.getParticipant();
for (Participant participant : participants) {
if (participant.getIndividual() != null) {
ResourceReferenceDt practitionerReference = participant.getIndividual();
Practitioner practitioner = (Practitioner) fhirContextInitializer.getResouceById(launchDetails, client, context, "Practitioner", practitionerReference.getReference().getIdPart());
Entry practitionerEntry = new Entry().setResource(practitioner);
bundle.addEntry(practitionerEntry);
}
}
}
if (encounter.getServiceProvider() != null) {
ResourceReferenceDt organizationReference = encounter.getServiceProvider();
Organization organization = (Organization) fhirContextInitializer.getResouceById(launchDetails, client, context, "Organization", organizationReference.getReference().getIdPart());
Entry organizationEntry = new Entry().setResource(organization);
bundle.addEntry(organizationEntry);
}
if (encounter.getLocation() != null) {
List<Location> enocunterLocations = encounter.getLocation();
for (Location location : enocunterLocations) {
if (location.getLocation() != null) {
ResourceReferenceDt locationReference = location.getLocation();
ca.uhn.fhir.model.dstu2.resource.Location locationResource = (ca.uhn.fhir.model.dstu2.resource.Location) fhirContextInitializer.getResouceById(launchDetails, client, context, "Location", locationReference.getReference().getIdPart());
Entry locationEntry = new Entry().setResource(locationResource);
bundle.addEntry(locationEntry);
}
}
}
Entry encounterEntry = new Entry().setResource(encounter);
bundle.addEntry(encounterEntry);
} catch (Exception e) {
logger.error("Error in getting Encounter Data", e);
}
// also to the list of ConditionCodes.
try {
logger.info("Get Condition Data");
List<Condition> conditionsList = dstu2ResourcesData.getConditionData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered ConditionsList----> {}", conditionsList.size());
dstu2FhirData.setConditions(conditionsList);
for (Condition condition : conditionsList) {
Entry conditionsEntry = new Entry().setResource(condition);
bundle.addEntry(conditionsEntry);
}
} catch (Exception e) {
logger.error("Error in getting Condition Data", e);
}
// also to the list of labResultCodes.
try {
logger.info("Get Observation Data");
List<Observation> observationList = dstu2ResourcesData.getObservationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered Observations----> {}", observationList.size());
dstu2FhirData.setLabResults(observationList);
for (Observation observation : observationList) {
Entry observationsEntry = new Entry().setResource(observation);
bundle.addEntry(observationsEntry);
}
} catch (Exception e) {
logger.error("Error in getting Observation Data", e);
}
// Get Pregnancy Observations
try {
logger.info("Get Pregnancy Observation Data");
List<Observation> observationList = dstu2ResourcesData.getPregnancyObservationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered Observations----> {}", observationList.size());
dstu2FhirData.setPregnancyObs(observationList);
for (Observation observation : observationList) {
Entry observationsEntry = new Entry().setResource(observation);
bundle.addEntry(observationsEntry);
}
} catch (Exception e) {
logger.error("Error in getting Pregnancy Observation Data", e);
}
// Get Travel Observations
try {
logger.info("Get Travel Observation Data");
List<Observation> observationList = dstu2ResourcesData.getTravelObservationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered Observations----> {}", observationList.size());
dstu2FhirData.setTravelObs(observationList);
for (Observation observation : observationList) {
Entry observationsEntry = new Entry().setResource(observation);
bundle.addEntry(observationsEntry);
}
} catch (Exception e) {
logger.error("Error in getting Travel Observation Data", e);
}
// also to the list of medicationCodes.
try {
logger.info("Get MedicationAdministration Data");
List<MedicationAdministration> medAdministrationsList = dstu2ResourcesData.getMedicationAdministrationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered MedicationAdministration-----------> {}", medAdministrationsList.size());
dstu2FhirData.setMedicationAdministrations(medAdministrationsList);
for (MedicationAdministration medAdministration : medAdministrationsList) {
if (medAdministration.getMedication() != null && !medAdministration.getMedication().isEmpty() && medAdministration.getMedication() instanceof ResourceReferenceDt) {
BaseResourceReferenceDt medRef = (BaseResourceReferenceDt) medAdministration.getMedication();
String medReference = medRef.getReference().getValue();
if (medReference.startsWith("#")) {
BaseContainedDt medAdministrationContained = medAdministration.getContained();
List<Medication> containedResources = (List<Medication>) medAdministrationContained.getContainedResources();
if (containedResources.stream().anyMatch(resource -> resource.getIdElement().getValue().equals(medReference))) {
logger.info("Medication Resource exists in MedicationAdministration.contained. So no need to add again in Bundle.");
}
} else {
logger.info("Medication Reference Found=============>");
Medication medication = dstu2ResourcesData.getMedicationData(context, client, launchDetails, dstu2FhirData, medReference);
Entry medicationEntry = new Entry().setResource(medication);
bundle.addEntry(medicationEntry);
if (medication != null) {
List<Medication> medicationList = new ArrayList<>();
medicationList.add(medication);
dstu2FhirData.setMedicationList(medicationList);
}
}
}
Entry medAdministrationEntry = new Entry().setResource(medAdministration);
bundle.addEntry(medAdministrationEntry);
}
} catch (Exception e) {
logger.error("Error in getting the MedicationAdministration Data", e);
}
try {
logger.info("Get MedicationStatement Data");
List<MedicationStatement> medStatementsList = dstu2ResourcesData.getMedicationStatementData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered MedicationStatement-----------> {}", medStatementsList.size());
for (MedicationStatement medStatement : medStatementsList) {
Entry medStatementEntry = new Entry().setResource(medStatement);
bundle.addEntry(medStatementEntry);
}
dstu2FhirData.setMedications(medStatementsList);
} catch (Exception e) {
logger.error("Error in getting the MedicationStatement Data", e);
}
try {
logger.info("Get DiagnosticOrder Data");
List<DiagnosticOrder> diagnosticOrdersList = dstu2ResourcesData.getDiagnosticOrderData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered DiagnosticOrders-----------> {}", diagnosticOrdersList.size());
dstu2FhirData.setDiagOrders(diagnosticOrdersList);
for (DiagnosticOrder diagnosticOrder : diagnosticOrdersList) {
Entry diagnosticOrderEntry = new Entry().setResource(diagnosticOrder);
bundle.addEntry(diagnosticOrderEntry);
}
} catch (Exception e) {
logger.error("Error in getting the DiagnosticOrder Data", e);
}
// Add to the bundle
try {
List<Immunization> immunizationsList = dstu2ResourcesData.getImmunizationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered Immunizations-----------> {}", immunizationsList.size());
dstu2FhirData.setImmunizations(immunizationsList);
for (Immunization immunization : immunizationsList) {
Entry immunizationEntry = new Entry().setResource(immunization);
bundle.addEntry(immunizationEntry);
}
} catch (Exception e) {
logger.error("Error in getting the Immunization Data", e);
}
// Add to the bundle
try {
List<DiagnosticReport> diagnosticReportList = dstu2ResourcesData.getDiagnosticReportData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered DiagnosticReports-----------> {}", diagnosticReportList.size());
dstu2FhirData.setDiagReports(diagnosticReportList);
for (DiagnosticReport diagnosticReport : diagnosticReportList) {
Entry diagnosticReportEntry = new Entry().setResource(diagnosticReport);
bundle.addEntry(diagnosticReportEntry);
}
} catch (Exception e) {
logger.error("Error in getting the DiagnosticReport Data", e);
}
// Setting bundle to FHIR Data
logger.info("------------------------------CodeableConcept Codes------------------------------");
logger.info("Encounter Codes Size=====> {}", dstu2FhirData.getEncounterCodes().size());
logger.info("Conditions Codes Size=====> {}", dstu2FhirData.getConditionCodes().size());
logger.info("Observation Codes Size=====> {}", dstu2FhirData.getLabResultCodes().size());
logger.info("Medication Codes Size=====> {}", dstu2FhirData.getMedicationCodes().size());
logger.info("Immunization Codes Size=====> {}", dstu2FhirData.getImmuniationCodes().size());
logger.info("DiagnosticReport Codes Size=====> {}", dstu2FhirData.getDiagnosticReportCodes().size());
String fileName = ActionRepo.getInstance().getLogFileDirectory() + "/LoadingQueryDSTU2Bundle-" + launchDetails.getLaunchPatientId() + ".json";
ApplicationUtils.saveDataToFile(context.newJsonParser().encodeResourceToString(bundle), fileName);
return bundle;
}
use of ca.uhn.fhir.model.dstu2.resource.Encounter.Location in project eCRNow by drajer-health.
the class Dstu2CdaFhirUtilities method getLocation.
public static Location getLocation(List<Entry> entries, Encounter en) {
Encounter.Location loc = en.getLocationFirstRep();
if (loc.getLocation().getReference().hasIdPart()) {
Entry ent = getResourceEntryForId(loc.getLocation().getReference().getIdPart(), "Location", entries);
if (ent != null) {
logger.info(" Found Location for Id " + loc.getLocation().getReference().getIdPart());
return (Location) ent.getResource();
}
}
logger.info(" Did not find the location resource for encounter ");
return null;
}
use of ca.uhn.fhir.model.dstu2.resource.Encounter.Location in project eCRNow by drajer-health.
the class TriggerQueryDstu2Bundle method createDSTU2Bundle.
public Bundle createDSTU2Bundle(LaunchDetails launchDetails, Dstu2FhirData dstu2FhirData, Date start, Date end) {
Bundle bundle = new Bundle();
logger.info("Initializing FHIR Context for Version:::: {}", launchDetails.getFhirVersion());
FhirContext context = fhirContextInitializer.getFhirContext(launchDetails.getFhirVersion());
logger.info("Initializing Client");
IGenericClient client = fhirContextInitializer.createClient(context, launchDetails);
// GET Patient Details and Add to Bundle
try {
logger.info("Get Patient Data");
Patient patient = (Patient) fhirContextInitializer.getResouceById(launchDetails, client, context, "Patient", launchDetails.getLaunchPatientId());
Entry patientEntry = new Entry();
patientEntry.setResource(patient);
bundle.addEntry(patientEntry);
} catch (Exception e) {
logger.error("Error in getting Patient Data", e);
}
// Step 1: Get Encounters for Patient based on encId. (Create a method to get
// encounters)
// If encId is null, find encounters for patient within the start and end time
// provided.
// Add to the bundle.
// As you are adding to the bundle within Fhir Data, add the codeable concept
// also to the list of encounterCodes.
Encounter encounter = null;
try {
logger.info("Get Encounter Data");
encounter = dstu2ResourcesData.getEncounterData(context, client, launchDetails, dstu2FhirData, start, end);
if (encounter.getParticipant() != null) {
List<Participant> participants = encounter.getParticipant();
for (Participant participant : participants) {
if (participant.getIndividual() != null) {
ResourceReferenceDt practitionerReference = participant.getIndividual();
Practitioner practitioner = (Practitioner) fhirContextInitializer.getResouceById(launchDetails, client, context, "Practitioner", practitionerReference.getReference().getIdPart());
Entry practitionerEntry = new Entry().setResource(practitioner);
bundle.addEntry(practitionerEntry);
}
}
}
if (encounter.getServiceProvider() != null) {
ResourceReferenceDt organizationReference = encounter.getServiceProvider();
Organization organization = (Organization) fhirContextInitializer.getResouceById(launchDetails, client, context, "Organization", organizationReference.getReference().getIdPart());
Entry organizationEntry = new Entry().setResource(organization);
bundle.addEntry(organizationEntry);
}
if (encounter.getLocation() != null) {
List<Location> enocunterLocations = encounter.getLocation();
for (Location location : enocunterLocations) {
if (location.getLocation() != null) {
ResourceReferenceDt locationReference = location.getLocation();
ca.uhn.fhir.model.dstu2.resource.Location locationResource = (ca.uhn.fhir.model.dstu2.resource.Location) fhirContextInitializer.getResouceById(launchDetails, client, context, "Location", locationReference.getReference().getIdPart());
Entry locationEntry = new Entry().setResource(locationResource);
bundle.addEntry(locationEntry);
}
}
}
Entry encounterEntry = new Entry().setResource(encounter);
bundle.addEntry(encounterEntry);
} catch (Exception e) {
logger.error("Error in getting Encounter Data", e);
}
// also to the list of ConditionCodes.
try {
logger.info("Get Condition Data");
List<Condition> conditionsList = dstu2ResourcesData.getConditionData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered ConditionsList----> {}", conditionsList.size());
dstu2FhirData.setConditions(conditionsList);
for (Condition condition : conditionsList) {
Entry conditionsEntry = new Entry().setResource(condition);
bundle.addEntry(conditionsEntry);
}
} catch (Exception e) {
logger.error("Error in getting Condition Data", e);
}
// also to the list of labResultCodes.
try {
logger.info("Get Observation Data");
List<Observation> observationList = dstu2ResourcesData.getObservationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered Observations----> {}", observationList.size());
dstu2FhirData.setLabResults(observationList);
for (Observation observation : observationList) {
Entry observationsEntry = new Entry().setResource(observation);
bundle.addEntry(observationsEntry);
}
} catch (Exception e) {
logger.error("Error in getting Observation Data", e);
}
// also to the list of medicationCodes.
try {
logger.info("Get MedicationAdministration Data");
List<MedicationAdministration> medAdministrationsList = dstu2ResourcesData.getMedicationAdministrationData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered MedicationAdministration-----------> {}", medAdministrationsList.size());
dstu2FhirData.setMedicationAdministrations(medAdministrationsList);
for (MedicationAdministration medAdministration : medAdministrationsList) {
if (!medAdministration.getMedication().isEmpty() && medAdministration.getMedication() != null) {
if (medAdministration.getMedication() instanceof ResourceReferenceDt) {
BaseResourceReferenceDt medRef = (BaseResourceReferenceDt) medAdministration.getMedication();
String medReference = medRef.getReference().getValue();
if (medReference.startsWith("#")) {
BaseContainedDt medAdministrationContained = medAdministration.getContained();
List<Medication> containedResources = (List<Medication>) medAdministrationContained.getContainedResources();
if (containedResources.stream().anyMatch(resource -> resource.getIdElement().getValue().equals(medReference))) {
logger.info("Medication Resource exists in MedicationAdministration.contained. So no need to add again in Bundle.");
}
} else {
logger.info("Medication Reference Found=============>");
Medication medication = dstu2ResourcesData.getMedicationData(context, client, launchDetails, dstu2FhirData, medReference);
Entry medicationEntry = new Entry().setResource(medication);
bundle.addEntry(medicationEntry);
if (medication != null) {
List<Medication> medicationList = new ArrayList<>();
medicationList.add(medication);
dstu2FhirData.setMedicationList(medicationList);
}
}
}
}
Entry medAdministrationEntry = new Entry().setResource(medAdministration);
bundle.addEntry(medAdministrationEntry);
}
} catch (Exception e) {
logger.error("Error in getting the MedicationAdministration Data", e);
}
try {
logger.info("Get DiagnosticOrder Data");
List<DiagnosticOrder> diagnosticOrdersList = dstu2ResourcesData.getDiagnosticOrderData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered DiagnosticOrders-----------> {}", diagnosticOrdersList.size());
dstu2FhirData.setDiagOrders(diagnosticOrdersList);
for (DiagnosticOrder diagnosticOrder : diagnosticOrdersList) {
Entry diagnosticOrderEntry = new Entry().setResource(diagnosticOrder);
bundle.addEntry(diagnosticOrderEntry);
}
} catch (Exception e) {
logger.error("Error in getting the DiagnosticOrder Data", e);
}
try {
List<DiagnosticReport> diagnosticReportList = dstu2ResourcesData.getDiagnosticReportData(context, client, launchDetails, dstu2FhirData, encounter, start, end);
logger.info("Filtered DiagnosticReports-----------> {}", diagnosticReportList.size());
dstu2FhirData.setDiagReports(diagnosticReportList);
for (DiagnosticReport diagnosticReport : diagnosticReportList) {
Entry diagnosticReportEntry = new Entry().setResource(diagnosticReport);
bundle.addEntry(diagnosticReportEntry);
}
} catch (Exception e) {
logger.error("Error in getting the DiagnosticReport Data", e);
}
// Setting bundle to FHIR Data
logger.info("------------------------------CodeableConcept Codes------------------------------");
logger.info("Encounter Codes Size=====> {}", dstu2FhirData.getEncounterCodes().size());
logger.info("Conditions Codes Size=====> {}", dstu2FhirData.getConditionCodes().size());
logger.info("Observation Codes Size=====> {}", dstu2FhirData.getLabResultCodes().size());
logger.info("Medication Codes Size=====> {}", dstu2FhirData.getMedicationCodes().size());
logger.info("DiagnosticReport Codes Size=====> {}", dstu2FhirData.getDiagnosticReportCodes().size());
logger.info("DiagnosticOrders Codes Size=====> {}", dstu2FhirData.getDiagnosticOrderCodes().size());
String fileName = ActionRepo.getInstance().getLogFileDirectory() + "/TriggerQueryDSTU2Bundle-" + launchDetails.getLaunchPatientId() + ".json";
ApplicationUtils.saveDataToFile(context.newJsonParser().encodeResourceToString(bundle), fileName);
return bundle;
}
Aggregations