0){ diagnosisMatches.selectedIndex = 0; diagnosisMatches.setFocus(); } } private function set setPrimaryBtnState(codedValue: PCECodedValueVO): void { if (codedValue){ primaryDiagnosisBtn.enabled = true; } else { primaryDiagnosisBtn.enabled = false; } } private function setPrimaryDiagnosis():void { var selectedDiagnosis:PCECodedValueVO = selectedDiagnosisGrid.selectedItem as PCECodedValueVO; if (selectedDiagnosis == null) return; model.logEdit.entry.diagnoses.filterFunction = null; for each (var enteredDiagnosis: PCECodedValueVO in model.logEdit.entry.diagnoses) { enteredDiagnosis.updated = true; if (enteredDiagnosis.code == selectedDiagnosis.code){ enteredDiagnosis.primary = true; } else { enteredDiagnosis.primary = false; } var updateEvent:ChangeLogEntryFieldEvent = new ChangeLogEntryFieldEvent(ChangeLogEntryFieldEvent.EVENT_CHANGE_LOG_ENTRY_FIELD); updateEvent.clear = false; updateEvent.field = "diagnoses"; updateEvent.value = enteredDiagnosis; updateEvent.dispatch(); } } private function addDiagnosis(): void { var pceItem: PCECodedValueVO = diagnosisMatches.selectedItem as PCECodedValueVO; if (pceItem== null || isDuplicateCode(pceItem) || isEmptyCode(pceItem)) return; if (model.logEdit.entry.diagnoses.length == 0) pceItem.primary = true; pceItem.added = true; var addEvent:ChangeLogEntryFieldEvent = new ChangeLogEntryFieldEvent(ChangeLogEntryFieldEvent.EVENT_CHANGE_LOG_ENTRY_FIELD); addEvent.clear = false; addEvent.field = "diagnoses"; addEvent.value = pceItem; addEvent.dispatch(); if (AccessibilityTools.isAccessibilityActive()) InfoDialog.show("added successfully", "Message", true, searchBtn); txtDiagnosis.text = ""; diagnosisMatches.selectedIndex = -1; txtDiagnosis.setFocus(); } private function isEmptyCode(selectedDiagnosis: PCECodedValueVO): Boolean { if (selectedDiagnosis.code == "" || selectedDiagnosis.code == null){ return true; } else { return false; } } private function isDuplicateCode(selectedDiagnosis: PCECodedValueVO): Boolean { var enteredDiagnoses:ICollectionView = model.logEdit.entry.diagnoses; for each (var enteredDiagnosis: PCECodedValueVO in enteredDiagnoses) { if (selectedDiagnosis.code == enteredDiagnosis.code) return true; } return false; } public static function activeDiagnosisFilter(item:Object): Boolean { var pceItem: PCECodedValueVO = item as PCECodedValueVO; return !pceItem.remove; } private function removeDiagnosis(): void { if (selectedDiagnosisGrid.selectedIndex < 0) return; model.logEdit.entry.diagnoses.filterFunction = activeDiagnosisFilter; model.logEdit.entry.diagnoses.refresh(); var codedValue: PCECodedValueVO = selectedDiagnosisGrid.selectedItem as PCECodedValueVO; var removeEvent:ChangeLogEntryFieldEvent = new ChangeLogEntryFieldEvent(ChangeLogEntryFieldEvent.EVENT_CHANGE_LOG_ENTRY_FIELD); removeEvent.clear = true; removeEvent.field = "diagnoses"; removeEvent.value = codedValue; removeEvent.dispatch(); if (AccessibilityTools.isAccessibilityActive()) InfoDialog.show("removed successfully", "Message", true, addBtn); selectedDiagnosisGrid.setFocus(); } private function matchDiagnoses():void { diagnosisMatches.dataProvider = null; var matchEvent: MatchItemsEvent = new MatchItemsEvent(MatchItemsEvent.EVENT_MATCH_DIAGNOSES); matchEvent.partial = txtDiagnosis.text; matchEvent.dispatch(); } private function addDiagnosisOnEnter(event:KeyboardEvent):void { if (event.keyCode == Keyboard.ENTER){ addDiagnosis(); } } private function removeDiagnosisOnDelete(event:KeyboardEvent):void { if (KeyUtils.isRemoveKey(event)){ removeDiagnosis(); } } /* Calls to validateData were removed because the diagnosis is NOT required before saving the record. It is only required when removing the patient from the board and closing the visit. The call to validateData was previously at the end of addDiagnosis() and in the valueCommit property of selectedDiagnosisGrid. private function validateData():void { if (model.logEdit.entry != null && model.logEdit.entry.requireDiagnosis){ if (model.logEdit.entry.diagnoses.length > 0){ selectedDiagnosisGrid.errorString = ""; } else { selectedDiagnosisGrid.errorString = "At least one diagnosis must be provided."; } } } */ ]]>