///<summary>Only used for incremental tooth movements. Automatically adds a movement to any existing movement. Supply a list of all toothInitials for the patient.</summary> public static void AddMovement(ToothInitial[] initialList, int patNum, string tooth_id, ToothInitialType initialType, float moveAmt) { ToothInitial ti = null; for (int i = 0; i < initialList.Length; i++) { if (initialList[i].ToothNum == tooth_id && initialList[i].InitialType == initialType) { ti = initialList[i].Copy(); } } if (ti == null) { ti = new ToothInitial(); ti.PatNum = patNum; ti.ToothNum = tooth_id; ti.InitialType = initialType; ti.Movement = moveAmt; ToothInitials.Insert(ti); return; } ti.Movement += moveAmt; ToothInitials.Update(ti); }
///<summary>Same as SetValue, but does not clear any values first. Only use this if you have first run ClearAllValuesForType.</summary> public static void SetValueQuick(int patNum, string tooth_id, ToothInitialType initialType, float moveAmt) { ToothInitial ti = new ToothInitial(); ti.PatNum = patNum; ti.ToothNum = tooth_id; ti.InitialType = initialType; ti.Movement = moveAmt; ToothInitials.Insert(ti); }
private void DrawProcGraphics() { //this requires: ProcStatus, ProcCode, ToothNum, HideGraphics, Surf, and ToothRange. All need to be raw database values. string[] teeth; Color cLight = Color.White; Color cDark = Color.White; List <Def> listDefs = Defs.GetDefsForCategory(DefCat.ChartGraphicColors, true); for (int i = 0; i < ProcList.Count; i++) { if (ProcList[i]["HideGraphics"].ToString() == "1") { continue; } if (ProcedureCodes.GetProcCode(ProcList[i]["ProcCode"].ToString()).PaintType == ToothPaintingType.Extraction && ( PIn.Long(ProcList[i]["ProcStatus"].ToString()) == (int)ProcStat.C || PIn.Long(ProcList[i]["ProcStatus"].ToString()) == (int)ProcStat.EC || PIn.Long(ProcList[i]["ProcStatus"].ToString()) == (int)ProcStat.EO )) { continue; //prevents the red X. Missing teeth already handled. } if (ProcedureCodes.GetProcCode(ProcList[i]["ProcCode"].ToString()).GraphicColor.ToArgb() == Color.FromArgb(0).ToArgb()) { switch ((ProcStat)PIn.Long(ProcList[i]["ProcStatus"].ToString())) { case ProcStat.C: cDark = listDefs[1].ItemColor; cLight = listDefs[6].ItemColor; break; case ProcStat.TP: cDark = listDefs[0].ItemColor; cLight = listDefs[5].ItemColor; break; case ProcStat.EC: cDark = listDefs[2].ItemColor; cLight = listDefs[7].ItemColor; break; case ProcStat.EO: cDark = listDefs[3].ItemColor; cLight = listDefs[8].ItemColor; break; case ProcStat.R: cDark = listDefs[4].ItemColor; cLight = listDefs[9].ItemColor; break; case ProcStat.Cn: cDark = listDefs[16].ItemColor; cLight = listDefs[17].ItemColor; break; } } else { cDark = ProcedureCodes.GetProcCode(ProcList[i]["ProcCode"].ToString()).GraphicColor; cLight = ProcedureCodes.GetProcCode(ProcList[i]["ProcCode"].ToString()).GraphicColor; } switch (ProcedureCodes.GetProcCode(ProcList[i]["ProcCode"].ToString()).PaintType) { case ToothPaintingType.BridgeDark: if (ToothInitials.ToothIsMissingOrHidden(ToothInitialList, ProcList[i]["ToothNum"].ToString())) { toothChart.SetPontic(ProcList[i]["ToothNum"].ToString(), cDark); } else { toothChart.SetCrown(ProcList[i]["ToothNum"].ToString(), cDark); } break; case ToothPaintingType.BridgeLight: if (ToothInitials.ToothIsMissingOrHidden(ToothInitialList, ProcList[i]["ToothNum"].ToString())) { toothChart.SetPontic(ProcList[i]["ToothNum"].ToString(), cLight); } else { toothChart.SetCrown(ProcList[i]["ToothNum"].ToString(), cLight); } break; case ToothPaintingType.CrownDark: toothChart.SetCrown(ProcList[i]["ToothNum"].ToString(), cDark); break; case ToothPaintingType.CrownLight: toothChart.SetCrown(ProcList[i]["ToothNum"].ToString(), cLight); break; case ToothPaintingType.DentureDark: if (ProcList[i]["Surf"].ToString() == "U") { teeth = new string[14]; for (int t = 0; t < 14; t++) { teeth[t] = (t + 2).ToString(); } } else if (ProcList[i]["Surf"].ToString() == "L") { teeth = new string[14]; for (int t = 0; t < 14; t++) { teeth[t] = (t + 18).ToString(); } } else { teeth = ProcList[i]["ToothRange"].ToString().Split(new char[] { ',' }); } for (int t = 0; t < teeth.Length; t++) { if (ToothInitials.ToothIsMissingOrHidden(ToothInitialList, teeth[t])) { toothChart.SetPontic(teeth[t], cDark); } else { toothChart.SetCrown(teeth[t], cDark); } } break; case ToothPaintingType.DentureLight: if (ProcList[i]["Surf"].ToString() == "U") { teeth = new string[14]; for (int t = 0; t < 14; t++) { teeth[t] = (t + 2).ToString(); } } else if (ProcList[i]["Surf"].ToString() == "L") { teeth = new string[14]; for (int t = 0; t < 14; t++) { teeth[t] = (t + 18).ToString(); } } else { teeth = ProcList[i]["ToothRange"].ToString().Split(new char[] { ',' }); } for (int t = 0; t < teeth.Length; t++) { if (ToothInitials.ToothIsMissingOrHidden(ToothInitialList, teeth[t])) { toothChart.SetPontic(teeth[t], cLight); } else { toothChart.SetCrown(teeth[t], cLight); } } break; case ToothPaintingType.Extraction: toothChart.SetBigX(ProcList[i]["ToothNum"].ToString(), cDark); break; case ToothPaintingType.FillingDark: toothChart.SetSurfaceColors(ProcList[i]["ToothNum"].ToString(), ProcList[i]["Surf"].ToString(), cDark); break; case ToothPaintingType.FillingLight: toothChart.SetSurfaceColors(ProcList[i]["ToothNum"].ToString(), ProcList[i]["Surf"].ToString(), cLight); break; case ToothPaintingType.Implant: toothChart.SetImplant(ProcList[i]["ToothNum"].ToString(), cDark); break; case ToothPaintingType.PostBU: toothChart.SetBU(ProcList[i]["ToothNum"].ToString(), cDark); break; case ToothPaintingType.RCT: toothChart.SetRCT(ProcList[i]["ToothNum"].ToString(), cDark); break; case ToothPaintingType.Sealant: toothChart.SetSealant(ProcList[i]["ToothNum"].ToString(), cDark); break; case ToothPaintingType.Veneer: toothChart.SetVeneer(ProcList[i]["ToothNum"].ToString(), cLight); break; case ToothPaintingType.Watch: toothChart.SetWatch(ProcList[i]["ToothNum"].ToString(), cDark); break; } } }