Talent.com
X-Ray Technician

X-Ray Technician

vTech SolutionPortland, OR, United States
12 hours ago
Job type
  • Full-time
  • Quick Apply
Job description

Job Summary :

The Registered Nurse will be responsible for providing skilled nursing care, case management, and hospice care to individuals facing advancing age, frailty, and serious illness. Daily tasks include patient assessments, medication administration, treatment planning, and collaborating with the interdisciplinary team. Critical to this role is strong communication and collaboration with patients, providers, and other members of our team. At least 2 years of experience and exceptional skill is required.

Location : Portland, Oregon, United States

Responsibilities :

  • Patient assessments
  • Medication administration
  • Treatment planning
  • Collaborating with the interdisciplinary team
  • Providing skilled nursing care
  • Case management
  • Hospice care

Required Skills & Certifications :

  • Clinical Assessment skills
  • Medication Administration skills
  • Treatment Planning skills
  • Interdisciplinary Team Collaboration skills
  • Excellent communication and interpersonal skills
  • Ability to work effectively in a fast-paced environment
  • Active Registered Nurse license in the state of working
  • Bachelor's degree in Nursing or related field
  • Driver's license, car insurance, and automobile for field work
  • Minimum 2 years of hospital, home health, or hospice care experience
  • Preferred Skills & Certifications :

  • Not specified
  • Special Considerations :

  • Weekends are required
  • Block schedules are required
  • Scheduling : 'use client';

    import { useState, useEffect } from 'react';

    import { useRouter, useSearchParams } from 'next / navigation';

    import { MessageSquare, ChevronLeft } from 'lucide-react';

    import type {

    AnalyzeRFPContentOutput,

    GenerateClientProfileOutput,

    DraftProposalSectionsOutput,

    GenerateComplianceMatrixOutput,

    ChatMessage,

    KnowledgeItem,

    ProposalType,

    AttachedDocument,

    } from '@ / lib / types';

    import { Button } from '@ / components / ui / button';

    import { RfpInputForm } from '@ / components / rfp-input-form';

    import { ResultsDisplay } from '@ / components / results-display';

    import { ChatPanel } from '@ / components / chat-panel';

    import Logo from '@ / components / logo';

    import { useToast } from '@ / hooks / use-toast';

    import { MOCK_KB_CONTENT } from '@ / lib / mock-data';

    import { AttachedDocuments } from '@ / components / attached-documents';

    / / Types

    type LoadingStates = {

    analysis : boolean;

    capture : boolean;

    outline : boolean;

    draft : boolean;

    compliance : boolean;

    };

    / / Retry helper

    async function retry(fn : () =>

    Promise, retries = 3, delay = 1000) : Promise {

    let lastError : Error | undefined;

    for (let i = 0; i

    try {

    return await fn();

    } catch (error : unknown) {

    lastError = error as Error;

    if (lastError?.message?.includes('503')) {

    console.warn(`Attempt ${i + 1} failed with 503. Retrying in ${delay}ms...`);

    await new Promise(res =>

    setTimeout(res, delay));

    } else {

    throw lastError;

    throw lastError;

    / / Component

    interface Props {

    proposalId : string;

    export default function ProposalPageClient({ proposalId } : Readonly) {

    const router = useRouter();

    const searchParams = useSearchParams();

    const name = searchParams.get('name') ?? 'Unnamed Proposal';

    const isNew = searchParams.get('new') === 'true';

    const mode = searchParams.get('mode') ?? 'edit'; / / default edit

    const isViewOnly = mode === 'view';

    / / State

    const [proposalName, setProposalName] = useState('');

    const [rfpContent, setRfpContent] = useState('');

    const [isRfpSubmitted, setIsRfpSubmitted] = useState(false);

    const [loading, setLoading] = useState({

    analysis : false,

    capture : false,

    outline : false,

    draft : false,

    compliance : false,

    });

    const [knowledgeBase] = useState(MOCK_KB_CONTENT);

    const [relevantKb, setRelevantKb] = useState('');

    const [analysisResult, setAnalysisResult] = useState(null);

    const [captureResult, setCaptureResult] = useState(null);

    const [proposalDraft, setProposalDraft] = useState(null);

    const [complianceMatrix, setComplianceMatrix] = useState(null);

    const [chatMessages, setChatMessages] = useState([]);

    const [isChatOpen, setIsChatOpen] = useState(false);

    const [isDocsModalOpen, setIsDocsModalOpen] = useState(false);

    const [attachedDocs, setAttachedDocs] = useState([]);

    const { toast } = useToast();

    / / Load proposal

    useEffect(() =>

    const fetchProposal = async () =>

    if (isNew) {

    setProposalName('New Proposal');

    setIsRfpSubmitted(false);

    setAttachedDocs([]);

    setRfpContent('');

    } else {

    try {

    const apiUrl = process.env.NEXT_PUBLIC_API_URL;

    if (!apiUrl) throw new Error('API URL not defined');

    const res = await fetch(`${apiUrl} / api / proposals / ${proposalId}`);

    if (!res.ok) throw new Error('Failed to fetch proposal');

    const data = await res.json();

    setProposalName(data.name ?? `Proposal ${name}`);

    setRfpContent(data.content ?? '');

    setIsRfpSubmitted(true);

    / / Map backend files to state

    if (Array.isArray(data.files) && data.files.length >

    0) {

    const files : AttachedDocument[] = data.files.map((f : any) =>

    ({

    id : f.id ?? f.name,

    name : f.name,

    type : f.type,

    textContent : f.textContent ?? '',

    size : f.size ?? undefined,

    }));

    setAttachedDocs(files);

    } else {

    setAttachedDocs([]);

    / / Knowledge base setup

    const filteredKb = knowledgeBase.filter(

    item =>

    item.category === 'General' || item.category === data.type

    );

    const kbContent = filteredKb.map(item =>

    item.content).join('

    ');

    setRelevantKb(kbContent);

    } catch (err : any) {

    toast({

    variant : 'destructive',

    title : 'Error fetching proposal',

    description : err.message ?? 'Something went wrong',

    });

    };

    fetchProposal();

    }, [proposalId, isNew, name, knowledgeBase, toast]);

    / / Listen for analysisUpdated

    useEffect(() =>

    const handleAnalysisUpdate = (event : Event) =>

    const customEvent = event as CustomEvent;

    if (customEvent.detail) {

    setAnalysisResult(customEvent.detail); / / update analysis directly

    };

    document.addEventListener("analysisUpdated", handleAnalysisUpdate);

    return () =>

    document.removeEventListener("analysisUpdated", handleAnalysisUpdate);

    };

    }, []);

    / / Submit RFP

    const handleRfpSubmit = (

    content : string,

    name : string,

    type : ProposalType,

    initialDocs? : AttachedDocument[]

    ) =>

    setRfpContent(content);

    setProposalName(name);

    if (initialDocs) setAttachedDocs(initialDocs);

    const filteredKb = knowledgeBase.filter(item =>

    item.category === 'General' || item.category === type);

    const kbContent = filteredKb.map(item =>

    item.content).join('

    ');

    setRelevantKb(kbContent);

    setIsRfpSubmitted(true);

    triggerAnalysisAndCapture(content, kbContent);

    };

    / / Run analysis

    const triggerAnalysisAndCapture = async (content : string, kbContent : string) =>

    setLoading({ analysis : true, capture : true, compliance : true, outline : true, draft : false });

    setAnalysisResult(null);

    setCaptureResult(null);

    setComplianceMatrix(null);

    setProposalDraft(null);

    setChatMessages([]);

    try {

    const [analysis, capture, compliance] = await Promise.all([

    retry(() =>

    analyzeRFPContent({ rfpContent : content, knowledgeBaseContent : kbContent })),

    retry(() =>

    generateClientProfile({ rfpContent : content, knowledgeBaseContent : kbContent })),

    retry(() =>

    generateComplianceMatrix({ rfpContent : content, knowledgeBaseContent : kbContent })),

    ]);

    setAnalysisResult(analysis);

    setCaptureResult(capture);

    setComplianceMatrix(compliance);

    } catch (error) {

    console.error('Error during initial analysis : ', error);

    toast({

    variant : 'destructive',

    title : 'Analysis Failed',

    description : 'There was an error processing the RFP content. Please try again.',

    });

    } finally {

    setLoading(prev =>

    ({ ...prev, analysis : false, capture : false, compliance : false, outline : false }));

    };

    / / Generate draft

    const handleGenerateDraft = async (proposalOutline : string) =>

    setLoading(prev =>

    ({ ...prev, draft : true }));

    setProposalDraft(null);

    try {

    const draft = await retry(() =>

    draftProposalSections({

    rfpContent,

    proposalOutline,

    knowledgeBaseContent : relevantKb,

    })

    );

    setProposalDraft(draft);

    } catch (error) {

    console.error('Error generating proposal draft : ', error);

    toast({

    variant : 'destructive',

    title : 'Draft Generation Failed',

    description : 'Could not generate the proposal draft. Please try again.',

    });

    } finally {

    setLoading(prev =>

    ({ ...prev, draft : false }));

    };

    / / Render

    return (

    { /

  • Header
  • / }
  • router.push(' / ')} className="h-8 w-8">

    {proposalName}

    {isRfpSubmitted && (

    setIsDocsModalOpen(true)}>

    Attached Documents

    setIsChatOpen(true)}>

    Chat with RFP

    )}

    { /

  • Main content
  • / }
  • {!isRfpSubmitted ? (

    ) : (

    { /

  • Attached Documents Modal
  • / }
  • {isDocsModalOpen && (

    setIsDocsModalOpen(false)}

    className="absolute top-3 right-3 text-gray-500 hover : text-gray-700"

    )}

    )}

    { /

  • Chat
  • / }
  • );

    Create a job alert for this search

    Xray Technician • Portland, OR, United States

    Related jobs
    • Promoted
    Travel X-Ray Tech - $1,834 to $2,033 per week in Oregon City, OR

    Travel X-Ray Tech - $1,834 to $2,033 per week in Oregon City, OR

    AlliedTravelCareersPortland, Oregon, US
    Full-time
    AlliedTravelCareers is working with LRS Healthcare to find a qualified X-Ray Tech in Oregon City, Oregon, 97045!.Ready to start your next travel adventure? LRS Healthcare offers a full benefits pac...Show moreLast updated: 10 days ago
    • Promoted
    Travel X-Ray Tech - $1,978 per week in Oregon City, OR

    Travel X-Ray Tech - $1,978 per week in Oregon City, OR

    AlliedTravelCareersPortland, Oregon, US
    Full-time
    AlliedTravelCareers is working with Skyline Med Staff to find a qualified X-Ray Tech in Oregon City, Oregon, 97045!.Join the Top- Rated Travel Healthcare Team! Skyline Med Staff was named as the #...Show moreLast updated: 10 days ago
    • Promoted
    Travel X-Ray Technician - $2246.4 / Week

    Travel X-Ray Technician - $2246.4 / Week

    Uniti MedPortland, OR, US
    Full-time
    Uniti Med is seeking an experienced X-Ray Technician for an exciting Travel Allied job in Portland, OR.Shift : Inquire Start Date : 11 / 10 / 2025 Duration : 13 weeks Pay : $2246.Uniti Med provides career ...Show moreLast updated: 14 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    American TravelerNewberg, OR, US
    Full-time
    American Traveler is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. American Traveler is hiring a CT / X-Ray Technologist for a night shift, d...Show moreLast updated: 4 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    PRN HealthcareNewberg, OR, US
    Full-time
    PRN Healthcare is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.PRN Healthcare Job ID #1451928. Pay package is based on 12 hour shifts and 3...Show moreLast updated: 4 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    Anders GroupNewberg, OR, US
    Full-time
    Anders Group is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Pay package is based on 12 hour shifts and 36 hours per week (subject to conf...Show moreLast updated: 4 days ago
    • Promoted
    Travel X-Ray Tech - $1,731 to $1,919 per week in Portland, OR

    Travel X-Ray Tech - $1,731 to $1,919 per week in Portland, OR

    AlliedTravelCareersPortland, OR, US
    Full-time
    AlliedTravelCareers is working with LRS Healthcare to find a qualified X-Ray Tech in Portland, Oregon, 97225!.Ready to start your next travel adventure? LRS Healthcare offers a full benefits packag...Show moreLast updated: 30+ days ago
    • Promoted
    Travel X-Ray Tech - $2,509 per week in Portland, OR

    Travel X-Ray Tech - $2,509 per week in Portland, OR

    AlliedTravelCareersPortland, OR, US
    Full-time
    AlliedTravelCareers is working with Windsor Healthcare Recruitment Group, Inc.X-Ray Tech in Portland, Oregon, 97225!.YR / 1ST TIMERS OK - X-Ray Tech - Req 9210 Will position float between units : No I...Show moreLast updated: 30+ days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    LanceSoftNewberg, OR, US
    Permanent
    LanceSoft is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.ARRT CT, ARRT R, BLS, State licensed required. Special requirements : Must also pr...Show moreLast updated: 4 days ago
    • Promoted
    Travel X-Ray Tech - $1,865 per week in Portland, OR

    Travel X-Ray Tech - $1,865 per week in Portland, OR

    AlliedTravelCareersPortland, Oregon, US
    Full-time
    AlliedTravelCareers is working with OneStaff Medical to find a qualified X-Ray Tech in Portland, Oregon, 97213!.An independently-owned, nationally-recognized and amazingly awesome staffing firm rea...Show moreLast updated: 19 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    Ethos Medical StaffingNewberg, OR, US
    Full-time
    Ethos Medical Staffing is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. Ethos Medical Staffing Job ID #34343300.Pay package is based on 12 ...Show moreLast updated: 4 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    LeaderStatNewberg, OR, US
    Full-time +1
    LeaderStat is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.The above pay package is an estimate, please contact our team to put together y...Show moreLast updated: 4 days ago
    • Promoted
    Travel X-Ray Tech - $2,145 per week in Portland, OR

    Travel X-Ray Tech - $2,145 per week in Portland, OR

    AlliedTravelCareersPortland, OR, US
    Full-time
    AlliedTravelCareers is working with Windsor Healthcare Recruitment Group, Inc.X-Ray Tech in Portland, Oregon, 97213!.YR / 1ST TIMERS OK - Xray Tech - Req 9237 Will position float between units : No Is...Show moreLast updated: 16 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    Genie HealthcareNewberg, OR, US
    Full-time
    Genie Healthcare is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Genie Healthcare is looking for a Radiology / Imaging to work in CT Tech fo...Show moreLast updated: 4 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    Care CareerNewberg, OR, US
    Full-time
    Care Career is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Also known as CT technicians, CT technologists take diagnostic images of patie...Show moreLast updated: 4 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    Aequor AlliedNewberg, OR, US
    Full-time
    Aequor Allied is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Pay package is based on 12 hour shifts and 36 hours per week (subject to con...Show moreLast updated: 4 days ago
    • Promoted
    Travel CT / X-Ray Technologist (Dual Modality)

    Travel CT / X-Ray Technologist (Dual Modality)

    Arrow Healthcare StaffingNewberg, OR, US
    Full-time
    Arrow Healthcare Staffing is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. Arrow Healthcare Staffing Job ID #17221741.Pay package is based ...Show moreLast updated: 4 days ago
    • Promoted
    Travel X-Ray Tech - $2,088 per week in Portland, OR

    Travel X-Ray Tech - $2,088 per week in Portland, OR

    AlliedTravelCareersPortland, OR, US
    Full-time
    AlliedTravelCareers is working with Cynet Health to find a qualified X-Ray Tech in Portland, Oregon, 97225!.Job Title : X-Ray Technician Profession : Radiology / Cardiology Specialty : X-Ray Tech ...Show moreLast updated: 30+ days ago
    • Promoted
    X-Ray Tech

    X-Ray Tech

    Kaiser PermanenteClackamas, OR, US
    Full-time
    Eligible for float pay- $2 / hour differential!.To provide diagnostic services in a hospital and / or clinical setting, to include clerical duties as required. To perform all duties in a manner that pro...Show moreLast updated: 26 days ago
    • Promoted
    Travel X-Ray Tech - $2,149 per week in Portland, OR

    Travel X-Ray Tech - $2,149 per week in Portland, OR

    AlliedTravelCareersPortland, OR, US
    Full-time +1
    AlliedTravelCareers is working with Focus Staff to find a qualified X-Ray Tech in Portland, Oregon, 97035!.The ideal candidate will have at least 1 year of experience in a X-Ray Tech setting.Benefi...Show moreLast updated: 30+ days ago