Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions src/components/RequestBox/RequestBox.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -220,8 +220,13 @@ const RequestBox = props => {
* Send NewRx for new Medication to the Pharmacy Information System (PIMS)
*/
const sendRx = async () => {
console.log('Sending NewRx to: ' + pimsUrl);
console.log('Getting case number ');
// Use intermediary or direct based on toggle
const ncpdpEndpoint = globalState.usePharmacyIntermediary
? globalState.pharmacyIntermediaryUrl
: pimsUrl;

console.log('Sending NewRx to: ' + ncpdpEndpoint);
console.log('Getting case number');
const medication = createMedicationFromMedicationRequest(request);
const body = makeBody(medication);
const standardEtasuUrl = getMedicationSpecificEtasuUrl(
Expand Down Expand Up @@ -260,7 +265,7 @@ const RequestBox = props => {
const serializer = new XMLSerializer();

// Sending NewRx to the Pharmacy
fetch(pimsUrl, {
fetch(ncpdpEndpoint, {
method: 'POST',
//mode: 'no-cors',
headers: {
Expand Down
40 changes: 23 additions & 17 deletions src/util/buildScript.2017071.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ function quantityUnitOfMeasureFromDrugFormCode(dispenseRequest) {
// https://terminology.hl7.org/5.0.0/CodeSystem-v3-orderableDrugForm.html
// Return NCPDP QuantityUnitOfMeasure
if (
dispenseRequest.quantity.system.toLowerCase().endsWith('v3-orderableDrugForm'.toLowerCase())
dispenseRequest?.quantity?.system?.toLowerCase().endsWith('v3-orderableDrugForm'.toLowerCase())
) {
// is a subset of the codes, not a complete list
switch (dispenseRequest.quantity.code.toUpperCase()) {
Expand Down Expand Up @@ -253,19 +253,21 @@ function buildNewRxMedication(doc, medicationRequestResource) {
medicationPrescribed.appendChild(drugCoded);

// Medication Quantity
console.log(medicationRequestResource);
const dispenseRequest = medicationRequestResource.dispenseRequest;
var quantity = doc.createElement('Quantity');
xmlAddTextNode(doc, quantity, 'Value', dispenseRequest.quantity.value);
xmlAddTextNode(doc, quantity, 'CodeListQualifier', 38); // Original Quantity
var quantityUnitOfMeasure = doc.createElement('QuantityUnitOfMeasure');
xmlAddTextNode(
doc,
quantityUnitOfMeasure,
'Code',
quantityUnitOfMeasureFromDrugFormCode(dispenseRequest)
);
quantity.appendChild(quantityUnitOfMeasure);
medicationPrescribed.appendChild(quantity);
var quantity = doc.createElement('Quantity');
xmlAddTextNode(doc, quantity, 'Value', dispenseRequest?.quantity?.value ? dispenseRequest?.quantity?.value : '');
xmlAddTextNode(doc, quantity, 'CodeListQualifier', 38); // Original Quantity
var quantityUnitOfMeasure = doc.createElement('QuantityUnitOfMeasure');
xmlAddTextNode(
doc,
quantityUnitOfMeasure,
'Code',
quantityUnitOfMeasureFromDrugFormCode(dispenseRequest ? dispenseRequest : {})
);
quantity.appendChild(quantityUnitOfMeasure);
medicationPrescribed.appendChild(quantity);


// Medication Written Date
var writtenDate = doc.createElement('WrittenDate');
Expand All @@ -280,13 +282,17 @@ function buildNewRxMedication(doc, medicationRequestResource) {
doc,
medicationPrescribed,
'NumberOfRefills',
dispenseRequest.numberOfRepeatsAllowed
dispenseRequest?.numberOfRepeatsAllowed ? dispenseRequest?.numberOfRepeatsAllowed : ''
);


// Medication Sig
var sig = doc.createElement('Sig');
xmlAddTextNode(doc, sig, 'SigText', medicationRequestResource.dosageInstruction[0].text);
medicationPrescribed.appendChild(sig);
var dosageInstruction = medicationRequestResource?.dosageInstruction;
var dosageText = dosageInstruction ? dosageInstruction [0]?.text : ''
var sig = doc.createElement('Sig');
xmlAddTextNode(doc, sig, 'SigText', dosageText);
medicationPrescribed.appendChild(sig);


// Medication REMS
// A - Prescriber has checked REMS and the prescriber's actions have been completed.
Expand Down
10 changes: 10 additions & 0 deletions src/util/data.js
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,16 @@ const headerDefinitions = {
type: 'check',
default: env.get('VITE_USE_INTERMEDIARY').asBool()
},
usePharmacyIntermediary: {
type: 'check',
display: 'Use Pharmacy Intermediary (NCPDP NewRx)',
default: env.get('VITE_USE_PHARMACY_INTERMEDIARY').asBool() || false
},
pharmacyIntermediaryUrl: {
type: 'input',
display: 'Pharmacy Intermediary URL (NCPDP Endpoint)',
default: env.get('VITE_PHARMACY_INTERMEDIARY').asString() || 'http://localhost:3003/ncpdp/script'
},
alternativeTherapy: {
display: 'Alternative Therapy Cards Allowed',
type: 'check',
Expand Down
Loading