diff --git a/src/main/java/org/hl7/codex/rems/script/FillStatus.java b/src/main/java/org/hl7/codex/rems/script/FillStatus.java index ba905f2..db95599 100644 --- a/src/main/java/org/hl7/codex/rems/script/FillStatus.java +++ b/src/main/java/org/hl7/codex/rems/script/FillStatus.java @@ -61,5 +61,18 @@ public DispensedStatusEnum getStatus() { return DispensedStatusEnum.UNKNOWN; } } - + + public DispensedStatus getDispensedStatus() { + if (getDispensed() != null) { + return getDispensed(); + } else if (getPartiallyDispensed() != null) { + return getPartiallyDispensed(); + } else if (getNotDispensed() != null) { + return getNotDispensed(); + } else if (getTransferred() != null) { + return getTransferred(); + } else { + return null; + } + } } diff --git a/src/main/java/org/hl7/codex/rems/script/NcpdpScriptController.java b/src/main/java/org/hl7/codex/rems/script/NcpdpScriptController.java index c58b3b1..cd29b25 100644 --- a/src/main/java/org/hl7/codex/rems/script/NcpdpScriptController.java +++ b/src/main/java/org/hl7/codex/rems/script/NcpdpScriptController.java @@ -8,6 +8,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; import org.hl7.fhir.r4.model.MedicationRequest; +import org.hl7.fhir.r4.model.Annotation; import org.hl7.fhir.r4.model.MedicationDispense; import org.hl7.fhir.r4.model.Reference; @@ -80,6 +81,9 @@ private void handleRxFillMessage(RxFill rxFill, Header header) { logger.info(" PrescriberOrderNumber: " + header.getPrescriberOrderNumber()); logger.info(" Dispensed Status: " + dispensedStatus); + String note = rxFill.getFillStatus().getDispensedStatus().Note; + logger.info(" Dispensed Note: " + note); + IFhirResourceDao medicationRequestDao = jpaRestfulServer.getDao(MedicationRequest.class); IFhirResourceDao medicationDispenseDao = @@ -114,6 +118,7 @@ private void handleRxFillMessage(RxFill rxFill, Header header) { medicationDispense.setMedication(medicationRequest.getMedication()); medicationDispense.setSubject(medicationRequest.getSubject()); medicationDispense.addAuthorizingPrescription(new Reference(requestId)); + medicationDispense.addNote(new Annotation().setText(note)); // store the MedicationDispense RequestDetails dispenseDetails = new SystemRequestDetails(); @@ -130,7 +135,7 @@ private MedicationDispense.MedicationDispenseStatus convertRxFillDispensedStatus case PARTIALLY_DISPENSED: return MedicationDispense.MedicationDispenseStatus.INPROGRESS; case NOT_DISPENSED: - return MedicationDispense.MedicationDispenseStatus.PREPARATION; + return MedicationDispense.MedicationDispenseStatus.ONHOLD; case TRANSFERRED: case UNKNOWN: default: