bonjour ,
je veux remplir ma data table par une liste de type <dicomobj>
,lors du l'execution je reçu cette erreur:
mon managed bean est :javax.servlet.ServletException: /welcomeJSF.jsp(133,24) '#{dcm.liststudy}' Error reading 'liststudy' on type dcm.DcmQR
javax.faces.webapp.FacesServlet.service(FacesServlet.java:256)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:530)
org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:388)
org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:515)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
<DicomElem> est une autre class qui contient les item de ma liststudy où est declarer les getters and setters.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 public class DcmQR { /** * static logger for this class */ private static Logger logger = Logger.getLogger(DcmQR.class.getName()); private static final int KB = 1024; private static char[] SECRET = { 's', 'e', 'c', 'r', 'e', 't' }; private List liststudy; private List listpat; private List listseri; private List listimg; private DicomObject result; public List<DicomElem> getliststudy() { liststudy=new ArrayList<DicomObject>(createStudyObj((List<DicomObject>) result)); return liststudy; } public void setliststudy(List liststudy) { this.liststudy = liststudy; } . . ..... public List createStudyObj(List<DicomObject> result){ DicomObject obj = new BasicDicomObject(); for (int i =0;i< result.size();i++) { obj=result.get(i); DicomElem data =new DicomElem(); try{ data.setdatestudy((DicomObject)obj.get(Tag.StudyDate, VR.DA)); data.setstudyuid((DicomObject) obj.get(Tag.StudyInstanceUID,VR.UI)); //DicomObject datetime =(DicomObject)obj.get(Tag.StudyTime, VR.TM); data.setmodalite((DicomObject)obj.get(Tag.Modality, VR.CS)); data.setrefering((DicomObject) obj.get(Tag.ReferringPhysicianName,VR.PN)); data.setnbrseries((DicomObject)obj.get(Tag.NumberOfPatientRelatedSeries, VR.IS)); data.setnbrinstance((DicomObject)obj.get(Tag.NumberOfPatientRelatedStudies, VR.IS)); data.setpatientname((DicomObject)obj.get(Tag.PatientName,VR.PN)); data.setpatientbirth((DicomObject)obj.get(Tag.PatientBirthDate,VR.DA)); data.setpatientsexe((DicomObject)obj.get(Tag.PatientSex,VR.CS)); data.setseriedesc((DicomObject)obj.get(Tag.StudyDescription, VR.LO)); liststudy.add(data); System.out.println("----------"); }catch(Exception ex){//logger warn } } return liststudy; } . . . . .
en réalité ma method public List createStudyObj(List<DicomObject> result) est appelé dans une autre methode pour faire remplir la list result qui est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 public class DicomElem { private DicomObject patientname; private DicomObject patientbirth; private DicomObject patientsexe; public DicomObject getpatientname() { return patientname; } public void setpatientname(DicomObject patientname) { this.patientname = patientname; } public DicomObject getpatientbirth() { return patientbirth; } public void setpatientbirth(DicomObject patientbirth) { this.patientbirth = patientbirth; }
ma page jsp est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public void go(String[] args) { DcmQR dcmqr = new DcmQR(); dcmqr.setCalledAET("DCM4CHEE", true); dcmqr.setRemoteHost("127.0.0.1"); dcmqr.setRemotePort(11112); dcmqr.setQueryLevel(QueryRetrieveLevel.STUDY); dcmqr.addMatchingKey(Tag.PatientName, ""); dcmqr.addMatchingKey(Tag.PatientBirthDate, ""); dcmqr.addMatchingKey(Tag.PatientSex,""); dcmqr.addMatchingKey(Tag.StudyDescription,""); dcmqr.addReturnKey(Tag.Modality); dcmqr.configureTransferCapability(true); try { dcmqr.start(); dcmqr.open(); List<DicomObject> result = dcmqr.query(); dcmqr.createStudyObj(result); dcmqr.close(); dcmqr.stop(); } } catch (Exception e) { } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <h:form> <h:dataTable value="#{dcm.liststudy}" var="item"> <f:facet name="header"> <h:outputText value="This is 'dataTable' demo" /> </f:facet> <h:column> <f:facet name="header"> <h:outputText value="patient name" /> </f:facet> <h:outputText value="#{item.patientname}"></h:outputText> </h:column> <h:column> <f:facet name="header"> <h:outputText value="patient birth"/> </f:facet> <h:outputText value="#{item.patientbirth}"></h:outputText> </h:column> </h:dataTable> <h:commandButton action="#{dcm.go}" value="studies"></h:commandButton> </h:form>
mon faces-conf.xml est:
le commandButton consiste a appeler ma methode go pour executer ma commande query.<managed-bean>
<managed-bean-name>dcm</managed-bean-name>
<managed-bean-class>dcm.DcmQR</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
alors que pourrait etre l'erreur que j'ai commi ?List<DicomObject> result = dcmqr.query();
dcmqr.createStudyObj(result);
et merci en avance
Partager