< 공용 클래스 설명 문서 > - 설명이 필요없을만큼 명백한 부분은 생략하였다. - 모든 클래스가 완벽히 동작한다고 보장할 수는 없지만, 아직까지 드러난 문제는 없었음. 1. Recordset계열 클래스 모든 클래스는 CRecordset를 상속받는다. 1.1. CHospitalRecordset 병원과 관련된 데이터의 입출력을 관리한다. 1.1.1. 멤버데이터 MDB에 정의된 해당 레코드의 속성들과 1:1로 대응하는 변수들이 정의되어있다. 1.1.2. 멤버함수 1.1.2.1. BOOL Insert(); 파라미터 const CString& strHospitalName 병원이름 리턴값 성공 혹은 실패 여부. 같은이름이 존재하면 실패. 설명 새로운 병원을 삽입한다. 1.2.2.2. void Reset(); 파라미터 BOOL bMoveFirst 초기화값. 기본은 처음. 리턴값 없음 설명 필터(SQL)을 이용하여 Requery()를 수행하였을 경우등에 있어서, 레코드셋을 초기의 상태로 돌려놓는다. 파라미터는 원상복귀후의 레코드를 가리키는 포인터의 위치. 1.2.2.3. BOOL IsExistHospitalName( ); 파라미터 const CString& strHospitalName 병원이름 리턴값 성공 혹은 실패 여부. 설명 해당 이름의 병원이 존재하는지를 구한다. 1.2.2.4. BOOL IsEmpty(); 파라미터 없음 리턴값 상동 설명 레코드셋이 비어있는지를 검사한다. 1.2.2.5. long GetHospitalIDFromHospitalName(); 파라미터 const CString& strHospitalName 병원이름 리턴값 병원ID 설명 해당 이름의 병원에 해당하는 병원ID를 구한다. 1.2.2.6. long GetRecordCount(); 파라미터 없음 리턴값 레코드의 개수 설명 레코드의 개수를 구한다. CRecordset의 함수를 오버라이딩한것. 1.2. CPatientRecordset 환자와 관련된 데이터의 입출력을 관리한다. 1.2.1. 멤버데이터 MDB에 정의된 해당 레코드의 속성들과 1:1로 대응하는 변수들이 정의되어있다. 1.2.2. 멤버함수 1.2.2.1. BOOL Insert(); 파라미터 const long& nHospitalID 병원ID const CString& strPatientName 환자이름 const CString& strPatientInfo 환자정보 리턴값 성공 혹은 실패 여부 설명 새로운 환자를 삽입한다. 병원ID는 전체 환자레코드에 중복되는 이름의 환자가 존재할 수 있기때문에 이를 구분하기 위해서 필요하다. 1.2.2.2. void Reset(); 설명생략 1.2.2.3. BOOL IsExistPatientName(); 설명생략 1.2.2.4. BOOL IsExistPatientID(); 설명생략 1.2.2.5. BOOL IsEmpty(); 설명생략 1.2.2.6. long GetPatientIDFormPatientName( , ); 파라미터 const long& nHospitalID 병원ID const CString& strPatientName 환자이름 리턴값 환자ID 설명 환자이름을 이용해서 환자ID를 구한다. 1.2.2.7. long GetRecordCount(); 설명생략 1.3. CReportRecordset 레포트와 관련된 데이터의 입출력을 관리한다. 1.3.1. 멤버데이터 MDB에 정의된 해당 레코드의 속성들과 1:1로 대응하는 변수들이 정의되어있다. 1.3.2. 멤버함수 1.3.2.1. BOOL Insert(); 설명생략 1.3.2.2. void Reset(); 설명생략 1.3.2.3. BOOL IsEmpty(); 설명생략 1.3.2.4. long GetRecordCount(); 설명생략 2. ART(Auto Reporting Tool)계열 클래스 2.1. CARTDataManager MDB와 관련된 데이터 입출력을 관리한다. 2.1.1. 멤버데이터 2.1.1.1. CRecordsetHospital m_recordsetHospital 병원레코드셋 2.1.1.2. CRecordsetPatient m_recordsetPatient 환자레코드셋 2.1.1.3. CRecordsetReport m_recordsetReport 리포트레코드셋 2.1.2. 멤버함수 2.1.2.1. int _InsertHospital(); 파라미터 const CString& strHospitalName 병원이름 리턴값 성공 혹은 실패여부를 나타내는 int값. 다양한 경우를 표현하기 위해서 BOOL이 아닌 int를 사용하였다. 설명 MDB에 새로운 병원데이터를 삽입한다. 2.1.2.2. int _InsertPatient(); 파라미터 const CString& strPatientName 환자이름 const CString& strPatientInfo 환자정보 const long& nHospitalID 환자데이터가 삽입될 병원ID 리턴값 상동 설명 MDB에 새로운 환자데이터를 삽입한다. 2.1.2.3. int _InsertReport(); 파라미터 const COleDateTime& odtDate 입력시간 const CString& strImage1Path 이미지1의 경로 const CString& strImage2Path 이미지2의 경로 const CString& strReportPath 만들어질 리포트파일의 경로 const CString& strReportInfo 리포트 정보 const long& nPatientID 리포트데이터가 삽일될 환자ID 리턴값 상동 설명 MDB에 새로운 리포트데이터를 삽입한다. 2.1.2.4. long _GetHospitalIDFromName(); 파라미터 const CString& strHospitalName 병원이름 리턴값 성공할경우 병원ID, 실패하면 음수값. 설명 병원이름으로부터 병원ID를 구한다. 2.1.2.5. long _GetPatientIDFromName(); 파라미터 const CString& strPatientName 환자이름 const long& nHospitalID 병원ID 리턴값 성공할경우 환자 ID, 실패하면 음수값. 설명 환자이름과 병원ID로부터 환자ID를 구한다. 같은 이름의 환자가 다수 존재할 수 있기때문에 병원ID도 필요하다. 같은병원에는 같은이름의 환자가 존재할 수 없다. 2.1.2.6. int InsertData(); 파라미터 const CString& strHospitalName 병원이름 const CString& strPatientName 환자이름 const CString& strPatientInfo 환자정보 const COleDateTime& odtDate 입력시간 const CString& strImage1Path 이미지1 경로 const CString& strImage2Path 이미지2 경로 const CString& strReportPath 리포트 경로 const CString& strReportInfo 리포트 정보 리턴값 1(성공) 설명 새로운 데이터를 입력한다. 2.1.2.7. ARTDATA_HOSPITAL GetHospitalData(); 파라미터 const long& nHospitalID 병원ID 리턴값 병원정보를 포함하는 구조체 설명 병원정보를 구한다. 2.1.2.8. ARTDATA_PATIENT GetPatientData( ); 파라미터 const long& nPatientID 환자ID 리턴값 환자정보를 포함하는 구조체 설명 환자정보를 구한다. 2.1.2.9. ARTDATA_REPORT GetReportData(); 파라미터 const long& nReportID 리포트ID 리턴값 리포트정보를 포함하는 구조체 설명 리포트정보를 구한다. 2.1.2.10. BOOL SetHospitalData(); 파라미터 const long& nHospitalID 병원ID const ARTDATA_HOSPITAL& ah 병원정보를 포함하는 구조체 리턴값 성공 혹은 실패 여부 설명 병원정보를 갱신한다. 2.1.2.11. BOOL SetPatientData(); 파라미터 const long& nPatientID 환자ID const ARTDATA_PATIENT& ap 환자정보를 포함하는 구조체 리턴값 상동 설명 환자정보를 갱신한다. 2.1.2.12. BOOL SetReportData(); 파라미터 const long& nReportID 리포트ID const ARTDATA_REPORT& ar 리프토정보를 포함하는 구조체 리턴값 상동 설명 리포트정보를 갱신한다. 2.1.2.13. void GetAllDataFromReportID(); 파라미터 ARTDATA_HOSPITAL* artdataHospital (out)병원정보를 포함하는 구조체 ARTDATA_PATIENT* artdataPatient (out)환자정보를 포함하는 구조체 ARTDATA_REPORT* artdataReport (out)리포트정보를 포함하는 구조체 const long& nReportID 리포트ID 리턴값 없음 설명 해당되는 리포트의 병원정보, 환자정보, 리포트정보를 포함하는 구조체를 구한다. 2.1.2.14. vector< pair > GetHospitalNameList(); 파라미터 없음 리턴값 병원ID와 병원이름을 쌍으로 가지는 자료형(pair)의 vector 설명 모든 병원의 ID와 이름목록은 구한다. 2.1.2.15. vector< pair > GetPatientNameList(); 파라미터 const long& nHospitalID 병원ID 리턴값 환자ID와 환자이름을 쌍으로 가지는 자료형(pair)의 vector 설명 해당병원의 모든 환자ID와 이름목록을 구한다. 2.1.2.16. vector< pair > GetReportDateList(); 파라미터 const long& nPatientID 환자ID 리턴값 리포트ID와 리포트날짜를 쌍으로 가지는 자료형(pair)의 vector 설명 해당환자의 모든 리포트ID와 리포트날짜목록을 구한다. 2.1.2.17. long GetPatientNumInHospital(); 파라미터 const long& nHospitalID 병원ID 리턴값 환자수 설명 해당병원의 환자수를 구한다. 2.1.2.18. long GetReportNumInPatient(); 파라미터 const long& nPatientID 환자ID 리턴값 리포트의 개수 설명 해당환자의 리포트수를 구한다. 2.1.2.19. long GetLastReportID(); 파라미터 없음 리턴값 리포트ID, 실패할경우 음수. 설명 가장 큰 리포트ID를 구한다. 2.1.2.20. BOOL SetProbeDecision(); 파라미터 const long& nReportID 리포트ID const int& nCount Detected probe의 개수 const int* pProbeNo Detected probe의 목록 리턴값 성공 혹은 실패 여부 설명 해당리포트의 ProbeDecision항목에대한 정보를 갱신한다. 2.1.2.21. BOOL GetProbeDecision( , , ); 파라미터 const long& nReportID 리포트ID int* nCount (out)Detected probe의 개수 int* pProbeNo (out)Detected probe의 목록 리턴값 상동 설명 해당리포트의 ProbeDecision항목에대한 정보를 구한다. 2.1.2.22. long GetHospitalIDFromName( ); 파라미터 const CString& strHospitalName 병원이름 리턴값 성공할경우 병원ID, 실패하면 음수값. 설명 병원이름으로부터 병원ID를 구한다. 2.2. CARTDirectoryManager 이미지, 리포트파일, 참고파일등의 경로를 관리한다. 2.2.1. 멤버데이터 2.2.1.1. CString m_strBaseDirectory; 기본 디렉토리 이름. 기본값은 현재디렉토리. 2.2.1.2. CString m_strDataDirectory; 참고파일(MDB파일, DiagServerIni.txt, ReportForm.hwp등)이 저장되어있는 디렉토리 이름 2.2.1.3. CString m_strReportDirectory; 리포트파일이 저장될 디렉토리 이름 2.2.2. 멤버함수 2.2.2.1. BOOL CreateDataDirectory(); 파라미터 const CString& strDataDirectory 참고파일 디렉토리 이름. 기본값은 Data. 리턴값 성공 혹은 실패 여부 설명 참고파일 디렉토리를 생성한다. 2.2.2.2. BOOL CreateReportDirectory(); 파라미터 const CString& strReportDirectory 리포트파일이 저장될 디렉토리 이름. 기본값은 Report. 리턴값 상동 설명 리포트파일이 저장될 디렉토리를 생성한다. 2.2.2.3. CString GetBaseDirectoryPath(); 파라미터 없음 리턴값 기본 디렉토리 경로 설명 기본 디렉토리의 경로를 구한다. 2.2.2.4. CString GetDataDirectoryPath(); 파라미터 없음 리턴값 데이터 디렉토리 경로 설명 데이터 디렉토리의 경로를 구한다. 2.2.2.5. CString GetReportDirectoryPath(); 파라미터 없음 리턴값 리포트 디렉토리 경로 설명 리포트 디렉토리의 경로를 구한다. 2.2.2.6. CString GetDirectoryPathForImage( , ); 파라미터 const CString& strHospitalName 병원이름 const CString& strPatientName 환자이름 리턴값 디렉토리 경로 설명 이미지파일을 저장하기위한 디렉토리의 경로를 구한다. 날짜는 현재날짜. 2.2.2.7. CString GetDirectoryPathForImage(); 파라미터 const CString& strHospitalName 병원이름 const CString& strPatientName 환자이름 const CString& strDate 날짜 리턴값 상동 설명 상동 2.2.2.8. CString GetDirectoryPathForReport( , ); 파라미터 const CString& strHospitalName 병원이름 const CString& strPatientName 환자이름 리턴값 상동 설명 리포트파일을 저장하기위한 디렉토리의 경로를 구한다. 날짜는 현재날짜. 2.2.2.9. CString GetDirectoryPathForReport(); 파라미터 const CString& strHospitalName 병원이름 const CString& strPatientName 환자이름 const CString& strDate 날짜 리턴값 상동 설명 상동 2.3. CARTImageManager 이미지처리와 관련된 작업을 수행한다. 아직 모든 이미지 관련작업을 포함시키지 못하였음. 2.3.1. 멤버데이터 없음 2.3.2. 멤버함수 2.3.2.1. WORD* ReadTiff16(); 파라미터 int *width (out)이미지 폭 int *height (out)이미지 높이 CString fname (out)이미지 경로 리턴값 RAW데이터 설명 16비트 TIFF의 이미지를 읽어서, RAW데이터와 이미지의 폭, 넓이를 구한다. 2.3.2.2. BITMAPINFO* GetBitmapInfo(); 파라미터 const int nImageWidth 이미지 폭 const int nImageHeight 이미지 높이 const nBitCount 해상도 리턴값 DIB이미지 출력을 위한 비트맵 정보 구조체 설명 행당되는 크기와 해상도의 이미지에대한 BITMAPINFO를 구한다. 2.3.2.3. void MakePartImage(); - 미완 파라미터 const CString& strFilepath 이미지 경로 리턴값 없음 설명 Full-scanned TIFF이미지를 읽어서 이를 8개조각으로 자른후 임시디렉토리에 저장한다. 2.4. CARTRPManager Reporting Processor(?) 2.4.1. 멤버데이터 없음 2.4.2. 멤버함수 2.4.2.1. static void MakeReport(); 파라미터 const long& nReportID 리포트ID. 기본값은 -1(가장 최근의 리포트를 의미한다) 리턴값 없음 설명 DiagServer.dll의 MakeReport함수를 호출한다. 2.5. CARTUtil ART(Auto Reporting Tool)에 관련된 각종 유틸리티 함수들 2.5.1. 멤버 데이터 없음 2.5.2. 멤버함수 2.5.2.1. static CString UpdateReportFilename(); 파라미터 const CString& strFilename 업데이트할 파일이름 리턴값 업데이트된 파일이름 설명 리포트파일 이름을 업데이트한다. 기존의 리포트파일이름에 _?를 추가하는 것으로 한다. ?는 업데이트한 횟수. 2.5.2.2. static ARTUTIL_PATIENTINFO GetPatientInfo(); 파라미터 const CParameterString& strPatientInfo 파라미터스트링타입의 환자정보 리턴값 환자정보를 분해한 구조체정보 설명 환자정보가 들어있는 파라미터스트링을 분해해서 각각에 알맞도록 이들을 구조체에 넣는다. 이 함수는 환자정보의 내용이 바뀜에따라서 구조체내용과 함께 수정이 필요하다. 2.5.2.3. static ARTUTIL_REPORTINFO GetReportInfo(); 내용생략 2.5.2.4. static std::vector PDParameterStringToPDVector( ); 파라미터 const CParameterString& paramstrProbeDecision 파라미터스트링타입 리턴값 문제가있는 probe번호를 저장한 벡터 설명 ARTDATA_REPORT의 probedecision문자열을 분석해서 이를 vector목록으로 만든다. 2.5.2.5. CParameterString PDVectorToPDParameterString(); 내용생략 3. 기타계열 클래스 3.1. CParameterString 문자열을 이용해서 분리되 데이터를 구성하도록 한다. 3.1.1. 멤버데이터 3.1.1.1. char m_cSeparator; 각각의 데이터를 구분하는 구분자. 기본값은 ':'. 3.1.1.2. vector m_vecParameter; 데이터들을 관리하는 vector 3.1.2. 멤버함수 3.1.2.1. CString _GetParameterList(); 파라미터 없음 리턴값 구분자로 구분된 파라미터목록 설명 현재 저장되어있는 파라미터들을 구분자로 구분한 문자열(파라미터화 문자열)로 구성한다. 3.1.2.2. vector _ConvertParameterListToVector(); 파라미터 const CString& strParameterList 파라미터화 문자열 리턴값 파라미터들이 저장되어있는 vector 설명 파라미터화 문자열을 구분자로 구분해서 각각의 파라미터를 구한다음, 이를 vector에 저장한다. 3.1.2.3. void ResetParameterList(); 파라미터 const CString& strParameterList 파리미터화 문자열 리턴값 없음 설명 파라미터화 문자열을 이용해서 클래스를 다시 초기화한다. 3.1.2.4. CString GetParameterList(); 파라미터 없음 리턴값 구분자로 구분된 파라미터목록 설명 현재 저장되어있는 파라미터들을 구분자로 구분한 문자열(파라미터화 문자열)로 구성한다. 3.1.2.5. BOOL AddParameter(); 파라미터 const CString& strParameter 파라미터 문자열(하나의 파라미터를 의미함) const BOOL& bIsEnd 삽입위치. 기본값은 맨뒤. 리턴값 삽입의 성공 실패 여부. 모든 파라미터를 합한 문자열의 길이가 255가 넘으면 안된다. MDB의 저장용량때문. 설명 새로운 파라미터를 추가한다. 3.1.2.6. BOOL GetNextParameter( /*out*/, const BOOL& bIsEnd = TRUE ); 파라미터 CString& strParameter (out)파라미터 문자열 const BOOL& bIsEnd 추출위치, 기본값은 맨뒤. 리턴값 추출의 성공 실패 여부. 설명 목록에서 하나의 파라미터를 구한다. 결국 하나의 파라미터가 제거됨. 3.1.2.7. int GetRemainParameterNum(); 파라미터 없음 리턴값 파라미터의 개수 설명 현재 목록에 남아있는 파라미터의 개수를 구한다. 3.1.2.8. CString ExportForComFile(); - 필요 없을 수도 있음. 파리미터 없음 리턴값 ComFile.txt를 위한 파라미터 목록 문자열 설명 GetParameterList()함수와 비슷하나 각각의 파라미터가 공백문자로 구분되어있다.