예제 #1
0
 public void Execute(ScriptContext context)
 {
     if (context.PlanSetup != null)
     {
         //if (string.Compare(context.CurrentUser.Id, "r143285") == 0 || string.Compare(context.CurrentUser.Id, "r105231") == 0 || string.Compare(context.CurrentUser.Id, "r150801") == 0 || string.Compare(context.CurrentUser.Id, "r105229") == 0 || string.Compare(context.CurrentUser.Id, "r157726") == 0 || string.Compare(context.CurrentUser.Id, "r177773") == 0 || string.Compare(context.CurrentUser.Id, "r170483") == 0)
         string profession = string.Empty;
         AriaInterface.Connect();
         DataTable user = AriaInterface.Query("Select StaffId, Profession from Staff where StaffId = '" + context.CurrentUser.Id.ToString() + "'");
         AriaInterface.Disconnect();
         if (user.Rows.Count == 1 && user.Rows[0]["Profession"] != DBNull.Value)
         {
             profession = (string)user.Rows[0]["Profession"];
         }
         if (string.Compare(profession, "Fysiker") == 0 || string.Compare(profession, "dpl") == 0 || string.Compare(profession, "vik") == 0 || string.Compare(profession, "Fysikerstudent") == 0)
         {
             if (String.Compare(profession, "vik") == 0 || string.Compare(profession, "Fysikerstudent") == 0)
             {
                 profession = "dpl"; // Treat vik and Fysiker stud as dpl
             }
             Checklist.SelectChecklistWindow selectChecklistWindow = new Checklist.SelectChecklistWindow();
             if (selectChecklistWindow.ShowDialog() == DialogResult.OK)
             {
                 Checklist.Checklist checklist = new Checklist.Checklist(context.Patient, context.Course, context.PlanSetup, selectChecklistWindow.ChecklistType, context.CurrentUser.Id, profession);
                 checklist.Analyze();
             }
         }
         else
         {
             MessageBox.Show("Permission denied!", "Checklista", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
             try
             {
                 using (StreamWriter sw = File.AppendText(@"\\mtdb001\va_DATA$\Filedata\ProgramData\Vision\PublishedScripts\denied_login.txt"))
                 {
                     sw.WriteLine(DateTime.Now.ToString() + "\t" + context.CurrentUser.Id + "\t" + context.CurrentUser.Name);
                 }
             }
             catch
             {
             }
         }
     }
     else
     {
         MessageBox.Show("Ingen plan vald!", "Checklista", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
     }
 }
예제 #2
0
        OldChecks()
        {
            string u3_value = string.Empty;

            foreach (Beam beam in planSetup.Beams)
            {
                if (!beam.IsSetupField)
                {
                    if (u3_value != string.Empty)
                    {
                        u3_value += ", ";
                    }
                    u3_value += beam.Id + ": " + Math.Round(beam.Meterset.Value, 1).ToString() + " " + beam.Meterset.Unit.ToString();
                }
            }
            checklistItems.Add(new ChecklistItem("U3. Jämför MU mellan behandlingsprotokoll och Aria", "Kontrollera att MU stämmer överens mellan Aria/Eclipse och behandlingsprotokoll", u3_value, AutoCheckStatus.MANUAL));

            if (checklistType != ChecklistType.EclipseVMAT && checklistType != ChecklistType.MasterPlanIMRT)
            {
                checklistItems.Add(new ChecklistItem("U4. Diodvärden finns dokumenterade i protokollet", "Kontrollera att diodvärden finns dokumenterade i protokollet för konventionella planer.\r\nEclipse: Centralaxeln är lämplig som diodpunkt, i annat fall ska manuellt inskrivna diodvärden finnas i protokollet", string.Empty, AutoCheckStatus.MANUAL));
            }

            string          g1_value  = (image == null ? "-" : image.Comment);
            AutoCheckStatus g1_status = CheckResult(string.Compare(g1_value, "RT Thorax med gating  3.0  I30s") == 0);

            checklistItems.Add(new ChecklistItem("G1. CT-studie är korrekt m.a.p. gatingordination", "Kontrollera att det är ritat i korrekt CT-studie m.a.p. gatingordination (anges av läkare under kommentarer under behandlingsordination i behandlingskortet) och Image comment i protokollet", g1_value, g1_status));

            string          s11_value  = string.Empty;
            AutoCheckStatus s11_status = AutoCheckStatus.PASS;

            foreach (Beam beam in planSetup.Beams)
            {
                string    refImageId         = string.Empty;
                DataTable dataTableIDUPosVrt = AriaInterface.Query("select Image.ImageId from Radiation,Image where Image.ImageSer=Radiation.RefImageSer and Radiation.PlanSetupSer=" + planSetupSer.ToString() + " and Radiation.RadiationId='" + beam.Id + "'");
                if (dataTableIDUPosVrt.Rows.Count == 1)
                {
                    refImageId = (string)dataTableIDUPosVrt.Rows[0][0];
                }
                else
                {
                    s11_status = AutoCheckStatus.FAIL;
                }
                s11_value += (s11_value.Length == 0 ? string.Empty : ", ") + beam.Id + ": " + (refImageId.Length == 0 ? "-" : refImageId);
            }
            checklistItems.Add(new ChecklistItem("S3. Referensbild/DRR kopplad till alla fält", "Kontrollera att alla fält har en DRR kopplad samt har referensbild kopplad (gul ram runt bildikonen)", s11_value, s11_status));
        }