Giá trị Thể hiện VR

Một phần của tài liệu DICOM (the digital image and communication in medicine) (Trang 67)

Giá trị Thể hiện (Value Representation-VR) của một Thành phần Dữ liệu (Data Element) miêu tả loại và khuôn dạng dữ liệu của trƣờng Giá trị (Value) trong Thành phần Dữ liệu.

68

Tên VR Định nghĩa Bộ Kí tự Chiều dài Gíá trị

AS

(String Age)

Chuỗi kí tự chỉ tuổi tuân theo theo một trong các dạng sau: nnnD, nnnW, nnnM, nnnY. Trong đó nnn chứa số Ngày, Tuần, Tháng, Năm. “0”-“9”, “D”, “W”, “Y” trong Bộ Kí tự mặc định. Cố định 4 byte AT (Attibute Tag)

Cặp số nguyên không dấu 16 bit là giá trị của Nhãn Thành phần Dữ liệu.

Không 4 byte cố định

CS

(Code String)

Chuỗi kí tự, dấu cách đầu và cuối (20H) khơng được tính

Kí tự in hoa,”0”-“9”, kí tự SPACE, “_” trong Bộ kí tự mặc định DA (Date) Chuỗi kí tự theo khn dạng yyymmdd. Trong đó yyy, mmm, ddd tương ứng chứa giá trị Năm, Tháng, Ngày. VD: “1980097” thể hiện Ngày 7 tháng 9 năm 1980. “0”-“9” trong Lựa chọn Kí tự mặc định. Có thể hỗ trợ “.” Cố định 8 byte DS (Decimal String) Chuỗi kí tự thể hiện số có dấu cố định hay khơng cố định. Số có dấu cố định được tạo bởi các kí tự “0”-“9”, “+”, “-“ và “.” để thể hiện dấu thập phân. Số có dấu khơng cố định dùng “e” hay “E” để thể hiện số mũ. Lớn nhất 16 byte FL (Floating Point Single) Số có dấu bất định được thể hiện trong Khuôn dạng Số Dấu Bất định IEEE 754:1985 32-bit Không Cố định 4 byte IS (String Integer) Chuỗi kí tự thể hiện một số nguyên hệ số 10, đứng đầu bởi “+” hay “-“

Số nguyên n được thể hiện nằn trong dải: -231 <= n <=(231-1) “0”, ”9”, ”+”, “-“ thuộc bộ kí tự mặc định Lớn nhất 12 byte LO (Long String)

Chuỗi kí tự có thể có với dấu cách ở đầu hay cuối. Kí tự ”\” được dùng để phân biệt các giá trị trong thành phần dữ liệu nhiều giá trị “0”-“9”, “+”, “-“ của bộ kí tự mặc định Lớn nhất 64 byte

LT Chuỗi kí tự bao gơm một hay Bộ kí tự Lớn nhất

(Long Text) nhiều đoạn. Sử dụng cả Kí tự Đồ hoạ và điều khiển. Dấu cách đứng sau khơng được tính, dấu cách đứng đầu được tính. Kí tự “\” không được sử dụng mặc định và/ hoặc theo định nghĩa bởi (0008,0005) 10240 kí tự OB (Other Byte String) Chuỗi các byte mà sự mã hoá được xác định trong Cú pháp Chuyển đổi được thỏa thuận. OB là một VR khơng tn theo luật mã hố thứ tự byte Little/Big Edian. Có thể thêm một byte NULL (00H) nếu cần để đạt được số byte chẵn Không Xem định nghĩa Cú pháp Chuyển đổi OW (Other Word String) Chuỗi các từ 16 bit mà sự mã hoá được xác định bởi Cú pháp Chuyển đổi được thoả thuận. OW cần thiết phải chuyển đổi byte của mỗi từ khi thay đổi thứ tự mã hoá byte giữa kiểu Little Edian và Big Endian.

Không Xem định nghĩa Cú Pháp Chuyển đổi. PN (Person Name)

Chuỗi kí tự chỉ tên bệnh nhân gồm có 5 thành phần. Các thành phần có thể trống. Các thành phần được phân giới bởi kí tự “^” VD:”Adams^John RobertQincy^^Rev.^B.A.M.Div Bộ Kí tự mặc định khơng bao gồm các Kí tự Điều khiển LF, FF, và CR (trừ ESC) Nhiều nhất 64 kí tự trên một nhóm thành phần (component group). SL (Signed Long)

Số 32 bit có dấu nhị phân dưới dạng mã bù 2

Thể hiện giá trị nguyên, n, trong dải: -231 <= n <=(231-1) Không Cố định 4 byte SQ (Sequense of Items) Chỉ số Mục trong Chuỗi, có

thể là khơng hoặc nhiều. Khơng Khơng UI

(Unique Identifier)

Chuỗi kí chứa một UID để xác định duy nhất một đối tượng trong một dải rộng các thành phần. UID là một chuỗi các thành phần số được ngăn cách bởi kí tự cách ”.” “0”-“9”, “.” Trong Bộ Kí tự mặc định Nhiều nhất 64 byte UN (Unknown) Chuỗi các byte mà sự mã hố khơng xác định Không Bất cứ chiều dài nào hợp lệ với các VR

70 UT

(Unlimited Text)

Một chuỗi kí tự có thể chứa một hay nhiều đoạn. Nó có thể chứa bộ Kí tự Đồ hoạ và các Kí tự Điều khiển. Bộ Kí tự mặc định 2 32 -2 III.2. Bộ Dữ liệu III.2.1. Khái niệm

Một Bộ Dữ liệu thể hiện một trƣờng hợp cụ thể Đối tƣợng Thông tin thế giới thực. Một bộ Dữ liệu đƣợc cấu tạo bởi các Thành phần Dữ liệu chứa các Giá trị đƣợc mã hoá của đối tƣợng đó.

III.2.2. Thành phần Dữ liệu a. Khái niệm a. Khái niệm

Thành phần Dữ liệu đƣợc xác định duy nhất bởi một Nhãn Thành phần Dữ liệu. Các Thành phần dữ liệu trong một Bộ Dữ liệu đƣợc xếp theo thứ tự bởi việc tăng số hiệu Nhãn Thành phần Dữ liệu và chúng chỉ xuất hiện nhiều nhất là một lần trong một Bộ Dữ liệu.

Có hai loại Thành phần Dữ liệu đƣợc định nghĩa:

-Thành phần Dữ liệu Chuẩn có số Nhóm (Group number) là số chẵn và không phải là (0000, eeee), (0002, eeee), (0004, eeee), (0006, eeee).

-Thành phần Dữ liệu Riêng có số Nhóm là lẻ và không phải là (0001, eeee), (0003, eeee), (0005, eeee), (0007, eeee), (FFFF, eeee).

eeee: số Thành phần bất kì.

Một Thành phần Dữ liệu rơi vào một trong ba cấu trúc. Hai cấu trúc trong đó có chứa VR (VR hiện), chúng khác nhau về chiều dài và cách thể hiện. Cấu trúc thứ ba không chứa VR (VR ẩn). Cả ba cấu trúc đều phải bắt buộc chứa Nhãn Thành phần Dữ liệu, Chiều dài Giá trị, và Giá trị .

Hình III.2.2.1. Cấu trúc Thành phần Dữ liệu và Bộ Dữ liệu b. Các trường của Thành phần Dữ liệu

Thành phần Dữ liệu đƣợc cấu tạo bởi các trƣờng. Có ba trƣờng bắt buộc cho mọi cấu trúc Thành phần Dữ liệu: Nhãn, Chiều dài Giá trị, Trƣờng Giá trị. Trƣờng VR chỉ xuất hiện trong cấu trúc Thành phần Dữ liệu VR hiện.

- Nhãn Thành phần Dữ liệu: Là một cặp thứ tự số nguyên không dấu 16-bit thể hiện số Nhóm và số Thành phần.

- VR: Chuỗi kí tự hai byte chứa VR (Giá trị thể hiện) của Thành phần Dữ liệu.

VR ứng với một Nhãn Thành phần Dữ liệu cụ thể đƣợc định nghĩa trong Từ điển Dữ liệu. Hai kí tự VR đƣợc mã hố sử dụng các kí tự từ bộ kí tự mặc định DICOM.

- Chiều dài Giá trị: Có hai trƣờng hợp:

Một số nguyên không dấu 16 hay 32 bit (phụ thuộc vào VR và khi VR là ẩn hay hiện) chứa chứa Chiều dài hiện của Trƣờng Giá trị với ý nghĩa là số byte (chẵn) tạo lên Giá trị. Nó khơng bao hàm chiều dài của Nhãn Thành phần Lệnh và trƣờng Chiều dài Lệnh.

Một bộ số 32 bit tƣơng ứng với Chiều dài Bất định (FFFFFFFFH). Chiều dài Bất định đƣợc sử dụng cho các Thành phần Dữ liệu có VR dạng SQ (Chuỗi Mục) hay UN

Thành phần Dữ liệu Bộ Dữ liệu

Thành phần

Dữ liệu Thành phần Dữ liệu Thành phần Dữ liệu

Thành phần Dữ liệu

Nhãn VR Chiều dài Trường Giá Trị Giá trị

Trường tuỳ chọn-Phụ thuộc vào Cú pháp Chuyển đổi được thoả

72

(Khơng xác định). Hoặc có thể sử dụng cho các Thành phần Dữ liệu có VR dạng OW, OB phụ thuộc vào Cú pháp Chuyển đổi đƣợc thoả thuận.

- Trường Giá trị: Một số chẵn các byte chứa Giá trị (các Giá trị) của Thành phần Dữ liệu.

Loại dữ liệu của các Giá trị đƣợc lƣu trữ trong trong trƣờng này đƣợc xác định bởi VR của Thành phần Dữ liệu. VR ứng với một Nhãn Thành phần Dữ liệu cụ thể đƣợc xác định sử dụng Từ điển Dữ liệu, hoặc đƣợc chứa ngay trong trƣờng VR của Thành phần Dữ liệu VR hiện.

VM (Value Multiplicity) chỉ ra bao nhiêu Giá trị với cùng một VR có thể nằm trong Trƣờng Giá trị. Nếu VM lớn hơn một, các Giá trị này sẽ đƣợc phân định ranh giới.

Trƣờng Giá trị với chiều dài bất định đƣợc phân định thông qua việc sử dụng các Mục Giới hạn Chuỗi (Sequence Delimitation Item) và các Thành phần Dữ liệu Giới hạn (Delimitation Data Element).

c. Thành phần Dữ liệu với VR hiện

Các Thành phần Dữ liệu sử dụng VR hiện có đủ bốn trƣờng nhƣ đã trình bày ở phần trên. Phụ thuộc vào VR, nó lại đƣợc chia ra làm các loại:

- Với VR là OB, OW, SQ, hoặc UN thì khn dạng Thành phần Dữ liệu nhƣ sau:

Nhãn VR Chiều dài Giá trị Giá trị Số Nhóm (số nguyên không dấu16 bit) Số Thành phần (số nguyên 16 bit khơng dấu) VR (chuỗi kí tự 2 byte) “OB”, “OW”, “SQ”, “UN” Dự trữ (2 Byte). Đưa về 000H Số nguyên không dấu 32 bit Số chẵn byte chứa Giá trị Thành phần Dữ liệu được mã hoá theo VR và Cú pháp Chuyển đổi. Được phân giới nếu chiều dài không xác định

2 byte 2 byte 2 byte 2 byte 4 byte “Chiều dài Giá trị” byte nếu là Chiều dài hiện

- Với VR là UT, Thành phần Dữ liệu có cấu trúc tƣơng tự nhƣ đối với VR là OB, SQ, UN. Tuy nhiên, Trƣờng Giá trị phải có Chiều dài hiện, tức là Trƣờng Chiều dài phải mang giá trị bằng với chiều dài (số byte) của Trƣờng Giá trị.

- Với VR là các giá trị cịn lại, khn dạng Thành phần Dữ liệu nhƣ sau Nhãn VR Chiều dài Giá trị Giá trị Số Nhóm (số ngun khơng dấu16 bit) Số Thành phần (số nguyên không dấu 16 bit) VR (chuỗi kí tự hai byte) Số ngun khơng dấu 16 bit Số chẵn byte chứa Giá trị Thành phần Dữ liệu được mã hoá theo VR và Cú pháp Chuyển đổi.

2 byte 2 byte 2byte 2 byte “Chiều dài

Giá trị” byte

d. Thành phần Dữ liệu với VR ẩn:

Khi sử dụng cấu trúc VR ẩn, Thành phần Dữ liệu sẽ đƣợc cấu trúc thành 3 trƣờng. Khn dạng của nó nhƣ sau:

Nhãn Chiều dài Giá trị Giá trị

Số Nhóm (số ngun khơng dấu16 bit) Số Thành phần (số nguyên không dấu 16 bit) Số nguyên không dấu 32 bit Số chẵn byte chứa Giá trị Thành phần Dữ liệu được mã hoá theo VR và Cú pháp Chuyển đổi. Được phân giới

nếu chiều dài không xác định

2 byte 2 byte 4 byte “Chiều dài Giá trị”

byte nếu là Chiều dài hiện

III.2.3. Thứ tự byte kiểu Little Endian và Big Edian

Thứ tự Byte (Byte odering) mã hoá là một đặc điểm quan trọng phải đƣợc sự đồng thuận trong giao tiếp giữa các Thực thể ứng dụng.

74

- Trong một số nhị phân bao gồm nhiều byte, Byte nằm cuối cùng (phía phải) đƣợc coi là có trọng số lớn nhất. Các Byte nằm cịn lại có trọng số tăng dần theo chiều từ phải sang phải.

Thứ tự byte kiểu Big Edian đƣợc định nghĩa theo cách ngƣợc lại:

- Trong một số nhị phân chứa nhiều Byte, trọng số các Byte giảm dần theo chiều từ trái sang phải. Tức là Byte có trọng số lớn nhất nằm đầu tiên bên trái trong dãy cácByte.

Tuy nhiên, đối với cả hai kiểu thì:

- Trong một byte (8 bit), trọng số từ cao tới thấp vẫn theo chiều bình thƣờng là từ trái sang phải.

- Trong một chuỗi kí tự bao gồm các mã Byte (8 bit), các kí tự vẫn đƣợc mã hoá theo thứ tự từ trái qua phải.

Số nhị phân 2 Byte: 00000000 11111111 Chuỗi 5 kí tự : “DICOM” Little Endian 11111111 00000000 01000100/ 01001001/ 01000011/ 01001111/ 01001100 Big Endian 00000000 11111111 01000100/ 01001001/ 01000011/ 01001111/ 01001100

Bảng III.2.3: Minh hoạ khái niệm thứ tự Byte Little và Big Endian

Thứ tự Byte phải đƣợc sự đồng thuận của hai bên trao đổi thông dựa trên Cú pháp Chuyển đổi. Cú pháp Chuyển đổi DICOM mặc định đƣợc mọi Thực thể Thông tin chấp nhận là Little Endian.

III.2.4. Các loại thành phần dữ liệu

Một Thuộc tính, đƣợc mã hố bằng một Thành phần Dữ liệu, có thể hay khơng bị yêu cầu trong Bộ Dữ liệu, phụ thuộc vào Loại Thành phần Dữ liệu của Thuộc tính đó.

Loại Thành phần Dữ liệu đƣợc dùng cho một Thuộc tính của một Định nghĩa Đối tƣợng Thơng tin (IOD) hoặc một Định nghĩa Lớp SOP đƣợc sử dụng để xác định Thuộc tính đó là bắt buộc hay tuỳ chọn. Nó cũng chỉ ra liệu Thuộc tính đó có điều kiện hay khơng (chỉ bắt buộc khi dƣới một điều kiện nào đó).

Có các loại Thành phần Dữ liệu sau:

- Thành phần Dữ liệu Yêu cầu Loại 1: Là Thành phần Dữ liệu bắt buộc.

Trƣờng Giá trị phải chứa giá trị hợp lệ đƣợc xác định bởi các thành phần VR hay VM. Chiều dài của Trƣờng Giá trị không bằng 0. Sự vắng mặt của Giá trị hợp lệ là vi phạm.

- Thành phần Dữ liệu Điều kiện Loại 1C: Xuất hiện trong dƣới các điều kiện cụ thể nào đó. Dƣới các điều kiện đó, nó có cùng các yêu cầu nhƣ Loại 1. Nếu các điều kiện xuất hiện mà khơng có Thành phần Dữ liệu này thì đó là khơng hợp lệ.

- Thành phần Dữ liệu Yêu cầu Loại 2: Là Thành phần Dữ liệu bắt buộc. Tuy nhiên, nếu Giá trị của Thành phần Dữ liệu này là chƣa biết, có thể mã hố với Chiều dài Gía trị bằng khơng và khơng có Giá trị. Sự vắng mặc của Thành phần Dữ liệu này trong Bộ Dữ liệu là không hợp lệ.

- Thành phần Dữ liệu Điều kiện Loại 2C: Có các yêu cầu giống với Loại 2 dƣới một số điều kiện cụ thể. Nếu có các điều kiện đó mà khơng có Thành phần Dữ liệu này thì đó là khơng hợp lệ.

- Thành phần Dữ liêu Tuỳ chọn Loại 3: Là thành phần tuỳ chọn. Sự vắng mặt của Thành phần Dữ liệu loại này khơng hề gây ra một dấu hiệu gì và khơng phải là vi phạm qui ƣớc. Nó có thể đƣợc mã hố với chiều dài bằng khơng và khơng có giá trị.

III.2.5. Cách sắp xếp các Bộ Dữ liệu

Khi các Thành phần Dữ liệu có VR= SQ, Giá trị đƣợc chứa trong nó là một Chuỗi (Sequence) các Mục (Item) (có thể là 0 hay nhiều mục), mà mỗi Mục lại chứa một bộ các Thành phần Dữ liệu. SQ đƣa ra phƣơng pháp mã hoá linh hoạt bằng cách “lặp lại“ các bộ Thành phần Dữ liệu. Nó cũng đƣợc sử dụng một cách đệ qui để chứa các cấu trúc đa lớp.

Các Mục trong một Thành phần Dữ liệu SQ đƣợc sắp xếp theo một bộ có trật tự, mỗi Mục đƣợc tham chiếu bởi số thứ tự của nó. Mục ở vị trí đầu Chuỗi có số thứ tự là 1, số thứ tự này của các Mục tiếp theo đƣợc tăng dần cho tới cuối Chuỗi.

a. Qui tắc mã hoá các Mục

Mỗi Mục trong một Thành phần Dữ liệu đƣợc đƣợc mã hoá là một Thành phần Dữ liệu với Nhãn có giá trị (FFFE,E000). Theo sau là 4 byte trƣờng Chiều dài Mục xác định việc mã hoá Trƣờng Giá trị Mục theo một trong hai cách:

76

Chiều dài hiện: Là một số chẵn byte chứa Giá trị Chuỗi Mục (khơng kể Trƣờng Chiều dài Mục), đƣợc mã hố là số nguyên khơng dấu 32-bit. Đây chính là tổng chiều dài của các Thành phần Dữ liệu đƣợc mang bởi Mục.

Chiều dài không xác định: Trƣờng Chiều dài Mục chứa giá trị FFFFFFFFH để chỉ rằng Mục có chiều dài khơng xác định. Nó đƣợc sử dụng kết hợp với với Thành phần Dữ liệu Giới hạn (Delimitation Data Element). Thành phần Dữ liệu Giới hạn có Nhãn là (FFFE, E00D) và đƣợc theo sau các Thành phần Dữ liệu trong mục. Khơng có giá trị nào trong Thành phần Dữ liệu Giới hạn và Chiều dài Gía trị bằng 00000000H.

Mỗi Giá trị Mục đƣợc cấu tạo bởi các Thành phần Dữ liệu. Trong một Mục, các Thành phần Dữ liệu này đƣợc thứ tự hoá bằng cách tăng dần giá trị Nhãn Thành phần Dữ liệu và chỉ xuất hiện một lần. Các Thành phần Dữ liệu trong một Mục có thể cũng có VR = SQ do có tính đệ qui.

b. Phân giới trong Chuỗi Mục

Trong một Thành phần Dữ liệu có VR= SQ, sự Phân giới (delimitation) các mục trong một Chuỗi các Mục theo một trong hai cách sau:

Chiều dài hiện: Số chẵn các byte đƣợc chứa trong Giá trị Thành phần Dữ liệu (không kể Trƣờng Chiều Dài Thành phần Dữ liệu), đƣợc mã hoá là một số nguyên khôn dấu 32-bit.

Chiều dài không xác định: Trƣờng Chiều dài Thành phần Dữ liệu chứa giá trị FFFFFFFFH. Khi đó, phải sử dụng Mục Giới hạn Chuỗi. Mục Giới hạn chuỗi đƣợc đứng sau Mục cuối cùng trong chuỗi các Mục. Nó có nhãn là (FFFE, E00D) với Chiều

Một phần của tài liệu DICOM (the digital image and communication in medicine) (Trang 67)

Tải bản đầy đủ (PDF)

(102 trang)