Artikel ini menjelaskan metode Java untuk parsing file gambar medis DCM dan mengekstraksi informasi file. Bagikan untuk referensi Anda, sebagai berikut:
1. Instalasi
Pertama, buka GitHub untuk mengunduh kode sumber, dan kemudian jalankan pemasangan MVN untuk instalasi lokal. Repositori Maven Central tidak memiliki toples. . Setelah instalasi yang berhasil, berikut ini adalah sebagai berikut:
Kemudian perkenalkan paket JAR dalam file pom.xml:
<dependency> <GroupId> org.dcm4che </groupid> <ArTifactId> dcm4che-core </artifactid> <version> 3.3.2 </version> </dependency>
2. Kategori Pengujian
/** * ProjectName: xxx * nama file: displaytag.java * packageName: com.xxxx.xxxx.common.util * Tanggal: 2018-03-26 10:07 * Hak Cipta (c) 2017-2020 XXX Company */Paket com.gz.medicine.common.common. java.io.file; impor java.io.ioException; impor java.sql.time; import java.util.arrays; impor java.util.date; import java.util.logging.level; import java.util.logging.logger; impor org.dcm4 org.dcm4che3.data.elementdictionary; impor org.dcm4che3.data.fragments; impor org.dcm4che3.data.seteseence; impor org.dcm4che3.data.tag; org.dcm4che3.data.vr; org.dcm4che.data.vr; org.dcm4che3.io.dicominputStream; impor org.dcm4che3.io.dicomoutputStream; impor org.dcm4che3.util.safeclose; impor java.awt.image.raster; Impor Java. * @ClassName: displayTag * @packagename: com.xxxx.xxxx.common.util * @description: tag parsing * @data: 2018-03-26 10:07 **/public final class displayTag {private statis atribut OBJ = null, object = null; DIN DICOMINTPUTSTREAM STATIC PRIBADI; Private Static Double ResultFactordix; Hasil string pribadi = null; Hasil ganda pribadi2 = null; Private String nom = null; Private String nounstring = null; private int val2 = 0; private int valeurreturn; Private String noununit = null; private static ganda resultFacteurdix = 0; Private Double ValuesPatial = NULL; Private String noununitratio = null; Dis DicominputStream Pribadi; private static final char [] hex_digits = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; private dicomencodingoptions encopts = dicomencodingoptions.default; private static elementDictionary dict = elementDictionary.getstandardelementDictionary (); public displayTag (file file) {coba {setObject (loadDicomObject (file)); } catch (ioException ex) {logger.getLogger (displaytag.class.getName ()). Log (level.severe, null, ex); }} / ** * Baca metadata dari DICOM 3.0 * @param f: File input * @Return Atribut * @throws IoException * / Atribut statis public loadDicomObject (file f) melempar ioException {if (f == null) {return null; } else {dicominputStream dis = new dicominputStream (f); //attr.setspecificcharacterset("gbk "); return dis.readdataset (-1, -1); }} / ** * put atribut * @param obj * / public void setObject (atribut obj) {this.obj = obj; } / ** * memberikan atribut metadata * @return * / atribut statis publik getObject () {return obj; } / ** * Tampilan metadata * @param File: File inout * @throws IoException * / string publik readtagdicom (file file) melempar ioException {din = new dicominputStream (file); objek = din.readfileMeAnformation (); Nilai string = object.toString (); objek = din.readdataset (-1, -1); nilai pengembalian; } / ** * Permet d'Afficher l'heure d'une valeur dicom en standar internasional yyyy.mm.dd / memungkinkan waktu tampilan dalam format yyyy.mm.dd * @param tag: valeur du tag / int tag * @param valuebool: si true format yyyy.mm.dddddddddddddddddddddddden format sinon.mm.ddddddddddddddddddddddden thenyy format sinon.mm.ddddddddddddddddddddddddddddddddddddddddden format sinon.mm.ddddddddddddddddddddddddddden format sinon.mm.ddddddddddddddddddddddddddden fform yyyy.mm.dd lain dd.mm.yyyyy * @param valuenoun: "dot" Mettre la date en format yyyyy.mm.dd ou dd.mm.yyyyy sinon en format yyyy mm dd ou dd mm yyyyy/ "dot" dot "yyyy. dd.mm.yyyyy lain yyyy mm atau dd mm yyyyy * @return afficher le string du tag selon le Standar internasional/ return string date * @throws ioException */ string publik DicomDate (tag int, boolean valueBool, string valueNoun) lemparan ioException {if ife (geting). getObject (). getString (tag); String tagdayfomat = formatDate (tagValue, valueBool, valuenoun); return tagdayfomat; } else {return null; } } /** * Permet d'afficher l'heure d'une valeur dicom en standard international yyyy.mm.dd/ Permit display a time in metadata for yyyy.mm.dd * @param object * @param Tag : valeur du tag/ value of tag * @param valueBool : si true Format yyyy.mm.dd sinon format dd.mm.yyyyy/ if true format yyyy.mm.dd else dd.mm.yyyyy * @param valueNoun : "dot" mettre la date en format yyyyy.mm.dd ou dd.mm.yyyyy sinon en format yyyy mm dd ou dd mm yyyy/dot" put yyyy.mm.dd or dd.mm.dd or dd.mm.yyyy else yyyy mm or dd mm yyyy * @return afficher le string du tag selon le standard international/ return string date * @throws IOException */ public static String dicomDate(Attributes object , int Tag,boolean valueBool, String valueNoun) throws IOException{ String tagValue = Object.getString (tag); yyyyy.mm.dd atau dd.mm.yyyy lain dalam format yyyy mm dd atau dd mm yyyyy *@return */public string formatDate (string numero, boolean valuebool, string valuenoun) {if (numero.catches ("^[0-9] *$") {if/numero.catches ("^[0-9] *$") {numero.catches ("^[0-9] *$") {numero.catches ("^[0-9] Chiffre StringBuffer R = New StringBuffer (); if (valueBool == true) {// format yyyy.mm.dd untuk (int i = 0, j = numero.length (); i <j; i ++) {r.pend NULL: ValueNoun.Equals ("Dot")) {R.Append ('.'); "DOT" == NULL: ValueNoun.Equals ("DOT")) {R.Append ('.') pengindeksan array. Nilai urutannya adalah pada indeks nol, yang berikutnya di indeks, dan seterusnya, seperti untuk pengindeksan array. * @Return */ Tanggal Publik GetHeadDateValue (String Tagnr) {return getheaderDateValue (totagint (tagnr)); / ** * Mengonversi representasi string dari nomor header * EG 0008.0010 ke integer yang sesuai sebagai 0x00080010 * seperti yang digunakan dalam @see org.dcm4che2.data.tag * @param headernr Eg 0008.0010 * @return 0x00080010 sebagai int * / public static eg 0008.0010 * @return 0x00080010 sebagai int * / public static eg 0008.0010 * @return 0x00080010 sebagai int * / public static eg 0008.0010 * @return 0x000800 sebagai int * / public static 0008 Integer.parseint (headernr.replaceall (",", ""), 16); dari vr = da * @param tagnr: "0000,0010" * @param dicomobj * @return */ Tanggal publik getHeadDateValue (string tagnr, atribut dicomobj) {return getHeadDateValue (totagint (lUtnr), Dicomobj); TextDicom (string num) {num = num.replaceall ("//^+", "")); ke string tagValue = arrays.aslist (tagValue2) .toString (); Object.getstrings (tag); // tabel konversi dalam daftar ke string tagValue = displaytag.arraytoString (tagValue2, "//"); pemisah) {StringBuffer = StringBuffer baru (); (0008.0030) Pada waktu studi S * (0008.0031) pada Seri S Time * (0008.0032) pada waktu akuisisi S * (0008.0033) pada waktu gambar S * @param Tag: memberikan tag * @return * @throws IoException */ public string Dicomtime (int tag) throws ioExcepte {{@throws IoException */ public string Dicomtime (int tag) throws ioExcepte {{@throws IoException */ public string Dicomtime (int tag) throws ioExcepte {). TagValue = GetObject (). GetString (TAG); (0008.0031) pada waktu seri S * (0008.0032) pada waktu akuisisi S * (0008.0033) pada waktu gambar S * @param Tag: memberikan tag * @return * @throws ioException */ string public dicomtimetal (tag int) lemparan ioException {ifeL (getsoBlect () (tag) {) {tag) {iOException {) {iOException {) (get- tag () getObject (). GetString (Tag); (0008.0033) Pada waktu gambar S * @param objek: metadata * @param Tag: nilai dicom * @return nilai string baru * @throws ioException */ string publik Dicomtime2 (objek atribut, tag); System.out.println (formattime (tagvaluenotdot)); (0008.0033) Pada waktu gambar S * @param objek: metadata * @param Tag: nilai DICOM * @Return Nilai string * @throws IoException */ string public DicomTime3 (objek Atribut (tag); } /** * Membaca nilai int dari dicomheader * @param tagnr tag untuk membaca * @return nilai sebagai int * /int getHeaderIntegerValue (int tagnr) {return getObject (). getint (tagnr, 0); "0008.0102#0054.0220" untuk mendapatkan perancang skema pengkodean setelah urutan kode tampilan * @return int */ int getheaderintegerValue (string tagnr) {return getheaderintegerValue (tag -tag (tagnr)); tagnr) {return contilSheaderTag (totagint (tagnr));} / ** * Memeriksa apakah header berisi tag yang diberikan * @param tagnr * @return * / public boolean berisi tag @public * getheadername (int tagnr) {return dict.keywordof (tagnr); Mengembalikan representasi string dari bidang header yang diberikan * jika ada di header * @param tagnr * @return */ public getHeader (int tagnr) {coba {string dcmele = getObject (). getString (tagnr); ToelementsTring (String DCMele, Tag int) {StringBuffer SB = New StringBuffer (); .Posisi (dcmele); Integer yang sesuai sebagai 0x00080010 * seperti yang digunakan dalam @see org.dcm4che2.data.tag * @param headernr misalnya 0008.0010 * @return 0x00080010 sebagai int * / public int totagint2 (string headernr) {return integer.parse (headern. * Hapus Comma di String * @param num * @return */public string formatnotdot (string num) {num = num.trim (). ReplaceAll ("[^0-9 //+]" */ FormatTime string statis publik (string numero) {if (numero.matches ("^[0-9] *$")) {StringBuilder R = New StringBuilder (); r.pen (');}} retring r.toString (); 0, numero.length (); i <j; Nilai */Lantai Ganda Publik (Double A, Int N) {Double P = Math.pow (10.0, n); Return resultFactordix = Math.pow (result3, factor); dcmobj.getints (tag.pixeldata); dcmobj * @return * @throws ioException */ byte publik [] lattricepixeldatabytes (atribut dcmobj) lemparan ioException {byte [] data = dcmobj.getbytes (tag.pixeldata); lattricepixeldatabytes2 () melempar ioException {byte [] data = getObject (). getBytes (tag.pixeldata) data raster ( @retaster); raster.getHeight (); = raster.getSample (x, y, 0); x = 0; *FileInputStream fis = FileInputStream baru (FileInput); Patient_additional_tags) {string [] value = String baru [Patient_Additional_tags.length]; } // System.out.print (nilai [0]+"/n"); // System.out.print (nilai [1]); DisplayTag (InputFile); Nilai di dalam vr = sq * @param inputFile: File input * @param tagsq: tag vr = sq * @param Tag: Tag di dalam vr = sq * @return */ public string tagItem (file inputtag, tag int, intring) {string valuestring = null; DaMeTributes ATTRIBUT = SEQ.GET (0); PhysicalUnitsXDirection * - PhysicalUnitsXDirection * - PixelComponentPhysicalUnits * * * * @param result : value string */ public void unit(int TAG, String result){ if (TAG == Tag.RegionSpatialFormat ){ val2= Integer.valueOf(result).intValue();//convertie en int switch(val2) { case 5: setNoununit ("Grafik"); this.setNounUnit ("2d (jaringan atau aliran"); break; case 0: setnoununit ("tidak ada atau tidak berlaku"); break; default: break;}} lain jika (tag == tag.regionDataPeType) {val2 = integer.valueof (result) .Intvalue ();//converT (val2 = vale.valeOf (result) .IntValue ();//converT (val2 (val2 (hasil (result) .IntValue ();//converTe (valner (vale (hasil) .Intvalue ();//converT (val2 (val2 (hasil). Fisiologis (amplitudo vs waktu) "); break; case 11: setnoununit (" d (area)/dt "); break; case 10: setnoununit (" Area rprace "); break; case 9: setnoununit (" d (volume)/dt jejak "); break; case 8: setnoununit (" volume trace "); break; case 8: setnoununit (" volume trace "); BRACE; Break; Break; ini. == Tag.physicalUnitsXDirection ||. Break; break; case 2: this.setNounUnit("dB/pixel"); break; case 1: this.setNounUnit("percent/pixel"); break; case 0: this.setNounUnit("None or not applicable"); break; default: break; } switch (result) { case "A": this.setNounUnit("cm*cm*cm/pixel"); break; case "B": this.setnoununit ("cm*cm*cm*pixel/sec"); setNounUnit("Computed Border"); break; case 8: setNounUnit("Integrated Backscatter"); br eak; case 7: setNounUnit("Color bar"); break; case 6: this.setNounUnit("Gray bar"); break; case 5: this.setNounUnit("Color Flow Intensity"); break; case 4: setNounUnit("Color Flow Variance"); break; case 3: this.setNounUnit("Color Flow Velocity"); break; case 2: this.setNounUnit("Spectral doppler"); break; case 1: this.setNounUnit("Tissue"); break; case 0: this.setNounUnit("None or not applicable"); break; default: break; } if("A".equals(result)){ this.setNounUnit("Tissue Klasifikasi ");}} else {this.setnoununit (" tidak ada atau tidak berlaku ");}} / ** * enregistre l'Unité des items / put unity item * @param noununit * @return this.noununit = noununit * / public string setnoununit (string noununit {noununit * noununit * / nounit public setnoununit (string nounit nounit {noununit * noununit * L'Unté des Items./Giving Unity of Items * @return le nom de l'Unté */ Public String getNounUnit () {return noununit; -PixelComponentPhysicalUnits * * @param Hasil: Prend L'Unite */ public void unitratiospatial (tag int, hasil string) {if (tag == tag.physicalunitsxdirection || tag == tag.physicalUnitsyDirection || tag = tag.pixelComponicePonicalsicials) {Tag Integer.valueof (hasil) .IntValue (); // Conversie en int switch (val2) {case 9: Double ValuesPatial1 = GetValeUrtagitemDoubloBloBloBlatio ()* setFacteurpuissance (10,1); Setnoununitratio (mm*mm.pixel/detik "); Setnounitratio (MM*Pixel/Sec "); ini. berlaku "); break; default: break;} switch (hasil) {case" a ": values doublePatial3 = getvaleurtagitemdoubloblaberatio ()*setfacteurpuissance (10,2); settagitemdoublatio (viilspatial3); // prend la valeur ini. "Nilai Doublepatial4 = Getvaleurtagitemdoubleratio ()*Setfacteurpuissance (10,2); }}/** * Prend La Valeur D'un Rasio Spasial/Put Rasio Nilai Spasial * @param ValuesPatial * @Return */Public ganda settagitemdoBlobleratio (nilai ganda) {return ini. getValeUrtagitemDoBloberatio () {return viilespatial; / ** * LA VALEUR DE PUISSANCE / PENGGUNAAN Nilai * @Return * / Public static getfacteurpuissance () {return resultFacteurdix; this.noununitratio = noununitratio; Items./Giving Unity Items * @return le nom de l'Unté */ public string getNounUnitratio () {return noununitratio; }/ ** * Prend la valeur interne d'un tag item/ tag item tag * @param hasil * @return */ public string settagitem (hasil string) {return this.result = hasil; }/** * donne la valeur du tag rachercher/memberikan nilai tag seek * @return le de la valeur rachercher du tag dans item un */public string getValeUrtagitem () {return hasil; }/ ** * Prend la valeur interne d'un tag item/ letakkan item tag nilai * @return */ public ganda settagitemdouble (ganda hasil2) {return this.result2 = result2; }/** * donne la valeur du tag rachercher/memberikan tag nilai * @return le double de la valeur rachercher du tag dans item un */public getvaleurtagitemdouble () {return result2; } / ** * Membaca nilai string dari tag dicom (dcm4che2) * @param tagnr tag untuk dibaca * @return nilai sebagai string * mengembalikan karakter spesifik yang ditentukan oleh atribut set karakter spesifik (0008.0005) {public {public {publing {publing ini, jika ini adalah kumpulan data bersarang yang mengandung dalam sekuense {public {public {public, jika ini adalah kumpulan data bersarang yang mengandung dalam quali {public {public {public {public, jika ini adalah kumpulan data bersarang yang mengandung quali {{0008,000. / public {{{0008.000 elem = getObject (); elem.setspeciccharacterset ("GB18030"); String val = elem.getString (tagnr); if (val == null) {val = ""; } return val; } catch (Exception e) {return ""; }} / ** * Membaca nilai string dari tag dicom (dcm4che2) * @param tagnr tag untuk membaca * @return nilai sebagai string * mengembalikan karakter spesifik yang ditentukan oleh atribut set karakter spesifik (0008,0005) * dari ini atau root data geting, jika ini adalah kumpulan data bersarang yang mengandung public {0008,000. System.out.println (222); Atribut elem = getObject (); elem.setspeciccharacterset ("GB18030"); String [] val = elem.getstrings (tagnr); return val; } catch (Exception e) {return null; }} / ** * Membaca nilai string dari dicomheader * @param tagnr tag untuk membaca * @param dcmelement * @return nilai sebagai string * / string publik getHeadstringValue (atribut dcmelement, int tagnr) {try {System.out.println (333); /* dcmelement.setspecificcharacterset ("iso_ir 100"); */ dcmelement.setspecificcharacterset ("GB18030"); String val = dcmelement.getString (tagnr); if (val == null) {val = ""; } return val; } catch (Exception e) {return ""; }} / ** * Membaca tag (grup, elemen) * @param headernr mis. return getHeadstringValue (totagint (headernr)); } / ** * Memberikan waktu tag ("xxxx,") * @param tagnr * @return * / waktu publik getHeaderTimeValue (string tagnr) {return getHeadImeValue (totagint (tagnr)); } / ** * Memberikan waktu tag * @param tagnr * @return waktu * / waktu publik getHeadImeValue (int tagnr) {string time = getHeadstringValue (tagnr); if (time.length ()! = 6) {return null; } coba {int hour = integer.parseint (time.substring (0,2)); int min = integer.parseint (time.substring (2,4)); int sec = integer.parseint (time.substring (4,6)); mengembalikan waktu baru (jam, min, dtk); } catch (Exception e) {} return null; } /** * Mengambil headertag spesifik yang ada di dalam tag anotehr * atau "0008.0102, 0054.0220" untuk mendapatkan perancang skema pengkodean setelah urutan kode tampilan * @return string * * @param tagierarchy; misalnya {tag.uid, tag.sopinstanceuid, tag.codemeaning} * @return */ string publik getHeaderValueinsideTag (int [] taghierarchy) {coba {untuk (int i = 0; i <taghierarchy.length-1; i ++) {return getObject (getString (tagHierarchy.length-1; i ++) {getSobject (getS). }} catch (exception e) {string tags = ""; untuk (int i = 0; i <taghierarchy.length; i ++) {tags += totagstring (taghierarchy [i]) +""; } kembali ""; } return null; } / ** * Mengonversi representasi int dari nomor header * misalnya 0x00080010 ke string yang sesuai 0008.0010 * @return 0008.0010 sebagai string * / string statis publik totagstring (int tagnr) {return shortthex (tagnr >> 16) + ',' + shorttoHex (tagnr); } public static string shortHeHex (int val) {char [] ch = new char [4]; shorttohex (val, ch, 0); mengembalikan string baru (ch); } public static StringBuffer ShortToHex (int val, StringBuffer SB) {SB.Append (hex_digits [(val >> 12) & 0xf]); SB.Append (hex_digits [(val >> 8) & 0xf]); SB.Append (hex_digits [(val >> 4) & 0xf]); SB.Append (hex_digits [val & 0xf]); mengembalikan SB; } public static void shorttHeHex (int val, char [] ch, int off) {ch [off] = hex_digits [(val >> 12) & 0xf]; ch [off+1] = hex_digits [(val >> 8) & 0xf]; ch [off+2] = hex_digits [(val >> 4) & 0xf]; ch [off+3] = hex_digits [val & 0xf]; } /** * Create file output dicom * @param fileOutput : file output * @throws IOException * * * Example: * * * * * * / public void writeTo(File fileOutput, Attributes fmi, Attributes object) throws IOException { DicomOutputStream dos = new DicomOutputStream( new File (fileOutput +".dcm")); dos.setencodingoptions (encopts); dos.writedataSet (fmi, objek); dos.finish (); dos.flush (); } / ** * Tulisan * @param FileOutput * @param h * @param w * @throws ioException * / public void writeTosegment (File FileOutput, int h, int w) melempar ioException {dicomoutputStream dos = new dicomoutputStream (file baru (FileOutput +". dos.setencodingoptions (encopts); } / ** * Buat overlay di pixeldata * @param objek * / public void overlayCreate (objek atribut) {int position = object.getint (tag.overLaybitposition, 0); if (position == 0) {return; } int bit = 1 << posisi; int [] piksel = objek.getInts (tag.pixeldata); Int Count = 0; untuk (int pix: piksel) {int overlay = pix & bit; piksel [count ++] = pix - overlay; } object.setint (tag.pixeldata, vr.ow, piksel); } /*** dicom.setstring (tag.performingphysicianname, vr.pn, "jean"); dicom.setstring (tag.admittingDiagnosesDescription, vr.lo, "chu"); Sekuens seq = DICOM.NewSequence (tag.anatomicregionSequence, 0); Atribut DICOM2 = atribut baru (); * @param dicom */ public void setitem (atribut DICOM, int tagSequencename) {sequence seq = DICOM.NewSequence (TagSequencename, 0); dicom.setstring (tag.codingschemedesignator, vr.sh, "srt"); dicom.setstring (tag.codevalue, vr.sh, "t-aa000"); dicom.setstring (tag.codemeaning, vr.lo, "eye"); seq.add (DICOM); } public static void main (string [] args) melempar pengecualian {file file = file baru ("c: // pengguna // fendo // dokumen // file weChat // fen_do // file // 1234.dcm"); DisplayTag d = DisplayTag baru (file); @SuppressWarnings ("Static-Access") Atribut ATTRS = D.LoadDicomObject (File); // output semua atribut sistem informasi.out.println ("Semua informasi:" + attrs); // Dapatkan baris int baris = attrs.getint (tag.rows, 1); // Dapatkan kolom int kolom = attrs.getint (tag.columns, 1); // Jendela Lebar Window float win_center = attrs.getFloat (tag.windowcenter, 1); float win_width = attrs.getFloat (tag.windowwidth, 1); System.out.println("" + "row=" + row + ",columns=" + row + ",row*columns = " + row * columns); String patientName = attrs.getString(Tag.PatientName, ""); System.out.println("Name:" + patientName); //Birthday String patientBirthDate = attrs.getString(Tag.PatientBirthDate, ""); System.out.println("Birthday: " + patientBirthDate); //Institution String institution = attrs.getString(Tag.InstitutionName, ""); System.out.println("Institution: " + institution); //Site String station = attrs.getString(Tag.StationName, ""); System.out.println("Site: " + station); //Manufacturer String Manufacturer = attrs.getString(Tag.Manufacturer, ""); System.out.println("Manufacturer: " + Manufacturer); //Manufacturer Model String ManufacturerModelName = attrs.getString(Tag.ManufacturerModelName, ""); System.out.println("ManufacturerModelName: " + ManufacturerModelName); //Description--Atrial String description = attrs.getString(Tag.StudyDescription, ""); System.out.println("Description--Atrial: " + Description); //Description--Specific String SeriesDescription = attrs.getString(Tag.SeriesDescription, ""); System.out.println("Description--Specific: " + SeriesDescription); //Description time String studyData = attrs.getString(Tag.StudyDate, ""); System.out.println("Description time: " + studyData); byte[] bytename = attrs.getBytes(Tag.PatientName); System.out.println("Name: " + new String(bytename,"gb18030")); byte[] bytesex = attrs.getBytes(Tag.PatientSex); System.out.println("Gender: " + new String(bytesex,"gb18030")); }}输出如下:
所有信息: (0008,0005) CS [ISO_IR 100] SpecificCharacterSet
(0008,0008) CS [ORIGINAL/PRIMARY] ImageType
(0008,0016) UI [1.2.840.10008.5.1.4.1.1.1.1] SOPClassUID
(0008,0018) UI [1.2.840.113619.2.203.4.2147483647.1486521160.448521] SOPInstan
(0008,0020) DA [20170208] StudyDate
(0008,0021) DA [20170208] SeriesDate
(0008,0022) DA [20170208] AcquisitionDate
(0008,0023) DA [20170208] ContentDate
(0008,002A) DT [20170208103237.000000] AcquisitionDateTime
(0008,0030) TM [103154.000] StudyTime
(0008,0031) TM [103158.000] SeriesTime
(0008,0032) TM [103237.000] AcquisitionTime
(0008,0033) TM [103240.000] ContentTime
(0008,0050) SH [T77792] AccessionNumber
(0008,0060) CS [DX] Modality
(0008,0068) CS [FOR PRESENTATION] PresentationIntentType
(0008,0070) LO ["GE Healthcare"] Manufacturer
(0008,0080) LO [HeFei RICH] InstitutionName
(0008,0081) ST [Not Initialized
Not Initialized
HeFei
AnHui
Not Initialize(0008,0090) PN [] ReferringPhysicianName
(0008,1010) SH [082407110134] StationName
(0008,1030) LO [ACHEST] StudyDescription
(0008,103E) LO [Chest] SeriesDescription
(0008,1040) LO [Not Initialized] InstitutionalDepartmentName
(0008,1050) PN [] PerformingPhysicianName
(0008,1090) LO ["Definium 6000"] ManufacturerModelName
(0008,1110) SQ [] ReferencedStudySequence
(0008,1120) SQ [] ReferencedPatientSequence
(0008,2112) SQ [1 Items] SourceImageSequence
>Item #1
>(0008,1150) UI [1.2.840.10008.5.1.4.1.1.1.1.1] ReferencedSOPClassUID
>(0008,1155) UI [1.2.840.113619.2.203.4.2147483647.1486521157.927189] Referenc
(0008,2218) SQ [1 Items] AnatomicRegionSequence
>Item #1
>(0008,0100) SH [T-D3000] CodeValue
>(0008,0102) SH [SNM3] CodingSchemeDesignator
>(0008,0104) LO [Chest] CodeMeaning
(0010,0010) PN [zhang^xiao di] PatientName
(0010,0020) LO [T77792] PatientID
(0010,0030) DA [19860618] PatientBirthDate
(0010,0032) TM [] PatientBirthTime
(0010,0040) CS [F] PatientSex
(0010,1010) AS [030Y] PatientAge
(0010,1030) DS [] PatientWeight
(0011,0010) LO [GEMS_GDXE_FALCON_04]
(0011,1003) UI [1.2.840.113619.2.203.4.2147483647.1486521118.562807]
(0011,1004) CS [SE]
(0011,1005) UI [1.2.840.113619.2.203.4.2147483647.1486521152.970120]
(0011,1006) DS [0.083936]
(0011,1009) SL [0]
...
row=2021,columns=2021,row*columns = 4084441
姓名:zhang^xiao di
生日:19860618
机构:HeFei RICH
站点:082407110134
制造商:"GE Healthcare"
制造商模型:"Definium 6000"
描述--心房:ACHEST
描述--具体:Chest
描述时间:20170208
姓名: zhang^xiao di
性别: F
更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java文件与目录操作技巧汇总》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》和《Java缓存操作技巧汇总》
Saya harap artikel ini akan membantu pemrograman Java semua orang.