bonjour ,
je veux remplir ma data table par une liste de type <dicomobj>
,lors du l'execution je reçu cette erreur:
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)
mon managed bean 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
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;
    }
.
.
.
.
.
<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
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;
    }
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
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) {
 
        }
    }
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
 <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:

<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>
le commandButton consiste a appeler ma methode go pour executer ma commande query.
List<DicomObject> result = dcmqr.query();

dcmqr.createStudyObj(result);
alors que pourrait etre l'erreur que j'ai commi ?
et merci en avance