Talent.com
X-Ray Technician

X-Ray Technician

vTech SolutionPortland, OR, United States
job_description.job_card.variable_days_ago
serp_jobs.job_preview.job_type
  • serp_jobs.job_card.full_time
  • serp_jobs.filters_job_card.quick_apply
job_description.job_card.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
  • / }
  • );

    serp_jobs.job_alerts.create_a_job

    Xray Technician • Portland, OR, United States

    Job_description.internal_linking.related_jobs
    • serp_jobs.job_card.promoted
    X-Ray Tech

    X-Ray Tech

    Kaiser PermanentePortland, OR, US
    serp_jobs.job_card.full_time
    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 promotes team concepts and reflects the KPNW Miss...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Travel Nurses, Inc.Newberg, OR, US
    serp_jobs.job_card.full_time
    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 confirmation) with tax-free stipend a...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Radiology Technologist

    Radiology Technologist

    Adventist HealthPortland, OR, US
    serp_jobs.job_card.full_time
    Adventist Health is seeking a Radiology Technologist for a job in Portland, Oregon.Job Description & Requirements.In a bustling cosmopolitan area surrounded by nature, Adventist Health Portland...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    LanceSoftNewberg, OR, US
    serp_jobs.job_card.permanent
    LanceSoft is seeking a travel CT Technologist for a travel job in Newberg, OR, Oregon.Job Description & Requirements.Certifications - ARRT CT, ARRT R, BLS, State licensed.Requirements - Must ha...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Local Contract Cardiology Radiology X‐Ray Tech

    Local Contract Cardiology Radiology X‐Ray Tech

    Stability HealthcarePortland, OR, US
    serp_jobs.job_card.full_time
    Stability Healthcare is seeking a local contract Radiology Technologist for a local contract job in Portland, Oregon.Job Description & Requirements. Stability Healthcare is looking for a Radiolo...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_variable_days
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    National Staffing Solutions-Surgical ServicesNewberg, OR, US
    serp_jobs.job_card.full_time
    National Staffing Solutions-Surgical Services is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. National Staffing Solutions-Surgical Service...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    KPG AlliedNewberg, OR, US
    serp_jobs.job_card.permanent
    KPG Allied is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Candidates must have at least 1 years of paid experience in the last 3 years.Pa...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Healthcare SupportNewberg, OR, US
    serp_jobs.job_card.permanent
    Healthcare Support is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. Healthcare Support Job ID #474346.Pay package is based on 12 hour shift...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    CT Technologist

    CT Technologist

    Adventist HealthPortland, OR, US
    serp_jobs.job_card.full_time
    Adventist Health is seeking a CT Technologist for a job in Portland, Oregon.Job Description & Requirements.Are you looking to be a part of a close knit, growing, innovative team, in a suburban ...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Springboard HealthcareNewberg, OR, US
    serp_jobs.job_card.full_time
    Springboard Healthcare is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. Springboard Healthcare Job ID #787155.Pay package is based on 12 ho...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Techlink Systems Inc.Newberg, OR, US
    serp_jobs.job_card.full_time
    CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Job Title : Radiology / Cardiology - CT Tech. Location (On-site, Remote, or Hybrid?) : Newberg, OR (ons...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_variable_days
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Triage StaffingNewberg, OR, US
    serp_jobs.job_card.full_time
    Triage Staffing is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Travel Radiology : CT Tech Newberg.Location : &...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    AHS StaffingNewberg, OR, US
    serp_jobs.job_card.full_time
    AHS Staffing is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.AHS Staffing is looking for a CT Tech Radiologic Technologist in Newberg, OR ...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Fusion Medical Staffing-RadiologyNewberg, OR, US
    serp_jobs.job_card.full_time
    Fusion Medical Staffing-Radiology is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. Fusion Medical Staffing is seeking a skilled CT Tech for...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    ALOIS HealthcareNewberg, OR, US
    serp_jobs.job_card.full_time
    ALOIS Healthcare is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.A CT scan technologist must be able to accurately interpret a physician&#...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Uniti MedNewberg, OR, US
    serp_jobs.job_card.full_time
    Uniti Med is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.Uniti Med is looking for a Travel CT Tech (ARRT, CT) in Newberg, OR.This assignm...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    LRS Healthcare - AlliedNewberg, OR, US
    serp_jobs.job_card.permanent
    LRS Healthcare - Allied is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. LRS Healthcare - Allied Job ID #30I-23246.Pay package is based on ...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    Trustaff AlliedNewberg, OR, US
    serp_jobs.job_card.full_time
    Trustaff Allied is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements.As a CT Tech, you'll capture important diagnostic images by working di...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    Travel CT Technologist

    Travel CT Technologist

    MedPro Healthcare Allied StaffingNewberg, OR, US
    serp_jobs.job_card.full_time
    MedPro Healthcare Allied Staffing is seeking a travel CT Technologist for a travel job in Newberg, Oregon.Job Description & Requirements. Joint Commission-certified staffing agency, is seeking a...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30
    • serp_jobs.job_card.promoted
    CT Tech

    CT Tech

    Kaiser PermanenteClackamas, OR, US
    serp_jobs.job_card.full_time
    Eligible for float pay- $2 / hour differential!.To provide diagnostic CT services to include clerical duties as required. To perform all duties in a manner which promotes team concepts and reflects th...serp_jobs.internal_linking.show_moreserp_jobs.last_updated.last_updated_30