//--------------------------------------------------------------------------- #include #pragma hdrstop #include "EdVl_Frm.h" #include "MainForm.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TEditValue_Frm *EditValue_Frm; //--------------------------------------------------------------------------- __fastcall TEditValue_Frm::TEditValue_Frm(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TEditValue_Frm::Edit_ValueChange(TObject *Sender) { bool bEnable; bEnable = (Edit_Value->Text.Length() > 0); Button_InsBefore->Enabled = bEnable; Button_InsAfter->Enabled = bEnable; Button_Modify->Enabled = bEnable; } void __fastcall TEditValue_Frm::Button_InsBeforeClick(TObject *Sender) { TListItem *NewItem; int nIndex; if(ListView_Values->Selected == 0) nIndex = 0; else nIndex = ListView_Values->Selected->Index; NewItem = ListView_Values->Items->Insert(nIndex); NewItem->Caption = Edit_Value->Text; ListView_Values->Selected = NewItem; NewItem->Focused = true; } void __fastcall TEditValue_Frm::Button_InsAfterClick(TObject *Sender) { TListItem *NewItem; int nIndex; if(ListView_Values->Selected == 0) nIndex = ListView_Values->Items->Count; else nIndex = ListView_Values->Selected->Index + 1; NewItem = ListView_Values->Items->Insert(nIndex); NewItem->Caption = Edit_Value->Text; ListView_Values->Selected = NewItem; NewItem->Focused = true; } void __fastcall TEditValue_Frm::FormShow(TObject *Sender) { AnsiString strText; int x, nVal1, nVal2, uCount; TListItem *ItemX; Word nVR; ListView_Values->Items->Clear(); Edit_Value->Text = ""; LEADDicom1 = MainFrm->LEADDicom1; uCount = LEADDicom1->StringValueCount; if(uCount > 0) LEADDicom1->GetConvertValue(); for(x=0; xItems->Add(); ItemX->Caption = LEADDicom1->StringValues[x]; } if(ListView_Values->Items->Count > 0) ListView_Values->Selected = ListView_Values->Items->Item[0]; strText = "Value Representation: "; LEADDicom1->FindVR(LEADDicom1->CurrentElement->VR); nVR = LEADDicom1->CurrentElement->VR; strText = strText + LEADDicom1->CurrentVR->Name; nVal1 = LEADDicom1->CurrentVR->Restrict & VR_BINARY; nVal2 = LEADDicom1->CurrentVR->Restrict & VR_STRING; if((nVal1 != VR_BINARY) && (nVal2 != VR_STRING)) nVR = VR_UN; StaticText_VR->Caption = strText; switch(nVR) { case VR_OB: case VR_UN: strText = "Hexadecimal"; break; case VR_SS: case VR_US: case VR_OW: case VR_SL: case VR_IS: case VR_UL: strText = "Integer"; break; case VR_AT: strText = "Group:Element\n(Group and Element should be hexadecimal words)"; break; case VR_FD: case VR_FL: case VR_DS: strText = "Float"; break; case VR_CS: case VR_SH: case VR_LO: case VR_AE: case VR_LT: case VR_ST: case VR_UI: case VR_UT: case VR_PN: strText = "String"; break; case VR_AS: strText = "Number Reference\n(Reference = \"days\" or \"weeks\" or \"months\" or \"years\")"; break; case VR_DA: strText = "MM/DD/YYYY\n(MM=Month, DD=Day, YYYY=Year)"; break; case VR_DT: strText = "CC MM/DD/YYYY HH:MM:SS.FFFFFF&OOOO\n(CC=Century, MM=Month, DD=Day, YYYY=Year)\\r\\n(HH=Hours, MM=Minutes, SS=Seconds, FFFFFF=Fractional Second, OOOO=Offset from Coordinated Universal Time)"; break; case VR_TM: strText = "HH:MM:SS.FFFF\n(HH=Hours, MM=Minutes, SS=Seconds, FFFFFF=Fractional Second)"; break; default: strText = ""; break; } StaticText_Format->Caption = strText; } void __fastcall TEditValue_Frm::Button_ModifyClick(TObject *Sender) { TListItem *SelectedItem; SelectedItem = ListView_Values->Selected; if(SelectedItem != 0) SelectedItem->Caption = Edit_Value->Text; } void __fastcall TEditValue_Frm::Button_DeleteClick(TObject *Sender) { int DeletedIndex; if(ListView_Values->Selected != 0) { DeletedIndex = ListView_Values->Selected->Index; ListView_Values->Items->Delete(DeletedIndex); if(ListView_Values->Items->Count > 0) { if(DeletedIndex < ListView_Values->Items->Count) ListView_Values->Selected = ListView_Values->Items->Item[DeletedIndex]; else ListView_Values->Selected = ListView_Values->Items->Item[DeletedIndex-1]; ListView_Values->Selected->Focused = true; } } } void __fastcall TEditValue_Frm::ListView_ValuesChange(TObject *Sender, TListItem *Item, TItemChange Change) { if(Change == ctState) Edit_Value->Text = Item->Caption; } void __fastcall TEditValue_Frm::OKBtnClick(TObject *Sender) { Cardinal x, uCount; int nRet; /* update the dataset with the new values */ uCount = ListView_Values->Items->Count; LEADDicom1->StringValueCount = uCount; if(uCount > 0) { for(x=0; xStringValues[x] = ListView_Values->Items->Item[x]->Caption; nRet = LEADDicom1->SetConvertValue(); if(nRet != SUCCESS) { ShowMessage("Error Updating DataSet!"); ModalResult = mrAbort; } } else { LEADDicom1->BinaryValueCount = 0; LEADDicom1->SetBinaryValue(0); } }