npiProvider - v4
This commit is contained in:
@@ -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,
|
||||
},
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user