| 
 | 
 
UpdateData(TRUE); 
m_pdu.ClearAbstractSyntaxs(); 
m_pdu.SetRemoteAddress((LPCTSTR)m_strRemoteAE); 
m_pdu.SetLocalAddress((LPCTSTR)m_strLocalAE); 
m_pdu.SetTimeOut(m_timeOut); 
m_pdu.SetApplicationContext(UID_APPLICATION_CONTEXT); 
m_pdu.AddAbstractSyntax(UID_IMPL_VR_LE_TRANSFER_SYNTAX); 
m_pdu.AddAbstractSyntax(UID_EXPL_VR_BE_TRANSFER_SYNTAX); 
m_pdu.AddAbstractSyntax(UID_EXPL_VR_LE_TRANSFER_SYNTAX); 
m_pdu.AddAbstractSyntax(UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS); 
m_pdu.AddAbstractSyntax(UID_BASIC_GRAYSCALE_IMAGE_BOX_STORAGE_SOP_CLASS); 
m_pdu.AddAbstractSyntax(UID_BASIC_FILM_BOX_SOP_CLASS); 
m_pdu.AddAbstractSyntax(UID_BASIC_FILM_SESSION_STORAGE_SOP_CLASS); 
m_pdu.AddAbstractSyntax(UID_PRINTER_SOP_CLASS); 
m_pdu.AddAbstractSyntax(UID_PRINT_JOB_SOP_CLASS); 
if (!m_pdu.Connect((LPCTSTR)m_strIP, (LPCTSTR)m_strPort)) 
{ 
     AfxMessageBox("Can not connect printer..."); 
    TRACE1("Printer AE: %s\n", m_strRemoteAE); 
    TRACE1("Printer IP: %s\n", m_strIP); 
    TRACE1("Printer Port: %s\n", m_strPort); 
    return; 
} 
 
DataSet rsp; 
DataSet data; 
UINT16  status; 
CString strValue; 
//N-GET (PRINTER SOP Instance) 
const string instUID = "1.2.840.10008.5.1.1.17"; 
TagVector tag; // no use 
NGetRQ getPrinter(uniq16odd(), UID_PRINTER_SOP_CLASS, instUID, tag);//instUID, tag); 
if (!m_pdu.WriteCommand(getPrinter, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
{ 
        AfxMessageBox("Can not get printer information..."); 
        m_pdu.Close(); 
        return; 
} 
NGetRSP getrsp(uniq16odd(), UID_PRINTER_SOP_CLASS, status, NO_DATA_SET); 
if (!m_pdu.WriteCommand(getrsp, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
{ 
m_pdu.Close(); 
                return; 
 
        } 
        if (!m_pdu.Read(rsp)) 
        { 
                m_pdu.Close(); 
                return; 
        } 
         
        DumpDataset("c:\\get_printer_info.txt", rsp); 
        //END of N-GET 
 
        //N-CREATE(Film Session SOP Instance) 
        NCreateRQ createFilmRQ(uniq16odd(), UID_BASIC_FILM_SESSION_STORAGE_SOP_CLASS, instUID, YES_DATA_SET); 
        data.insertElem(TAG_REF_SOP_CLASS_UID, VR_UI, UID_BASIC_FILM_SESSION_STORAGE_SOP_CLASS); 
        strValue = "1"; 
        data.insertElem(TAG_NUMBER_OF_COPIES, VR_IS, (LPCTSTR)strValue); 
        strValue = "MED"; 
        data.insertElem(TAG_PRINT_PRIORITY, VR_CS, (LPCTSTR)strValue); 
        strValue = _T("BLUE FILM"); 
        data.insertElem(TAG_MEDIUM_TYPE, VR_CS, (LPCTSTR)strValue); 
        strValue = _T("PROCESSOR"); 
        data.insertElem(TAG_FILM_DESTINATION, VR_CS, (LPCTSTR)strValue); 
        if (m_pdu.WriteCommand(createFilmRQ, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS) &&  
                m_pdu.WriteDataSet(data, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
                 
        } 
        else 
        { 
                AfxMessageBox("Can not create film session..."); 
                m_pdu.Close(); 
                return; 
        } 
        if (!m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("Can not get film session feedback information"); 
                m_pdu.Close(); 
                return; 
        } 
        DumpDataset("c:\\create_film_session.txt", rsp); 
        //END of N-CREATE 
 
        //CREATE ONE FILM 
        //N-CREATE(Film Box SOP Instance) 
        NCreateRQ createFilmBoxRQ(uniq16odd(), UID_BASIC_FILM_BOX_SOP_CLASS, instUID, YES_DATA_SET); 
//        data.insertElem(TAG_AFF_SOP_CLASS_UID, VR_UI, UID_BASIC_FILM_BOX_SOP_CLASS); 
        data.insertElem(TAG_REF_SOP_CLASS_UID, VR_UI, UID_BASIC_FILM_BOX_SOP_CLASS); 
        strValue = _T("STANDARD\\1,1"); 
        data.insertElem(TAG_IMAGE_DISPLAY_FORMAT, VR_ST, (LPCTSTR)strValue); 
        strValue = _T("PORTRAIT"); 
        data.insertElem(TAG_FILM_ORIENTATION, VR_CS, (LPCTSTR)strValue); 
        strValue = _T("8INX10IN"); 
        data.insertElem(TAG_FILM_SIZE_ID, VR_CS, (LPCTSTR)strValue); 
        strValue = _T("REPLICATE"); 
        data.insertElem(TAG_MAGNIFICATION_TYPE, VR_CS, (LPCTSTR)strValue); 
        strValue = _T("WHITE"); 
        data.insertElem(TAG_BORDER_DENSITY, VR_CS, (LPCTSTR)strValue); 
        strValue = _T("BLACK"); 
        data.insertElem(TAG_EMPTY_IMAGE_DENSITY, VR_CS, (LPCTSTR)strValue); 
 
        data.insertElem(TAG_MIN_DENSITY, UINT16(10)); 
        strValue = _T("320"); 
        data.insertElem(TAG_MAX_DENSITY, UINT16(320)); 
        strValue = _T("NO"); 
        data.insertElem(TAG_TRIM, VR_CS, (LPCTSTR)strValue); 
//        strValue = _T(""); 
//        data.insertElem(MC_ATT_REQUESTED_RESOLUTION_ID, (LPCTSTR)strValue); 
        if (m_pdu.WriteCommand(createFilmBoxRQ, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS) &&  
                m_pdu.WriteDataSet(data, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
 
        } 
        else 
        { 
                AfxMessageBox("Can not create film box..."); 
                m_pdu.Close(); 
                return; 
        } 
        if (!m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("Can not get create film box feedback information"); 
                m_pdu.Close(); 
                return; 
        } 
        DumpDataset("c:\\create_film_box.txt", rsp); 
 
        //N-SET (ONLY ONE IMAGE) 
        NSetRQ setImage(uniq16odd(), UID_BASIC_GRAYSCALE_IMAGE_BOX_STORAGE_SOP_CLASS, instUID);  
        data.insertElem(TAG_IMAGE_POS, INT16(1)); 
        strValue = "NORMAL"; 
        data.insertElem(TAG_POLARITY, VR_CS, (LPCTSTR)strValue); 
        data.insertElem(TAG_SAMPLES_PER_PX,  UINT16(1)); 
        strValue = "MONOCHROME2"; 
        data.insertElem(TAG_PHOTOMETRIC, VR_CS, (LPCTSTR)strValue); 
        data.insertElem(TAG_ROWS, UINT16(3072)); 
        data.insertElem(TAG_COLUMNS, UINT16(2560)); 
        data.insertElem(TAG_BITS_ALLOC, UINT16(8)); 
        data.insertElem(TAG_BITS_STORED, UINT16(16)); 
        data.insertElem(TAG_HIGH_BIT, UINT16(14)); 
        unsigned short* pData = new unsigned short[2560 * 3072]; 
        memset(pData, 1, 2560 * 3072 * 2); 
        data.insertElem(TAG_PIXEL_DATA, VR_OB, 2560 * 3072 * 2, pData); 
//        data.insertElem(, ); 
 
        if (m_pdu.WriteCommand(setImage, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS) &&  
                m_pdu.WriteDataSet(data, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
 
        } 
        else 
        { 
                AfxMessageBox("Can not set image box..."); 
                m_pdu.Close(); 
                return; 
        } 
        if (!m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("Can not get image box information"); 
                return; 
        } 
        DumpDataset("c:\\set_image_box.txt", rsp); 
 
        //N-ACTION(PRINT, Film Box SOP Instance) 
        NActionRQ actionFilmBox(uniq16odd(), UID_BASIC_FILM_BOX_SOP_CLASS, instUID, 1, NO_DATA_SET); 
//        data.insertElem(TAG_REF_SOP_CLASS_UID, VR_UI, UID_BASIC_FILM_BOX_SOP_CLASS); 
//        data.insertElem(TAG_REF_SOP_INST_UID, VR_UI, instUID); 
        if (m_pdu.WriteCommand(actionFilmBox, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS))// && 
    //        m_pdu.WriteDataSet(data, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
 
        } 
        else 
        { 
                AfxMessageBox("Can not action film box"); 
                m_pdu.Close(); 
                return; 
        } 
        if (!m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("Can not get action film information"); 
                return; 
        } 
        DumpDataset("c:\\action_film_box.txt", rsp); 
 
        NDeleteRQ delFilmBox(uniq16odd(), UID_BASIC_FILM_BOX_SOP_CLASS, instUID); 
        if (m_pdu.WriteCommand(delFilmBox, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
        } 
        else 
        { 
                AfxMessageBox("can not delte film box"); 
                m_pdu.Close(); 
                return; 
        } 
        if (m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("can not read delete file box information"); 
                m_pdu.Close(); 
                return; 
        } 
        DumpDataset("c:\\delete_film_box.txt", rsp); 
 
        NActionRQ actionFilmSession(uniq16odd(), UID_BASIC_FILM_SESSION_STORAGE_SOP_CLASS, instUID, 1, NO_DATA_SET); 
        if (m_pdu.WriteCommand(actionFilmSession, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
        } 
        else 
        { 
                AfxMessageBox("Can not action film session information"); 
                m_pdu.Close(); 
                return; 
        } 
        if (m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("can not read action film session information"); 
                m_pdu.Close(); 
                return; 
        } 
        DumpDataset("c:\\action_film_session.txt", rsp); 
 
        NDeleteRQ delFilmSession(uniq16odd(), UID_BASIC_FILM_SESSION_STORAGE_SOP_CLASS, instUID); 
        if (m_pdu.WriteCommand(delFilmSession, UID_BASIC_GRAYSCALE_PRINT_MANAGEMENT_SOP_CLASS)) 
        { 
        } 
        else 
        { 
                AfxMessageBox("can not delete file action information"); 
                m_pdu.Close(); 
                return; 
        } 
        if (m_pdu.Read(rsp)) 
        { 
                AfxMessageBox("can not read delete file session information"); 
                m_pdu.Close(); 
                return; 
        } 
        DumpDataset("c:\\delete_film_session.txt", rsp); 
 
        m_pdu.Close(); |   
 
 
 
 |