From 614d9f9ce07d6bf6266a32d72dbf1d1050ee1e6f Mon Sep 17 00:00:00 2001 From: Sahil Malhotra Date: Fri, 13 Jun 2025 07:15:11 -0400 Subject: [PATCH 1/6] update pims to work with auth number to case number migration --- backend/src/database/schemas/doctorOrderSchemas.js | 1 + backend/src/routes/doctorOrders.js | 12 ++++++------ .../src/views/DoctorOrders/OrderCard/OrderCard.tsx | 3 ++- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/backend/src/database/schemas/doctorOrderSchemas.js b/backend/src/database/schemas/doctorOrderSchemas.js index 55e8b29..e84f76a 100644 --- a/backend/src/database/schemas/doctorOrderSchemas.js +++ b/backend/src/database/schemas/doctorOrderSchemas.js @@ -1,5 +1,6 @@ import mongoose from 'mongoose'; export const orderSchema = new mongoose.Schema({ + orderId: String, caseNumber: String, authNumber: String, prescriberOrderNumber: String, diff --git a/backend/src/routes/doctorOrders.js b/backend/src/routes/doctorOrders.js index 8f5ba55..bdf4860 100644 --- a/backend/src/routes/doctorOrders.js +++ b/backend/src/routes/doctorOrders.js @@ -278,15 +278,15 @@ const getGuidanceResponse = async order => { return null; } - // Make the etasu call with the auth number if it exists, if not call with patient and medication + // Make the etasu call with the case number if it exists, if not call with patient and medication let body = {}; - if (order.authNumber !== '' && !env.USE_INTERMEDIARY) { + if (order.caseNumber !== '' && !env.USE_INTERMEDIARY) { body = { resourceType: 'Parameters', parameter: [ { - name: 'authNumber', - valueString: order.authNumber + name: 'caseNumber', + valueString: order.caseNumber } ] }; @@ -358,8 +358,8 @@ const getDispenseStatus = (order, guidanceResponse) => { async function parseNCPDPScript(newRx) { // Parsing XML NCPDP SCRIPT from EHR const incompleteOrder = { - caseNumber: newRx.Message.Header.MessageID.toString(), // Will need to return to this and use actual pt identifier or uuid - authNumber: newRx.Message.Header.AuthorizationNumber, + orderId: newRx.Message.Header.MessageID.toString(), // Will need to return to this and use actual pt identifier or uuid + caseNumber: newRx.Message.Header.AuthorizationNumber, prescriberOrderNumber: newRx.Message.Header.PrescriberOrderNumber, patientName: newRx.Message.Body.NewRx.Patient.HumanPatient.Name.FirstName + diff --git a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx index 439d910..53292f7 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx @@ -20,6 +20,7 @@ import PickedUpButton from './PickedUpButton'; import VerifyButton from './VerifyButton'; export type DoctorOrder = { + orderId?: string; caseNumber?: string; authNumber?: string; patientName?: string; @@ -111,7 +112,7 @@ const OrderCard = (props: { tabStatus: TabStatus }) => { return ( {doctorOrders.map(row => ( - + From 8e02d1631d754bd122c977a2b0ab8ff8b4fd8d0a Mon Sep 17 00:00:00 2001 From: Sahil Malhotra Date: Fri, 13 Jun 2025 11:17:30 -0400 Subject: [PATCH 2/6] filter case number from pims --- backend/src/routes/doctorOrders.js | 4 ++-- .../DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx | 9 +++++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/backend/src/routes/doctorOrders.js b/backend/src/routes/doctorOrders.js index bdf4860..c0f46b7 100644 --- a/backend/src/routes/doctorOrders.js +++ b/backend/src/routes/doctorOrders.js @@ -280,7 +280,7 @@ const getGuidanceResponse = async order => { // Make the etasu call with the case number if it exists, if not call with patient and medication let body = {}; - if (order.caseNumber !== '' && !env.USE_INTERMEDIARY) { + if (order.caseNumber && !env.USE_INTERMEDIARY) { body = { resourceType: 'Parameters', parameter: [ @@ -334,7 +334,7 @@ const getGuidanceResponse = async order => { 'content-type': 'application/json' } }); - console.log('Retrieved order', response); + console.log('Retrieved order', JSON.stringify(response.data, null, 4)); console.log('URL', etasuUrl); const responseResource = response.data.parameter?.[0]?.resource; return responseResource; diff --git a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx index ccaf478..d9ea728 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx @@ -33,7 +33,12 @@ type AuthNumber = { valueString: string; }; -type MetRequirements = Requirement | AuthNumber; +type CaseNumber = { + name: 'case_number'; + valueString: string; +}; + +type MetRequirements = Requirement | AuthNumber | CaseNumber; export type DoctorOrder = { caseNumber?: string; @@ -69,7 +74,7 @@ const EtasuPopUp = (props: any) => { const [doctorOrder, setDoctorOrder] = useState(); const etasuElements = ( - (doctorOrder?.metRequirements || []).filter(m => m.name !== 'auth_number') as Requirement[] + (doctorOrder?.metRequirements || []).filter(m => m.name !== 'auth_number' && m.name !== 'case_number') as Requirement[] ).sort((first: Requirement, second: Requirement) => { // Keep the other forms unsorted. if (second.name.includes('Patient Status Update')) { From 5374baffc533904cfd58e0378c82c466ad20a242 Mon Sep 17 00:00:00 2001 From: Sahil Malhotra Date: Fri, 13 Jun 2025 11:25:55 -0400 Subject: [PATCH 3/6] run prettier --- .../views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx index d9ea728..ed3cf8a 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx @@ -74,7 +74,9 @@ const EtasuPopUp = (props: any) => { const [doctorOrder, setDoctorOrder] = useState(); const etasuElements = ( - (doctorOrder?.metRequirements || []).filter(m => m.name !== 'auth_number' && m.name !== 'case_number') as Requirement[] + (doctorOrder?.metRequirements || []).filter( + m => m.name !== 'auth_number' && m.name !== 'case_number' + ) as Requirement[] ).sort((first: Requirement, second: Requirement) => { // Keep the other forms unsorted. if (second.name.includes('Patient Status Update')) { From 942e1f26b705932999743bdd07a769b4fa48acfc Mon Sep 17 00:00:00 2001 From: Sahil Malhotra Date: Fri, 13 Jun 2025 11:48:15 -0400 Subject: [PATCH 4/6] update ci/cd --- .github/workflows/ci-workflow.yml | 4 +++- .github/workflows/docker-cd-dev.yml | 1 + .github/workflows/docker-cd.yml | 1 + .github/workflows/docker-ci.yml | 1 + .github/workflows/docker-tag-cd.yml | 1 + 5 files changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-workflow.yml b/.github/workflows/ci-workflow.yml index 2fded35..cf34917 100644 --- a/.github/workflows/ci-workflow.yml +++ b/.github/workflows/ci-workflow.yml @@ -10,7 +10,9 @@ jobs: name: Check tsc, lint, and prettier on front end runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 + - uses: actions/checkout@v4 + with: + clean: true - uses: actions/setup-node@v1 with: node-version: "21.x" diff --git a/.github/workflows/docker-cd-dev.yml b/.github/workflows/docker-cd-dev.yml index b200c39..ec8a582 100644 --- a/.github/workflows/docker-cd-dev.yml +++ b/.github/workflows/docker-cd-dev.yml @@ -13,6 +13,7 @@ jobs: uses: actions/checkout@v3 with: submodules: true + clean: true - name: Setup Docker Buildx uses: docker/setup-buildx-action@v2 diff --git a/.github/workflows/docker-cd.yml b/.github/workflows/docker-cd.yml index ae0531e..f3e761f 100644 --- a/.github/workflows/docker-cd.yml +++ b/.github/workflows/docker-cd.yml @@ -13,6 +13,7 @@ jobs: uses: actions/checkout@v3 with: submodules: true + clean: true - name: Setup Docker Buildx uses: docker/setup-buildx-action@v2 diff --git a/.github/workflows/docker-ci.yml b/.github/workflows/docker-ci.yml index afc5a9d..7920151 100644 --- a/.github/workflows/docker-ci.yml +++ b/.github/workflows/docker-ci.yml @@ -13,6 +13,7 @@ jobs: uses: actions/checkout@v3 with: submodules: true + clean: true - name: Test Server Docker image Builds run: docker build . diff --git a/.github/workflows/docker-tag-cd.yml b/.github/workflows/docker-tag-cd.yml index bc659d3..ec64f01 100644 --- a/.github/workflows/docker-tag-cd.yml +++ b/.github/workflows/docker-tag-cd.yml @@ -13,6 +13,7 @@ jobs: uses: actions/checkout@v3 with: submodules: true + clean: true - name: Setup Docker Buildx uses: docker/setup-buildx-action@v2 From 08422157f60bc38c1cf9f0c22ffcfee6953b5e2d Mon Sep 17 00:00:00 2001 From: Sahil Malhotra Date: Fri, 13 Jun 2025 12:03:29 -0400 Subject: [PATCH 5/6] remove all instances of auth number --- backend/src/database/schemas/doctorOrderSchemas.js | 1 - .../DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx | 10 ++-------- .../src/views/DoctorOrders/OrderCard/OrderCard.tsx | 1 - 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/backend/src/database/schemas/doctorOrderSchemas.js b/backend/src/database/schemas/doctorOrderSchemas.js index e84f76a..aba505c 100644 --- a/backend/src/database/schemas/doctorOrderSchemas.js +++ b/backend/src/database/schemas/doctorOrderSchemas.js @@ -2,7 +2,6 @@ import mongoose from 'mongoose'; export const orderSchema = new mongoose.Schema({ orderId: String, caseNumber: String, - authNumber: String, prescriberOrderNumber: String, patientName: String, patientFirstName: String, diff --git a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx index ed3cf8a..5f25562 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx @@ -28,21 +28,15 @@ type Requirement = { }; }; -type AuthNumber = { - name: 'auth_number'; - valueString: string; -}; - type CaseNumber = { name: 'case_number'; valueString: string; }; -type MetRequirements = Requirement | AuthNumber | CaseNumber; +type MetRequirements = Requirement | CaseNumber; export type DoctorOrder = { caseNumber?: string; - authNumber?: string; patientName?: string; patientDOB?: string; doctorName?: string; @@ -75,7 +69,7 @@ const EtasuPopUp = (props: any) => { const etasuElements = ( (doctorOrder?.metRequirements || []).filter( - m => m.name !== 'auth_number' && m.name !== 'case_number' + m => m.name !== 'case_number' ) as Requirement[] ).sort((first: Requirement, second: Requirement) => { // Keep the other forms unsorted. diff --git a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx index 53292f7..998678b 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/OrderCard.tsx @@ -22,7 +22,6 @@ import VerifyButton from './VerifyButton'; export type DoctorOrder = { orderId?: string; caseNumber?: string; - authNumber?: string; patientName?: string; patientDOB?: string; doctorName?: string; From 0160eebb103f212ed1f0a3273258da09c36293d4 Mon Sep 17 00:00:00 2001 From: Sahil Malhotra Date: Fri, 13 Jun 2025 12:08:22 -0400 Subject: [PATCH 6/6] run prettier --- .../views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx index 5f25562..b5af968 100644 --- a/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx +++ b/frontend/src/views/DoctorOrders/OrderCard/EtasuPopUp/EtasuPopUp.tsx @@ -68,9 +68,7 @@ const EtasuPopUp = (props: any) => { const [doctorOrder, setDoctorOrder] = useState(); const etasuElements = ( - (doctorOrder?.metRequirements || []).filter( - m => m.name !== 'case_number' - ) as Requirement[] + (doctorOrder?.metRequirements || []).filter(m => m.name !== 'case_number') as Requirement[] ).sort((first: Requirement, second: Requirement) => { // Keep the other forms unsorted. if (second.name.includes('Patient Status Update')) {