npiProvider - v4

This commit is contained in:
2026-01-23 10:34:44 +05:30
parent c2167a65dd
commit e2b67b26fe
3 changed files with 35 additions and 9 deletions

View File

@@ -136,7 +136,6 @@ export function ClaimForm({
}, [staffMembersRaw, staff]);
// fetching npi providers
const { data: npiProviders = [] } = useQuery<NpiProvider[]>({
queryKey: ["/api/npiProviders/"],
queryFn: async () => {
@@ -146,6 +145,29 @@ export function ClaimForm({
},
});
useEffect(() => {
if (!npiProviders.length) return;
// do not override if user already selected
if (form.npiProvider?.npiNumber) return;
const kaiGaoNpi = npiProviders.find(
(p) => p.providerName.toLowerCase() === "kai gao",
);
const fallback = kaiGaoNpi || npiProviders[0];
if (fallback) {
setForm((prev) => ({
...prev,
npiProvider: {
npiNumber: fallback.npiNumber,
providerName: fallback.providerName,
},
}));
}
}, [npiProviders]);
// Service date state
const [serviceDateValue, setServiceDateValue] = useState<Date>(new Date());
const [serviceDate, setServiceDate] = useState<string>(
@@ -571,7 +593,6 @@ export function ClaimForm({
return;
}
// 1. Create or update appointment
let appointmentIdToUse = appointmentId;
@@ -609,7 +630,12 @@ export function ClaimForm({
// 3. Create Claim(if not)
// Filter out empty service lines (empty procedureCode)
const { uploadedFiles, insuranceSiteKey, ...formToCreateClaim } = f;
const {
uploadedFiles,
insuranceSiteKey,
npiProvider,
...formToCreateClaim
} = f;
// build claimFiles metadata from uploadedFiles (only filename + mimeType)
const claimFilesMeta: ClaimFileMeta[] = (uploadedFiles || []).map((f) => ({
@@ -691,7 +717,6 @@ export function ClaimForm({
return;
}
// 2. Update patient
if (patient && typeof patient.id === "number") {
const { id, createdAt, userId, ...sanitizedFields } = patient;
@@ -1049,7 +1074,8 @@ export function ClaimForm({
setForm((prev) => ({
...prev,
renderingNpi: {
npiProvider: {
// ✅ CORRECT KEY
npiNumber: selected.npiNumber,
providerName: selected.providerName,
},

View File

@@ -46,8 +46,8 @@ class AutomationMassHealth:
def select_rendering_npi(self, select_element):
options = select_element.options
target_npi = (self.renderingNpiNumber or "").strip()
target_name = (self.renderingNpiName or "").strip().lower()
target_npi = (self.npiNumber or "").strip()
target_name = (self.npiName or "").strip().lower()
# 1⃣ Exact NPI match (value or text)
for opt in options:

View File

@@ -45,8 +45,8 @@ class AutomationMassHealthPreAuth:
def select_rendering_npi(self, select_element):
options = select_element.options
target_npi = (self.renderingNpiNumber or "").strip()
target_name = (self.renderingNpiName or "").strip().lower()
target_npi = (self.npiNumber or "").strip()
target_name = (self.npiName or "").strip().lower()
# 1⃣ Exact NPI match (value or text)
for opt in options: