List of usage examples for org.apache.wicket.extensions.markup.html.form DateTextField DateTextField
public DateTextField(final String id, final IModel<Date> model, final String datePattern)
SimpleDateFormat
pattern. From source file:au.org.theark.core.web.component.customfield.dataentry.DateDataEntryPanel.java
License:Open Source License
/** * DateDataEntryPanel Constructor/* w w w . j a v a 2s. c om*/ * * @param id * - component id * @param dateDataModel * - must be a model for a Date dataValue * @param labelModel * - field-specific String label model to be used for feedback */ public DateDataEntryPanel(String id, IModel<Date> dateDataModel, IModel<String> labelModel) { super(id, labelModel); dataValueModel = dateDataModel; dataValueDateFld = new DateTextField("dateDataValue", dataValueModel, au.org.theark.core.Constants.DD_MM_YYYY); ArkDatePicker datePicker = new ArkDatePicker(); datePicker.bind(dataValueDateFld); dataValueDateFld.setLabel(fieldLabelModel); // set the ${label} for feedback messages dataValueDateFld.add(datePicker); this.add(dataValueDateFld); }
From source file:au.org.theark.lims.web.component.biospecimen.batchcreate.form.AutoGenBatchCreateBiospecimenForm.java
License:Open Source License
/** * //from w w w . j av a2 s . c o m * @return the listEditor of BatchBiospecimen(s) */ public AbstractListEditor<BatchBiospecimenVO> buildListEditor() { listEditor = new AbstractListEditor<BatchBiospecimenVO>("batchBiospecimenList", new PropertyModel(this, "batchBiospecimenList")) { private static final long serialVersionUID = 1L; @SuppressWarnings("serial") @Override protected void onPopulateItem(final ListItem<BatchBiospecimenVO> item) { item.setOutputMarkupId(true); item.getModelObject().getBiospecimen() .setLinkSubjectStudy(cpModel.getObject().getLinkSubjectStudy()); item.getModelObject().getBiospecimen() .setStudy(cpModel.getObject().getLinkSubjectStudy().getStudy()); numberToCreateTxtFld = new TextField<Number>("numberToCreate", new PropertyModel(item.getModelObject(), "numberToCreate")); initBioCollectionDdc(item); initSampleTypeDdc(item); sampleDateTxtFld = new DateTextField("biospecimen.sampleDate", new PropertyModel(item.getModelObject(), "biospecimen.sampleDate"), au.org.theark.core.Constants.DD_MM_YYYY); ArkDatePicker sampleDatePicker = new ArkDatePicker(); sampleDatePicker.bind(sampleDateTxtFld); sampleDateTxtFld.add(sampleDatePicker); quantityTxtFld = new TextField<Double>("biospecimen.quantity", new PropertyModel(item.getModelObject(), "biospecimen.quantity")) { private static final long serialVersionUID = 1L; @Override public <C> IConverter<C> getConverter(Class<C> type) { DoubleConverter doubleConverter = new DoubleConverter(); NumberFormat numberFormat = NumberFormat.getInstance(); numberFormat.setMinimumFractionDigits(1); doubleConverter.setNumberFormat(getLocale(), numberFormat); return (IConverter<C>) doubleConverter; } }; initUnitDdc(item); initTreatmentTypeDdc(item); concentrationTxtFld = new TextField<Number>("biospecimen.concentration", new PropertyModel(item.getModelObject(), "biospecimen.concentration")); // Added onchange events to ensure model updated when any change made item.add(numberToCreateTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(bioCollectionDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(sampleTypeDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(sampleDateTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(quantityTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(unitDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(treatmentTypeDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(concentrationTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); // Copy button allows entire row details to be copied item.add(new AjaxEditorButton(Constants.COPY) { private static final long serialVersionUID = 1L; @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedbackPanel); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { BatchBiospecimenVO batchBiospecimenVo = new BatchBiospecimenVO(); try { batchBiospecimenVo.setNumberToCreate(item.getModelObject().getNumberToCreate()); PropertyUtils.copyProperties(batchBiospecimenVo.getBiospecimen(), item.getModelObject().getBiospecimen()); listEditor.addItem(batchBiospecimenVo); target.add(form); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } }.setDefaultFormProcessing(false)); item.add(new AjaxEditorButton(Constants.DELETE) { private static final long serialVersionUID = 1L; @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedbackPanel); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { listEditor.removeItem(item); target.add(form); } }.setDefaultFormProcessing(false).setVisible(item.getIndex() > 0)); item.add(new AttributeModifier(Constants.CLASS, new AbstractReadOnlyModel() { private static final long serialVersionUID = 1L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? Constants.EVEN : Constants.ODD; } })); } }; return listEditor; }
From source file:au.org.theark.lims.web.component.biospecimen.batchcreate.form.ManualBatchCreateBiospecimenForm.java
License:Open Source License
/** * /*from w ww .ja v a 2 s . c om*/ * @return the listEditor of BatchBiospecimen(s) */ public AbstractListEditor<BatchBiospecimenVO> buildListEditor() { listEditor = new AbstractListEditor<BatchBiospecimenVO>("batchBiospecimenList", new PropertyModel(this, "batchBiospecimenList")) { private static final long serialVersionUID = 1L; @SuppressWarnings("serial") @Override protected void onPopulateItem(final ListItem<BatchBiospecimenVO> item) { item.setOutputMarkupId(true); item.getModelObject().getBiospecimen() .setLinkSubjectStudy(cpModel.getObject().getLinkSubjectStudy()); item.getModelObject().getBiospecimen() .setStudy(cpModel.getObject().getLinkSubjectStudy().getStudy()); biospecimenUidTxtFld = new TextField<String>("biospecimen.biospecimenUid", new PropertyModel(item.getModelObject(), "biospecimen.biospecimenUid")); initBioCollectionDdc(item); initSampleTypeDdc(item); sampleDateTxtFld = new DateTextField("biospecimen.sampleDate", new PropertyModel(item.getModelObject(), "biospecimen.sampleDate"), au.org.theark.core.Constants.DD_MM_YYYY); ArkDatePicker sampleDatePicker = new ArkDatePicker(); sampleDatePicker.bind(sampleDateTxtFld); sampleDateTxtFld.add(sampleDatePicker); quantityTxtFld = new TextField<Double>("biospecimen.quantity", new PropertyModel(item.getModelObject(), "biospecimen.quantity")) { private static final long serialVersionUID = 1L; @Override public <C> IConverter<C> getConverter(Class<C> type) { DoubleConverter doubleConverter = new DoubleConverter(); NumberFormat numberFormat = NumberFormat.getInstance(); numberFormat.setMinimumFractionDigits(1); doubleConverter.setNumberFormat(getLocale(), numberFormat); return (IConverter<C>) doubleConverter; } }; initUnitDdc(item); initTreatmentTypeDdc(item); concentrationTxtFld = new TextField<Number>("biospecimen.concentration", new PropertyModel(item.getModelObject(), "biospecimen.concentration")); // Added onchange events to ensure model updated when any change made item.add(biospecimenUidTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { // Check BiospecimenUID is unique String biospecimenUid = (getComponent().getDefaultModelObject().toString() != null ? getComponent().getDefaultModelObject().toString() : new String()); Biospecimen biospecimen = iLimsService.getBiospecimenByUid(biospecimenUid, item.getModelObject().getBiospecimen().getStudy()); if (biospecimen != null && biospecimen.getId() != null) { ManualBatchCreateBiospecimenForm.this .error("Biospecimen UID must be unique. Please try again."); target.focusComponent(getComponent()); } target.add(feedbackPanel); } })); item.add(bioCollectionDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(sampleTypeDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(sampleDateTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(quantityTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(unitDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(treatmentTypeDdc.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); item.add(concentrationTxtFld.add(new AjaxFormComponentUpdatingBehavior("onchange") { @Override protected void onUpdate(AjaxRequestTarget target) { } })); // Copy button allows entire row details to be copied item.add(new AjaxEditorButton(Constants.COPY) { private static final long serialVersionUID = 1L; @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedbackPanel); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { BatchBiospecimenVO batchBiospecimenVo = new BatchBiospecimenVO(); try { PropertyUtils.copyProperties(batchBiospecimenVo.getBiospecimen(), item.getModelObject().getBiospecimen()); batchBiospecimenVo.getBiospecimen().setBiospecimenUid(new String()); listEditor.addItem(batchBiospecimenVo); target.add(form); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } } }.setDefaultFormProcessing(false)); item.add(new AjaxEditorButton(Constants.DELETE) { private static final long serialVersionUID = 1L; @Override protected void onError(AjaxRequestTarget target, Form<?> form) { target.add(feedbackPanel); } @Override protected void onSubmit(AjaxRequestTarget target, Form<?> form) { listEditor.removeItem(item); target.add(form); } }.setDefaultFormProcessing(false).setVisible(item.getIndex() > 0)); item.add(new AttributeModifier(Constants.CLASS, new AbstractReadOnlyModel() { private static final long serialVersionUID = 1L; @Override public String getObject() { return (item.getIndex() % 2 == 1) ? Constants.EVEN : Constants.ODD; } })); } }; return listEditor; }
From source file:au.org.theark.lims.web.component.panel.subject.SubjectDetailForm.java
License:Open Source License
public void initialiseDetailForm() { subjectUIDTxtFld = new TextField<String>("subjectUID", new PropertyModel<String>(getDefaultModel(), "subjectUID")); subjectUIDTxtFld.setOutputMarkupId(true); firstNameTxtFld = new TextField<String>("person.firstName", new PropertyModel<String>(getDefaultModel(), "person.firstName")); lastNameTxtFld = new TextField<String>("person.lastName", new PropertyModel<String>(getDefaultModel(), "person.lastName")); dateOfBirthTxtFld = new DateTextField("person.dateOfBirth", new PropertyModel<Date>(getDefaultModel(), "person.dateOfBirth"), au.org.theark.core.Constants.DD_MM_YYYY); addDetailFormComponents();//from w ww. j a v a 2 s . c om }
From source file:com.doculibre.constellio.wicket.panels.admin.stats.CollectionStatsPanel.java
License:Open Source License
public CollectionStatsPanel(String id, final String collectionName) { super(id);/*w w w. ja va 2s.c o m*/ endDate = new Date(); startDate = DateUtils.addMonths(endDate, -1); Form form = new Form("form") { @Override protected void onSubmit() { statsPanel.replaceWith(statsPanel = new CollectionStatsReportPanel(statsPanel.getId(), collectionName, statsType, startDate, endDate, rows, includeFederatedCollections)); } }; add(form); IModel queryExcludeRegexpsModel = new Model() { @Override public Object getObject() { String result; AdminCollectionPanel adminCollectionPanel = (AdminCollectionPanel) findParent( AdminCollectionPanel.class); RecordCollection collection = adminCollectionPanel.getCollection(); CollectionStatsFilter statsFilter = collection.getStatsFilter(); if (statsFilter != null) { StringBuffer sb = new StringBuffer(); Set<String> existingRegexps = statsFilter.getQueryExcludeRegexps(); for (String existingRegexp : existingRegexps) { sb.append(existingRegexp); sb.append("\n"); } result = sb.toString(); } else { result = null; } return result; } @Override public void setObject(Object object) { String queryExcludeRegexpsStr = (String) object; String[] newRegexpsArray = StringUtils.split(queryExcludeRegexpsStr, "\n"); List<String> newRegexps = new ArrayList<String>(); for (String newRegexp : newRegexpsArray) { newRegexps.add(newRegexp.trim()); } AdminCollectionPanel adminCollectionPanel = (AdminCollectionPanel) findParent( AdminCollectionPanel.class); RecordCollection collection = adminCollectionPanel.getCollection(); CollectionStatsFilter statsFilter = collection.getStatsFilter(); if (statsFilter == null) { statsFilter = new CollectionStatsFilter(); statsFilter.setRecordCollection(collection); collection.setStatsFilter(statsFilter); } Set<String> existingRegexps = statsFilter.getQueryExcludeRegexps(); if (!CollectionUtils.isEqualCollection(existingRegexps, newRegexps)) { RecordCollectionServices collectionServices = ConstellioSpringUtils .getRecordCollectionServices(); EntityManager entityManager = ConstellioPersistenceContext.getCurrentEntityManager(); if (!entityManager.getTransaction().isActive()) { entityManager.getTransaction().begin(); } existingRegexps.clear(); existingRegexps.addAll(newRegexps); collectionServices.makePersistent(collection, false); entityManager.getTransaction().commit(); } } }; form.add(new TextArea("queryExcludeRegexps", queryExcludeRegexpsModel)); form.add(new DateTextField("startDate", new PropertyModel(this, "startDate"), "yyyy-MM-dd") .add(new DatePicker())); form.add(new DateTextField("endDate", new PropertyModel(this, "endDate"), "yyyy-MM-dd") .add(new DatePicker())); form.add(new TextField("rows", new PropertyModel(this, "rows"), Integer.class)); form.add(new CheckBox("includeFederatedCollections", new PropertyModel(this, "includeFederatedCollections")) { @Override public boolean isVisible() { boolean visible = super.isVisible(); if (visible) { AdminCollectionPanel adminCollectionPanel = (AdminCollectionPanel) findParent( AdminCollectionPanel.class); RecordCollection collection = adminCollectionPanel.getCollection(); visible = collection.isFederationOwner(); } return visible ? visible : false; } }); form.add(new DropDownChoice("statsType", new PropertyModel(this, "statsType"), StatsConstants.ALL_STATS, new StringResourceChoiceRenderer("statsType", this))); form.add(new Label("title", new PropertyModel(this, "statsType"))); statsPanel = new AjaxLazyLoadPanel("statsPanel") { @Override public Component getLazyLoadComponent(String markupId) { return new CollectionStatsReportPanel(markupId, collectionName, statsType, startDate, endDate, rows, includeFederatedCollections); } }; form.add(statsPanel); }
From source file:org.dcache.webadmin.view.panels.alarms.QueryPanel.java
License:Open Source License
private void addDateFields(AlarmTableProvider provider) { DateTextField beginning = new DateTextField("beginDate", new PropertyModel<Date>(provider, "after"), DATE); DatePicker dp = new DatePicker(); dp.setShowOnFieldClick(true);/*from ww w.ja v a 2 s .c o m*/ beginning.add(dp); add(beginning); DateTextField ending = new DateTextField("endDate", new PropertyModel<Date>(provider, "before"), DATE); dp = new DatePicker(); dp.setShowOnFieldClick(true); ending.add(dp); add(ending); }
From source file:org.patientview.radar.web.panels.DiagnosisPanel.java
License:Open Source License
public DiagnosisPanel(String id, final IModel<Long> radarNumberModel) { super(id);//from ww w.ja va 2s . co m setOutputMarkupId(true); setOutputMarkupPlaceholderTag(true); // Set up model // Set up loadable detachable, working for null radar numbers (new patients) and existing final CompoundPropertyModel<Diagnosis> model = new CompoundPropertyModel<Diagnosis>( new LoadableDetachableModel<Diagnosis>() { @Override protected Diagnosis load() { if (radarNumberModel.getObject() != null) { Long radarNumber; try { radarNumber = radarNumberModel.getObject(); } catch (ClassCastException e) { Object obj = radarNumberModel.getObject(); radarNumber = Long.parseLong((String) obj); } Diagnosis diagnosis = diagnosisManager.getDiagnosisByRadarNumber(radarNumber); if (diagnosis != null) { return diagnosis; } else { return new Diagnosis(); } } else { return new Diagnosis(); } } }); // Clinical presentation A - goes here in the file as referenced in form submit final DropDownChoice<ClinicalPresentation> clinicalPresentationA = new ClinicalPresentationDropDownChoice( "clinicalPresentationA"); clinicalPresentationA.setOutputMarkupId(true); clinicalPresentationA.setOutputMarkupPlaceholderTag(true); final Form<Diagnosis> form = new Form<Diagnosis>("form", model) { @Override protected void onValidateModelObjects() { super.onValidateModelObjects(); Diagnosis diagnosis = getModelObject(); ClinicalPresentation presentationA = diagnosis.getClinicalPresentationA(); ClinicalPresentation presentationB = diagnosis.getClinicalPresentationB(); // Validate that the two aren't the same if (presentationA != null && presentationB != null && presentationA.equals(presentationB)) { clinicalPresentationA.error("A and B cannot be the same"); } } @Override protected void onSubmit() { Diagnosis diagnosis = getModelObject(); Date dateOfDiagnosis = diagnosis.getBiopsyDate(); Long radarNumber; try { radarNumber = radarNumberModel.getObject(); } catch (ClassCastException e) { Object obj = radarNumberModel.getObject(); radarNumber = Long.parseLong((String) obj); } Patient patient = patientManager.getPatientByRadarNumber(radarNumber); Date dob = patient.getDob(); if (dateOfDiagnosis != null && dob != null) { int age = Years.yearsBetween(new DateTime(dob), new DateTime(dateOfDiagnosis)).getYears(); diagnosis.setAgeAtDiagnosis(age); } diagnosisManager.saveDiagnosis(diagnosis); // additional significant diagnosis needs to carry through to clinical data List<ClinicalData> clinicalDataList = clinicalDataManager .getClinicalDataByRadarNumber(diagnosis.getRadarNumber()); if (clinicalDataList.isEmpty()) { ClinicalData clinicalData = new ClinicalData(); clinicalData.setSequenceNumber(1); clinicalData.setRadarNumber(diagnosis.getRadarNumber()); clinicalDataList.add(clinicalData); } for (ClinicalData clinicalData : clinicalDataList) { clinicalData.setSignificantDiagnosis1(diagnosis.getSignificantDiagnosis1()); clinicalData.setSignificantDiagnosis2(diagnosis.getSignificantDiagnosis2()); clinicalDataManager.saveClinicalDate(clinicalData); } } }; add(form); final List<Component> componentsToUpdate = new ArrayList<Component>(); Label successLabel = RadarComponentFactory.getSuccessMessageLabel("successMessage", form, componentsToUpdate); Label successLabelDown = RadarComponentFactory.getSuccessMessageLabel("successMessageDown", form, componentsToUpdate); Label errorLabel = RadarComponentFactory.getErrorMessageLabel("errorMessage", form, componentsToUpdate); Label errorLabelDown = RadarComponentFactory.getErrorMessageLabel("errorMessageDown", form, componentsToUpdate); TextField<Long> radarNumber = new TextField<Long>("radarNumber"); radarNumber.setEnabled(false); form.add(radarNumber); TextField hospitalNumber = new TextField("hospitalNumber", RadarModelFactory.getHospitalNumberModel(radarNumberModel, patientManager)); form.add(hospitalNumber); TextField firstName = new TextField("firstName", RadarModelFactory.getFirstNameModel(radarNumberModel, patientManager)); form.add(firstName); TextField surname = new TextField("surname", RadarModelFactory.getSurnameModel(radarNumberModel, patientManager)); form.add(surname); TextField dob = new DateTextField("dateOfBirth", RadarModelFactory.getDobModel(radarNumberModel, patientManager), RadarApplication.DATE_PATTERN); form.add(dob); DropDownChoice<DiagnosisCode> diagnosisCodeDropDownChoice = new DropDownChoice<DiagnosisCode>( "diagnosisCode", diagnosisManager.getDiagnosisCodes(), new ChoiceRenderer<DiagnosisCode>("abbreviation", "id")); diagnosisCodeDropDownChoice.setEnabled(false); form.add(diagnosisCodeDropDownChoice); form.add(new TextArea("text")); form.add(new Label("diagnosisOrBiopsy", new LoadableDetachableModel<Object>() { @Override protected Object load() { Diagnosis diagnosis = model.getObject(); if (diagnosis.getDiagnosisCode() != null) { return diagnosis.getDiagnosisCode().getId().equals(SRNS_ID) ? "diagnosis" : "original biopsy"; } return ""; } })); // this field is also used for date of diagnosis RadarDateTextField biopsyDate = new RadarDateTextField("biopsyDate", form, componentsToUpdate); form.add(biopsyDate); RadarDateTextField esrfDate = new RadarDateTextField("esrfDate", form, componentsToUpdate); form.add(esrfDate); TextField ageAtDiagnosis = new TextField("ageAtDiagnosis"); ageAtDiagnosis.setOutputMarkupId(true); ageAtDiagnosis.setOutputMarkupPlaceholderTag(true); form.add(ageAtDiagnosis); componentsToUpdate.add(ageAtDiagnosis); form.add(new CheckBox("prepubertalAtDiagnosis")); final RadarTextFieldWithValidation heightAtDiagnosis = new RadarTextFieldWithValidation("heightAtDiagnosis", new RangeValidator<Double>(RadarApplication.MIN_HEIGHT, RadarApplication.MAX_HEIGHT), form, componentsToUpdate); form.add(heightAtDiagnosis); // Clinical presentation B - A is further up the file final DropDownChoice<ClinicalPresentation> clinicalPresentationB = new ClinicalPresentationDropDownChoice( "clinicalPresentationB"); clinicalPresentationB.setOutputMarkupId(true); clinicalPresentationB.setOutputMarkupPlaceholderTag(true); form.add(clinicalPresentationA, clinicalPresentationB); form.add(new RadarDateTextField("onsetSymptomsDate", form, componentsToUpdate)); ComponentFeedbackPanel clinicalPresentationFeedback = new ComponentFeedbackPanel( "clinicalPresentationFeedback", clinicalPresentationA); clinicalPresentationFeedback.setOutputMarkupId(true); clinicalPresentationFeedback.setOutputMarkupPlaceholderTag(true); form.add(clinicalPresentationFeedback); // Steroid resistance radio groups RadioGroup steroidRadioGroup = new RadioGroup("steroidResistance") { @Override public boolean isVisible() { DiagnosisCode diagnosisCode = model.getObject().getDiagnosisCode(); if (diagnosisCode != null) { return diagnosisCode.getId().equals(SRNS_ID); } else { return false; } } }; steroidRadioGroup.setRequired(true); steroidRadioGroup.add(new Radio<Diagnosis.SteroidResistance>("primarySteroidResistance", new Model<Diagnosis.SteroidResistance>(Diagnosis.SteroidResistance.PRIMARY))); steroidRadioGroup.add(new Radio<Diagnosis.SteroidResistance>("secondarySteroidResistance", new Model<Diagnosis.SteroidResistance>(Diagnosis.SteroidResistance.SECONDARY))); steroidRadioGroup.add(new Radio<Diagnosis.SteroidResistance>("presumedSteroidResistance", new Model<Diagnosis.SteroidResistance>(Diagnosis.SteroidResistance.PRESUMED))); steroidRadioGroup.add(new Radio<Diagnosis.SteroidResistance>("biopsyProven", new Model<Diagnosis.SteroidResistance>(Diagnosis.SteroidResistance.BPS))); form.add(steroidRadioGroup); // Construct feedback panel final ComponentFeedbackPanel steroidFeedbackPanel = new ComponentFeedbackPanel("steroidResistanceFeedback", steroidRadioGroup); steroidFeedbackPanel.setOutputMarkupPlaceholderTag(true); form.add(steroidFeedbackPanel); steroidRadioGroup.setOutputMarkupPlaceholderTag(true); steroidRadioGroup.add(steroidFeedbackPanel); componentsToUpdate.add(steroidFeedbackPanel); // Additional significant diagnosis form.add(new TextField("significantDiagnosis1")); form.add(new TextField("significantDiagnosis2")); // Biopsy Diagnosis visibilities IModel<String> biopsyLabelModel = new LoadableDetachableModel<String>() { @Override protected String load() { Diagnosis diagnosis = model.getObject(); if (diagnosis.getDiagnosisCode() != null) { if (diagnosis.getDiagnosisCode().getId().equals(SRNS_ID)) { return "Biopsy Diagnosis"; } else { return "Biopsy Proven Diagnosis"; } } else { return ""; } } }; IModel<List> biopsyDiagnosisModel = new LoadableDetachableModel<List>() { @Override protected List load() { Diagnosis diagnosis = model.getObject(); if (diagnosis.getDiagnosisCode() != null) { if (diagnosis.getDiagnosisCode().getId().equals(SRNS_ID)) { return Arrays.asList(Diagnosis.BiopsyDiagnosis.MINIMAL_CHANGE, Diagnosis.BiopsyDiagnosis.FSGS, Diagnosis.BiopsyDiagnosis.MESANGIAL_HYPERTROPHY, Diagnosis.BiopsyDiagnosis.OTHER); } else { return Arrays.asList(Diagnosis.BiopsyDiagnosis.YES, Diagnosis.BiopsyDiagnosis.NO); } } return Collections.emptyList(); } }; DropDownChoice biopsyDiagnosis = new DropDownChoice("biopsyProvenDiagnosis", biopsyDiagnosisModel, new ChoiceRenderer("label", "id")); Label biopsyDiagnosisLabel = new Label("biopsyDiagnosisLabel", biopsyLabelModel); form.add(biopsyDiagnosis, biopsyDiagnosisLabel); Diagnosis diagnosis = model.getObject(); boolean showOtherDetailsOnInit; showOtherDetailsOnInit = diagnosis.getMutationYorN9() == Diagnosis.MutationYorN.Y; final IModel<Boolean> otherDetailsVisibilityModel = new Model<Boolean>(showOtherDetailsOnInit); boolean showMoreDetailsOnInit = false; if (diagnosis.getMutationYorN1() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN2() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN3() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN4() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN5() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN6() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN7() == Diagnosis.MutationYorN.Y || diagnosis.getMutationYorN8() == Diagnosis.MutationYorN.Y) { showMoreDetailsOnInit = true; } final IModel<Boolean> moreDetailsVisibilityModel = new Model<Boolean>(showMoreDetailsOnInit); WebMarkupContainer geneMutationContainer = new WebMarkupContainer("geneMutationContainer") { @Override public boolean isVisible() { Diagnosis diagnosis = model.getObject(); if (diagnosis.getDiagnosisCode() != null) { return diagnosis.getDiagnosisCode().getId().equals(SRNS_ID); } return false; } }; WebMarkupContainer mutationContainer = new WebMarkupContainer("mutationContainer"); form.add(geneMutationContainer); Label geneMutationLabel = new Label("geneMutationLabel", "Gene Mutation"); geneMutationContainer.add(geneMutationLabel); geneMutationContainer.add(mutationContainer); // Gene mutations mutationContainer .add(new DiagnosisGeneMutationPanel("nphs1Container", 1, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("nphs2Container", 2, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("nphs3Container", 3, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("wt1Container", 4, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("cd2apContainer", 5, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("trpc6Container", 6, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("actn4Container", 7, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel("lamb2Container", 8, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); mutationContainer .add(new DiagnosisGeneMutationPanel(OTHER_CONTAINER_ID, 9, (CompoundPropertyModel) form.getModel(), otherDetailsVisibilityModel, moreDetailsVisibilityModel, componentsToUpdate)); // Other gene mutation container MarkupContainer otherGeneMutationContainer = new WebMarkupContainer("otherGeneMutationContainer") { @Override public boolean isVisible() { return otherDetailsVisibilityModel.getObject(); } }; otherGeneMutationContainer.setOutputMarkupId(true); otherGeneMutationContainer.setOutputMarkupPlaceholderTag(true); otherGeneMutationContainer.add(new TextArea("otherGeneMutation")); geneMutationContainer.add(otherGeneMutationContainer); // more details MarkupContainer moreDetailsContainer = new WebMarkupContainer("moreDetailsContainer") { @Override public boolean isVisible() { return moreDetailsVisibilityModel.getObject(); } }; moreDetailsContainer.setOutputMarkupId(true); moreDetailsContainer.setOutputMarkupPlaceholderTag(true); moreDetailsContainer.add(new TextArea("moreDetails", new Model())); geneMutationContainer.add(moreDetailsContainer); componentsToUpdate.add(moreDetailsContainer); componentsToUpdate.add(otherGeneMutationContainer); boolean showKaroTypeOtherOnInit = false; if (diagnosis.getKarotype() != null) { showKaroTypeOtherOnInit = diagnosis.getKarotype().getId().equals(KAROTYPE_OTHER_ID); } final IModel<Boolean> karoTypeOtherVisibilityModel = new Model<Boolean>(showKaroTypeOtherOnInit); // Add Karotype DropDownChoice<Karotype> karotypeDropDownChoice = new DropDownChoice<Karotype>("karotype", diagnosisManager.getKarotypes(), new ChoiceRenderer<Karotype>("description", "id")); WebMarkupContainer karoTypeContainer = new WebMarkupContainer("karoTypeContainer") { @Override public boolean isVisible() { Diagnosis diagnosis = model.getObject(); if (diagnosis.getDiagnosisCode() != null) { return diagnosis.getDiagnosisCode().getId().equals(SRNS_ID); } return false; } }; karoTypeContainer.add(karotypeDropDownChoice); form.add(karoTypeContainer); karotypeDropDownChoice.add(new AjaxFormComponentUpdatingBehavior("onChange") { @Override protected void onUpdate(AjaxRequestTarget target) { Diagnosis diagnosis = model.getObject(); Karotype karotype = diagnosis.getKarotype(); if (karotype != null) { karoTypeOtherVisibilityModel.setObject(karotype.getId().equals(KAROTYPE_OTHER_ID)); ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } } }); // karotype other MarkupContainer karoTypeOtherContainer = new WebMarkupContainer("karoTypeOtherContainer") { @Override public boolean isVisible() { return karoTypeOtherVisibilityModel.getObject(); } }; karoTypeOtherContainer.setOutputMarkupId(true); karoTypeOtherContainer.setOutputMarkupPlaceholderTag(true); karoTypeOtherContainer.add(new TextArea("karoTypeOtherText")); componentsToUpdate.add(karoTypeOtherContainer); form.add(karoTypeOtherContainer); // Parental consanguinity and family history form.add(new YesNoDropDownChoice("parentalConsanguinity")); YesNoDropDownChoice familyHistory = new YesNoDropDownChoice("familyHistory"); boolean showFamilyOnInit = false; showFamilyOnInit = diagnosis.getFamilyHistory() == Diagnosis.YesNo.YES; final IModel<Boolean> familyVisibilityModel = new Model<Boolean>(showFamilyOnInit); familyHistory.add(new AjaxFormComponentUpdatingBehavior("onChange") { @Override protected void onUpdate(AjaxRequestTarget target) { Diagnosis diagnosis = model.getObject(); if (diagnosis.getFamilyHistory() != null) { familyVisibilityModel.setObject(diagnosis.getFamilyHistory() == Diagnosis.YesNo.YES); } ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } }); form.add(familyHistory); // Family history containers form.add(new DiagnosisRelativePanel("relative1Container", 1, (CompoundPropertyModel) form.getModel(), familyVisibilityModel, componentsToUpdate)); form.add(new DiagnosisRelativePanel("relative2Container", 2, (CompoundPropertyModel) form.getModel(), familyVisibilityModel, componentsToUpdate)); form.add(new DiagnosisRelativePanel("relative3Container", 3, (CompoundPropertyModel) form.getModel(), familyVisibilityModel, componentsToUpdate)); form.add(new DiagnosisRelativePanel("relative4Container", 4, (CompoundPropertyModel) form.getModel(), familyVisibilityModel, componentsToUpdate)); form.add(new DiagnosisRelativePanel("relative5Container", 5, (CompoundPropertyModel) form.getModel(), familyVisibilityModel, componentsToUpdate)); form.add(new DiagnosisRelativePanel("relative6Container", 6, (CompoundPropertyModel) form.getModel(), familyVisibilityModel, componentsToUpdate)); componentsToUpdate.add(clinicalPresentationFeedback); Label radarFamilyLabel = new Label("radarFamilyLabel", "RaDaR No") { @Override public boolean isVisible() { return familyVisibilityModel.getObject(); } }; radarFamilyLabel.setOutputMarkupId(true); radarFamilyLabel.setOutputMarkupPlaceholderTag(true); componentsToUpdate.add(radarFamilyLabel); form.add(radarFamilyLabel); DiagnosisAjaxSubmitLink save = new DiagnosisAjaxSubmitLink("save") { @Override protected List<? extends Component> getComponentsToUpdate() { return componentsToUpdate; } }; DiagnosisAjaxSubmitLink saveDown = new DiagnosisAjaxSubmitLink("saveDown") { @Override protected List<? extends Component> getComponentsToUpdate() { return componentsToUpdate; } }; form.add(save, saveDown); }
From source file:org.patientview.radar.web.panels.firstvisit.ClinicalPicturePanel.java
License:Open Source License
public ClinicalPicturePanel(String id, final IModel<Long> radarNumberModel, final boolean isFirstVisit) { super(id);/*from w w w . j a v a2s . c o m*/ setOutputMarkupId(true); setOutputMarkupPlaceholderTag(true); // set srns elements to hide srnsElementsToHide = Arrays.asList(URTICARIA_CONTAINER_ID, URTICARIA_DETAIL_CONTAINER_ID, PARTIAL_LIPODYSTROPHY_CONTAINER_ID, PRECEEDING_INFECTION_CONTAINER_ID, PRECEEDING_INFECTION_DETAIL_CONTAINER_ID, CHRONIC_INFECTION_ACTIVE_CONTAINER_ID, CHRONIC_INFECTION_DETAIL_CONTAINER_ID); // set mpgn elements to hide mpgnElementsToHide = Arrays.asList(THROMBOSIS_CONTAINER_ID, PERITONITIS_CONTAINER_ID, PULMONARY_OEDEMA_CONTAINER_ID, DIABETES_TYPE_CONTAINER_ID, RASH_CONTAINER_ID, RASH_DETAIL_CONTAINER_ID, POSSIBLE_IMMUNISATION_TRIGGER_CONTAINER_ID, PHENOTYPE_CONTAINER_1, PHENOTYPE_CONTAINER_2, PHENOTYPE_CONTAINER_3, PHENOTYPE_CONTAINER_4); // set srns elements to hide on follow up srnsElementsToHideFollowup = Arrays.asList(PATIENT_DETAILS_CONTAINER); final WebMarkupContainer clinicalPictureContainer = new WebMarkupContainer("clinicalPictureContainer"); clinicalPictureContainer.setVisible(isFirstVisit); clinicalPictureContainer.setOutputMarkupId(true); clinicalPictureContainer.setOutputMarkupPlaceholderTag(true); add(clinicalPictureContainer); final TextField<Double> diastolicBloodPressure = new TextField<Double>("diastolicBloodPressure"); final CompoundPropertyModel<ClinicalData> firstVisitModel = new CompoundPropertyModel<ClinicalData>( new LoadableDetachableModel<ClinicalData>() { @Override protected ClinicalData load() { if (radarNumberModel.getObject() != null) { // If we have a radar number get the list from DAO ClinicalData clinicalData; clinicalData = clinicalDataManager .getFirstClinicalDataByRadarNumber(radarNumberModel.getObject()); if (clinicalData != null) { return clinicalData; } } // By default just return new one ClinicalData clinicalDataNew = new ClinicalData(); clinicalDataNew.setSequenceNumber(1); return clinicalDataNew; } }); final IModel<ClinicalData> followUpModel = new LoadableDetachableModel<ClinicalData>() { private Long id; @Override protected ClinicalData load() { if (id == null) { return new ClinicalData(); } else { return clinicalDataManager.getClinicalData(id); } } @Override public void detach() { ClinicalData clinicalData = getObject(); if (clinicalData != null) { id = clinicalData.getId(); } super.detach(); } }; final IModel<ClinicalData> formModel; if (isFirstVisit) { formModel = firstVisitModel; } else { formModel = new CompoundPropertyModel<ClinicalData>(followUpModel); } IModel<List> clinicalPictureListModel = new AbstractReadOnlyModel<List>() { @Override public List getObject() { if (radarNumberModel.getObject() != null) { List list = clinicalDataManager.getClinicalDataByRadarNumber(radarNumberModel.getObject()); return !list.isEmpty() ? list : Collections.emptyList(); } return Collections.emptyList(); } }; WebMarkupContainer followupContainer = new WebMarkupContainer("followupContainer"); followupContainer.setVisible(!isFirstVisit); followupContainer.setOutputMarkupPlaceholderTag(true); final DropDownChoice clinicalPicturesSwitcher = new DropDownChoice("clinicalPicturesSwitcher", followUpModel, clinicalPictureListModel, new DateChoiceRenderer("clinicalPictureDate", "id") { @Override protected Date getDate(Object object) { return ((ClinicalData) object).getClinicalPictureDate(); } }); clinicalPicturesSwitcher.setNullValid(true); clinicalPicturesSwitcher.setOutputMarkupId(true); clinicalPictureContainer.setOutputMarkupPlaceholderTag(true); followupContainer.add(clinicalPicturesSwitcher); clinicalPicturesSwitcher.add(new AjaxFormComponentUpdatingBehavior("onChange") { @Override protected void onUpdate(AjaxRequestTarget target) { clinicalPictureContainer.setVisible(true); target.add(clinicalPictureContainer); } }); AjaxLink addNew = new AjaxLink("addNew") { @Override public void onClick(AjaxRequestTarget target) { ClinicalData clinicalData = new ClinicalData(); Diagnosis daignosis = RadarModelFactory.getDiagnosisModel(radarNumberModel, diagnosisManager) .getObject(); if (daignosis != null) { clinicalData.setSignificantDiagnosis1(daignosis.getSignificantDiagnosis1()); clinicalData.setSignificantDiagnosis2(daignosis.getSignificantDiagnosis2()); } ClinicalData firstClinicalData = clinicalDataManager .getFirstClinicalDataByRadarNumber(radarNumberModel.getObject()); if (firstClinicalData != null) { clinicalData.setPhenotype1(firstClinicalData.getPhenotype1()); clinicalData.setPhenotype2(firstClinicalData.getPhenotype2()); clinicalData.setPhenotype3(firstClinicalData.getPhenotype3()); clinicalData.setPhenotype4(firstClinicalData.getPhenotype4()); } formModel.setObject(clinicalData); clinicalPictureContainer.setVisible(true); clinicalPicturesSwitcher.clearInput(); target.add(clinicalPictureContainer, clinicalPicturesSwitcher); } }; followupContainer.add(addNew); add(followupContainer); final List<Component> componentsToUpdate = new ArrayList<Component>(); if (clinicalPicturesSwitcher.isVisible()) { componentsToUpdate.add(clinicalPicturesSwitcher); } final Form<ClinicalData> form = new Form<ClinicalData>("form", formModel) { @Override protected void onValidateModelObjects() { super.onValidateModelObjects(); ClinicalData clinicalData = getModelObject(); Integer systolicBloodPressureVal = clinicalData.getSystolicBloodPressure(); Integer diastolicBloodPressureVal = clinicalData.getDiastolicBloodPressure(); if (systolicBloodPressureVal != null && diastolicBloodPressureVal != null) { if (!(systolicBloodPressureVal.compareTo(diastolicBloodPressureVal) > 0)) { diastolicBloodPressure.error("This value has to be less than the first value"); } } } @Override protected void onSubmit() { ClinicalData clinicalData = getModelObject(); Long radarNumber; if (clinicalData.getRadarNumber() == null) { try { radarNumber = radarNumberModel.getObject(); } catch (ClassCastException e) { Object obj = radarNumberModel.getObject(); radarNumber = Long.parseLong((String) obj); } clinicalData.setRadarNumber(radarNumber); } clinicalDataManager.saveClinicalDate(clinicalData); // if first visit - follow through phenotypes to following visit records if (isFirstVisit) { List<ClinicalData> clinicalDatas = clinicalDataManager .getClinicalDataByRadarNumber(clinicalData.getRadarNumber()); for (ClinicalData cd : clinicalDatas) { // ignore first visit if (clinicalData.getId().equals(cd.getId())) { continue; } cd.setPhenotype1(clinicalData.getPhenotype1()); cd.setPhenotype2(clinicalData.getPhenotype2()); cd.setPhenotype3(clinicalData.getPhenotype3()); cd.setPhenotype4(clinicalData.getPhenotype4()); clinicalDataManager.saveClinicalDate(cd); } } } }; clinicalPictureContainer.add(form); final IModel<Boolean> isSrnsModel = new AbstractReadOnlyModel<Boolean>() { private DiagnosisCode diagnosisCode = null; @Override public Boolean getObject() { if (diagnosisCode == null) { if (radarNumberModel.getObject() != null) { Diagnosis diagnosis = diagnosisManager .getDiagnosisByRadarNumber(radarNumberModel.getObject()); diagnosisCode = diagnosis != null ? diagnosis.getDiagnosisCode() : null; } } if (diagnosisCode != null) { return diagnosisCode.getId().equals(DiagnosisPanel.SRNS_ID); } return false; } }; Label successLabel = RadarComponentFactory.getSuccessMessageLabel("successMessage", form, componentsToUpdate); Label successLabelDown = RadarComponentFactory.getSuccessMessageLabel("successMessageDown", form, componentsToUpdate); Label errorLabel = RadarComponentFactory.getErrorMessageLabel("errorMessage", form, componentsToUpdate); Label errorLabelDown = RadarComponentFactory.getErrorMessageLabel("errorMessageDown", form, componentsToUpdate); TextField<Long> radarNumber = new TextField<Long>("radarNumber", radarNumberModel); radarNumber.setEnabled(false); form.add(radarNumber); form.add(new TextField("hospitalNumber", RadarModelFactory.getHospitalNumberModel(radarNumberModel, patientManager))); form.add(new TextField("diagnosis", new PropertyModel( RadarModelFactory.getDiagnosisCodeModel(radarNumberModel, diagnosisManager), "abbreviation"))); form.add(new TextField("firstName", RadarModelFactory.getFirstNameModel(radarNumberModel, patientManager))); form.add(new TextField("surname", RadarModelFactory.getSurnameModel(radarNumberModel, patientManager))); form.add(new DateTextField("dob", RadarModelFactory.getDobModel(radarNumberModel, patientManager), RadarApplication.DATE_PATTERN)); RadarRequiredDateTextField clinicalPictureDate = new RadarRequiredDateTextField("clinicalPictureDate", form, componentsToUpdate); form.add(clinicalPictureDate); RadarTextFieldWithValidation height = new RadarTextFieldWithValidation("height", new RangeValidator<Double>(RadarApplication.MIN_HEIGHT, RadarApplication.MAX_HEIGHT), form, componentsToUpdate); form.add(height); RadarTextFieldWithValidation weight = new RadarTextFieldWithValidation("weight", new RangeValidator<Double>(3.0, 100.0), form, componentsToUpdate); form.add(weight); // Blood pressure TextField<Double> systolicBloodPressure = new TextField("systolicBloodPressure"); systolicBloodPressure.add(new RangeValidator<Integer>(50, 200)); form.add(systolicBloodPressure); final ComponentFeedbackPanel systolicBloodPressureFeedback = new ComponentFeedbackPanel( "systolicBloodPressureFeedback", systolicBloodPressure); systolicBloodPressureFeedback.setOutputMarkupId(true); systolicBloodPressureFeedback.setOutputMarkupPlaceholderTag(true); form.add(systolicBloodPressureFeedback); diastolicBloodPressure.add(new RangeValidator<Integer>(20, 150)); form.add(diastolicBloodPressure); final ComponentFeedbackPanel diastolicBloodPressureFeedback = new ComponentFeedbackPanel( "diastolicBloodPressureFeedback", diastolicBloodPressure); diastolicBloodPressureFeedback.setOutputMarkupId(true); diastolicBloodPressureFeedback.setOutputMarkupPlaceholderTag(true); form.add(diastolicBloodPressureFeedback); Component meanArterialPressure = new TextField("meanArterialPressure").setEnabled(false); meanArterialPressure.setOutputMarkupPlaceholderTag(true); meanArterialPressure.setOutputMarkupId(true); form.add(meanArterialPressure); componentsToUpdate.add(meanArterialPressure); WebMarkupContainer phenotypeContainer1 = new WebMarkupContainer(PHENOTYPE_CONTAINER_1) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; WebMarkupContainer phenotypeContainer2 = new WebMarkupContainer(PHENOTYPE_CONTAINER_2) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; WebMarkupContainer phenotypeContainer3 = new WebMarkupContainer(PHENOTYPE_CONTAINER_3) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; WebMarkupContainer phenotypeContainer4 = new WebMarkupContainer(PHENOTYPE_CONTAINER_4) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; phenotypeContainer1.add(new PhenotypeChooser("phenotype1")); phenotypeContainer2.add(new PhenotypeChooser("phenotype2")); phenotypeContainer3.add(new PhenotypeChooser("phenotype3")); phenotypeContainer4.add(new PhenotypeChooser("phenotype4")); form.add(phenotypeContainer1); form.add(phenotypeContainer2); form.add(phenotypeContainer3); form.add(phenotypeContainer4); form.add(new TextArea("comments")); form.add(new TextField("significantDiagnosis1")); form.add(new TextField("significantDiagnosis2")); // Yes/No/Unknown for the following WebMarkupContainer patientDetailsContainer = new WebMarkupContainer(PATIENT_DETAILS_CONTAINER) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; patientDetailsContainer.setOutputMarkupPlaceholderTag(true); form.add(patientDetailsContainer); patientDetailsContainer.add(new YesNoRadioGroup("oedema", true)); patientDetailsContainer.add(new YesNoRadioGroup("hypovalaemia", true)); patientDetailsContainer.add(new YesNoRadioGroup("fever", true)); WebMarkupContainer thrombosisContainer = new WebMarkupContainer(THROMBOSIS_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; YesNoRadioGroup thrombosis = new YesNoRadioGroup("thrombosis", true); thrombosisContainer.add(thrombosis); patientDetailsContainer.add(thrombosisContainer); WebMarkupContainer peritonitisContainer = new WebMarkupContainer(PERITONITIS_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; peritonitisContainer.add(new YesNoRadioGroup("peritonitis", true)); patientDetailsContainer.add(peritonitisContainer); WebMarkupContainer pulmonaryOedemaContainer = new WebMarkupContainer(PULMONARY_OEDEMA_CONTAINER_ID) { @Override public boolean isVisible() { return isSrnsModel.getObject(); } }; pulmonaryOedemaContainer.add(new YesNoRadioGroup("pulmonaryOedema", true)); patientDetailsContainer.add(pulmonaryOedemaContainer); patientDetailsContainer.add(new YesNoRadioGroup("hypertension", true)); //urticaria boolean showUrticariaOnInit = form.getModelObject().getUrticaria() != null ? form.getModelObject().getUrticaria() : false; // only show if diag is mpgn/dd if (isSrnsModel.getObject().equals(true)) { showUrticariaOnInit = false; } final IModel<Boolean> showUrticariaIModel = new Model<Boolean>(showUrticariaOnInit); MarkupContainer urticariaDetailContainer = new WebMarkupContainer(URTICARIA_DETAIL_CONTAINER_ID) { @Override public boolean isVisible() { if (!hideElement(isFirstVisit, isSrnsModel.getObject(), getId())) { return showUrticariaIModel.getObject(); } return false; } }; componentsToUpdate.add(urticariaDetailContainer); urticariaDetailContainer.add(new TextArea("rashDetail")); // shares same field in db as rash detail It seems patientDetailsContainer.add(urticariaDetailContainer); urticariaDetailContainer.setOutputMarkupId(true); urticariaDetailContainer.setOutputMarkupPlaceholderTag(true); // More yes/no options WebMarkupContainer urticariaContainer = new WebMarkupContainer(URTICARIA_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; YesNoRadioGroup urticaria = new YesNoRadioGroup("urticaria", true); urticariaContainer.add(urticaria); patientDetailsContainer.add(urticariaContainer); urticaria.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { showUrticariaIModel.setObject(Boolean.TRUE.equals(form.getModelObject().getUrticaria())); ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } }); // Diabetes WebMarkupContainer diabetesTypeContainer = new WebMarkupContainer(DIABETES_TYPE_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; diabetesTypeContainer.add(new DropDownChoice<ClinicalData.DiabetesType>("diabetesType", Arrays.asList(ClinicalData.DiabetesType.TYPE_I, ClinicalData.DiabetesType.TYPE_II, ClinicalData.DiabetesType.NO), new ChoiceRenderer<ClinicalData.DiabetesType>("label", "id"))); patientDetailsContainer.add(diabetesTypeContainer); boolean showRashDetailsOnInit = form.getModelObject().getRash() != null ? form.getModelObject().getRash() : false; // only show if diag is srns if (isSrnsModel.getObject().equals(false)) { showRashDetailsOnInit = false; } final IModel<Boolean> showRashDetailsIModel = new Model<Boolean>(showRashDetailsOnInit); // Rash details needs show/hide final MarkupContainer rashDetailContainer = new WebMarkupContainer(RASH_DETAIL_CONTAINER_ID) { @Override public boolean isVisible() { if (!hideElement(isFirstVisit, isSrnsModel.getObject(), getId())) { return showRashDetailsIModel.getObject(); } return false; } }; rashDetailContainer.add(new TextArea("rashDetail")); patientDetailsContainer.add(rashDetailContainer); rashDetailContainer.setOutputMarkupId(true); rashDetailContainer.setOutputMarkupPlaceholderTag(true); componentsToUpdate.add(rashDetailContainer); // More yes/no options WebMarkupContainer rashContainer = new WebMarkupContainer(RASH_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; YesNoRadioGroup rash = new YesNoRadioGroup("rash", true); rashContainer.add(rash); patientDetailsContainer.add(rashContainer); rash.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { showRashDetailsIModel.setObject(Boolean.TRUE.equals(form.getModelObject().getRash())); ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } }); WebMarkupContainer possibleImmunisationTriggerContainer = new WebMarkupContainer( POSSIBLE_IMMUNISATION_TRIGGER_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; YesNoRadioGroup possibleImmunisationTrigger = new YesNoRadioGroup("possibleImmunisationTrigger", true); possibleImmunisationTriggerContainer.add(possibleImmunisationTrigger); patientDetailsContainer.add(possibleImmunisationTriggerContainer); WebMarkupContainer partialLipodystrophyContainer = new WebMarkupContainer( PARTIAL_LIPODYSTROPHY_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; YesNoRadioGroup partialLipodystrophy = new YesNoRadioGroup("partialLipodystrophy", true); partialLipodystrophyContainer.add(partialLipodystrophy); patientDetailsContainer.add(partialLipodystrophyContainer); WebMarkupContainer preceedingInfectionContainer = new WebMarkupContainer( PRECEEDING_INFECTION_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; // preceding infection boolean showPrecedingInfectionOnInit = form.getModelObject().getPreceedingInfection() != null ? form.getModelObject().getPreceedingInfection() : false; // only show if diag is mpgn/dd if (isSrnsModel.getObject().equals(true)) { showPrecedingInfectionOnInit = false; } final IModel<Boolean> showPrecedingInfectioModel = new Model<Boolean>(showPrecedingInfectionOnInit); YesNoRadioGroup preceedingInfection = new YesNoRadioGroup("preceedingInfection", true); preceedingInfectionContainer.add(preceedingInfection); preceedingInfection.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { showPrecedingInfectioModel .setObject(Boolean.TRUE.equals(form.getModelObject().getPreceedingInfection())); ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } }); patientDetailsContainer.add(preceedingInfectionContainer); // Preceeding infection show/hide MarkupContainer preceedingInfectionDetailContainer = new WebMarkupContainer( PRECEEDING_INFECTION_DETAIL_CONTAINER_ID) { @Override public boolean isVisible() { return showPrecedingInfectioModel.getObject(); } }; TextAreaWithHelpText preceedingInfectionDetail = new TextAreaWithHelpText("preceedingInfectionDetail", "Enter details") { @Override public String getModelData() { ClinicalData clinicalData = formModel.getObject(); return clinicalData != null ? clinicalData.getPreceedingInfectionDetail() != null ? clinicalData.getPreceedingInfectionDetail() : "" : ""; } @Override public void setModelData(String data) { ClinicalData clinicalData = formModel.getObject(); if (clinicalData != null) { clinicalData.setPreceedingInfectionDetail(data); } } }; preceedingInfectionDetail.initBehaviour(); preceedingInfectionDetailContainer.add(preceedingInfectionDetail); patientDetailsContainer.add(preceedingInfectionDetailContainer); componentsToUpdate.add(preceedingInfectionDetailContainer); preceedingInfectionDetailContainer.setOutputMarkupId(true); preceedingInfectionDetailContainer.setOutputMarkupPlaceholderTag(true); // chronic infection boolean showChronicOnInit = form.getModelObject().getChronicInfection() != null ? form.getModelObject().getChronicInfection() : false; // only show if diag is mpgn/dd if (isSrnsModel.getObject().equals(true)) { showChronicOnInit = false; } final IModel<Boolean> showChronicModel = new Model<Boolean>(showChronicOnInit); WebMarkupContainer chronicInfectionActiveContainer = new WebMarkupContainer( CHRONIC_INFECTION_ACTIVE_CONTAINER_ID) { @Override public boolean isVisible() { return !hideElement(isFirstVisit, isSrnsModel.getObject(), getId()); } }; YesNoRadioGroup chronicInfection = new YesNoRadioGroup("chronicInfection", true); chronicInfection.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { showChronicModel.setObject(Boolean.TRUE.equals(form.getModelObject().getChronicInfection())); ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } }); chronicInfectionActiveContainer.add(chronicInfection); patientDetailsContainer.add(chronicInfectionActiveContainer); // Chronic infection show/hide MarkupContainer chronicInfectionDetailContainer = new WebMarkupContainer( CHRONIC_INFECTION_DETAIL_CONTAINER_ID) { @Override public boolean isVisible() { if (!hideElement(isFirstVisit, isSrnsModel.getObject(), getId())) { return showChronicModel.getObject(); } return false; } }; TextAreaWithHelpText chronicInfectionDetail = new TextAreaWithHelpText("chronicInfectionDetail", "Enter Details") { @Override public String getModelData() { ClinicalData clinicalData = formModel.getObject(); return clinicalData != null ? clinicalData.getChronicInfectionDetail() != null ? clinicalData.getChronicInfectionDetail() : "" : ""; } @Override public void setModelData(String data) { ClinicalData clinicalData = formModel.getObject(); if (clinicalData != null) { clinicalData.setChronicInfectionDetail(data); } } }; chronicInfectionDetail.initBehaviour(); chronicInfectionDetailContainer.add(chronicInfectionDetail); componentsToUpdate.add(chronicInfectionDetailContainer); chronicInfectionDetailContainer.setOutputMarkupId(true); chronicInfectionDetailContainer.setOutputMarkupPlaceholderTag(true); patientDetailsContainer.add(chronicInfectionDetailContainer); boolean showOphthalmoscopyDetailsOnInit = form.getModelObject().getOphthalmoscopy() != null ? form.getModelObject().getOphthalmoscopy() : false; final IModel<Boolean> showOphthalmoscopyDetailsIModel = new Model<Boolean>(showOphthalmoscopyDetailsOnInit); YesNoRadioGroup ophthalmoscopy = new YesNoRadioGroup("ophthalmoscopy", true); patientDetailsContainer.add(ophthalmoscopy); ophthalmoscopy.add(new AjaxFormChoiceComponentUpdatingBehavior() { @Override protected void onUpdate(AjaxRequestTarget target) { showOphthalmoscopyDetailsIModel .setObject(Boolean.TRUE.equals(form.getModelObject().getOphthalmoscopy())); ComponentHelper.updateComponentsIfParentIsVisible(target, componentsToUpdate); } }); // Ophthalmoscopy show/hide MarkupContainer ophthalmoscopyDetailContainer = new WebMarkupContainer("ophthalmoscopyDetailContainer") { @Override public boolean isVisible() { return showOphthalmoscopyDetailsIModel.getObject(); } }; ophthalmoscopyDetailContainer.setOutputMarkupId(true); ophthalmoscopyDetailContainer.setOutputMarkupPlaceholderTag(true); componentsToUpdate.add(ophthalmoscopyDetailContainer); TextAreaWithHelpText ophthalmoscopyDetail = new TextAreaWithHelpText("ophthalmoscopyDetail", ClinicalData.OPHTHALMOSCOPY_HELP_TEXT) { @Override public String getModelData() { ClinicalData clinicalData = formModel.getObject(); return clinicalData != null ? clinicalData.getOphthalmoscopyDetail() != null ? clinicalData.getOphthalmoscopyDetail() : "" : ""; } @Override public void setModelData(String data) { ClinicalData clinicalData = formModel.getObject(); if (clinicalData != null) { clinicalData.setOphthalmoscopyDetail(data); } } }; ophthalmoscopyDetail.initBehaviour(); ophthalmoscopyDetailContainer.add(ophthalmoscopyDetail); patientDetailsContainer.add(ophthalmoscopyDetailContainer); componentsToUpdate.add(systolicBloodPressureFeedback); componentsToUpdate.add(diastolicBloodPressureFeedback); // Complications WebMarkupContainer complicationsContainer = new WebMarkupContainer("complicationsContainer") { @Override public boolean isVisible() { return !isFirstVisit && isSrnsModel.getObject(); } }; complicationsContainer.add(new YesNoRadioGroup("infectionNecessitatingHospitalisation", false, false)); MarkupContainer infectionDetailContainer = new WebMarkupContainer("infectionDetailContainer"); infectionDetailContainer.add(new TextArea("infectionDetail")); complicationsContainer.add(infectionDetailContainer); complicationsContainer.add(new YesNoRadioGroup("complicationThrombosis", false, false)); MarkupContainer complicationThrombosisDetailContainer = new WebMarkupContainer( "complicationThrombosisContainer"); complicationThrombosisDetailContainer.add(new TextArea("complicationThrombosisDetail")); complicationsContainer.add(complicationThrombosisDetailContainer); // Hypertension complicationsContainer.add(new YesNoRadioGroup("hypertension", true)); // CKD stage complicationsContainer.add(new CkdStageRadioGroup("ckdStage")); form.add(complicationsContainer); // Listed for transplant? WebMarkupContainer listedForTransplantContainer = new WebMarkupContainer("listedForTransplantContainer") { @Override public boolean isVisible() { return !isFirstVisit && isSrnsModel.getObject(); } }; form.add(listedForTransplantContainer); listedForTransplantContainer.add(new YesNoRadioGroup("listedForTransplant")); ClinicalAjaxSubmitLink save = new ClinicalAjaxSubmitLink("save") { @Override protected List<? extends Component> getComponentsToUpdate() { return componentsToUpdate; } }; ClinicalAjaxSubmitLink saveDown = new ClinicalAjaxSubmitLink("saveDown") { @Override protected List<? extends Component> getComponentsToUpdate() { return componentsToUpdate; } }; form.add(save, saveDown); }
From source file:org.patientview.radar.web.panels.firstvisit.FirstVisitLaboratoryResultsPanel.java
License:Open Source License
public FirstVisitLaboratoryResultsPanel(String id, IModel<Long> radarNumberModel) { super(id);//from w w w . j av a 2s. c o m setOutputMarkupId(true); setOutputMarkupPlaceholderTag(true); // General details TextField<Long> radarNumber = new TextField<Long>("radarNumber", radarNumberModel); radarNumber.setEnabled(false); add(radarNumber); add(new TextField("hospitalNumber", RadarModelFactory.getHospitalNumberModel(radarNumberModel, patientManager))); add(new TextField("diagnosis", new PropertyModel( RadarModelFactory.getDiagnosisCodeModel(radarNumberModel, diagnosisManager), "abbreviation"))); add(new TextField("firstName", RadarModelFactory.getFirstNameModel(radarNumberModel, patientManager))); add(new TextField("surname", RadarModelFactory.getSurnameModel(radarNumberModel, patientManager))); add(new DateTextField("dob", RadarModelFactory.getDobModel(radarNumberModel, patientManager), RadarApplication.DATE_PATTERN)); add(new LaboratoryResultsPanel("formContainer", radarNumberModel, true, null, null)); }
From source file:org.patientview.radar.web.panels.firstvisit.FirstVisitTreatmentPanel.java
License:Open Source License
public FirstVisitTreatmentPanel(String id, IModel<Long> radarNumberModel) { super(id);/* ww w . ja va2 s.co m*/ setOutputMarkupId(true); setOutputMarkupPlaceholderTag(true); // General details TextField<Long> radarNumber = new TextField<Long>("radarNumber", radarNumberModel); radarNumber.setEnabled(false); add(radarNumber); add(new TextField("hospitalNumber", RadarModelFactory.getHospitalNumberModel(radarNumberModel, patientManager))); add(new TextField("diagnosis", new PropertyModel( RadarModelFactory.getDiagnosisCodeModel(radarNumberModel, diagnosisManager), "abbreviation"))); add(new TextField("firstName", RadarModelFactory.getFirstNameModel(radarNumberModel, patientManager))); add(new TextField("surname", RadarModelFactory.getSurnameModel(radarNumberModel, patientManager))); add(new DateTextField("dob", RadarModelFactory.getDobModel(radarNumberModel, patientManager), RadarApplication.DATE_PATTERN)); add(new TreatmentPanel("treatmentPanel", radarNumberModel, true, null, null)); }