001/*
002 * Version: MPL 1.1/GPL 2.0/LGPL 2.1
003 *
004 *  The contents of this file are subject to the Mozilla Public License Version
005 *  1.1 (the "License"); you may not use this file except in compliance with
006 *  the License. You may obtain a copy of the License at
007 *  http://www.mozilla.org/MPL/
008 *
009 *  Software distributed under the License is distributed on an "AS IS" basis,
010 *  WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
011 *  for the specific language governing rights and limitations under the
012 *  License.
013 *
014 *  The Original Code is part of dcm4che, an implementation of DICOM(TM) in
015 *  Java(TM), hosted at https://github.com/gunterze/dcm4che.
016 *
017 *  The Initial Developer of the Original Code is
018 *  J4Care.
019 *  Portions created by the Initial Developer are Copyright (C) 2015-2017
020 *  the Initial Developer. All Rights Reserved.
021 *
022 *  Contributor(s):
023 *  See @authors listed below
024 *
025 *  Alternatively, the contents of this file may be used under the terms of
026 *  either the GNU General Public License Version 2 or later (the "GPL"), or
027 *  the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
028 *  in which case the provisions of the GPL or the LGPL are applicable instead
029 *  of those above. If you wish to allow use of your version of this file only
030 *  under the terms of either the GPL or the LGPL, and not to allow others to
031 *  use your version of this file under the terms of the MPL, indicate your
032 *  decision by deleting the provisions above and replace them with the notice
033 *  and other provisions required by the GPL or the LGPL. If you do not delete
034 *  the provisions above, a recipient may use your version of this file under
035 *  the terms of any one of the MPL, the GPL or the LGPL.
036 *
037 */
038
039package org.dcm4che3.dcmr;
040
041import org.dcm4che3.data.Code;
042
043import java.util.HashMap;
044import java.util.Map;
045
046/**
047 * @author Gunter Zeilinger <gunterze@gmail.com>
048 * @since Mar 2017
049 */
050public class AnatomicRegion {
051    public static final Code Abdomen = new Code("T-D4000", "SRT", null, "Abdomen");
052    public static final Code AbdomenPelvis = new Code("R-FAB57", "SRT", null, "Abdomen and Pelvis");
053    public static final Code AdrenalGland = new Code("T-B3000", "SRT", null, "Adrenal gland");
054    public static final Code AnkleJoint = new Code("T-15750", "SRT", null, "Ankle joint");
055    public static final Code Aorta = new Code("T-42000", "SRT", null, "Aorta");
056    public static final Code Axilla = new Code("T-D8104", "SRT", null, "Axilla");
057    public static final Code Back = new Code("T-D2100", "SRT", null, "Back");
058    public static final Code Bladder = new Code("T-74000", "SRT", null, "Bladder");
059    public static final Code Brain = new Code("T-A0100", "SRT", null, "Brain");
060    public static final Code Breast = new Code("T-04000", "SRT", null, "Breast");
061    public static final Code Bronchus = new Code("T-26000", "SRT", null, "Bronchus");
062    public static final Code Buttock = new Code("T-D2600", "SRT", null, "Buttock");
063    public static final Code Calcaneus = new Code("T-12770", "SRT", null, "Calcaneus");
064    public static final Code CalfOfLeg = new Code("T-D9440", "SRT", null, "Calf of leg");
065    public static final Code CarotidArtery = new Code("T-45010", "SRT", null, "Carotid Artery");
066    public static final Code Cerebellum = new Code("T-A6000", "SRT", null, "Cerebellum");
067    public static final Code CervicalSpine = new Code("T-11501", "SRT", null, "Cervical spine");
068    public static final Code CervicoThoracicSpine = new Code("T-D00F7", "SRT", null, "Cervico-thoracic spine");
069    public static final Code Cervix = new Code("T-83200", "SRT", null, "Cervix");
070    public static final Code Cheek = new Code("T-D1206", "SRT", null, "Cheek");
071    public static final Code Chest = new Code("T-D3000", "SRT", null, "Chest");
072    public static final Code ChestAbdomen = new Code("R-FAB55", "SRT", null, "Chest and Abdomen");
073    public static final Code ChestAbdomenPelvis = new Code("R-FAB56", "SRT", null, "Chest, Abdomen and Pelvis");
074    public static final Code CircleOfWillis = new Code("T-45526", "SRT", null, "Circle of Willis");
075    public static final Code Clavicle = new Code("T-12310", "SRT", null, "Clavicle");
076    public static final Code Coccyx = new Code("T-11BF0", "SRT", null, "Coccyx");
077    public static final Code Colon = new Code("T-59300", "SRT", null, "Colon");
078    public static final Code Cornea = new Code("T-AA200", "SRT", null, "Cornea");
079    public static final Code CoronaryArtery = new Code("T-43000", "SRT", null, "Coronary artery");
080    public static final Code Duodenum = new Code("T-58200", "SRT", null, "Duodenum");
081    public static final Code Ear = new Code("T-AB000", "SRT", null, "Ear");
082    public static final Code ElbowJoint = new Code("T-15430", "SRT", null, "Elbow joint");
083    public static final Code EntireBody = new Code("T-D0010", "SRT", null, "Entire body");
084    public static final Code Esophagus = new Code("T-56000", "SRT", null, "Esophagus");
085    public static final Code Extremity = new Code("T-D0300", "SRT", null, "Extremity");
086    public static final Code Eye = new Code("T-AA000", "SRT", null, "Eye");
087    public static final Code Eyelid = new Code("T-AA810", "SRT", null, "Eyelid");
088    public static final Code Face = new Code("T-D1200", "SRT", null, "Face");
089    public static final Code Femur = new Code("T-12710", "SRT", null, "Femur");
090    public static final Code Finger = new Code("T-D8800", "SRT", null, "Finger");
091    public static final Code Foot = new Code("T-D9700", "SRT", null, "Foot");
092    public static final Code Gallbladder = new Code("T-63000", "SRT", null, "Gallbladder");
093    public static final Code Hand = new Code("T-D8700", "SRT", null, "Hand");
094    public static final Code Head = new Code("T-D1100", "SRT", null, "Head");
095    public static final Code HeadNeck = new Code("T-D1000", "SRT", null, "Head and Neck");
096    public static final Code Heart = new Code("T-32000", "SRT", null, "Heart");
097    public static final Code HipJoint = new Code("T-15710", "SRT", null, "Hip joint");
098    public static final Code Humerus = new Code("T-12410", "SRT", null, "Humerus");
099    public static final Code Ileum = new Code("T-58600", "SRT", null, "Ileum");
100    public static final Code Ilium = new Code("T-12340", "SRT", null, "Ilium");
101    public static final Code InternalAuditoryCanal = new Code("T-AB959", "SRT", null, "Internal Auditory Canal");
102    public static final Code JawRegion = new Code("T-D1213", "SRT", null, "Jaw region");
103    public static final Code Jejunum = new Code("T-58400", "SRT", null, "Jejunum");
104    public static final Code Kidney = new Code("T-71000", "SRT", null, "Kidney");
105    public static final Code Knee = new Code("T-D9200", "SRT", null, "Knee");
106    public static final Code Larynx = new Code("T-24100", "SRT", null, "Larynx");
107    public static final Code Liver = new Code("T-62000", "SRT", null, "Liver");
108    public static final Code LowerLeg = new Code("T-D9400", "SRT", null, "Lower leg");
109    public static final Code LumbarSpine = new Code("T-11503", "SRT", null, "Lumbar spine");
110    public static final Code LumboSacralSpine = new Code("T-D00F9", "SRT", null, "Lumbo-sacral spine");
111    public static final Code Lung = new Code("T-28000", "SRT", null, "Lung");
112    public static final Code Mandible = new Code("T-11180", "SRT", null, "Mandible");
113    public static final Code Maxilla = new Code("T-11170", "SRT", null, "Maxilla");
114    public static final Code Mediastinum = new Code("T-D3300", "SRT", null, "Mediastinum");
115    public static final Code Mouth = new Code("T-51000", "SRT", null, "Mouth");
116    public static final Code Neck = new Code("T-D1600", "SRT", null, "Neck");
117    public static final Code NeckChest = new Code("R-FAB52", "SRT", null, "Neck and Chest");
118    public static final Code NeckChestAbdomen = new Code("R-FAB53", "SRT", null, "Neck, Chest and Abdomen");
119    public static final Code NeckChestAbdomenPelvis = new Code("R-FAB54", "SRT", null, "Neck, Chest, Abdomen and Pelvis");
120    public static final Code Nose = new Code("T-21000", "SRT", null, "Nose");
121    public static final Code OrbitalStructure = new Code("T-D14AE", "SRT", null, "Orbital structure");
122    public static final Code Ovary = new Code("T-87000", "SRT", null, "Ovary");
123    public static final Code Pancreas = new Code("T-65000", "SRT", null, "Pancreas");
124    public static final Code ParotidGland = new Code("T-61100", "SRT", null, "Parotid gland");
125    public static final Code Patella = new Code("T-12730", "SRT", null, "Patella");
126    public static final Code Pelvis = new Code("T-D6000", "SRT", null, "Pelvis");
127    public static final Code Penis = new Code("T-91000", "SRT", null, "Penis");
128    public static final Code Pharynx = new Code("T-55000", "SRT", null, "Pharynx");
129    public static final Code Prostate = new Code("T-9200B", "SRT", null, "Prostate");
130    public static final Code Radius = new Code("T-12420", "SRT", null, "Radius");
131    public static final Code RadiusUlna = new Code("T-12403", "SRT", null, "Radius and ulna");
132    public static final Code Rectum = new Code("T-59600", "SRT", null, "Rectum");
133    public static final Code Rib = new Code("T-11300", "SRT", null, "Rib");
134    public static final Code Sacrum = new Code("T-11AD0", "SRT", null, "Sacrum");
135    public static final Code Scalp = new Code("T-D1160", "SRT", null, "Scalp");
136    public static final Code Scapula = new Code("T-12280", "SRT", null, "Scapula");
137    public static final Code Sclera = new Code("T-AA110", "SRT", null, "Sclera");
138    public static final Code Scrotum = new Code("T-98000", "SRT", null, "Scrotum");
139    public static final Code Shoulder = new Code("T-D2220", "SRT", null, "Shoulder");
140    public static final Code Skull = new Code("T-11100", "SRT", null, "Skull");
141    public static final Code Spine = new Code("T-D04FF", "SRT", null, "Spine");
142    public static final Code Spleen = new Code("T-C3000", "SRT", null, "Spleen");
143    public static final Code Sternum = new Code("T-11210", "SRT", null, "Sternum");
144    public static final Code Stomach = new Code("T-57000", "SRT", null, "Stomach");
145    public static final Code SubmandibularGland = new Code("T-61300", "SRT", null, "Submandibular gland");
146    public static final Code TemporomandibularJoint = new Code("T-15290", "SRT", null, "Temporomandibular joint");
147    public static final Code Testis = new Code("T-94000", "SRT", null, "Testis");
148    public static final Code Thigh = new Code("T-D9100", "SRT", null, "Thigh");
149    public static final Code ThoracicSpine = new Code("T-11502", "SRT", null, "Thoracic spine");
150    public static final Code ThoracoLumbarSpine = new Code("T-D00F8", "SRT", null, "Thoraco-lumbar spine");
151    public static final Code Thumb = new Code("T-D8810", "SRT", null, "Thumb");
152    public static final Code Thymus = new Code("T-C8000", "SRT", null, "Thymus");
153    public static final Code Thyroid = new Code("T-B6000", "SRT", null, "Thyroid");
154    public static final Code Tibia = new Code("T-12740", "SRT", null, "Tibia");
155    public static final Code TibiaFibula = new Code("T-12701", "SRT", null, "Tibia and fibula");
156    public static final Code Toe = new Code("T-D9800", "SRT", null, "Toe");
157    public static final Code Tongue = new Code("T-53000", "SRT", null, "Tongue");
158    public static final Code Trachea = new Code("T-25000", "SRT", null, "Trachea");
159    public static final Code Ulna = new Code("T-12430", "SRT", null, "Ulna");
160    public static final Code UpperArm = new Code("T-D8200", "SRT", null, "Upper arm");
161    public static final Code Ureter = new Code("T-73000", "SRT", null, "Ureter");
162    public static final Code Urethra = new Code("T-75000", "SRT", null, "Urethra");
163    public static final Code Uterus = new Code("T-83000", "SRT", null, "Uterus");
164    public static final Code Vagina = new Code("T-82000", "SRT", null, "Vagina");
165    public static final Code Vulva = new Code("T-81000", "SRT", null, "Vulva");
166    public static final Code WristJoint = new Code("T-15460", "SRT", null, "Wrist joint");
167    public static final Code Zygoma = new Code("T-11166", "SRT", null, "Zygoma");
168
169    private static final Map<String, Code> BODY_PART_EXAMINED = new HashMap<String, Code>();
170    static {
171        BODY_PART_EXAMINED.put("ABDOMEN", Abdomen);
172        BODY_PART_EXAMINED.put("ABDOMENPELVIS", AbdomenPelvis);
173        BODY_PART_EXAMINED.put("ADRENAL", AdrenalGland);
174        BODY_PART_EXAMINED.put("ANKLE", AnkleJoint);
175        BODY_PART_EXAMINED.put("AORTA", Aorta);
176        BODY_PART_EXAMINED.put("AXILLA", Axilla);
177        BODY_PART_EXAMINED.put("BACK", Back);
178        BODY_PART_EXAMINED.put("BLADDER", Bladder);
179        BODY_PART_EXAMINED.put("BRAIN", Brain);
180        BODY_PART_EXAMINED.put("BREAST", Breast);
181        BODY_PART_EXAMINED.put("BRONCHUS", Bronchus);
182        BODY_PART_EXAMINED.put("BUTTOCK", Buttock);
183        BODY_PART_EXAMINED.put("CALCANEUS", Calcaneus);
184        BODY_PART_EXAMINED.put("CALF", CalfOfLeg);
185        BODY_PART_EXAMINED.put("CAROTID", CarotidArtery);
186        BODY_PART_EXAMINED.put("CEREBELLUM", Cerebellum);
187        BODY_PART_EXAMINED.put("CSPINE", CervicalSpine);
188        BODY_PART_EXAMINED.put("CTSPINE", CervicoThoracicSpine);
189        BODY_PART_EXAMINED.put("CERVIX", Cervix);
190        BODY_PART_EXAMINED.put("CHEEK", Cheek);
191        BODY_PART_EXAMINED.put("CHEST", Chest);
192        BODY_PART_EXAMINED.put("CHESTABDOMEN", ChestAbdomen);
193        BODY_PART_EXAMINED.put("CHESTABDPELVIS", ChestAbdomenPelvis);
194        BODY_PART_EXAMINED.put("CIRCLEOFWILLIS", CircleOfWillis);
195        BODY_PART_EXAMINED.put("CLAVICLE", Clavicle);
196        BODY_PART_EXAMINED.put("COCCYX", Coccyx);
197        BODY_PART_EXAMINED.put("COLON", Colon);
198        BODY_PART_EXAMINED.put("CORNEA", Cornea);
199        BODY_PART_EXAMINED.put("CORONARYARTERY", CoronaryArtery);
200        BODY_PART_EXAMINED.put("DUODENUM", Duodenum);
201        BODY_PART_EXAMINED.put("EAR", Ear);
202        BODY_PART_EXAMINED.put("ELBOW", ElbowJoint);
203        BODY_PART_EXAMINED.put("WHOLEBODY", EntireBody);
204        BODY_PART_EXAMINED.put("ESOPHAGUS", Esophagus);
205        BODY_PART_EXAMINED.put("EXTREMITY", Extremity);
206        BODY_PART_EXAMINED.put("EYE", Eye);
207        BODY_PART_EXAMINED.put("EYELID", Eyelid);
208        BODY_PART_EXAMINED.put("FACE", Face);
209        BODY_PART_EXAMINED.put("FEMUR", Femur);
210        BODY_PART_EXAMINED.put("FINGER", Finger);
211        BODY_PART_EXAMINED.put("FOOT", Foot);
212        BODY_PART_EXAMINED.put("GALLBLADDER", Gallbladder);
213        BODY_PART_EXAMINED.put("HAND", Hand);
214        BODY_PART_EXAMINED.put("HEAD", Head);
215        BODY_PART_EXAMINED.put("HEADNECK", HeadNeck);
216        BODY_PART_EXAMINED.put("HEART", Heart);
217        BODY_PART_EXAMINED.put("HIP", HipJoint);
218        BODY_PART_EXAMINED.put("HUMERUS", Humerus);
219        BODY_PART_EXAMINED.put("ILEUM", Ileum);
220        BODY_PART_EXAMINED.put("ILIUM", Ilium);
221        BODY_PART_EXAMINED.put("IAC", InternalAuditoryCanal);
222        BODY_PART_EXAMINED.put("JAW", JawRegion);
223        BODY_PART_EXAMINED.put("JEJUNUM", Jejunum);
224        BODY_PART_EXAMINED.put("KIDNEY", Kidney);
225        BODY_PART_EXAMINED.put("KNEE", Knee);
226        BODY_PART_EXAMINED.put("LARYNX", Larynx);
227        BODY_PART_EXAMINED.put("LIVER", Liver);
228        BODY_PART_EXAMINED.put("LEG", LowerLeg);
229        BODY_PART_EXAMINED.put("LSPINE", LumbarSpine);
230        BODY_PART_EXAMINED.put("LSSPINE", LumboSacralSpine);
231        BODY_PART_EXAMINED.put("LUNG", Lung);
232        BODY_PART_EXAMINED.put("JAW", Mandible);
233        BODY_PART_EXAMINED.put("MAXILLA", Maxilla);
234        BODY_PART_EXAMINED.put("MEDIASTINUM", Mediastinum);
235        BODY_PART_EXAMINED.put("MOUTH", Mouth);
236        BODY_PART_EXAMINED.put("NECK", Neck);
237        BODY_PART_EXAMINED.put("NECKCHEST", NeckChest);
238        BODY_PART_EXAMINED.put("NECKCHESTABDOMEN", NeckChestAbdomen);
239        BODY_PART_EXAMINED.put("NECKCHESTABDPELV", NeckChestAbdomenPelvis);
240        BODY_PART_EXAMINED.put("NOSE", Nose);
241        BODY_PART_EXAMINED.put("ORBIT", OrbitalStructure);
242        BODY_PART_EXAMINED.put("OVARY", Ovary);
243        BODY_PART_EXAMINED.put("PANCREAS", Pancreas);
244        BODY_PART_EXAMINED.put("PAROTID", ParotidGland);
245        BODY_PART_EXAMINED.put("PATELLA", Patella);
246        BODY_PART_EXAMINED.put("PELVIS", Pelvis);
247        BODY_PART_EXAMINED.put("PENIS", Penis);
248        BODY_PART_EXAMINED.put("PHARYNX", Pharynx);
249        BODY_PART_EXAMINED.put("PROSTATE", Prostate);
250        BODY_PART_EXAMINED.put("RADIUS", Radius);
251        BODY_PART_EXAMINED.put("RADIUSULNA", RadiusUlna);
252        BODY_PART_EXAMINED.put("RECTUM", Rectum);
253        BODY_PART_EXAMINED.put("RIB", Rib);
254        BODY_PART_EXAMINED.put("SSPINE", Sacrum);
255        BODY_PART_EXAMINED.put("SCALP", Scalp);
256        BODY_PART_EXAMINED.put("SCAPULA", Scapula);
257        BODY_PART_EXAMINED.put("SCLERA", Sclera);
258        BODY_PART_EXAMINED.put("SCROTUM", Scrotum);
259        BODY_PART_EXAMINED.put("SHOULDER", Shoulder);
260        BODY_PART_EXAMINED.put("SKULL", Skull);
261        BODY_PART_EXAMINED.put("SPINE", Spine);
262        BODY_PART_EXAMINED.put("SPLEEN", Spleen);
263        BODY_PART_EXAMINED.put("STERNUM", Sternum);
264        BODY_PART_EXAMINED.put("STOMACH", Stomach);
265        BODY_PART_EXAMINED.put("SUBMANDIBULAR", SubmandibularGland);
266        BODY_PART_EXAMINED.put("TMJ", TemporomandibularJoint);
267        BODY_PART_EXAMINED.put("TESTIS", Testis);
268        BODY_PART_EXAMINED.put("THIGH", Thigh);
269        BODY_PART_EXAMINED.put("TSPINE", ThoracicSpine);
270        BODY_PART_EXAMINED.put("TLSPINE", ThoracoLumbarSpine);
271        BODY_PART_EXAMINED.put("THUMB", Thumb);
272        BODY_PART_EXAMINED.put("THYMUS", Thymus);
273        BODY_PART_EXAMINED.put("THYROID", Thyroid);
274        BODY_PART_EXAMINED.put("TIBIA", Tibia);
275        BODY_PART_EXAMINED.put("TIBIAFIBULA", TibiaFibula);
276        BODY_PART_EXAMINED.put("TOE", Toe);
277        BODY_PART_EXAMINED.put("TONGUE", Tongue);
278        BODY_PART_EXAMINED.put("TRACHEA", Trachea);
279        BODY_PART_EXAMINED.put("ULNA", Ulna);
280        BODY_PART_EXAMINED.put("ARM", UpperArm);
281        BODY_PART_EXAMINED.put("URETER", Ureter);
282        BODY_PART_EXAMINED.put("URETHRA", Urethra);
283        BODY_PART_EXAMINED.put("UTERUS", Uterus);
284        BODY_PART_EXAMINED.put("VAGINA", Vagina);
285        BODY_PART_EXAMINED.put("VULVA", Vulva);
286        BODY_PART_EXAMINED.put("WRIST", WristJoint);
287        BODY_PART_EXAMINED.put("ZYGOMA", Zygoma);
288    }
289
290    public static Code codeOf(String bodyPartExamined) {
291        return BODY_PART_EXAMINED.get(bodyPartExamined);
292    }
293
294    public static Code addCode(Code code, String bodyPartExamined) {
295        return BODY_PART_EXAMINED.put(bodyPartExamined, code);
296    }
297
298    public static Code removeCode(String bodyPartExamined) {
299        return BODY_PART_EXAMINED.remove(bodyPartExamined);
300    }
301}