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
4 changes: 2 additions & 2 deletions src/components/EtasuStatus/EtasuStatus.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { useState, useEffect, useContext } from 'react';
import { SettingsContext } from '../../containers/ContextProvider/SettingsProvider.jsx';
import { EtasuStatusComponent } from './EtasuStatusComponent.jsx';
import { standardsBasedGetEtasu } from '../../util/util.js';
import { createMedicationFromMedicationRequest } from '../../util/fhir.js';
import { createMedicationFromMedicationRequest, getDrugCodeableConceptFromMedicationRequest } from '../../util/fhir.js';

// converts code into etasu for the component to render
// simplifies usage for applications that only know the code, not the case they want to display
Expand All @@ -22,7 +22,7 @@ export const EtasuStatus = props => {
const getEtasuStatus = (medication) => {
const body = makeBody(medication);
setEtasuData(body);
const display = body.parameter[1]?.resource.code.coding[0].display;
const display = body.parameter[1]?.resource.code?.coding[0].display;
setDisplay(display);
const standardEtasuUrl = `${globalState.remsAdminServer}/4_0_0/GuidanceResponse/$rems-etasu`;
standardsBasedGetEtasu(standardEtasuUrl, body, setRemsAdminResponse);
Expand Down
1 change: 0 additions & 1 deletion src/containers/RequestBuilder.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,6 @@ const RequestBuilder = props => {
let remsAdminUrls = [];
// get all the remsAdminUrl for each MedicationRequest
state.medicationRequests?.data?.forEach(request => {
const code = request?.medicationCodeableConcept?.coding[0]?.code;
const remsAdminUrl = getMedicationSpecificRemsAdminUrl(request, globalState, hook);
if (remsAdminUrl) {
remsAdminUrls.push(remsAdminUrl);
Expand Down
11 changes: 11 additions & 0 deletions src/util/fhir.js
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,17 @@ function createMedicationFromMedicationRequest(medicationRequest) {
medication.id = medicationRequest?.id + '-med';
if (medicationRequest.medicationCodeableConcept) {
medication.code = medicationRequest.medicationCodeableConcept;
} else if (medicationRequest.medicationReference) {
const reference = medicationRequest?.medicationReference;
medication.code = undefined;
medicationRequest?.contained?.every(e => {
if (e.resourceType + '/' + e.id === reference.reference) {
if (e.resourceType === 'Medication') {
console.log('Get Medication code from contained resource');
medication.code = e.code;
}
}
});
}
return medication;
}
Expand Down
8 changes: 6 additions & 2 deletions src/util/util.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import axios from 'axios';
import { getDrugCodeableConceptFromMedicationRequest } from './fhir';
import { ORDER_SIGN, ORDER_SELECT, PATIENT_VIEW, ENCOUNTER_START } from './data';

/**
* Retrieves a SMART launch context from an endpoint to append as a "launch" query parameter to a SMART app launch URL (see SMART docs for more about launch context).
* This applies mainly if a SMART app link on a card is to be launched. The link needs a "launch" query param with some opaque value from the SMART server entity.
Expand Down Expand Up @@ -96,8 +98,10 @@ const getMedicationSpecificRemsAdminUrl = (request, globalState, hook) => {
if (Object.keys(request).length === 0) {
return undefined;
}
const display = request.medicationCodeableConcept?.coding?.[0]?.display;
const rxnorm = request.medicationCodeableConcept?.coding?.[0]?.code;

const codeableConcept = getDrugCodeableConceptFromMedicationRequest(request);
const display = codeableConcept?.coding?.[0]?.display;
const rxnorm = codeableConcept?.coding?.[0]?.code;

if (!rxnorm) {
console.log("ERROR: unknown MedicationRequest code: '", rxnorm);
Expand Down