diff --git a/src/main/webapp/assets/locale/es.json b/src/main/webapp/assets/locale/es.json new file mode 100644 index 00000000..ecf018f9 --- /dev/null +++ b/src/main/webapp/assets/locale/es.json @@ -0,0 +1,2484 @@ +{ + "locale": "es", + "translations": { + "AET": "AET", + "APPLY": "APPLY", + "ARRIVED": "ARRIVED", + "Add": "Add", + "All": "All", + "CANCEL": "CANCEL", + "CANCEL_UPS": "Cancel UPS", + "CANCELED": "CANCELED", + "CANCELLED": "CANCELLED", + "CLOSE": "CLOSE", + "COERCE": "COERCE", + "COMPLETED": "COMPLETED", + "CORRECT": "CORRECT", + "COUNT": "COUNT", + "CREATE": "CREATE", + "CREATED": "CREATED", + "Clear": "Clear", + "DB_RECORD_EXISTS": "DB_RECORD_EXISTS", + "DELETE": "DELETE", + "DEPARTED": "DEPARTED", + "DISCONTINUED": "DISCONTINUED", + "Day": "Day", + "ECHO": "ECHO", + "EDIT_CLONE": "EDIT CLONE", + "EXPORT": "EXPORT", + "EXPORT_SCHEDULED": "EXPORT_SCHEDULED", + "FAILED": "FAILED", + "FAILED_TO_EXPORT": "FAILED_TO_EXPORT", + "FAILED_TO_REJECT": "FAILED_TO_REJECT", + "FROZEN": "FROZEN", + "False": "False", + "HIGH": "HIGH", + "Hour": "Hour", + "INCOMPLETE": "INCOMPLETE", + "IN_PROGRESS": "IN PROGRESS", + "Issuer_of_Accession_number_sequence_00080051": "Issuer of Accession Number Sequence (0008,0051)", + "LOW": "LOW", + "MEDIUM": "MEDIUM", + "MERGE": "MERGE", + "Month": "Month", + "NONE": "NONE", + "NOT_FOUND": "NOT_FOUND", + "OBJECT_CHECKSUM": "OBJECT_CHECKSUM", + "OBJECT_EXISTS": "OBJECT_EXISTS", + "OBJECT_FETCH": "OBJECT_FETCH", + "OBJECT_SIZE": "OBJECT_SIZE", + "OK": "OK", + "OVERWRITE": "OVERWRITE", + "PDQ_ServiceID": "PDQ ServiceID", + "PENDING": "PENDING", + "QUERY": "QUERY", + "READ": "READ", + "READY": "READY", + "REJECT": "REJECT", + "REJECTED": "REJECTED", + "RESET": "RESET", + "RETRIEVE": "RETRIEVE", + "S3_MD5SUM": "S3_MD5SUM", + "SAVE": "SAVE", + "SAVE_CHANGES": "SAVE CHANGES", + "SCHEDULED": "SCHEDULED", + "SEARCH": "SEARCH", + "SEND": "SEND", + "SEND_ALL_STUDIES": "SEND ALL STUDIES", + "SEND_STUDY_TO_SECONDARY_AE": "SEND STUDY TO SECONDARY AE", + "SET": "SET", + "SIZE": "SIZE", + "STARTED": "STARTED", + "START_UPLOADING": "START UPLOADING", + "SUBMIT": "SUBMIT", + "SUPPLEMENT": "SUPPLEMENT", + "SYNCHRONIZE": "SYNCHRONIZE", + "SYNCHRONIZE_THIS_ENTRIES": "SYNCHRONIZE THIS ENTRIES", + "Scheduled workitem_code_sequence_00404018": "Scheduled Workitem Code Sequence (0040,4018)", + "Second": "Second:", + "Select": "Select", + "Set": "Set", + "SourceURL": "Source URL", + "SsourceRetrieveAET": "Source Retrieve AET", + "TRIGGER": "TRIGGER", + "True": "True", + "UNAVAILABLE": "UNAVAILABLE", + "UNVERIFIED": "UNVERIFIED", + "UPDATABLE": "UPDATABLE", + "UPDATE": "UPDATE", + "UPLOAD": "UPLOAD", + "URI": "URI", + "Unchecked": "Unchecked", + "VERIFICATION_FAILED": "VERIFICATION_FAILED", + "VERIFIED": "VERIFIED", + "WARNING": "WARNING", + "Week": "Week", + "YES": "YES", + "Year": "Year", + "Yes": "Yes", + "_and_": " and ", + "abort": " Abort ", + "about": "About", + "acc._nr.": "Acc. Nr.", + "accepted_user_roles_in_the_aets_are_missing": "Accepted User Roles in the AETs are missing, add at least one role per AET (ArchiveDevice -> AET -> Archive Network AE -> Accepted User Role)", + "access_control_id": "Access Control ID", + "access_control_id_updated_matching": "Access Control ID updated successfully to matching studies", + "access_control_id_updated_selected": "Access Control ID updated successfully to selected studies!", + "access_control_id_updated_the_study": "Access Control ID updated successfully to the study!", + "accession_number": "Accession number", + "accession_number_00080050": "Accession Number (0008,0050)", + "action_selected_entries_question": "Are you sure you want to {$PH} selected entries?", + "action_task_question": "Are you sure you want to {$PH} this task?", + "actions": "Actions", + "actions_for_selections": "Actions for selections", + "active_participant": "Active Participant", + "active_participant_user_id": "Active Participant User ID", + "add": "add", + "add_duration": "Add duration", + "add_max_range": "Add Max. Range", + "add_period": "Add period", + "admission_id": "Admission ID", + "ae-list.application_entries_list": "Application Entities list", + "ae-list.association_acceptor": "Association Acceptor", + "ae-list.association_initiator": "Association Initiator", + "ae-list.error_getting_device_": "Error getting device {$@@device}", + "ae-list.new_aet": "New AET", + "ae-list.other_ae_title": "Other AETitle", + "ae-list.query_ae_list": "Query AE List", + "ae-list.set_as_accepted_aet": "{$@@newAet} was set successfully as 'Accepted Calling AE Title' to following AETs: {$@@aets}", + "ae_list": "AE list", + "ae_removed_from_device_successfully": "Ae removed from device successfully!", + "ae_title": "AE Title", + "ae_title_of_the_secondary_c_find_scp": "AE Title of the secondary C-FIND SCP", + "aet_added_to_device_successfully": "Aet added to device successfully!", + "aet_not_found": "Aet not found!", + "aet_of_a_requester": "AET of a Requester", + "aet_primary_c_find_scp": "AE Title of the primary C-FIND SCP", + "aet_required": "Aet is required!", + "aetitle": "AETitle", + "after": "After", + "all": "all", + "all_archives": "All - Archives", + "all_available_attributes": "all available attributes", + "animated_gif": "Animated gif", + "app.info": "Info ", + "app.info_message": "Info message!", + "append_extension_to_device": "Append {$PH} extension to device", + "application_cluster": "Application Cluster", + "application_entity_ae_title": "Application Entity (AE) title", + "application_errors": "Application Errors", + "application_warnings": "Application Warnings", + "archive_ae_title": "Archive AE Title", + "archive_ae_title_to_filter_by": "Archive AE Title to filter by", + "archive_device": "Archive Device", + "archive_device_name_not_found": "Archive device name not found, reload the page and try again!", + "archive_reloaded_successfully": "Archive reloaded successfully!", + "archives": "Archives", + "are_permission_configured": "Are you sure you configured the permissions?", + "are_you_sure_you_want_to_action_all_entries": "Are you sure you want to {$@@action} all entries?", + "are_you_sure_you_want_to_change_the_patient_id": "Are you sure you want to change the patient id?", + "are_you_sure_you_want_to_delete_from_device_aet": "Are you sure you want to delete from ${device} the AE: ${ae}?", + "are_you_sure_you_want_to_delete_vendor": "Are you sure you want to delete the vendor data of this device?", + "are_you_sure_you_want_to_reject_the_not_selected_study_and_export_to_selected_on": "Are you sure you want to reject the not selected study and export the selected one in to the not selected AET?", + "are_you_sure_you_want_to_remove_extension": "Are you sure you want to remove this extension and all of its child objects?", + "are_you_sure_you_want_to_replace_vendor": "Are you sure you want to replace the vendor data of this device?", + "are_you_sure_you_want_to_send_all_studies": "Are you sure you want to send all studies to {$@@secondaryAet}?", + "are_you_sure_you_want_to_send_this_study_to_aet": "Are you sure you want to send this study to {$PH}?", + "are_youe_sure_you_wat_to_remove_part": "Are you sure you want to remove this part from device?", + "asc_expected_completion_date_and_time": "Oldest Expected Completion DateTime first", + "asc_expected_completion_date_and_time_tooltip": "Expected Completion Date and Time - old to new", + "asc_scheduled_procedure_step_priority": "Lowest SPS Priority first", + "asc_scheduled_procedure_step_priority_tooltip": "Scheduled Procedure Step Priority - Low to High", + "asc_scheduled_procedure_step_start_date_and_time": "Oldest SPS Start Date and Time first", + "asc_scheduled_procedure_step_start_date_and_time_tooltip": "Scheduled Procedure Step Start Date and Time - old to new", + "associations.no_associations": "No open associations found!", + "associations.open_associations": "Open Associations", + "associations.press_start_refresh": "Press Start or Refresh to get associations", + "attribute_already_exists": "Attribute already exists!", + "attribute_set": "Attribute Set", + "attributes": "Attributes", + "audit-record-repository.access_pointid": "Access PointID", + "audit-record-repository.audit_enterprise_site_id": "Audit Enterprise Site ID", + "audit-record-repository.authentication_audit_records": "Authentication Audit Records", + "audit-record-repository.event_id": "Event ID", + "audit-record-repository.event_type_code": "Event Type Code", + "audit-record-repository.limit_of_10_000_entries_reached": "Limit of 10 000 entries reached!", + "audit-record-repository.network_access_pointid": "Network Access PointID", + "audit-record-repository.no_entries_found": "No entries found!", + "audit-record-repository.patient_id_filter_is_not_set": "Patient ID filter is not set!", + "audit-record-repository.patient_id_param": "Patient ID: {$@@patient_id}", + "audit-record-repository.patient_name_param": "Patient Name: {$PH}", + "audit-record-repository.patient_record": "Patient Record", + "audit-record-repository.patient_records": "Patient Records", + "audit-record-repository.set_at_least_one_filter": "Set at least one filter!", + "audit-record-repository.site_id": "Site ID", + "audit-record-repository.study_uid\nevent_id": "Study UID\nEvent ID", + "audit-record-repository.user_id": "User ID", + "audit_errors": "Audit Errors", + "audit_record_repository": "Audit Record Repository", + "audit_source_ID": "Audit Source ID", + "audit_source_id": "AuditSourceID", + "auth.permission_denied": "Permission denied", + "authentication_events": "Authentication Events", + "average_read_": "Average read B/s", + "average_written_": "Average written B/s", + "avg_unit": "Avg{$PH}", + "back:": "back", + "batch_id": "Batch ID", + "batch_id_grouped": "Batch ID grouped", + "batch_id_not_found": "Batch ID not found!", + "batch_name": "Batch Name", + "before": "Before", + "between": "Between", + "bin_min": "Bin (min)", + "bin_value_not_valid": "Bin value is not valid!", + "birth_date": "Birth Date", + "body_part": "Body Part", + "body_part_examined": "Body part examined", + "body_parts.abdomen": "Abdomen", + "body_parts.abdomen_pelvis": "Abdomen and Pelvis", + "body_parts.abdominal_aorta": "Abdomen aorta", + "body_parts.acjoint": "Acromioclavicular joint", + "body_parts.adrenal": "Adrenal gland", + "body_parts.amniotic_fluid": "Amniotic fluid", + "body_parts.ankle": "Ankle joint", + "body_parts.antecubital_vein": "Antecubital vein", + "body_parts.anterior_cardiac_vein": "Anterior cardiac vein", + "body_parts.anterior_cerebral_artery": "Anterior cerebral artery", + "body_parts.anterior_communicating_artery": "Anterior communicating artery", + "body_parts.anterior_spinal_artery": "Anterior spinal artery", + "body_parts.anterior_tibial_artery": "Anterior tibial artery", + "body_parts.anusrectumsigmd": "Anus, rectum and sigmoid colon", + "body_parts.aorta": "Aorta", + "body_parts.aortic_arch": "Aortic arch", + "body_parts.appendix": "Appendix", + "body_parts.artery": "Artery", + "body_parts.ascending_aorta": "Ascending aorta", + "body_parts.ascending_colon": "Ascending colon", + "body_parts.axilla": "Axilla", + "body_parts.axillary_artery": "Axillary Artery", + "body_parts.axillary_vein": "Axillary vein", + "body_parts.azygos_vein": "Azygos vein", + "body_parts.back": "Back", + "body_parts.Basilar artery": "Basilar artery", + "body_parts.Bile Duct": "Bile Duct", + "body_parts.Biliary tract": "Biliary tract", + "body_parts.bladder": "Bladder", + "body_parts.bladder_urethra": "Bladder and urethra", + "body_parts.brachial_artery": "Brachial artery", + "body_parts.brachial_vein": "Brachial vein", + "body_parts.brain": "Brain", + "body_parts.breast": "Breast", + "body_parts.bronchus": "Bronchus", + "body_parts.buttock": "Buttock", + "body_parts.calcaneus": "Calcaneus", + "body_parts.calf_leg": "Calf of leg", + "body_parts.carotid_artery": "Carotid Artery", + "body_parts.carotid_bulb": "Carotid Bulb", + "body_parts.celiac_artery": "Celiac artery", + "body_parts.cephalic_vein": "Cephalic vein", + "body_parts.cerebellum": "Cerebellum", + "body_parts.cerebral_artery": "Cerebral artery", + "body_parts.cerebral_hemisphere": "Cerebral hemisphere", + "body_parts.cervical_spine": "Cervical spine", + "body_parts.cervico-thoracic_spine": "Cervico-thoracic spine", + "body_parts.cervix": "Cervix", + "body_parts.cheek": "Cheek", + "body_parts.chest": "Chest", + "body_parts.chest_abdomen": "Chest and Abdomen", + "body_parts.chest_abdomen_pelvis": "Chest, Abdomen and Pelvis", + "body_parts.choroid_plexus": "Choroid plexus", + "body_parts.circle_of_Willis": "Circle of Willis", + "body_parts.clavicle": "Clavicle", + "body_parts.coccyx": "Coccyx", + "body_parts.colon": "Colon", + "body_parts.common_bile duct": "Common bile duct", + "body_parts.common_carotid_artery": "Common carotid artery", + "body_parts.common_femoral_artery": "Common femoral artery", + "body_parts.common_femoral_vein": "Common femoral vein", + "body_parts.common_iliac_artery": "Common iliac artery", + "body_parts.common_iliac_vein": "Common iliac vein", + "body_parts.cornea": "Cornea", + "body_parts.coronary_artery": "Coronary artery", + "body_parts.coronary_sinus": "Coronary sinus", + "body_parts.descending_aorta": "Descending aorta", + "body_parts.descending_colon": "Descending colon", + "body_parts.duodenum": "Duodenum", + "body_parts.ear": "Ear", + "body_parts.elbow": "Elbow joint", + "body_parts.endo-arterial": "Endo-arterial", + "body_parts.endo-cardiac": "Endo-cardiac", + "body_parts.endo-esophageal": "Endo-esophageal", + "body_parts.endometrium": "Endometrium", + "body_parts.endo-nasal": "Endo-nasal", + "body_parts.endo-nasopharyngeal": "Endo-nasopharyngeal", + "body_parts.endo-rectal": "Endo-rectal", + "body_parts.endo-renal": "Endo-renal", + "body_parts.endo-ureteric": "Endo-ureteric", + "body_parts.endo-urethral": "Endo-urethral", + "body_parts.endo-vaginal": "Endo-vaginal", + "body_parts.endo-vascular": "Endo-vascular", + "body_parts.endo-venous": "Endo-venous", + "body_parts.endo-vesical": "Endo-vesical", + "body_parts.entire_body": "Entire body", + "body_parts.epididymis": "Epididymis", + "body_parts.epigastric_region": "Epigastric region", + "body_parts.esophagus": "Esophagus", + "body_parts.external_auditory_canal": "External auditory canal", + "body_parts.external_carotid_artery": "External carotid artery", + "body_parts.external_iliac_artery": "External iliac artery", + "body_parts.external_iliac_vein": "External iliac vein", + "body_parts.external_jugular_vein": "External jugular vein", + "body_parts.extremity": "Extremity", + "body_parts.eye": "Eye", + "body_parts.eyelid": "Eyelid", + "body_parts.face": "Face", + "body_parts.facial_artery": "Facial artery", + "body_parts.femoral_artery": "Femoral artery", + "body_parts.femoral_vein": "Femoral vein", + "body_parts.femur": "Femur", + "body_parts.fibula": "Fibula", + "body_parts.finger": "Finger", + "body_parts.flank": "Flank", + "body_parts.fontanel_of_skull": "Fontanel of skull", + "body_parts.foot": "Foot", + "body_parts.forearm": "Forearm", + "body_parts.fourth_ventricle": "Fourth Ventricle", + "body_parts.gallbladder": "Gallbladder", + "body_parts.gastric_vein": "Gastric vein", + "body_parts.genicular_artery": "Genicular artery", + "body_parts.gestational_sac": "Gestational sac", + "body_parts.gluteal_region": "Gluteal region", + "body_parts.great_saphenous_vein": "Great saphenous vein", + "body_parts.hand": "Hand", + "body_parts.head": "Head", + "body_parts.head_neck": "Head and Neck", + "body_parts.heart": "Heart", + "body_parts.hepatic_artery": "Hepatic artery", + "body_parts.hepatic_vein": "Hepatic vein", + "body_parts.hip": "Hip joint", + "body_parts.humerus": "Humerus", + "body_parts.hypogastric_region": "Hypogastric region", + "body_parts.hypopharynx": "Hypopharynx", + "body_parts.ileum": "Ileum", + "body_parts.iliac_artery": "Iliac artery", + "body_parts.iliac_vein": "Iliac vein", + "body_parts.ilium": "Ilium", + "body_parts.inferior_mesenteric_artery": "Inferior mesenteric artery", + "body_parts.inferior_vena_cava": "Inferior vena cava", + "body_parts.inguinal_region": "Inguinal region", + "body_parts.innominate_artery": "Innominate artery", + "body_parts.innominate_vein": "Innominate vein", + "body_parts.internal_auditory_canal": "Internal Auditory Canal", + "body_parts.internal_carotid_artery": "Internal carotid artery", + "body_parts.internal_iliac_artery": "Internal iliac artery", + "body_parts.internal_jugular_vein": "Internal jugular vein", + "body_parts.internal_mammary_artery": "Internal mammary artery", + "body_parts.intracranial": "Intracranial", + "body_parts.jaw": "Jaw region", + "body_parts.jejunum": "Jejunum", + "body_parts.joint": "Joint", + "body_parts.kidney": "Kidney", + "body_parts.knee": "Knee", + "body_parts.lacrimal_artery": "Lacrimal artery", + "body_parts.large_intestine": "Large intestine", + "body_parts.larynx": "Larynx", + "body_parts.lateral_ventricle": "Lateral Ventricle", + "body_parts.left_atrium": "Left atrium", + "body_parts.leg": "Lower leg", + "body_parts.left_femoral_artery": "Left femoral artery", + "body_parts.left_hepatic_vein": "Left hepatic vein", + "body_parts.left_hypochondriac_region": "Left hypochondriac region", + "body_parts.left_inguinal_region": "Left inguinal region", + "body_parts.lingual_artery": "Lingual artery", + "body_parts.liver": "Liver", + "body_parts.left_lower_quadrant_of_abdomen": "Left lower quadrant of abdomen", + "body_parts.left_lumbar_region": "Left lumbar region", + "body_parts.lower_limb": "Lower limb", + "body_parts.left_portal_vein": "Left portal vein", + "body_parts.left_pulmonary_artery": "Left pulmonary artery", + "body_parts.lumbar_spine": "Lumbar spine", + "body_parts.lumbo-sacral_spine": "Lumbo-sacral spine", + "body_parts.lung": "Lung", + "body_parts.lumbar_artery": "Lumbar artery", + "body_parts.lumbar_region": "Lumbar region", + "body_parts.lumen_of_blood_vessel": "Lumen of blood vessel", + "body_parts.left_upper_quadrant_of_abdomen": "Left upper quadrant of abdomen", + "body_parts.left_ventricle": "Left ventricle", + "body_parts.mandible": "Mandible", + "body_parts.mastoid_bone": "Mastoid Bone", + "body_parts.maxilla": "Maxilla", + "body_parts.mediastinum": "Mediastinum", + "body_parts.mesenteric_artery": "Mesenteric artery", + "body_parts.mesenteric_vein": "Mesenteric vein", + "body_parts.middle_cerebral_artery": "Middle cerebral artery", + "body_parts.middle_hepatic_vein": "Middle hepatic vein", + "body_parts.morisons_pouch": "Morisons Pouch", + "body_parts.mouth": "Mouth", + "body_parts.nasopharynx": "Nasopharynx", + "body_parts.neck": "Neck", + "body_parts.neck_chest": "Neck and Chest", + "body_parts.neck_chest_abdomen": "Neck, Chest and Abdomen", + "body_parts.neck_chest_abdomen_pelvis": "Neck, Chest, Abdomen and Pelvis", + "body_parts.nose": "Nose", + "body_parts.occipital_artery": "Occipital artery", + "body_parts.occipital_vein": "Occipital vein", + "body_parts.ophthalmic_artery": "Ophthalmic artery", + "body_parts.optic_canal": "Optic canal", + "body_parts.orbital_structure": "Orbital structure", + "body_parts.ovary": "Ovary", + "body_parts.pancreas": "Pancreas", + "body_parts.pancreatic_duct": "Pancreatic duct", + "body_parts.pancreatic_duct_bile_duct_systems": "Pancreatic duct and bile duct systems", + "body_parts.parasternal": "Parasternal", + "body_parts.parathyroid": "Parathyroid", + "body_parts.parotid_gland": "Parotid gland", + "body_parts.patella": "Patella", + "body_parts.pelvis": "Pelvis", + "body_parts.pelvis_lower_extremities": "Pelvis and lower extremities", + "body_parts.penile_artery": "Penile artery", + "body_parts.penis": "Penis", + "body_parts.perineum": "Perineum", + "body_parts.peroneal_artery": "Peroneal artery", + "body_parts.phantom": "Phantom", + "body_parts.pharynx": "Pharynx", + "body_parts.pharynx_larynx": "Pharynx and Larynx", + "body_parts.placenta": "Placenta", + "body_parts.popliteal_artery": "Popliteal artery", + "body_parts.popliteal_fossa": "Popliteal fossa", + "body_parts.popliteal_vein": "Popliteal vein", + "body_parts.portal_vein": "Portal vein", + "body_parts.posterior_cerebral_artery": "Posterior cerebral artery", + "body_parts.posterior_communicating_artery": "Posterior communicating artery", + "body_parts.posterior_tibial_artery": "Posterior tibial artery", + "body_parts.profunda_femoris_artery": "Profunda femoris artery", + "body_parts.profunda_femoris_vein": "Profunda femoris vein", + "body_parts.prostate": "Prostate", + "body_parts.pulmonary_artery": "Pulmonary artery", + "body_parts.pulmonary_vein": "Pulmonary vein", + "body_parts.radial_artery": "Radial artery", + "body_parts.radius": "Radius", + "body_parts.radius_ulna": "Radius and ulna", + "body_parts.rectouterine_pouch": "Rectouterine pouch", + "body_parts.rectum": "Rectum", + "body_parts.renal_artery": "Renal artery", + "body_parts.renal_vein": "Renal vein", + "body_parts.retroperitoneum": "Retroperitoneum", + "body_parts.right_atrium": "Right atrium", + "body_parts.right_femoral_artery": "Right femoral artery", + "body_parts.right_hepatic_vein": "Right hepatic vein", + "body_parts.right_hypochondriac_region": "Right hypochondriac region", + "body_parts.rib": "Rib", + "body_parts.right_inguinal_region": "Right inguinal region", + "body_parts.right_lower_quadrant_of_abdomen": "Right lower quadrant of abdomen", + "body_parts.right_lumbar_region": "Right lumbar region", + "body_parts.right_portal_vein": "Right portal vein", + "body_parts.right_pulmonary_artery": "Right pulmonary artery", + "body_parts.right_upper_quadrant_of_abdomen": "Right upper quadrant of abdomen", + "body_parts.right_ventricle": "Right ventricle", + "body_parts.sacroiliac_joint": "Sacroiliac joint", + "body_parts.sacrum": "Sacrum", + "body_parts.saphenofemoral_junction": "Saphenofemoral junction", + "body_parts.saphenous_vein": "Saphenous vein", + "body_parts.scalp": "Scalp", + "body_parts.scapula": "Scapula", + "body_parts.sclera": "Sclera", + "body_parts.scrotum": "Scrotum", + "body_parts.sella_turcica": "Sella turcica", + "body_parts.seminal_vesicle": "Seminal vesicle", + "body_parts.sesamoid_bones_of_foot": "Sesamoid bones of foot", + "body_parts.shoulder": "Shoulder", + "body_parts.sigmoid_colon": "Sigmoid Colon", + "body_parts.skull": "Skull", + "body_parts.small_intestine": "Small intestine", + "body_parts.spine": "Spine", + "body_parts.spinal_cord": "Spinal Cord", + "body_parts.spleen": "Spleen", + "body_parts.splenic_artery": "Splenic artery", + "body_parts.splenic_vein": "Splenic vein", + "body_parts.sternoclavicular_joint": "Sternoclavicular joint", + "body_parts.sternum": "Sternum", + "body_parts.stomach": "Stomach", + "body_parts.subclavian_artery": "Subclavian artery", + "body_parts.subclavian_vein": "Subclavian vein", + "body_parts.subcostal": "Subcostal", + "body_parts.submandibular_gland": "Submandibular gland", + "body_parts.superficial_femoral_artery": "Superficial femoral artery", + "body_parts.superficial_femoral_vein": "Superficial femoral vein", + "body_parts.superior_left_pulmonary_vein": "Superior left pulmonary vein", + "body_parts.superior_mesenteric_artery": "Superior mesenteric artery", + "body_parts.superior_right_pulmonary_vein": "Superior right pulmonary vein", + "body_parts.superior_thyroid_artery": "Superior thyroid artery", + "body_parts.superior_vena_cava": "Superior vena cava", + "body_parts.supraclavicular_region_of_neck": "Supraclavicular region of neck", + "body_parts.suprapubic_region": "Suprapubic region", + "body_parts.temporomandibular_joint": "Temporomandibular joint", + "body_parts.testis": "Testis", + "body_parts.thalamus": "Thalamus", + "body_parts.thigh": "Thigh", + "body_parts.third_ventricle": "Third ventricle", + "body_parts.thoracic_aorta": "Thoracic aorta", + "body_parts.thorax": "Thorax", + "body_parts.thoracic_spine": "Thoracic spine", + "body_parts.thoraco-lumbar_spine": "Thoraco-lumbar spine", + "body_parts.thumb": "Thumb", + "body_parts.thymus": "Thymus", + "body_parts.thyroid": "Thyroid", + "body_parts.tibia": "Tibia", + "body_parts.tibia_fibula": "Tibia and fibula", + "body_parts.toe": "Toe", + "body_parts.tongue": "Tongue", + "body_parts.trachea": "Trachea", + "body_parts.trachea_bronchus": "Trachea and bronchus", + "body_parts.transverse_colon": "Transverse colon", + "body_parts.ulna": "Ulna", + "body_parts.ulnar_artery": "Ulnar artery", + "body_parts.umbilical_artery": "Umbilical artery", + "body_parts.umbilical_region": "Umbilical region", + "body_parts.umbilical_vein": "Umbilical vein", + "body_parts.upper_arm": "Upper arm", + "body_parts.upper_limb": "Upper limb", + "body_parts.upper_urinary_tract": "Upper urinary tract", + "body_parts.ureter": "Ureter", + "body_parts.urethra": "Urethra", + "body_parts.uterus": "Uterus", + "body_parts.vagina": "Vagina", + "body_parts.vein": "Vein", + "body_parts.vertebral_artery": "Vertebral Artery", + "body_parts.vulva": "Vulva", + "body_parts.wrist": "Wrist joint", + "body_parts.zygoma": "Zygoma", + "c_move_scp_aet_filter": "C-MOVE SCP AE Title to filter by", + "calling_aet": "Calling AET", + "calling_hl7_application": "Calling Hl7 Application", + "cancel": "cancel", + "cancel_all_matching_tasks": "Cancel all matching tasks", + "cancel_this_task": "Cancel this task", + "cancellation_of_the_ups_workitem_was_requested_successfully": "Cancellation of the UPS Workitem was requested successfully!", + "captured_image_type": "Captured Image Type:", + "change_sps_matching": "Change Scheduled Procedure Step Status of the matching MWL", + "change_sps_selected": "Change Scheduled Procedure Step Status of the selected MWL", + "change_sps_single": "Change Scheduled Procedure Step Status of the MWL", + "charset": "Character Set", + "check_MD5_checksum_on_S3": "Check MD5 checksum of object on S3 Storage System", + "check_different": "Check Different", + "check_for_existence_of_db_records": "Check for existence of DB records", + "check_missing": "Check Missing", + "chose_a_file_to_upload": "Choose a File to upload:", + "click_save_if_you_want_to_remove_permanently": "Click save if you want to remove \"{$@@selectedTitle}\" permanently!", + "close_more_block": "Close More Block{$START_ITALIC_TEXT}{$CLOSE_ITALIC_TEXT}", + "close_more_filters": "Close more filters", + "code_value_00080100": "Code Value (0008,0100)", + "coding_scheme_designator_00080102": "Coding scheme designator (0008,0102)", + "coming_soon": "Coming soon...", + "comments": "Comments", + "comp_rem_failed": "Comp. / Rem. / Failed", + "compare_attribute_set_id": "Compare attribute set id", + "compare_diff": "Compare Diff", + "compare_field": "Compare field", + "compare_group_title": "Compare {$PH}", + "complete_date": "Complete Date", + "compress": "Compress", + "compression_failed": "Compression Failed", + "config_name": "Config Name", + "configure_webapp_with_webservice": "Configure at least one web application with {$@@webServiceClass} web service class to {@@entityOp}", + "connecting_to_elasticsearch": "Connecting to Elasticsearch...", + "connection_open_for_hh_mm_ss": ",Connection open for (hh:mm:ss)", + "connection_time_browser": "Connection time (Browser)", + "connection_time_server": "Connection time (Server)", + "connection_with_that_name_exist": "Connection with that name exist!", + "content_date": "Content Date", + "control": "Control", + "control.archive_control": "Archive Control", + "control.archive_device_description": "Archive device description", + "control.archive_device_name": "Archive device name", + "control.archive_reloaded": "Archive {$@@dcmuiDeviceURLName} reloaded successfully", + "control.archive_started": "Archive {$@@dcmuiDeviceURLName} started successfully", + "control.archive_stopped": "Archive {$@@dcmuiDeviceURLName} stopped successfully", + "control.status_refetched": "Status of {$@@dcmuiDeviceURLName} was successfully refetched!", + "corrupted-studies.calling_aet_is_missing": "Calling AET is missing!", + "corrupted-studies.error_getting_aets": "Error getting AETs!", + "corrupted_studies": "Corrupted Studies", + "count": "Count", + "count_clinch_param": "Count ( {$@@sum} )", + "count_of_found_studies": "Count of found studies", + "count_param": "COUNT {$@@count}", + "count_size": "Count/Size", + "counts_from_current_archive": "Counts from current archive", + "create-ae.a_unique_name_for_this_device": "A unique name for this device", + "create-ae.add_connection": "Add connection", + "create-ae.ae_description": "AE Description", + "create-ae.already_available_aets": "Already available AETs", + "create-ae.already_existing_devices": "Already existing devices", + "create-ae.arbitrary_meaningful_name_for_the_network_conn": "Arbitrary/Meaningful name for the Network Connection object", + "create-ae.boolean_to_indicate_whether_this_device_is_presently_installed": "Boolean to indicate whether this device is presently installed on the network", + "create-ae.calling_aet": " Calling AET: ", + "create-ae.create-ae.no_connection_found": "No connection found", + "create-ae.create_network_connection_suggestion": " To be able to select the reference create first a network connection or select device with a network connection! ", + "create-ae.dns_name_for_this_particular_conn": "DNS name for this particular connection", + "create-ae.hostname": "Hostname", + "create-ae.institution_department_name": "Institution Department Name", + "create-ae.json_pointers_to_the_network_connection": "JSON Pointers to the Network Connection objects for this AE", + "create-ae.locally_defined_names_for_a_subset_app": "Locally defined names for a subset of related applications", + "create-ae.network_ae": "Network AE", + "create-ae.network_connection_reference": "Network Connection Reference", + "create-ae.new_device": "New Device", + "create-ae.new_network_connection": "New Network Connection", + "create-ae.new_network_connection_to_selected_device": "New Network Connection to selected device", + "create-ae.no_dicom_connection": "No DICOM connection found!", + "create-ae.parameter_is_missing_host_port": "Parameter is missing, check the parameters Host, port, AE Title and Calling AET!", + "create-ae.port": "Port", + "create-ae.register_new_application_entity": "Register new Application Entity", + "create-ae.remove_connection": "Remove connection", + "create-ae.represents_the_kind_of_device": "Represents the kind of device and is most applicable for acquisition modalities", + "create-ae.select_device_to_connect_the_ae": " Select device to connect the AE to: ", + "create-ae.select_first_a_device": " Select first a device! ", + "create-ae.select_one_of_the_dicom_connections": " Select one of the DICOM connections: ", + "create-ae.set_the_new_application_entity": "Set the new Application Entity as 'Accepted Calling AE Title' to following AETs:", + "create-ae.should_be_the_same_as_the_value_of_station_name00080080": "Should be the same as the value of Institution Name (0008,0080) in SOP Instances created by this device", + "create-ae.should_be_the_same_as_the_value_of_station_name00081010": "Should be the same as the value of Station Name (0008,1010) in SOP instances created by this device", + "create-ae.should_be_the_same_as_the_value_of_station_name00081040": "Should be the same as the value of Institutional Department Name (0008,1040) in SOP Instances created by this device", + "create-ae.tcp_udp_port_this_a_service_is_listening_on": "TCP/UDP port that a service is listening on. May be missing if this network connection is only used for outbound connections", + "create-ae.test_connection": "Test Connection", + "create-ae.unconstrained_text_description": "Unconstrained text description of the application entity", + "create-ae.unconstrained_text_description_of_the_device": "Unconstrained text description of the device", + "create-ae.unique_ae_title": "Unique AE title for this Network AE", + "create-exporter.export_priority": "Export Priority", + "create-exporter.exporter_descriptor": "Exporter Descriptor", + "create-exporter.instance_availability": "Instance Availability", + "create-exporter.jms_queue_name": "Task Queue Name", + "create_c": "Create (C)", + "create_new_device": "Create new device", + "create_new_filter-template": "Creating new filter-template", + "create_new_ups": "Create new UPS Workitem", + "created": "Created", + "created_date": "Created Date", + "created_time": "Created time", + "csv-upload.count_could_not_be_extracted": "Count could not be extracted", + "csv-upload.select_csv_file": "Select CSV-File:", + "csv-upload.upload_csv_title": "Upload csv file with Study Instance UIDs", + "csv.date": "Date", + "csv.filter": "Filter", + "csv.hl7_message": "Hl7 Message", + "csv.study_created_date_param": "Study Created Date {$@@quantity}", + "csv.study_date_param": "Study Date {$@@quantity}", + "csv.total_size_count": "Total Size/Count", + "custom_modality_code": "Custom modality code:", + "daemon_value_found": "Daemon value found, you can remove it manually from the value array:", + "dashboard-compare.last_24_h": "Last 24 h", + "dashboard.archive_device_not_configured": "Archive device(s) not configured!", + "dashboard.archive_device_not_found_in_elasticsearch": "Archive device(s) not found in the devices coming from Elasticsearch", + "data_bin_size_in_minutes": "Data bin size in minutes", + "date_time_picker": "Date Time Picker", + "day": "day:", + "day_plural": "days", + "day_range": "Day range", + "day_singular": "day", + "default_was_set_successfully": "Default was set successfully!", + "delete": "delete", + "delete-rejected.delete_instances_with_rejected_type": "Delete instances with rejected type", + "delete-rejected.if_checked_keep_rejection_note_instance": "if checked, keep rejection note instances - only delete rejected instances", + "delete-rejected.maximum_reject_date_of_instances_to_delete": "Maximum reject date of instances to delete", + "delete_all_matching_tasks": "Delete all matching tasks", + "delete_all_tasks": "Delete all tasks", + "delete_also_the_device": "Delete also the device ${device}", + "delete_batch": "Delete Batch", + "delete_d": "Delete (D)", + "delete_studies_not_used_since": "Delete Studies Not Used Since", + "delete_studies_older_than": "Delete Studies Older Than", + "delete_studies_received_before": "Delete Studies Received Before", + "delete_task_question": "Are you sure you want to delete this task?", + "delete_this_task": "Delete this task", + "deleter_storage_threshold": "Deleter / Storage Threshold", + "desc_expected_completion_date_and_time": "Newest Expected Completion DateTime first", + "desc_expected_completion_date_and_time_tooltip": "Expected Completion Date and Time - new to old", + "desc_scheduled_procedure_step_priority": "Highest SPS Priority first", + "desc_scheduled_procedure_step_priority_tooltip": "Scheduled Procedure Step Priority - high to low", + "desc_scheduled_procedure_step_start_date_and_time": "Newest SPS Start DateTime first", + "desc_scheduled_procedure_step_start_date_and_time_tooltip": "Scheduled Procedure Step Start Date and Time - new to old", + "description": "Description", + "destinationAETs": "Destination AETs", + "destination_ae_title_to_filter_by": "Destination AE Title to filter by", + "destination_aet": "Destination Aet", + "device": "Device", + "device-configurator.child_exist": "Child already exist, change some value and try saving again!", + "device-configurator.device_created": "Device created successfully!", + "device-configurator.parent_dont_exist": "Parent didn't exist, save first the parent", + "device_deleted_successfully": "Device deleted successfully!", + "device_description": "Device description", + "device_name": "Device Name", + "device_name_missing": "Device name is missing!", + "device_name_to_filter_by": "Device Name to filter by", + "device_participant_object_id": "Device Participant Object ID", + "device_saved": "Device saved successfully!", + "device_with_the_aet_created_successfully": "Device with the AET created successfully!", + "devicelist": "devicelist", + "devices": "Devices", + "devices.are_you_sure_you_want_to_delete_the_device_": "Are you sure you want to delete the device {$@@dicomDeviceName}?", + "devices.create_device": "Create device", + "devices.create_exporter": "Create exporter", + "devices.department_name": "Department Name", + "devices.device_cloned": "Device cloned successfully!", + "devices.device_installed": "Device installed", + "devices.exporter_description_appended": "The new exporter description appended successfully to the device: {$@@dicomDeviceName}", + "devices.institution_department_name": "Institution department name", + "devices.name_exist": "This name already exists, please choose another one!", + "devices.select_device_to_reschedule": "Select device if you want to reschedule to an other device", + "devices.set_the_name_for_the_new_device_to_clone": "Set the name for the new device to clone {$@@dicomDeviceName}", + "dicom": "dicom", + "dicom_specific_char.arabic": "Arabic", + "dicom_specific_char.arabic_desc": "Arabic (ISO_IR 127)", + "dicom_specific_char.cyrillic": "Cyrillic", + "dicom_specific_char.cyrillic_desc": "Cyrillic (ISO_IR 144)", + "dicom_specific_char.default_repertoire": "Default repertoire", + "dicom_specific_char.gb18030": "GB18030", + "dicom_specific_char.gb18030_desc": "GB18030 (GB18030)", + "dicom_specific_char.gbk": "GBK", + "dicom_specific_char.gbk_desc": "GBK (GBK)", + "dicom_specific_char.greek": "Greek", + "dicom_specific_char.greek_desc": "Greek (ISO_IR 126)", + "dicom_specific_char.hebrew": "Hebrew", + "dicom_specific_char.hebrew_desc": "Hebrew (ISO_IR 138)", + "dicom_specific_char.japanese": "Japanese", + "dicom_specific_char.japanese_desc": "Japanese (ISO_IR 13)", + "dicom_specific_char.japanese_kanji": "Japanese (Kanji)", + "dicom_specific_char.japanese_supplementary_kanji": "Japanese (Supplementary Kanji set)", + "dicom_specific_char.korean": "Korean", + "dicom_specific_char.latin_alphabet_no._1": "Latin alphabet No. 1", + "dicom_specific_char.latin_alphabet_no._desc": "Latin alphabet No. 1 (ISO_IR 100)", + "dicom_specific_char.latin_alphabet_no._2": "Latin alphabet No. 2", + "dicom_specific_char.latin_alphabet_no._2_desc": "Latin alphabet No. 2 (ISO_IR 101)", + "dicom_specific_char.latin_alphabet_no._3": "Latin alphabet No. 3", + "dicom_specific_char.latin_alphabet_no._3_desc": "Latin alphabet No. 3 (ISO_IR 109)", + "dicom_specific_char.latin_alphabet_no._4": "Latin alphabet No. 4", + "dicom_specific_char.latin_alphabet_no._4_desc": "Latin alphabet No. 4 (ISO_IR 110)", + "dicom_specific_char.latin_alphabet_no_5": "Latin alphabet No. 5", + "dicom_specific_char.latin_alphabet_no_5_desc": "Latin alphabet No. 5 (ISO_IR 148)", + "dicom_specific_char.multi_byte_character_sets_group_name": "Multi-Byte Character Sets", + "dicom_specific_char.multi_byte_character_without_extension_group_name": "Multi-Byte Character Sets Without Code Extensions", + "dicom_specific_char.simplified_chinese": "Simplified Chinese", + "dicom_specific_char.single_byte_character": "Single-Byte Character Sets", + "dicom_specific_char.single_byte_character_set_with_extension_group_name": "Single-Byte Character Sets with Code Extensions", + "dicom_specific_char.thai": "Thai", + "dicom_specific_char.thai_desc": "Thai (ISO_IR 166)", + "dicom_specific_char.unicode": "Unicode in UTF-8", + "dicom_specific_char.unicode_desc": "Unicode in UTF-8 (ISO_IR 192)", + "diff-monitor.no_diff": "No diff tasks found!", + "diff-monitoring.task_deleted": "Task deleted successfully!", + "diff-pro._not_selected_": " not selected ", + "diff-pro._selected_": " selected ", + "diff-pro._selected_one_to_the_not_selected_aet": " selected one to the not selected AEt", + "diff-pro.assignment_data": "Assignment data", + "diff-pro.compares_only_missing_studies": "Compares only missing Studies", + "diff-pro.dicom_data": "Dicom data", + "diff-pro.diff_triggered_successfully": "Diff triggered successfully!", + "diff-pro.error_getting_param": "Error getting {$@@comparefield} ({$@@status_text})", + "diff-pro.export_all_entries": "Export all entries", + "diff-pro.missing_studies": "Missing studies", + "diff-pro.more_than_one_column_found": "More than one column found, try uploading csv-file with only one column!", + "diff-pro.no_studyinstanceuids_found_in_the_file": "No StudyInstanceUIDs found in the file!", + "diff-pro.only_expired_studies": "Only expired studies", + "diff-pro.patient_data": "Patient data", + "diff-pro.primary_ae": "Primary AE", + "diff-pro.reject_all_entries": "Reject all entries", + "diff-pro.secondary_ae": "Secondary AE", + "diff-pro.secondary_aet_and_comparefield_are_required_fields": "Secondary AET and comparefield are required fields!", + "diff-pro.secondary_aet_is_empty": "Secondary AET is empty!", + "diff-pro.send_all_studies_to_secondary_ae": "Send all studies to secondary AE", + "diff-pro.synchronize_all_entries": "Synchronize all entries", + "diff-pro.text_error_getting": "Error getting {$@@title} ( {$@@status_text} )", + "diff_monitoring": "Diff Monitoring", + "diff_result": "Diff Result", + "diff_web_app_needed_for_the_synchronisation_process": "Diff web app ( Needed for the synchronisation process )", + "different_studies": "Different Studies", + "documentum": "documentum", + "download": "Download", + "download_copy": "Download copy", + "download_csv": "Download CSV", + "download_pdf": "Download PDF", + "download_this_leveltext": "Download this {$@@levelText}", + "duration": "Duration (hh:mm:ss.SSS)", + "duration-picker.this_duration_will_last": "This duration will last", + "duration-picker.this_period_will_last": "This period will last", + "dynamic-form-element.click_to_save": "Click to save", + "dynamic-form-element.delete_file_form_device": "delete file form device", + "dynamic-form-element.deleted_successfully": "deleted successfully", + "dynamic-form-element.device_specific_vendor_configuration_information": "Device specific vendor configuration information", + "dynamic-form-element.error_setting_changed_value": "error setting changed value", + "dynamic-form-element.trying_to_set_the_new_value": "trying to set the new value", + "dynamic-form-element.vendor_device_data": "Vendor Device Data", + "dynamic-form.child_objects": "Child Objects", + "dynamic-form.save": "Save", + "dynamic_formatter.configure_first_a_queue": "Configure first an Queue", + "dynamic_formatter.create_first_aet": "Create first an AE Title!", + "dynamic_formatter.exporter": "Create first an Exporter!", + "dynamic_formatter.id_generator": "Create first an ID Generator!", + "dynamic_formatter.keycloak_server": "Create first an Keycloak Server!", + "dynamic_formatter.query_retrieve_view": "Create first an Query Retrieve View!", + "dynamic_formatter.rejection_note": "Create first an Rejection Note!", + "dynamic_formatter.storage": "Create first an Storage!", + "dynamic_formatter.ui _device_url": "Create first an UI Device URL!", + "dynamic_formatter.ui_device_cluster": "Create first an UI Device Cluster!", + "dynamic_formatter.ui_elasticsearch_url": "Create first an UI Elasticsearch URL!", + "e._completion_date": "E. Completion Date", + "echo_accomplished": "Echo successfully accomplished!
- Connection time: {$@@connection_time} ms
- Echo time: {$@@echo_time} ms
- Release time: {$PH_2} ms", + "edit_attributes": "Edit Attributes", + "edit_device": "Edit device", + "edit_extension": "Edit extension", + "edit_ups_workitem": "Edit UPS Workitem", + "elasticsearch_is_not_accessible": "Elasticsearch is not accessible!", + "elasticsearch_task": "Elasticsearch Task", + "element_removed_from_object": "Element removed from object successfully!", + "emc-ecs-s3": "emc-ecs-s3", + "entity_op_compare_archives": "compare studies between two archives", + "entity_op_view_mpps": "view MPPS", + "entity_op_view_mwls": "view MWLs", + "entity_op_view_patients": "view patients", + "entity_op_view_series": "view series", + "entity_op_view_studies": "view studies", + "entity_op_view_ups": "view UPS Workitems", + "entry": "Entry", + "error": "Error", + "error,_the_ae_was_not_removed_from_device": "Error, the AE was not removed from device!", + "error_on_getting_needed_webapp": "Error on getting the needed WebApp (with one of the web service classes \"DCM4CHEE_ARC_AET\" or \"PAM\")", + "error_on_getting_needed_webapp_ups": "Error on getting the needed WebApp (with one of the web service classes \"DCM4CHEE_ARC_AET\" or \"UPS_RS\")", + "error_on_getting_param_webapp": "Error on getting the {$@@webappcass} WebApp getModifyPatientUrl", + "error_status": "Error {$@@status}", + "errors": "Errors", + "event_action_code": "Event Action Code", + "event_id": "EventID", + "event_outcome_description": "Event Outcome Description", + "event_outcome_indicator": "Event Outcome Indicator", + "event_type": "Event Type", + "execute_e": "Execute (E)", + "expected_completion_date_and_time": "Expected Completion Date and Time", + "expiration_date": "Expiration Date", + "expiration_state": "Expiration State", + "expiration_state_export_scheduled": "Export scheduled for expired studies before rejecting them", + "expiration_state_failed_export": "Export failed for expired studies", + "expiration_state_failed_reject": "Rejection failed for expired studies", + "expiration_state_frozen": "Study protected from being expired", + "expiration_state_rejected": "Rejected expired studies", + "expiration_state_updateable": "No expiration date set to study", + "expired_date": "Expired date", + "expired_date_required": "Expired date is required!", + "expired_date_set_successfully": "Expired date set successfully!", + "export.change_exporter_text": "Change the exporter for all rescheduled tasks. To reschedule with the original exporters associated with the tasks, leave blank:", + "export.change_the_exporter_id_only_if_you_want": "Change the Exporter Id only if you want to reschedule to another exporter!", + "export.create_first_exporter": "Create first an exporter!", + "export.export": "Export", + "export.select_device_if_you_want_to_reschedule": "Select device if you want to reschedule to an other device:", + "export.studies_selected_to_be_retrieved": "studies selected to be retrieved", + "export.task_reschedule": "Task reschedule", + "export_instance": "Export instance", + "export_series": "Export series", + "export_storage_id_external_retrieve_aet": "Export Storage ID / External Retrieve AET", + "export_time": "Export time", + "exporter": "Exporter", + "exporter_id": "Exporter ID", + "extended_search": "Extended search", + "extension_is_not_present": "Extension is not present", + "extensions": "Extensions", + "external_hl7_application": "External Hl7 Application", + "external_retrieve_aet": "External retrieve AET", + "f": "F", + "facility": "Facility", + "failed": "failed", + "failed_of": "{$PH} of {$PH_1} failed!", + "failed_storage_verification": "Failed storage verification", + "failures": "Failures", + "false": "false", + "fast_picker": "Fast Picker", + "female": "Female", + "fetch_object_from_storage_system": "Fetch object from Storage System", + "file": "file", + "filetype_not_allowed": "Filetype \"{$@@filetype}\" not allowed!", + "filter-generator.test_description": "Test description", + "filter-template_added": "Filter-template added successfully!", + "filter-template_name_is_empty": "Filter-template name is empty or already exist, please choose another name!", + "filter-template_not_found": "Filter-template not found, reload the page and try again!", + "filter-template_removed": "Filter-template removed successfully!", + "filter_template_description": "Filter template-description", + "finished": "Finished", + "finished_approx": "Finished / Approx.", + "folder_content": "Folder Content", + "for_queued_exporter_create_an_exporter_first": "For queued exporter create an exporter first!", + "for_the_following_role": "for the following role", + "force_query_by_study_uid": "Force query by Study UID", + "freeze_expiration_date": "Freeze Expiration Date", + "freeze_protect_expiration_date_of_the_study": "Freeze/Protect Expiration Date of the Study", + "friday": "Friday", + "fuzzy_matching": "Fuzzy Matching", + "fuzzy_matching_desc": "Fuzzy semantic matching of person names", + "geographic_location_code": "Geographic Location Code", + "get_count": "Get Count", + "get_metrics": "Get Metrics", + "get_queued_batches": "Get queued batches", + "get_storage_commitments": "Get Storage commitments", + "given_value_bigger_than_max": "The given value {$PH} is bigger than the allowed max value {$PH_1}!", + "given_value_equal_to_exclusive_max": "The given value {$PH} should be lesser than the allowed exclusive maximum value {$PH_1}!", + "given_value_equal_to_exclusive_min": "The given value {$PH} should be greater than the allowed exclusive minimum value {$PH_1}!", + "given_value_smaller_than_min": "The given value {$PH} is smaller than the allowed min value {$PH_1}!", + "globalvar.make_diff_between_two_archives": "Make diff between two archives", + "hardware-dashboard.max_cpu_total_usage": "Max CPU total usage", + "hardware-dashboard.packets_transmitted_per_second": "Packets transmitted per second", + "hardware-dashboard.ui_config_for_docker_container_names_was_not_found": "UI config for docker container names was not found!", + "hcp": "hcp", + "hide_checkboxes": "Hide checkboxes", + "hide_forward_retrieve_tasks": "Hide forward retrieve tasks", + "hide_retrieve_tasks": "Hide retrieve tasks", + "high": "HIGH", + "hl7-applications.hl7_application_name": "hl7 Application Name", + "hl7_application_description": "HL7 Application Description", + "hl7_application_name": "Hl7 Application Name", + "hl7_applications": "Hl7 Applications", + "hl7_applications_not_found": "Hl7Applications not found!", + "hl7_message": "HL7 Message", + "hl7_messages": "HL7 Messages", + "hl7_specific_char.ASCII": "ASCII", + "hl7_specific_char.arabic": "Arabic", + "hl7_specific_char.cyrillic": "Cyrillic", + "hl7_specific_char.gb_18030_2000": "GB 18030-2000", + "hl7_specific_char.greek": "Greek", + "hl7_specific_char.hebrew": "Hebrew", + "hl7_specific_char.japanese": "Japanese (Kanji)", + "hl7_specific_char.japanese_supplementary": "Japanese (Supplementary Kanji set)", + "hl7_specific_char.korean": "Korean", + "hl7_specific_char.latin_alphabet_no._1": "Latin alphabet No. 1", + "hl7_specific_char.latin_alphabet_no._2": "Latin alphabet No. 2", + "hl7_specific_char.latin_alphabet_no._3": "Latin alphabet No. 3", + "hl7_specific_char.latin_alphabet_no._4": "Latin alphabet No. 4", + "hl7_specific_char.latin_alphabet_no._5": "Latin alphabet No. 5", + "hl7_specific_char.multi_byte_set": "Multi-Byte Character Sets", + "hl7_specific_char.single_byte_groupe_name": "Single-Byte Character Sets", + "hl7_specific_char.thai": "Thai", + "hl7_specific_char.unicode": "Unicode", + "hl7_specific_char.unicode_utf8": "Unicode in UTF-8", + "host": "Host", + "hour": "hour:", + "hour_plural": "hours", + "hour_range": "Hour range", + "hour_singular": "hour", + "html.add_study_retention_policy": "Add Study Retention Policy", + "html.audit_events": "Audit Events", + "html.close_filters_block": "Close filters block{$START_ITALIC_TEXT}{$CLOSE_ITALIC_TEXT}", + "html.counts": "Counts", + "html.docker_stats_average_amount_of_bytes_read_per_second": "Docker Stats - Average amount of bytes read per second", + "html.docker_stats_average_amount_of_bytes_written_per_second": "Docker Stats - Average amount of bytes written per second", + "html.docker_stats_cpu": "Docker Stats - CPU", + "html.docker_stats_current_memory_consumption": "Docker Stats - Current memory consumption", + "html.docker_stats_memory_total_resources": "Docker Stats - Memory Total Resources", + "html.docker_stats_transmitted_packets": "Docker Stats - Transmitted packets", + "html.export_monitoring": "Export Monitoring", + "html.lifecycle_management": "Lifecycle management", + "html.lifecycle_management_configuration": "Lifecycle management configuration", + "html.more_configurations": "More configurations{$START_ITALIC_TEXT}{$CLOSE_ITALIC_TEXT}", + "html.no_config_found_click_to_add_one_1": "No configuration found,", + "html.no_config_found_click_to_add_one_2": " click here to add one", + "html.no_data": "No data!", + "html.page_not_found": " Page not found!\n", + "html.patient_p_object_name": "Patient P. Object Name", + "html.retrieve_monitoring": "Retrieve Monitoring", + "html.set_filters_query_first": "Set filters/query first{$START_ITALIC_TEXT}{$CLOSE_ITALIC_TEXT}", + "html.studies_stored": "Studies Stored", + "html.study_p_object_id": "Study P. ObjectID", + "http-error-handler.error": "Error {$PH}", + "human_performers": "Human Performers", + "ian_scp_ae_title": "IAN SCP AE Title", + "id": "ID", + "in_process": "IN PROCESS", + "include_defaults": "Include Defaults", + "include_defaults_desc": "Enable to return only the attributes specified by Query Parameter 'includefield' without including the default set of attributes specified by DICOM Part 18", + "include_field": "Include field", + "include_time": "Include Time", + "including_dicomdir": "Include DICOMDIR", + "index": "Index", + "info": "Info", + "info_link": "More Info", + "inherit": "inherit", + "inner_text.of_matching_studies": "of matching studies", + "inner_text.of_the_study": " of the study", + "input_readiness_state": "Input Readiness State", + "inst_sec": "Inst. / sec", + "installed": "Installed", + "instance_availability_notification_for_matching": "Instance Availability Notification for matching", + "instance_availability_notification_for_matching_studies": "Instance Availability Notification for matching Studies", + "instance_availability_notification_for_matching_series": "Instance Availability Notification for matching Series", + "instance_availability_notification_scp_ae_title": "Instance Availability Notification SCP AE Title", + "instance_availability_of_instance_to_external_instance_availability_scp_requested": "Instance Availability of Instance to external Instance Availability SCP was requested successfully", + "instance_availability_of_matching_studies_to_external_instance_availability_scp_was_scheduled": "Instance Availability of matching Studies to external Instance Availability SCP was scheduled successfully", + "instance_availability_of_selected_objects_to_external_instance_availability_scp_was_requested": "Instance Availability of selected objects to external Instance Availability SCP was requested successfully", + "instance_availability_of_series_to_external_instance_availability_scp_requested": "Instance Availability of Series to external Instance Availability SCP was requested successfully", + "instance_availability_of_study_to_external_instance_availability_scp_requested": "Instance Availability of Study to external Instance Availability SCP was requested successfully", + "instance_delete": "{$@@deleted} instances deleted successfully!", + "instance_number": "Instance Number", + "instance_queue_reject": "Instance queued for rejection successfully", + "institution_name": "Institution Name", + "institutional_department_name": "Institutional Department Name", + "interval": "Interval:", + "invoked_ops": " Invoked Ops. ", + "issuer_of_accession_number": "Issuer of accession number", + "issuer_of_accession_number_seq": "Issuer of Accession Number Sequence", + "issuer_of_admission_id_sequence": "Issuer of Admission ID Sequence", + "issuer_of_patient": "Issuer of Patient", + "issuer_of_patient_id": "Issuer of Patient ID", + "issuer_of_patient_id_seq_universal_entity_id": "Issuer of Patient ID Qualifiers Sequence - Universal Entity ID", + "issuer_of_patient_id_seq_universal_entity_id_type": "Issuer of Patient ID Qualifiers Sequence - Universal Entity ID Type", + "issuer_of_pid": "Issuer of PID", + "items": " Item(s)", + "japanese": "Japanese", + "jclouds": "jclouds", + "jms_priority_level_for_processing_the_export_task_from_0_lowest_to_9_highest": "Task Priority Level for processing the Export Task from 0 (lowest) to 9 (highest).", + "keycloak.failed_to_refresh_token": "Failed to refresh token", + "keycloak.not_logged_in": "Not logged in", + "last_month": "Last Month", + "last_quarter": "Last Quarter", + "last_week": "Last Week", + "last_year": "Last Year", + "leave_it_blank_to_generate_it_automatically": "Leave it blank to generate it automatically!", + "lifecycle-management.add_new_study_retention_policy": "Add new Study Retention Policy", + "lifecycle-management.aet_is_missing": "Aet is missing!", + "lifecycle-management.apply_rule": "APPLY RULE", + "lifecycle-management.apply_rules_to_selected_filters": "Apply rules to selected filters", + "lifecycle-management.device_not_found": "Device not found, please reload the page and try again!", + "lifecycle-management.edit_study_retention_policy": "Edit Study Retention Policy", + "lifecycle-management.generate_rule": "GENERATE RULE", + "lifecycle-management.generate_rule_from_the_filters": "Generate rule from the filters", + "lifecycle-management.get_count_of_studies": "Get count of studies", + "lifecycle-management.get_size_of_studies": "Get size of studies", + "lifecycle-management.name_of_the_study_retention_policy": "Name of the Study Retention Policy", + "lifecycle-management.period_of_the_retention_policy": "Period of the Retention Policy", + "lifecycle-management.properties_of_retention_policy": "Properties of Retention Policy", + "lifecycle-management.retention_period": "Retention Period", + "lifecycle-management.retention_policy_were_applied_to_resultCount_studies": "Retention policy were applied to {$@@count} studies", + "lifecycle-management.rule_priority": "Rule Priority", + "lifecycle-management.show_studies": "SHOW STUDIES", + "lifecycle-management.study_expiration_date": "Study Expiration Date", + "lifecycle-management.study_expiration_state": "Study Expiration State", + "lifecycle-management.study_retention_policy_priority_saved": "Study Retention Policy priority saved successfully to the archive device {$@@deviceName}", + "lifecycle-management.study_retention_policy_saved": "Study Retention Policy saved successfully to the archive device {$PH}", + "lifecycle-management.study_size_range_must_contain": "Study Size Range must contain an '-' like: 'min-', '-max' or 'min-max'", + "lifecycle-management.thiscounttext_count": "{$PH} COUNT", + "lifecycle-management.thissizetext_size": "{$PH} SIZE", + "limit": "Limit", + "limit_not_valid": "Limit value is not valid!", + "limit_of_mpps": "Limit of MPPS", + "limit_of_mwl": "Limit of MWL", + "limit_of_patients": "Limit of patients", + "limit_of_studies": "Limit of studies", + "limit_of_uwl": "Limit of UWL", + "link_selected_study_with_this_mwl": "Link selected Study with this MWL Item", + "link_study_with_mwl": "Link Study with MWL Item", + "list_compare_studies_tasks_which_were_created_between": "list Compare Studies Tasks which were created between", + "list_compare_studies_tasks_which_were_updated_between": "list Compare Studies Tasks which were updated between", + "loading": " loading...\n", + "local_aet": " Local AE Title ", + "local_aet_remote_aet": "Local AE Title ⇆ Remote AE Title", + "localaet": "Local AET", + "local_namespace_id": "Local Namespace Entity ID", + "low": "LOW", + "m": "M", + "major_failure_12": "Major failure (12)", + "male": "Male", + "manufacturer": "Manufacturer", + "manufacturer_model_name": "Manufacturer model name", + "mark_mode": "Mark mode", + "mark_mode_series_desc": "Select mark mode to mark series as Requested or Unscheduled", + "mark_mode_series_text": "Mark series as Requested or Unscheduled", + "mark_mode_study_desc": "Select mark mode to mark all series of study as Requested or Unscheduled", + "mark_mode_study_text": "Mark all series of study as Requested or Unscheduled", + "mark_series_requested_successfully": "Series marked as Requested successfully!", + "mark_series_unscheduled_successfully": "Series marked as Unscheduled successfully!", + "mark_study_requested_successfully": "All Series of Study marked as Requested successfully!", + "mark_study_unscheduled_successfully": "All Series of Study marked as Unscheduled successfully!", + "matches": "Matches", + "matching_task_question": "Are you sure, you want to {$PH} all matching tasks?", + "max_unit": "Max{$PH}", + "maximal_number_of_returned_data_entries": "Maximal number of returned data entries", + "maximal_number_of_tasks_in_returned_list": "Maximal number of tasks in returned list", + "memory_consumption_": "Memory consumption (B)", + "menu.admin_realm": "Admin Realm", + "menu.configuration": "Configuration", + "menu.correct_data": "Correct Data", + "menu.dashboard": "Dashboard", + "menu.data_exchange": "Data Exchange", + "menu.edit_account": "Edit Account", + "menu.lifecycle_management": "Lifecycle Management", + "menu.logout": "Logout", + "menu.monitoring": "Monitoring", + "menu.navigation": "Navigation", + "menu.statistics": "Statistics", + "menu.wildfly_console": "Wildfly Console", + "merge_attributes_from_selected_mwl_to_study": "Merge Attributes from selected MWL Item to Study", + "merge_attributes_from_selected_mwl_to_study_tooltip": "Option disabled as Patient in MWL differs from Patient in Study", + "merged_patients": "Merged Patients", + "merged_patients_tooltip": "Indicates to return merged patients", + "message": "Message", + "messaging.error_detail": "Error detail", + "metadata_update_failed": "Metadata Update Failed", + "metrics.metrics": "Metrics", + "metrics.metrics_name_is_missing": "Metrics Name is missing", + "metrics_descriptors_not_found": "No Metrics Descriptors were found, please configure Metrics Descriptors first", + "metrics_name": "Metrics Name", + "migration_for_batch_deleted": "Migration for the batch {$@@batch} was deleted!", + "migration_for_batch_started": "Migration for the batch {$@@batch} was started!", + "migrations_started_sucessfully": "Migrations started successfully!", + "migrations_stopped_sucessfully": "Migrations stopped successfully!", + "min_unit": "Min{$PH}", + "minor_failure_4": "Minor failure (4)", + "minute": "minute:", + "minute_plural": "minutes", + "minute_singular": "minute", + "missing_studies": "Missing Studies", + "missing_study_in_param": "Missing study in {$@@secondaryAet}", + "modalities": "Modalities", + "modalities.AR": "Autorefraction", + "modalities.AU": "Audio", + "modalities.BDUS": "Bone Densitometry (ultrasound)", + "modalities.BI": "Biomagnetic imaging", + "modalities.BMD": "Bone Densitometry (X-Ray)", + "modalities.DG": "Diaphanography", + "modalities.DOC": "Document", + "modalities.ECG": "Electrocardiography", + "modalities.EPS": "Cardiac Electrophysiology", + "modalities.ES": "Endoscopy", + "modalities.FID": "Fiducials", + "modalities.GM": "General Microscopy", + "modalities.HC": "Hard Copy", + "modalities.HD": "Hemodynamic Waveform", + "modalities.IO": "Intra-Oral Radiography", + "modalities.IOL": "Intraocular Lens Data", + "modalities.IVOCT": "Intravascular Optical Coherence Tomography", + "modalities.IVUS": "Intravascular Ultrasound", + "modalities.KER": "Keratometry", + "modalities.LEN": "Lensometry", + "modalities.LS": "Laser surface scan", + "modalities.OAM": "Ophthalmic Axial Measurements", + "modalities.OCT": "Optical Coherence Tomography (non-Ophthalmic)", + "modalities.OP": "Ophthalmic Photography", + "modalities.OPM": "Ophthalmic Mapping", + "modalities.OPT": "Ophthalmic Tomography", + "modalities.OPV": "Ophthalmic Visual Field", + "modalities.OSS": "Optical Surface Scan", + "modalities.PLAN": "Plan", + "modalities.PX": "Panoramic X-Ray", + "modalities.REG": "Registration", + "modalities.RESP": "Respiratory Waveform", + "modalities.RF": "Radio Fluoroscopy", + "modalities.RG": "Radiographic imaging (conventional film/screen)", + "modalities.RTDOSE": "Radiotherapy Dose", + "modalities.RTIMAGE": "Radiotherapy Image", + "modalities.RTPLAN": "Radiotherapy Plan", + "modalities.RTRECORD": "RT Treatment Record", + "modalities.RTSTRUCT": "Radiotherapy Structure Set", + "modalities.RWV": "Real World Value Map", + "modalities.SEG": "Segmentation", + "modalities.SM": "Slide Microscopy", + "modalities.SMR": "Stereometric Relationship", + "modalities.SR": "SR Document", + "modalities.SRF": "Subjective Refraction", + "modalities.STAIN": "Automated Slide Stainer", + "modalities.TG": "Thermography", + "modalities.VA": "Visual Acuity", + "modalities.XC": "External-camera Photograph", + "modalities.computed_radiography": "Computed Radiography", + "modalities.computed_tomography": "Computed Tomography", + "modalities.digital_radiography": "Digital Radiography", + "modalities.key_object_selection": "Key Object Selection", + "modalities.magnetic_resonance": "Magnetic Resonance", + "modalities.mammography": "Mammography", + "modalities.nuclear_medicine": "Nuclear Medicine", + "modalities.pet": "Positron emission tomography (PET)", + "modalities.presentation_state": "Presentation State", + "modalities.ultrasound": "Ultrasound", + "modalities.xa": "X-Ray Angiography", + "modalities_in_study": "Modalities in Study", + "modality": "Modality", + "modality.less": "less", + "modality.more": "more", + "mode_text.export": "export", + "mode_text.retrieve": "retrieve", + "model_name": "Model Name", + "monday": "Monday", + "monitoring.tab.associations": "Associations", + "monitoring.tab.diff": "Compare", + "monitoring_migration": "Monitoring Migration", + "monitoring_queue_batches": "Monitoring Queue Batches", + "month": "month:", + "month_plural": "months", + "month_singular": "month", + "more": "More", + "more_filters": "More filters", + "more_functions": "More functions", + "more_than_one_comparefield_mode_found": "More than one comparefield mode found, select one to get the results!", + "move": "Move", + "mpps": "MPPS", + "multi_patient_merge_not_supported": "Multi patient merge is not supported!", + "multiple_dicom_connection_selected": "Multiple DICOM connection selected!", + "mwl": "MWL", + "mwl.change_sps_status_on_matching": "Change SPS Status on matching MWL", + "mwl.delete_desc": "Delete Scheduled Procedure Steps from local MWL not returned by external MWL SCP", + "mwl.filter_by_scu": "Filter By SCU", + "mwl.filter_by_scu_desc": "Apply specified filter on matches returned by external MWL SCP", + "mwl.import_matching_sps": "Import matching Scheduled Procedure Steps to archive", + "mwl.import_matching_sps_to_archive": "Import matching SPS to archive", + "mwl.status_changed_successfully": "Status changed successfully", + "mwl.test_desc": "Only test import from external MWL SCP without performing the operation", + "name": "Name", + "name_of_the_new_connection_is_empty": "Name of the new connection is empty!", + "national_patient_registry": "National Patient Registry", + "navigation.tab.diffs": "Compare", + "net_connection": "Net. Connection", + "no": "No", + "no_aets_found": "No AETs found, please use the device-configurator or the LDAP-Browser to configure one!", + "no_data_found": "No data found!", + "no_date_restriction_specified_continue": "No date restriction specified, are you sure you want to continue?", + "no_deletion_constraint": "No Deletion Constraint", + "no_device_was_accessible": "No device was accessible!", + "no_diff_res": "No Diff Results found!", + "no_diffs": " ( No diffs )", + "no_directorie_selected": "No directory was selected, are you sure you want to trigger the migration for all directories?", + "no_elements_found": " No Elements found ", + "no_filter_set_warning": "No filter are set, are you sure you want to continue?", + "no_filter_template_found": "No filter-templates found!", + "no_queue_name": "No Queue Name selected!", + "no_running_migration_process_to_this_batch_was_found": "No running migration process to this batch was found!", + "no_series_found": "No Series found!", + "no_storages_found": "No storages found!", + "no_studies_found": "No Studies found!", + "no_tasks_found": "No tasks found!", + "nominal_success_0": "Nominal Success (0)", + "normal": "NORMAL", + "not_installed": "Not installed", + "not_retrievable_from_aet": "Not retrievable from AET", + "not_retrievable_from_external_retrieve_aet": "Not retrievable from external retrieve AET", + "nr_inst": "Nr.Inst. ", + "number_of_frames": "Number of Frames", + "number_of_instances": "#I", + "number_of_patient_related_studies": "Number of Patient Related Studies", + "number_of_related_series": "#S", + "number_of_related_studies": "#S", + "number_of_series_related_instances": "Number of Series Related Instances", + "number_of_study_related_instances": "Number of Study Related Instances", + "number_of_study_related_series": "Number of Study Related Series", + "o": "O", + "object_will_not_be_sent": "Object will not be sent!", + "only_failed_retrieving": "Only failed retrieving", + "only_failed_to_be_retrieved": "Only failed to be retrieved", + "only_for_me": "only for me", + "only_incomplete": "Only incomplete", + "only_incomplete_studies": "Only incomplete studies", + "only_with_studies": "only with studies", + "orderby.diff": "compare_arrows", + "orderby.mpps_alph_asc": "", + "orderby.mpps_alph_desc": "", + "orderby.mpps_asc": "", + "orderby.mpps_desc": "", + "orderby.mpps_desc_asc": "", + "orderby.mpps_namedsc_date_dsc": "", + "orderby.mwl_alph_asc": "", + "orderby.mwl_alph_desc": "", + "orderby.mwl_asc": "", + "orderby.mwl_desc": "", + "orderby.mwl_desc_asc": "", + "orderby.mwl_namedsc_date_dsc": "", + "orderby.patient": "", + "orderby.patient_alph": "", + "orderby.query_patients_to_external_archive": "Query Patients to external archive", + "orderby.query_studies_to_external_archive": "Query Studies to external archive", + "orderby.study": "", + "orderby.study_alph_asc": "", + "orderby.study_alph_desc": "", + "orderby.study_date_asc": "", + "orderby.study_date_desc": "", + "orderby.study_name_asc": "", + "orderby.study_name_desc": "", + "orderby_new.a_z_new_old": "", + "orderby_new.a_z_old_new": "", + "orderby_new.newest_first": "", + "orderby_new.oldest_first": "", + "orderby_new.order_a_z": "", + "orderby_new.z_a": "", + "orderby_new.z_a_new_old": "", + "orderby_new.z_a_old_new": "", + "other": "Other", + "other_attr": "Other attributes ", + "other_attributes": "Other attributes", + "page_size": "Page Size", + "patient-data.error_on_extracting_count": "Error on extracting count", + "patient-data.error_on_getting_patient": "Error on getting patient", + "patient-data.forkjoin_result": "forkJoin Result:", + "patient-data.get_count_patientscount": "Get Count {$PH}", + "patient-data.get_patients_to_compare": "Get patients to compare:", + "patient-data.more_than_one_patient_found": "More than one patient found", + "patient-data.no_patients_found": "No patients found!", + "patient-data.only_with_studies": "Only with studies", + "patient-data.patient_in_aet_not_found": "Patient in the {$@@secondarywebapp} not found!", + "patient-data.patient_name": "Patient Name", + "patient-data.patient_was_neither_found_on_secondary_web_app_service_nor_in_the_pdq": "Patient was neither found on Secondary Web App Service nor in the PDQ!", + "patient-data.patient_was_on_secondary_web_app_service_not_found": "Patient was not found on Secondary Web App Service!", + "patient-data.secondary_web_app_service_is_missing": "Secondary Web App Service is missing!", + "patient-data.you_want_to_send_the_selected_version": "Are you sure you want to send the selected version to {$PH}?", + "patient_compare": "Patient Compare", + "patient_created_successfully": "Patient created successfully!", + "patient_data": "Patient Data", + "patient_family_name": "Patient family name", + "patient_id": "Patient ID", + "patient_id_is_required": "Patient ID is required!", + "patient_identifiers": "Patient Identifiers", + "patient_name": "Patient name", + "patient_not_found": "Patient verification against a Patient Demographics Query Provider resulted in no patient found", + "patient_participant_object_name": "Patient ParticipantObjectName", + "patient_saved_successfully": "Patient saved successfully!", + "patient_unverified": "Patient not verified against any Patient Demographics Query Provider", + "patient_verification_failed": "Patient verification against a Patient Demographics Query Provider failed", + "patient_verification_status": "Patient Verification Status", + "patient_verified": "Patient verified against a Patient Demographics Query Provider", + "patients": "Patients", + "patients_birth_date": "Patient's Birth Date", + "patients_name": "Patient's Name", + "patients_sex": "Patient's Sex", + "patients_synchronized_successfully": "Patients synchronized successfully", + "patients_update_added_successfully_to_the_queue": "Patients update added successfully to the queue", + "performed_ops": "Performed Ops.", + "performed_station_ae_title": "Performed Station AE Title", + "performing_physician_family_name": "Performing physician family name", + "permission-configurator.permissions_saved_successfully": "Permissions saved successfully!", + "permission-configurator.ui_permission_config_was_not_found": "Ui permission config was not found!", + "permission_configuration": "Permission Configuration", + "permission_denied": " Permission denied! ", + "permission_not_found": "Permission not found!", + "person_family_name_tooltip": "Order of name components in the search field differs from the rendered person names in the list", + "photographs": "Photographs", + "placeholder.add_new_attribute": "Add new attribute", + "placeholder.all_actions": "All actions", + "placeholder.associations.archive": "Archive", + "placeholder.date_formated": "Date (yyyymmdd)", + "placeholder.delete_all_instances_before": "Delete all instances before this date", + "placeholder.dictionary-picker.__search": " Search..", + "placeholder.from_formated": "from (yyyymmdd)", + "placeholder.interval": "Interval", + "placeholder.iod-form-generator.alphabetic": "{$INTERPOLATION} Alphabetic", + "placeholder.iod-form-generator.ideographic": "{$INTERPOLATION} Ideographic", + "placeholder.iod-form-generator.phonetic": "{$INTERPOLATION} Phonetic", + "placeholder.max": "max", + "placeholder.min": "min", + "placeholder.permission-configurator.found_roles": "Found Roles", + "placeholder.permission-configurator.new_role": "New Role", + "placeholder.range-picker.hover_for_more_info": "Hover for more Info", + "placeholder.range-picker.maximal_study_date_range": "Maximal Study Date Range", + "placeholder.search_in_this_part": "Search in this part...", + "placeholder.specific-char-picker.__search": " Search..", + "placeholder.study.search_current_list": "Search current list", + "placeholder.study_size_range": "Study Size Range", + "placeholder.to_formated": "to (yyyymmdd)", + "pps_status": "Performed Procedure Step Status", + "preparemsg.count": "Count:{$@@count}
\n", + "preparemsg.error": "Error:{$@@error}
\n", + "preparemsg.failed": "- failed to update for :{$@@updated}
\n", + "preparemsg.noop": "- resulted in No Op for :{$@@updated}
\n", + "preparemsg.reject": "Reject:{$@@reject}
\n", + "preparemsg.updated": "- updated successfully for :{$@@updated}
\n", + "preparemsg.warning": "Warning:{$@@warning}
\n", + "press_start_to_Refresh_associations": "Press Start or Refresh to get associations {$START_TAG_SPAN}from {$INTERPOLATION}{$CLOSE_TAG_SPAN}", + "primary_aet": "Primary AET", + "primary_device_type": "Primary device type", + "primary_web_app_service": "Primary Web App Service", + "priority": "Priority", + "procedure_step_label": "Procedure Step Label", + "procedure_step_state": "Procedure Step State", + "process_could_not_be_started": "Process could not be started!", + "process_executed": "Process executed successfully", + "process_triggered_successfully": "Process triggered successfully!", + "processing_end_time_range": "Processing end time range", + "processing_start_time": "Processing start time", + "processing_start_time_range": "Processing start time range", + "product_labelling.version": "Version", + "properties": "Properties", + "protect_study": "Protect Study", + "ps_aet": "PS AET", + "queries_count": "Queries Count", + "query_devices": "Query Devices", + "query_mpps": "Query MPPS", + "query_mwl": "Query MWL", + "query_mwls_pname_asc_sps_new_old": "Patient Name ascending, New to Old - ScheduledProcedureStepStartDateTime", + "query_mwls_pname_asc_sps_old_new": "Patient Name ascending, Old to New - ScheduledProcedureStepStartDateTime", + "query_mwls_pname_desc_sps_new_old": "Patient Name descending, New to Old - ScheduledProcedureStepStartDateTime", + "query_mwls_pname_desc_sps_old_new": "Patient Name descending, Old to New - ScheduledProcedureStepStartDateTime", + "query_mwls_sps_newest_first": "Newest ScheduledProcedureStepStartDateTime first", + "query_mwls_sps_oldest_first": "Oldest ScheduledProcedureStepStartDateTime first", + "query_only_the_count": "QUERY ONLY THE COUNT", + "query_only_studies_size": "Query only size of studies", + "query_patients": "Query Patients", + "query_patients_pname_asc": "Patient Name ascending", + "query_patients_pname_desc": "Patient Name descending", + "query_pdw": "Query External Patient Demographics Service", + "query_series_mpps_pname_asc_pps_new_old": "Patient Name ascending, New to Old - PerformedProcedureStepStartDateTime", + "query_series_mpps_pname_asc_pps_old_new": "Patient Name ascending, Old to New - PerformedProcedureStepStartDateTime", + "query_series_mpps_pname_desc_pps_new_old": "Patient Name descending, New to Old - PerformedProcedureStepStartDateTime", + "query_series_mpps_pname_desc_pps_old_new": "Patient Name descending, Old to New - PerformedProcedureStepStartDateTime", + "query_series_mpps_pps_newest_first": "Newest PerformedProcedureStepStartDateTime first", + "query_series_pps_oldest_first": "Oldest PerformedProcedureStepStartDateTime first", + "query_studies": "Query Studies", + "query_studies_pname_asc_study_datetime_new_old": "Patient Name ascending, New to Old - StudyDateTime", + "query_studies_pname_asc_study_datetime_old_new": "Patient Name ascending, Old to New - StudyDateTime", + "query_studies_pname_desc_study_datetime_new_old": "Patient Name descending, New to Old - StudyDateTime", + "query_studies_pname_desc_study_datetime_old_new": "Patient Name descending, Old to New - StudyDateTime", + "query_studies_study_datetime_newest_first": "Newest StudyDateTime first", + "query_studies_study_datetime_oldest_first": "Oldest StudyDateTime first", + "query_uwl": "Query UWL", + "queue": "Queue", + "queue-dashboard.configuration_missing": "Configuration missing!", + "queue_batch_for_migration": "Queue Batch for Migration", + "queue_name": "Queue Name", + "queue_rejection": "Queue Rejection", + "queue_the_requests": "Patient Compare", + "queue_time": "Queue time", + "queued": "Queued", + "queued_exporter": "Queued exporter", + "queues": "Queues", + "queues_deleted": "{$@@deleted} queues deleted successfully!", + "range": "Range", + "range-picker.range_picker": "Range picker", + "read_only": "Read Only", + "read_r": "Read (R)", + "reason_for_modification": "Reason for Modification", + "reason_for_modification_desc": "Store original values of modified Attributes in Original Attributes Sequence (0400,0561) with given Reason for the Attribute Modification (0400,0565)", + "recalculate_checksum_on_storage_system": "recalculate checksum of object on Storage System", + "receiving_aet_of_series": "Receiving AET of Series", + "receiving_application_entity_title_of_series": "Receiving Application Entity Title of Series", + "receiving_hl7_application_of_series": "Receiving HL7 Application Of Series", + "receiving_hl7_facility_of_series": "Receiving HL7 Facility Of Series", + "receiving_presentation_addr_of_series": "Receiving Presentation Address of Series", + "recreate_db_record": "Recreate DB Record", + "redraw": "Redraw", + "referenced_request_sequence_0040A370": "Referenced Request Sequence (0040,A370)", + "referring_physician": "Referring physician", + "referring_physician_family_name": "Referring physician family name", + "referring_physician_name": "Referring physician name", + "refresh": "Refresh", + "rejection_code_for_expired_retention_policy_not_found": "Rejection code for expired retention policy not found!", + "reload_successful": "Reload successful", + "remote_aet": " Remote AE Title ", + "remoteaet": "Remote AET", + "remote_ae_title_to_filter_by": "Remote AE Title to filter by", + "remove_all_selections": "Remove all selections", + "remove_extension_from_device": "Remove {$PH} extension from device", + "remove_filter_template": "Are you sure you want to remove this filter-template?", + "remove_part_selector.remove_from_device": "REMOVE FROM DEVICE", + "remove_part_selector.title": "Select element to remove from device", + "replace": "Replace", + "replace_study_by_requested_procedure_in_selected_mwl": "Replace Study by requested Procedure from selected MWL Item", + "request_cancellation_of_workitem": "Request Cancellation of Workitem", + "request_instance_availability_of_instance_to_external_instance_availability_scp": "Request Instance Availability of Instance to external Instance Availability SCP", + "request_instance_availability_of_series_to_external_instance_availability_scp": "Request Instance Availability of Series to external Instance Availability SCP", + "request_instance_availability_of_study_to_external_instance_availability_scp": "Request Instance Availability of Study to external Instance Availability SCP", + "request_sequence": "Request Sequence", + "request_storage_commitment_of_instance_from_external_storage_commitment_scp": "Request Storage Commitment of Instance from external Storage Commitment SCP", + "request_storage_commitment_of_series_from_external_storage_commitment_scp": "Request Storage Commitment of Series from external Storage Commitment SCP", + "request_storage_commitment_of_study_from_external_storage_commitment_scp": "Request Storage Commitment of Study from external Storage Commitment SCP", + "requested": "Requested", + "requested_priority": "Requested Priority: 0=NORMAL, 1=HIGH, 2=LOW", + "requested_procedure_id_00401001": "Requested Procedure ID (0040,1001)", + "requesting_physician_00321032": "Requesting Physician (0032,1032)", + "requesting_service_00321033": "Requesting Service (0032,1033)", + "requestor_user_id": "Requestor UserID", + "required_parameter_is_missing": "Required parameter is missing!", + "reschedule": "reschedule", + "reschedule_all_matching_tasks": "Reschedule all matching tasks", + "reschedule_this_task": "Reschedule this task", + "reset_to_as_received": "Reset to as received", + "responsible_person": "Responsible Person", + "responsible_person_desc": "Name of person with medical or welfare decision making authority for the Patient, typically if the Patient is a non-human organism.", + "rest_param": "Rest ( {$@@groupingFilter} )", + "result": "Result", + "retainObj": "Retain objects on the filesystem", + "retrievable_from_external_retrieve_aet": "Retrievable from external retrieve AET", + "retrieve": "Retrieve", + "retrieve-export.aetitle_is_missing": "AETitle is missing", + "retrieve-export.calling_aetitle": "Calling AETitle", + "retrieve-export.calling_aetitle_or_external_aetitle_missing": "Calling AETitle or External AETitle missing!", + "retrieve-export.calling_external_destination_aet_missing": "Calling AETitle,External AETitle or destination AETitle is missing!", + "retrieve-export.count_0": "Count:0", + "retrieve-export.count_param": "Count:{$@@count}", + "retrieve-export.destination_aetitle": "Destination AETitle", + "retrieve-export.export_executed_param": "Export executed successfully!
{$@@count} studies added in the queue", + "retrieve-export.export_split_process": "Export split process", + "retrieve-export.export_studies": "Export studies", + "retrieve-export.external_aetitle": "External AETitle", + "retrieve-export.get_batch_id_from_file_name": "Get Batch ID from file name", + "retrieve-export.onsubmit_object": "onsubmit object", + "retrieve-export.query_aetitle": "Query AETitle", + "retrieve-export.query_count": "QUERY COUNT", + "retrieve-export.query_studies": "QUERY STUDIES", + "retrieve-export.retrieve_executed_param": "Retrieve executed successfully!
{$@@count} studies added in the queue", + "retrieve-export.retrieve_split_process": "Retrieve split process", + "retrieve-export.retrieve_studies": "Retrieve studies", + "retrieve-export.split_day_ways": "Split day-ways", + "retrieve-export.split_study_date_day_ways": "Split (StudyDate) day-ways", + "retrieve-export.study_created_date_time": "Study Created Date Time", + "retrieveAet": "Retrieve AET", + "retrieves_count": "Retrieves Count", + "rfc2079_uniform_resource_identifier": "RFC2079: Uniform Resource Identifier", + "role": "Role", + "route_configuration_name": "Route Configuration Name", + "route_configuration_name_is_required": "Route Configuration name is required!", + "route_type": "Route Type", + "routing_status": "Routing Status", + "rss_memory_consumption_": "RSS memory consumption (B)", + "s._p._step_priority": "S. P. Step Priority", + "s._procedure_step_date": "S. Procedure Step Date", + "saturday": "Saturday", + "save_changes": "Save Changes", + "save_the_template_for_all_the_user_that_have_the_following_role": "Save the template for all the user that have the following role", + "save_the_template_only_for_my_username": "Save the template only for my username", + "save_this_template": "Save this template", + "schedule-picker.drop_here_some_element": "Drop here some element to edit", + "schedule-picker.schedule_picker": "Schedule picker", + "schedule_at": "Schedule at", + "schedule_at_desc": "Schedule at (if not set, schedule immediately)", + "schedule_instance_availability_of_matching_studies_to_external_instance_availability_scp": "Schedule Instance Availability of matching Studies to external Instance Availability SCP", + "schedule_storage_commit_for_matching_studies": "Schedule Storage Commitment for matching Studies", + "schedule_storage_commit_for_matching_series": "Schedule Storage Commitment for matching Series", + "schedule_storage_commitment_of_matching_studies_from_external_storage_commitment_scp": "Schedule Storage Commitment of matching Studies from external Storage Commitment SCP", + "scheduled": "Scheduled", + "scheduled_human_performers_sequence_00404034": "Scheduled Human Performers Sequence (0040,4034)", + "scheduled_performing_physicians_name": "Scheduled Performing Physician's Name", + "scheduled_procedure_step_id": "Scheduled Procedure Step ID", + "scheduled_procedure_step_modification_date_and_time": "Scheduled Procedure Step Modification Date and Time", + "scheduled_procedure_step_priority": "Scheduled Procedure Step Priority", + "scheduled_procedure_step_start_date": "Scheduled Procedure Step Start Date", + "scheduled_procedure_step_start_date_and_time": "Scheduled Procedure Step Start Date and Time", + "scheduled_procedure_step_start_date_time": "Scheduled Procedure Step Start DateTime", + "scheduled_procedure_step_start_date_time_00404005_as_in_created_ups": "Scheduled Procedure Step Start DateTime (0040,4005) as in created UPS", + "scheduled_procedure_step_start_time": "Scheduled Procedure Step Start Time", + "scheduled_procedure_step_status": "Scheduled Procedure Step Status", + "scheduled_start_end_time_range": "Scheduled / Start / End Time Range", + "scheduled_station_ae_title": "Scheduled Station AE Title", + "scheduled_station_class_code_sequence_00404026": "Scheduled Station Class Code Sequence (0040,4026)", + "scheduled_station_geographic_location_code_sequence_00404027": "Scheduled Station Geographic Location Code Sequence (0040,4027)", + "scheduled_station_name_code_sequence_00404025": "Scheduled Station Name Code Sequence (0040,4025)", + "scheduled_storage_verification_of_matching_series": "Schedule Storage Verification of matching Series", + "scheduled_storage_verification_of_matching_studies": "Schedule Storage Verification of matching Studies", + "scheduled_time": "Scheduled Time", + "scheduled_time_range": "Scheduled time range", + "scheduled_workitem": "Scheduled Workitem", + "screenshots": "Screenshots", + "search": "Search", + "search_device": "Search device", + "search_dot": "Search...", + "search_list": "Search list...", + "search_patients": "Search Patients", + "search_response_payload_according_dicom_ps_3.18": "Search Response Payload according DICOM PS 3.18", + "searched_element_not_found": "Searched element not found!", + "second_plural": "seconds", + "second_singular": "second", + "secondary_aet": "Secondary AET", + "secondary_web_app_service": "Secondary Web App Service", + "select": "Select", + "select_PDQ": "Select PDQ Service", + "select_a_role": "Select a role", + "select_all_patients": "Select all patients", + "select_all_studies": "Select all studies", + "select_archive_aet": "Select an archive AET:", + "select_before_date_and_status_to_delete_all_storage_commitments": "Select before date and status to delete all storage commitments", + "select_device": "Select Device", + "select_directory": "Select Directory", + "select_element_for_clone": "Select element for clone", + "select_existing_device": "Select existing device", + "select_first_a_folder": "Select first a folder!", + "select_hl7_application_name_for_the_aets": "Select Hl7Application name for the AETs", + "select_one_of_the_directories_to_migrate": "Select one of the directories that you want to migrate", + "select_queue_name_if_you_want_to_reschedule": "Select queue name if you want to reschedule to an other queue", + "select_rejection_note_type": "Select Rejection Note type", + "select_role": "Select Role:", + "select_scheduled_procedure_step_status": "Select the Scheduled Procedure Step Status", + "select_stow_webapp": "Select STOW destination web application:", + "select_the_calling_aetitle": "Select the calling AETitle:", + "select_the_destination_aetitle": "Select the destination AETitle:", + "select_the_destination_aetitle_store_scp": "Select the destination AETitle (STORE-SCP):", + "select_the_exporter": "Select the exporter:", + "select_the_external_aetitle": "Select the external AETitle:", + "select_the_external_aetitle_c_move_scp": "Select the external AETitle (C-MOVE SCP):", + "select_the_query_aetitle": "Select the query AETitle:", + "select_the_stow_rs_server": "Select the STOW-RS server:", + "select_the_type_of_the_exporter": "Select the type of the exporter:", + "select_this_ae_as_the_right_one": "select this AE as the right one", + "select_this_one": "Select this one", + "select_this_version_as_the_right_one": "Select this version as the right one", + "selected": "selected", + "selected_objects_to_action": "Selected Objects to {$INTERPOLATION}", + "selected_target_mwl": "Selected target MWL", + "selected_target_patient": "Selected target patient", + "selected_target_study": "Selected target study", + "selection.action.copy": "Copy", + "selection.action.cut": "Cut", + "selection.action.link": "Link", + "selection.action.merge": "Merge", + "selections-dicom-view.remove_from_selection": "Remove from selection", + "send_data_to": "SEND DATA TO:", + "send_data_to_param": "SEND DATA TO {$@@webAppService}", + "send_ian_request_for_selections": "Send IAN for selections", + "send_instance_availability_notification_request_for_selected_objects": "Send Instance Availability Notification Request for selected objects", + "send_storage_commitment_request_for_selected_objects": "Send Storage Commitment Request for selected objects", + "send_storage_commitment_request_for_selections": "Send Storage Commitment Request for selections", + "send_storage_commitment_request_for_study": "Send Storage Commitment Request for this study", + "sending_aet_of_series": "Sending AET of Series", + "sending_application_entity_title_of_series": "Sending Application Entity Title of Series", + "sending_hl7_application_of_series": "Sending HL7 Application Of Series", + "sending_hl7_facility_of_series": "Sending HL7 Facility Of Series", + "sending_presentation_addr_of_series": "Sending Presentation Address of Series", + "series": "Series", + "series_description": "Series Description", + "series_instance_uid": "Series Instance UID", + "series_metadata_update_failed": "Series Metadata Update Failed", + "series_number": "Series Number", + "series_queue_reject": "Series queued for rejection successfully", + "series_saved": "Series saved successfully!", + "series_uid_field": "Series UID Field", + "series_will_not_be_sent": "Series will not be sent!", + "serious_failure_8": "Serious failure (8)", + "services": "Services", + "set_change_expired_date": "Set/Change expired date", + "set_dicom_operations": "Set DICOM operations", + "set_expiration_date_to_never_if_you_want_also_to_protect_the_study": "Set Expiration Date to 'never' if you want also to protect the study", + "set_expiration_date_to_never_to_protect_the_study": "Existing / new Expiration Date will be nullified and study expiration state will be set to FROZEN to protect the study from being expired or rejected", + "set_expired_date_for_the_study": "Set expired date for the study.", + "set_filter_template_name": "Set the name for the new filter template:", + "set_the_c-move_scp_and_store-scp_aets": "Set the C-MOVE SCP and STORE-SCP AETs", + "set_time": "Set time", + "severity": "Severity", + "sex": "Sex", + "show_all_tasks": "Show all tasks", + "show_batch_detail_list": "Show batch detail list", + "show_details": "Show details", + "show_diff_results_of_this_task": "Show diff results of this task", + "show_forward_retrieve_tasks": "Show forward retrieve tasks", + "show_group_details": "Show group details", + "show_properties": "Show Properties", + "show_retrieve_tasks": "Show retrieve tasks", + "single": "single", + "single_date": "Single Date", + "single_day": "Single day", + "single_hour": "Single hour", + "size": "Size", + "size-range-picker.title": "Set Size Range:", + "size_clinch_param": "Size ( {$@@sum} )", + "smart_picker": "Smart Picker", + "software_configuration": "Software Configuration", + "software_version": "Software version", + "some_or_all_patients_couldnt_be_updated": "Some or all patients couldn't be updated, execute diff again and try again", + "some_or_all_studies_couldnt_be_exported": "Some or all studies couldn't be exported, execute diff again and try again", + "some_or_all_studies_couldnt_be_rejected": "Some or all studies couldn't be rejected, execute diff again and try again", + "something_went_wrong": "Something went wrong!", + "something_went_wrong,_reload_the_page_and_try_again": "Something went wrong, reload the page and try again!", + "sop_class_uid": "SOP Class UID", + "sop_classes_in_study": "SOP classes in study", + "sort": "Sort", + "sort_by_creation_time_asc": "Sort by creation time (ASC)", + "sort_by_creation_time_desc": "Sort by creation time (DESC)", + "sort_by_updated_time_asc": "Sort by updated time (ASC)", + "sort_by_updated_time_desc": "Sort by updated time (DESC)", + "sort_by_scheduled_time_asc": "Sort by scheduled time (ASC)", + "sort_by_scheduled_time_desc": "Sort by scheduled time (DESC)", + "source_of_previous_values": "Source of Previous Values", + "source_of_previous_values_desc": "Source of Previous Values (0400,0561) stored with original Attributes in Original Attributes Sequence (0400,0561)", + "source_of_previous_values_label": "Source of previous values: ", + "source_host": "Source Host", + "source_user_id": "Source UserID", + "sp_physicians_family_name": "SP Physician's family name", + "sp_physicians_name": "SP Physician's Name", + "space_usable_total": "Space ( Usable / Total )", + "spec_time": "Spec. Time", + "specific_time": "Specific Time", + "split_study_date_range": "Split Study Date Range", + "split_study_date_range_duration_format": "Split Study Date Range as per duration format", + "sps_description": "SPS Description", + "sps_start_date": "SPS Start Date", + "sps_start_time": "SPS Start Time", + "sps_status": "SPS Status", + "sps_status_on_selections": "SPS Status on selections", + "start_all_migrations": "Start all migrations", + "start_auto_refresh": "Start Auto Refresh", + "started": "Started", + "station": "Station", + "station_class_code": "Station Class Code", + "station_name": "Station name", + "station_name_code": "Station Name Code", + "statistics-tab.studies_stored_advanced": "Studies Stored Advanced", + "statistics-tab.studies_stored_simple": "Studies Stored Simple", + "statistics.setting_time_range_failed_on_application_error_counts_": "Setting time range failed on Application Error Counts ", + "statistics.setting_time_range_failed_on_application_warning_counts_": "Setting time range failed on Application Warning Counts ", + "statistics.setting_time_range_failed_on_audit_event_": "Setting time range failed on Audit Event ", + "statistics.setting_time_range_failed_on_authentication_audit_event_": "Setting time range failed on Authentication Audit Event ", + "statistics.setting_time_range_failed_on_docker_stats_cpu": "Setting time range failed on Docker Stats - CPU", + "statistics.setting_time_range_failed_on_docker_stats_memory_rss": "Setting time range failed on Docker Stats - Memory RSS", + "statistics.setting_time_range_failed_on_docker_stats_memory_usage": "Setting time range failed on Docker Stats - Memory Usage", + "statistics.setting_time_range_failed_on_docker_stats_network_transmitted_packets": "Setting time range failed on Docker Stats - Network Transmitted packets", + "statistics.setting_time_range_failed_on_docker_stats_reads_p_second": "Setting time range failed on Docker Stats - Reads p. second", + "statistics.setting_time_range_failed_on_docker_stats_writes_p_second": "Setting time range failed on Docker Stats - Writes p. second", + "statistics.setting_time_range_failed_on_error_counts_": "Setting time range failed on Error Counts ", + "statistics.setting_time_range_failed_on_queries_counts_": "Setting time range failed on Queries Counts ", + "statistics.setting_time_range_failed_on_queries_userid_": "Setting time range failed on Queries UserID ", + "statistics.setting_time_range_failed_on_retrieve_counts_": "Setting time range failed on Retrieve Counts ", + "statistics.setting_time_range_failed_on_retrieves_userid_": "Setting time range failed on Retrieves UserID ", + "statistics.setting_time_range_failed_on_stored_counts_": "Setting time range failed on Stored Counts ", + "statistics.setting_time_range_failed_on_studies_stored_receiving_aet_user_id_": "Setting time range failed on Studies Stored / Receiving AET UserID ", + "statistics.setting_time_range_failed_on_studies_stored_sopclass_": "Setting time range failed on Studies Stored / SOPClass ", + "statistics.setting_time_range_failed_on_studies_stored_user_id_": "Setting time range failed on Studies Stored / UserID ", + "status": "Status", + "status_of_tasks": "Status of tasks", + "status_of_tasks_to_filter_by": "Status of tasks to filter by", + "statuses": "Statuses", + "step_modification_time": "Step Modification Time", + "stop_all_migrations": "Stop all migrations", + "stop_auto_refresh": "Stop Auto Refresh", + "storage-commitment._h": " h", + "storage-commitment._min": " min", + "storage-commitment._ms": " ms", + "storage-commitment._sec": " sec", + "storage-systems.metadata_storage": "Metadata Storage", + "storage-systems.object_storage": "Object Storage", + "storage-systems.seriesmetadata_storage": "SeriesMetadata Storage", + "storage-systems.uri_schema": "Uri Schema", + "storage-systems.usablespace_below": "UsableSpace below", + "storage-verification.check_if_object_exists_on_storage_system": "check if object exists on Storage System", + "storage-verification.check_size_of_object_on_storage_system": "check size of object on Storage System", + "storage-verification.failed_verification": "Failed verification", + "storage-verification.outcome_message": "Outcome Message", + "storage-verification.storage_policy": "Storage Policy", + "storage-verification.storage_verification_policy": "Storage Verification Policy", + "storage-verification.update_location": "Update location", + "storage_IDs": "Storage IDs", + "storage_cluster_id": "Storage Cluster ID", + "storage_clustered": "Storage Clustered", + "storage_clustered_no": "Do not query studies whose objects are on other storage systems of the 'Storage Cluster' to which selected 'Storage ID' belongs", + "storage_clustered_tooltip": "Query studies whose objects are also on other storage systems of the 'Storage Cluster' to which selected 'Storage ID' belongs; applicable only in combination with 'Storage ID' filter", + "storage_clustered_yes": "Query studies whose objects are also on other storage systems of the 'Storage Cluster' to which selected 'Storage ID' belongs", + "storage_commitment_of_instance_from_external_storage_commitment_scp_requested": "Storage Commitment of Instance from external Storage Commitment SCP was requested successfully", + "storage_commitment_of_matching_studies_from_external_storage_commitment_scp_was_scheduled": "Storage Commitment of matching Studies from external Storage Commitment SCP was scheduled successfully", + "storage_commitment_of_selected_objects_from_external_storage_commitment_scp_was_requested": "Storage Commitment of selected objects from external Storage Commitment SCP was requested successfully", + "storage_commitment_of_series_from_external_storage_commitment_scp_requested": "Storage Commitment of Series from external Storage Commitment SCP was requested successfully", + "storage_commitment_of_study_from_external_storage_commitment_scp_requested": "Storage Commitment of Study from external Storage Commitment SCP was requested successfully", + "storage_commitment_scp_ae_title": "Storage Commitment SCP AE Title", + "storage_commitments": "Storage commitments", + "storage_duration": "Storage Duration", + "storage_exported": "Storage Exported", + "storage_exported_no": "Do not query studies whose objects are on configured 'Export Storage ID' storage systems of selected 'Storage ID'", + "storage_exported_tooltip": "Query studies whose objects are also on configured 'Export Storage ID' storage systems of selected 'Storage ID'; applicable only in combination with 'Storage ID' filter", + "storage_exported_yes": "Query studies whose objects are also on configured 'Export Storage ID' storage systems of selected 'Storage ID'", + "storage_id": "Storage ID", + "storage_id_tooltip": "Only query studies whose objects are on a particular storage system", + "storage_sop_classes_in_study": "Storage SOP classes in study", + "storage_sop_class_image.breast_projection_xray_presentation": "Breast Projection X-Ray Image Storage - For Presentation", + "storage_sop_class_image.breast_projection_xray_processing": "Breast Projection X-Ray Image Storage - For Processing", + "storage_sop_class_image.breast_tomosynthesis": "Breast Tomosynthesis Image Storage", + "storage_sop_class_image.computed_radiography": "Computed Radiography Image Storage", + "storage_sop_class_image.corneal_topography_map": "Corneal Topography Map Storage", + "storage_sop_class_image.ct": "CT Image Storage", + "storage_sop_class_image.dermoscopic_photography": "Dermoscopic Photography Image Storage", + "storage_sop_class_image.digital_intra_oral_xray_presentation": "Digital Intra-Oral X-Ray Image Storage - For Presentation", + "storage_sop_class_image.digital_intra_oral_xray_processing": "Digital Intra-Oral X-Ray Image Storage - For Processing", + "storage_sop_class_image.digital_mammography_xray_presentation": "Digital Mammography X-Ray Image Storage - For Presentation", + "storage_sop_class_image.digital_mammography_xray_processing": "Digital Mammography X-Ray Image Storage - For Processing", + "storage_sop_class_image.digital_xray_presentation": "Digital X-Ray Image Storage - For Presentation", + "storage_sop_class_image.digital_xray_processing": "Digital X-Ray Image Storage - For Processing", + "storage_sop_class_image.enhanced_continuous_rt": "Enhanced Continuous RT Image Storage", + "storage_sop_class_image.enhanced_ct": "Enhanced CT Image Storage", + "storage_sop_class_image.enhanced_mr": "Enhanced MR Image Storage", + "storage_sop_class_image.enhanced_mr_color": "Enhanced MR Color Image Storage", + "storage_sop_class_image.enhanced_pet": "Enhanced PET Image Storage", + "storage_sop_class_image.enhanced_rt": "Enhanced RT Image Storage", + "storage_sop_class_image.enhanced_us_volume": "Enhanced US Volume Storage", + "storage_sop_class_image.enhanced_xa": "Enhanced XA Image Storage", + "storage_sop_class_image.enhanced_xrf": "Enhanced XRF Image Storage", + "storage_sop_class_image.intravascular_optical_coherence_tomography_presentation": "Intravascular Optical Coherence Tomography Image Storage - For Presentation", + "storage_sop_class_image.intravascular_optical_coherence_tomography_processing": "Intravascular Optical Coherence Tomography Image Storage - For Processing", + "storage_sop_class_image.legacy_converted_enhanced_ct": "Legacy Converted Enhanced CT Image Storage", + "storage_sop_class_image.legacy_converted_enhanced_mr": "Legacy Converted Enhanced MR Image Storage", + "storage_sop_class_image.legacy_converted_enhanced_pet": "Legacy Converted Enhanced PET Image Storage", + "storage_sop_class_image.mr": "MR Image Storage", + "storage_sop_class_image.multi_frame_grayscale_byte_secondary_capture": "Multi-frame Grayscale Byte Secondary Capture Image Storage", + "storage_sop_class_image.multi_frame_grayscale_word_secondary_capture": "Multi-frame Grayscale Word Secondary Capture Image Storage", + "storage_sop_class_image.multi_frame_true_color_secondary_capture": "Multi-frame True Color Secondary Capture Image Storage", + "storage_sop_class_image.nuclear_medicine": "Nuclear Medicine Image Storage", + "storage_sop_class_image.nuclear_medicine_retired": "Nuclear Medicine Image Storage (Retired)", + "storage_sop_class_image.opthalmic_optical_coherence_tomography_b_scan_volume_analysis": "Ophthalmic Optical Coherence Tomography B-scan Volume Analysis Storage", + "storage_sop_class_image.opthalmic_optical_coherence_tomography_en_face": "Ophthalmic Optical Coherence Tomography En Face Image Storage", + "storage_sop_class_image.opthalmic_photography_8_bit": "Ophthalmic Photography 8 Bit Image Storage", + "storage_sop_class_image.opthalmic_photography_16_bit": "Ophthalmic Photography 16 Bit Image Storage", + "storage_sop_class_image.opthalmic_thickness_map": "Ophthalmic Thickness Map Storage", + "storage_sop_class_image.opthalmic_tomography": "Ophthalmic Tomography Image Storage", + "storage_sop_class_image.positron_emission_tomography": "Positron Emission Tomography Image Storage", + "storage_sop_class_image.secondary_capture": "Secondary Capture Image Storage", + "storage_sop_class_image.ultrasound": "Ultrasound Image Storage", + "storage_sop_class_image.ultrasound_multi_frame": "Ultrasound Multi-frame Image Storage", + "storage_sop_class_image.ultrasound_multi_frame_retired": "Ultrasound Multi-frame Image Storage (Retired)", + "storage_sop_class_image.ultrasound_retired": "Ultrasound Image Storage (Retired)", + "storage_sop_class_image.vl_endoscopic": "VL Endoscopic Image Storage", + "storage_sop_class_image.vl_microscopic": "VL Microscopic Image Storage", + "storage_sop_class_image.vl_multi_frame_trial_retired": "VL Multi-frame Image Storage - Trial (Retired)", + "storage_sop_class_image.vl_photographic": "VL Photographic Image Storage", + "storage_sop_class_image.vl_slide_coordinates_microscopic": "VL Slide-Coordinates Microscopic Image Storage", + "storage_sop_class_image.vl_trial_retired": "VL Image Storage - Trial (Retired)", + "storage_sop_class_image.vl_whole_slide_microscopy": "VL Whole Slide Microscopy Image Storage", + "storage_sop_class_image.wide_field_opthalmic_photography_3d_coordinates": "Wide Field Ophthalmic Photography 3D Coordinates Image Storage", + "storage_sop_class_image.wide_field_opthalmic_photography_stereographic_projection": "Wide Field Ophthalmic Photography Stereographic Projection Image Storage", + "storage_sop_class_image.xray_3d_angiographic": "X-Ray 3D Angiographic Image Storage", + "storage_sop_class_image.xray_3d_craniofacial": "X-Ray 3D Craniofacial Image Storage", + "storage_sop_class_image.xray_angiographic": "X-Ray Angiographic Image Storage", + "storage_sop_class_image.xray_angiographic_biplane_retired": "X-Ray Angiographic Bi-Plane Image Storage (Retired)", + "storage_sop_class_image.xray_radiofluoroscopic": "X-Ray Radiofluoroscopic Image Storage", + "storage_sop_class_image.private_fuji_cr": "Private Fuji CR Image Storage", + "storage_sop_class_image.private_ge_dicom_ct": "Private GE Dicom CT Image Info Object", + "storage_sop_class_image.private_ge_dicom_display": "Private GE Dicom Display Image Info Object", + "storage_sop_class_image.private_ge_dicom_mr": "Private GE Dicom MR Image Info Object", + "storage_sop_class_image.private_philips_ct_synthetic": "Private Philips CT Synthetic Image Storage", + "storage_sop_class_image.private_philips_cx": "Private Philips CX Image Storage", + "storage_sop_class_image.private_philips_cx_synthetic": "Private Philips CX Synthetic Image Storage", + "storage_sop_class_image.private_philips_mr_color": "Private Philips MR Color Image Storage", + "storage_sop_class_image.private_philips_mr_synthetic": "Private Philips MR Synthetic Image Storage", + "storage_sop_class_image.private_philips_perfusion": "Private Philips Perfusion Image Storage", + "storage_sop_class_image.private_pixelmed_floating_point": "Private PixelMed Floating Point Image Storage", + "storage_sop_class_image.private_pixelmed_legacy_converted_enhanced_ct": "Private PixelMed Legacy Converted Enhanced CT Image Storage", + "storage_sop_class_image.private_pixelmed_legacy_converted_enhanced_mr": "Private PixelMed Legacy Converted Enhanced MR Image Storage", + "storage_sop_class_image.private_pixelmed_legacy_converted_enhanced_pet": "Private PixelMed Legacy Converted Enhanced PET Image Storage", + "storage_sop_class_image.private_pmod_multi_frame": "Private PMOD Multi-frame Image Storage", + "storage_sop_class_image.private_toshiba_us": "Private Toshiba US Image Storage", + "storage_sop_class_other.12-lead_ecg_waveform": "12-lead ECG Waveform Storage", + "storage_sop_class_other.advanced_blending_presentation_state": "Advanced Blending Presentation State Storage", + "storage_sop_class_other.ambulatory_ecg_waveform": "Ambulatory ECG Waveform Storage", + "storage_sop_class_other.arterial_pulse_waveform": "Arterial Pulse Waveform Storage", + "storage_sop_class_other.audio_sr_trial_retired": "Audio SR Storage Trial (Retired)", + "storage_sop_class_other.autorefraction_measurements": "Autorefraction Measurements Storage", + "storage_sop_class_other.basic_audio_waveform": "Basic Voice Audio Waveform Storage", + "storage_sop_class_other.basic_structured_display": "Basic Structured Display Storage", + "storage_sop_class_other.blending_softcopy_presentation_state": "Blending Softcopy Presentation State Storage SOP Class", + "storage_sop_class_other.body_position_waveform": "Body Position Waveform Storage", + "storage_sop_class_other.c-arm_photon-electron_radiation": "C-Arm Photon-Electron Radiation Storage", + "storage_sop_class_other.c-arm_photon-electron_radiation_record": "C-Arm Photon-Electron Radiation Record Storage", + "storage_sop_class_other.cardiac_electrophysiology_waveform": "Cardiac Electrophysiology Waveform Storage", + "storage_sop_class_other.color_softcopy_presentation_state": "Color Softcopy Presentation State Storage SOP Class", + "storage_sop_class_other.compositing_planar_mpr_volumetric_presentation_state": "Compositing Planar MPR Volumetric Presentation State Storage", + "storage_sop_class_other.comprehensive_sr_trial_retired": "Comprehensive SR Storage Trial (Retired)", + "storage_sop_class_other.content_assessment_results": "Content Assessment Results Storage", + "storage_sop_class_other.ct_performed_procedure_protocol": "CT Performed Procedure Protocol Storage", + "storage_sop_class_other.deformable_spatial_registration": "Deformable Spatial Registration Storage", + "storage_sop_class_other.detail_sr_trial_retired": "Detail SR Storage Trial (Retired)", + "storage_sop_class_other.electromyogram_waveform": "Electromyogram Waveform Storage", + "storage_sop_class_other.electrooculogram_waveform": "Electrooculogram Waveform Storage", + "storage_sop_class_other.encapsulated_cda": "Encapsulated CDA Storage", + "storage_sop_class_other.encapsulated_mtl": "Encapsulated MTL Storage", + "storage_sop_class_other.encapsulated_obj": "Encapsulated OBJ Storage", + "storage_sop_class_other.encapsulated_pdf": "Encapsulated PDF Storage", + "storage_sop_class_other.encapsulated_stl": "Encapsulated STL Storage", + "storage_sop_class_other.general_audio_waveform": "General Audio Waveform Storage", + "storage_sop_class_other.general_ecg_waveform": "General ECG Waveform Storage", + "storage_sop_class_other.grayscale_planar_mpr_volumetric_presentation_state": "Grayscale Planar MPR Volumetric Presentation State Storage", + "storage_sop_class_other.grayscale_softcopy_presentation_state": "Grayscale Softcopy Presentation State Storage SOP Class", + "storage_sop_class_other.hardcopy_grayscale_image_retired": "Hardcopy Grayscale Image Storage SOP Class (Retired)", + "storage_sop_class_other.hardcopy_color_image_retired": "Hardcopy Color Image Storage SOP Class (Retired)", + "storage_sop_class_other.hemodynamic_waveform": "Hemodynamic Waveform Storage", + "storage_sop_class_other.intraocular_lens_calculations": "Intraocular Lens Calculations Storage", + "storage_sop_class_other.keratometry_measurements": "Keratometry Measurements Storage", + "storage_sop_class_other.lensometry_measurements": "Lensometry Measurements Storage", + "storage_sop_class_other.microscopy_bulk_simple_annotations": "Microscopy Bulk Simple Annotations Storage", + "storage_sop_class_other.mr_spectrocopy": "MR Spectroscopy Storage", + "storage_sop_class_other.multi-channel_respiratory_waveform": "Multi-channel Respiratory Waveform Storage", + "storage_sop_class_other.multi-frame_single_bit_secondary_capture_image": "Multi-frame Single Bit Secondary Capture Image Storage", + "storage_sop_class_other.multiple_volume_rendering_volumetric_presentation_state": "Multiple Volume Rendering Volumetric Presentation State Storage", + "storage_sop_class_other.ophthalmic_axial_measurements": "Ophthalmic Axial Measurements Storage", + "storage_sop_class_other.ophthalmic_visual_field_static_perimetry_measurements": "Ophthalmic Visual Field Static Perimetry Measurements Storage", + "storage_sop_class_other.pseudo-color_softcopy_presentation_state": "Pseudo-Color Softcopy Presentation State Storage SOP Class", + "storage_sop_class_other.respiratory_waveform": "Respiratory Waveform Storage", + "storage_sop_class_other.routine_scalp_electroencephalogram_waveform": "Routine Scalp Electroencephalogram Waveform Storage", + "storage_sop_class_other.segmented_volume_rendering_volumetric_presentation_state": "Segmented Volume Rendering Volumetric Presentation State Storage", + "storage_sop_class_other.parametric_map": "Parametric Map Storage", + "storage_sop_class_other.raw_data": "Raw Data Storage", + "storage_sop_class_other.real_world_value_mapping": "Real World Value Mapping Storage", + "storage_sop_class_other.robotic-arm_radiation": "Robotic-Arm Radiation Storage", + "storage_sop_class_other.robotic_radiation_record": "Robotic Radiation Record Storage", + "storage_sop_class_other.rt_beams_delivery_instruction": "RT Beams Delivery Instruction Storage", + "storage_sop_class_other.rt_beams_treatment_record": "RT Beams Treatment Record Storage", + "storage_sop_class_other.rt_brachy_application_setup_delivery_instruction": "RT Brachy Application Setup Delivery Instruction Storage", + "storage_sop_class_other.rt_brachy_treatment_record": "RT Brachy Treatment Record Storage", + "storage_sop_class_other.rt_dose": "RT Dose Storage", + "storage_sop_class_other.rt_ion_plan": "RT Ion Plan Storage", + "storage_sop_class_other.rt_ion_beams_treatment_record": "RT Ion Beams Treatment Record Storage", + "storage_sop_class_other.rt_patient_position_acquisition_instruction": "RT Patient Position Acquisition Instruction Storage", + "storage_sop_class_other.rt_physician_intent": "RT Physician Intent Storage", + "storage_sop_class_other.rt_plan": "RT Plan Storage", + "storage_sop_class_other.rt_radiation_record_set": "RT Radiation Record Set Storage", + "storage_sop_class_other.rt_radiation_salvage_record": "RT Radiation Salvage Record Storage", + "storage_sop_class_other.rt_radiation_set": "RT Radiation Set Storage", + "storage_sop_class_other.rt_radiation_set_delivery_instruction": "RT Radiation Set Delivery Instruction Storage", + "storage_sop_class_other.rt_segment_annotation": "RT Segment Annotation Storage", + "storage_sop_class_other.rt_structure_set": "RT Structure Set Storage", + "storage_sop_class_other.rt_treatment_preparation": "RT Treatment Preparation Storage", + "storage_sop_class_other.rt_treatment_summary_record": "RT Treatment Summary Record Storage", + "storage_sop_class_other.segmentation": "Segmentation Storage", + "storage_sop_class_other.spatial_registration": "Spatial Registration Storage", + "storage_sop_class_other.spatial_fiducials": "Spatial Fiducials Storage", + "storage_sop_class_other.sleep_electroencephalogram_waveform": "Sleep Electroencephalogram Waveform Storage", + "storage_sop_class_other.standalone_curve_retired": "Standalone Curve Storage (Retired)", + "storage_sop_class_other.standalone_modality_lut_retired": "Standalone Modality LUT Storage (Retired)", + "storage_sop_class_other.standalone_overlay_retired": "Standalone Overlay Storage (Retired)", + "storage_sop_class_other.standalone_pet_curve_retired": "Standalone PET Curve Storage (Retired)", + "storage_sop_class_other.standalone_voi_lut_retired": "Standalone VOI LUT Storage (Retired)", + "storage_sop_class_other.stereometric_relationship": "Stereometric Relationship Storage", + "storage_sop_class_other.stored_print_reired": "Stored Print Storage SOP Class (Retired)", + "storage_sop_class_other.subjective_refraction_measurements": "Subjective Refraction Measurements Storage", + "storage_sop_class_other.surface_scan_mesh": "Surface Scan Mesh Storage", + "storage_sop_class_other.surface_scan_point_cloud": "Surface Scan Point Cloud Storage", + "storage_sop_class_other.surface_segmentation": "Surface Segmentation Storage", + "storage_sop_class_other.text_sr_trial_retired": "Text SR Storage Trial (Retired)", + "storage_sop_class_other.tomotherapeutic_radiation": "Tomotherapeutic Radiation Storage", + "storage_sop_class_other.tomotherapeutic_radiation_record": "Tomotherapeutic Radiation Record Storage", + "storage_sop_class_other.tractography_results": "Tractography Results Storage", + "storage_sop_class_other.volume_rendering_volumetric_presentation_state": "Volume Rendering Volumetric Presentation State Storage", + "storage_sop_class_other.visual_acuity_measurements": "Visual Acuity Measurements Storage", + "storage_sop_class_other.xa_performed_procedure_protocol": "XA Performed Procedure Protocol Storage", + "storage_sop_class_other.xa-xrf_grayscale_softcopy_presentation_state": "XA/XRF Grayscale Softcopy Presentation State Storage", + "storage_sop_class_other.private_agfa_arrival_transaction": "Private Agfa Arrival Transaction", + "storage_sop_class_other.private_agfa_basic_attr_presentation_state": "Private Agfa Basic Attribute Presentation State", + "storage_sop_class_other.private_agfa_dictation_transaction": "Private Agfa Dictation Transaction", + "storage_sop_class_other.private_agfa_report_approval_transaction": "Private Agfa Report Approval Transaction", + "storage_sop_class_other.private_agfa_report_transcription_transaction": "Private Agfa Report Transcription Transaction", + "storage_sop_class_other.private_erad_practice_builder_report_dictation": "Private ERAD Practice Builder Report Dictation Storage", + "storage_sop_class_other.private_erad_practice_builder_report_text": "Private ERAD Practice Builder Report Text Storage", + "storage_sop_class_other.private_ge_3d_model": "Private GE 3D Model Storage", + "storage_sop_class_other.private_ge_collage": "Private GE Collage Storage", + "storage_sop_class_other.private_ge_entegra_protocol_or_nm_genie": "Private GE eNTEGRA Protocol or NM Genie Storage", + "storage_sop_class_other.private_ge_pet_raw_data": "Private GE PET Raw Data Storage", + "storage_sop_class_other.private_ge_rt_plan": "Private GE RT Plan Storage", + "storage_sop_class_other.private_philips_3d_object": "Private Philips 3D Object Storage", + "storage_sop_class_other.private_philips_3d_object_retired": "Private Philips 3D Object Storage (Retired)", + "storage_sop_class_other.private_philips_3d_presentation_state.": "Private Philips 3D Presentation State Storage", + "storage_sop_class_other.private_philips_composite_obj": "Private Philips Composite Object Storage", + "storage_sop_class_other.private_philips_hp_live_3d_01": "Private Philips HP Live 3D 01 Storage", + "storage_sop_class_other.private_philips_hp_live_3d_02": "Private Philips HP Live 3D 02 Storage", + "storage_sop_class_other.private_philips_live_run": "Private Philips Live Run Storage", + "storage_sop_class_other.private_philips_mr_cardio": "Private Philips MR Cardio Storage", + "storage_sop_class_other.private_philips_mr_cardio_analysis": "Private Philips MR Cardio Analysis Storage", + "storage_sop_class_other.private_philips_mr_cardio_analysis_retired": "Private Philips MR Cardio Analysis Storage (Retired)", + "storage_sop_class_other.private_philips_mr_cardio_profile": "Private Philips MR Cardio Profile Storage", + "storage_sop_class_other.private_philips_mr_cardio_retired": "Private Philips MR Cardio Storage (Retired)", + "storage_sop_class_other.private_philips_mr_examcard": "Private Philips MR Examcard Storage", + "storage_sop_class_other.private_philips_mr_series_data": "Private Philips MR Series Data Storage", + "storage_sop_class_other.private_philips_mr_spectrum": "Private Philips MR Spectrum Storage", + "storage_sop_class_other.private_philips_perfusion": "Private Philips Perfusion Storage", + "storage_sop_class_other.private_philips_reconstruction": "Private Philips Reconstruction Storage", + "storage_sop_class_other.private_philips_run": "Private Philips Run Storage", + "storage_sop_class_other.private_philips_specialised_xa": "Private Philips Specialised XA Storage", + "storage_sop_class_other.private_philips_surface": "Private Philips Surface Storage", + "storage_sop_class_other.private_philips_surface_retired": "Private Philips Surface Storage (Retired)", + "storage_sop_class_other.private_philips_vml": "Private Philips VRML Storage", + "storage_sop_class_other.private_philips_volume": "Private Philips Volume Storage", + "storage_sop_class_other.private_philips_volume_retired": "Private Philips Volume Storage (Retired)", + "storage_sop_class_other.private_philips_volume_set": "Private Philips Volume Set Storage", + "storage_sop_class_other.private_philips_xray_mf": "Private Philips X-Ray MF Storage", + "storage_sop_class_other.private_siemens_ax_frame_sets": "Private Siemens AX Frame Sets Storage", + "storage_sop_class_other.private_siemens_csa_non_image": "Private Siemens CSA Non Image Storage", + "storage_sop_class_other.private_siemens_ct_mr_volume": "Private Siemens CT MR Volume Storage", + "storage_sop_class_other.private_tomtec_annotation": "Private TomTec Annotation Storage", + "storage_sop_class_sr.acquisition_context": "Acquisition Context SR Storage", + "storage_sop_class_sr.basic_text": "Basic Text SR Storage", + "storage_sop_class_sr.chest_cad": "Chest CAD SR Storage", + "storage_sop_class_sr.colon_cad": "Colon CAD SR Storage", + "storage_sop_class_sr.comprehensive": "Comprehensive SR Storage", + "storage_sop_class_sr.comprehensive_3d": "Comprehensive 3D SR Storage", + "storage_sop_class_sr.enhanced": "Enhanced SR Storage", + "storage_sop_class_sr.enhanced_xray_radiation_dose": "Enhanced X-Ray Radiation Dose SR Storage", + "storage_sop_class_sr.extensible": "Extensible SR Storage", + "storage_sop_class_sr.implantation_plan": "Implantation Plan SR Storage", + "storage_sop_class_sr.key_object_selection_document": "Key Object Selection Document Storage", + "storage_sop_class_sr.macular_grid_thickness_volume_report": "Macular Grid Thickness and Volume Report Storage", + "storage_sop_class_sr.mammography_cad": "Mammography CAD SR Storage", + "storage_sop_class_sr.patient_radiation_dose": "Patient Radiation Dose SR Storage", + "storage_sop_class_sr.performed_imaging_agent_administration": "Performed Imaging Agent Administration SR Storage", + "storage_sop_class_sr.planned_imaging_agent_administration": "Planned Imaging Agent Administration SR Storage", + "storage_sop_class_sr.procedure_log": "Procedure Log Storage", + "storage_sop_class_sr.radiopharmaceutical_radiation_dose": "Radiopharmaceutical Radiation Dose SR Storage", + "storage_sop_class_sr.simplified_adult_echo": "Simplified Adult Echo SR Storage", + "storage_sop_class_sr.spectacle_prescription_report": "Spectacle Prescription Report Storage", + "storage_sop_class_sr.xray_radiation_dose": "X-Ray Radiation Dose SR Storage", + "storage_sop_class_video.endoscopic": "Video Endoscopic Image Storage", + "storage_sop_class_video.microscopic": "Video Microscopic Image Storage", + "storage_sop_class_video.photographic": "Video Photographic Image Storage", + "storage_systems": "Storage systems", + "storage_uri": "Storage URI", + "storage_verification": "Storage Verification", + "storage_verification_failed": "Storage Verification Failed", + "storage_verification_scheduled": "Storage Verification scheduled successfully!", + "storage_verification_selected": "Storage Verification of selected objects executed successfully!", + "storage_verification_selected_objects": "Storage Verification for selected objects", + "storage_verification_selections": "Storage Verification for selections", + "storage_verification_studies": "Storage Verification Studies", + "storage_verification_series": "Storage Verification Series", + "studies": "Studies", + "studies-stored.amount_of_studies": "Amount of Studies", + "studies-stored.calculation_of_rest_of_modalitiesinstudy_may_be_wrong": "Calculation of Rest of ModalitiesInStudy may be wrong due to the fact that some Studies may have more than one Modalities!", + "studies-stored.date_range_is_missing": "Date range is missing!", + "studies-stored.date_range_mode": "Date Range Mode", + "studies-stored.invalid_range": "Invalid Range!", + "studies-stored.quantity_mode": "Quantity Mode", + "studies-stored.range_cannot_be_open_interval": "Range cannot be open interval!", + "studies-stored.range_to_big_for_this_unit": "Range to big for this unit!", + "studies-stored.range_too_small": "Range too small", + "studies-stored.rest_params": "Rest ( {$@@rest} ){$@@modalitiesinstudy}", + "studies-stored.select_filters_for_grouping": "Select filters for grouping", + "studies-stored.select_the_quantity_mode": "Select the quantity mode", + "studies-stored.size_of_studies": "Size of Studies", + "studies-stored.split_unit": "Split Unit", + "studies-stored.station_name_is_missing_pleas_check_the_configuration_of_the_application__clusters": "Station Name is missing. Pleas check the configuration of the application clusters!", + "studies-stored.study_received_date": "Study Received Date", + "studies-stored.subtitle": "Select main filters", + "studies-stored.title": "Stored Study Statistics", + "studies.patient_id_changed_successfully": "Patient ID changed successfully!", + "studies.set_exporter_if_you_want_to_export_on_expiration_date_too": "

Set exporter if you want to export on expiration date too.", + "studies_count": "Studies Count", + "studies_exported_successfully": "Studies exported successfully!", + "studies_rejected_successfully": "Studies rejected successfully", + "studies_stored_count": "Studies Stored Count", + "studies_total_count": "Studies Total Count", + "study-transferring-overview.studuid_from_patient_report": "Study instance UID: {$START_BOLD_TEXT}{$INTERPOLATION}{$CLOSE_BOLD_TEXT} from the patient {$START_BOLD_TEXT}{$INTERPOLATION_1}{$CLOSE_BOLD_TEXT} with the Patient ID {$START_BOLD_TEXT}{$INTERPOLATION_2}{$CLOSE_BOLD_TEXT}", + "study-transferring_overview.an_empty_study_will_be_automatically_created": "An empty study will be automatically created, so it can be used as target study!", + "study.add_new_mwl": "Add new MWL", + "study.all_failed": "all ({$PH}) failed!", + "study.apply_retention_multiple_series": "Apply retention policy to matching series", + "study.apply_retention_policy_all_matching_series": "Apply retention policy to all matching series", + "study.cant_delete_with_empty_id": "Cannot delete patient with empty Patient ID!", + "study.check_size_in_storage_system": "Check size of object on Storage System", + "study.check_storage_system": "Check if object exists on Storage System", + "study.command_executed": "Command executed successfully!", + "study.content_description": "Content Description", + "study.content_time": "Content Time", + "study.create_mwl": "Create new MWL", + "study.create_new_patient": "Create new patient", + "study.create_patient": "Create patient", + "study.delete_mwl": "Delete MWL", + "study.delete_object": "Delete selected studies, series or instances permanently", + "study.delete_study_permanently": "Delete study permanently", + "study.delete_this_mwl": "Are you sure you want to delete this MWL?", + "study.delete_this_patient": "Delete this Patient", + "study.difference": "Difference", + "study.download_as_csv": "Download as CSV", + "study.download_dicom_object": "Download DICOM Object", + "study.download_mwl": "Download MWL as CSV", + "study.download_patients": "Download patients as CSV", + "study.download_series": "Download series as CSV", + "study.download_studies": "Download studies as CSV", + "study.download_uncompressed_dicom_object": "Download DICOM Object", + "study.e._completion_time": "E. Completion Time", + "study.edit_mwl": "Edit MWL of patient ", + "study.edit_patient": "Edit patient", + "study.edit_series": "Edit series of study of patient ", + "study.edit_study": "Edit study of patient ", + "study.edit_this_patient": "Edit this Patient", + "study.edit_this_series": "Edit this series", + "study.edit_this_study": "Edit this study", + "study.error_getting": "_aets:Error getting AETs!", + "study.error_on_getting_the_webapp_url": "Error on getting the WebApp URL", + "study.export_all_matching_series": "Export all matching series", + "study.export_all_matching_studies": "Export all matching studies", + "study.export_multiple": "Export matching studies", + "study.export_multiple_series": "Export matching series", + "study.export_object": "Export selected studies, series or instances", + "study.export_selected_object": "Export selected objects", + "study.export_study": "Export study", + "study.hide_instances": "Hide Instances", + "study.hide_series": "Hide Series", + "study.input_readiness": "Input Readiness", + "study.instance_rejected": "Instance rejected successfully", + "study.instance_restored": "Instance restored successfully!", + "study.more_than_one_source_patient_selected": "More than one source patient selected for merge!", + "study.more_than_one_target_selected": "More than one target selected!", + "study.mwl_create": "MWL created successfully!", + "study.mwl_saved": "MWL saved successfully!", + "study.no_matching_instances": "No matching Instances found!", + "study.no_matching_mpps": "No matching Modality Performed Procedure Step entries found!", + "study.no_matching_mwl": "No matching Modality Worklist Entries found!", + "study.no_matching_series": "No matching series found!", + "study.no_matching_uwl": "No matching Unified Worklist Entries found!", + "study.no_patients_found": "No matching Patients found!", + "study.no_role_found_in_the_property_dcmproperty_of_webapp": "No role found in the property dcmProperty of WebApp", + "study.no_studies": "No matching Studies found!", + "study.no_target_selected": "No target object was selected!", + "study.no_webapp_selected": "No Web Application Service was selected!", + "study.objects_rejected": "Objects rejected successfully!", + "study.objects_restored": "Objects restored successfully!", + "study.open_patient_in_the_viewer": "Open patient in the viewer", + "study.open_study_in_the_viewer": "Open study in the viewer", + "study.order_by": "Order By", + "study.patient_comments": "Patient Comments", + "study.patient_created_successfully": "Patient created successfully", + "study.patient_deleted": "Patient deleted successfully!", + "study.patient_updated_successfully": "Patient updated successfully", + "study.patients_merged_successfully": "Patients merged successfully!", + "study.performed_procedure_step_end_date": "Performed Procedure Step End Date", + "study.performed_procedure_step_end_time": "Performed Procedure Step End Time", + "study.performed_procedure_step_id": "Performed Procedure Step ID", + "study.performed_procedure_step_start_date": "Performed Procedure Step Start Date", + "study.performed_procedure_step_start_time": "Performed Procedure Step Start Time", + "study.permanent_delete": "Delete rejected Instances permanently", + "study.pps_end_date": "PPS End Date", + "study.pps_end_time": "PPS End Time", + "study.pps_id": "PPS ID", + "study.pps_start_date": "PPS Start Date", + "study.pps_start_time": "PPS Start Time", + "study.procedure_step": "Procedure Step", + "study.process_executed_all_failed_detail": "{$@@action} process executed - all failed:
\nErrors: {$@@error}", + "study.process_executed_successfully_detailed": "{$@@action} process executed successfully:
\nErrors: {$@@error}
\nSuccessful: {$@@successfull}", + "study.query_patient_demographics_service": "Query Patient Demographics Service", + "study.r._physicians_name": "R. Physician's Name", + "study.reject_instance": "Reject instance", + "study.reject_multiple": "Reject matching studies", + "study.reject_multiple_series": "Reject matching series", + "study.reject_object": "Reject selected studies, series or instances", + "study.reject_series": "Reject series", + "study.reject_study": "Reject study", + "study.requested_procedure_desc": "Requested Procedure Desc", + "study.requested_procedure_description": "Requested Procedure Description", + "study.requested_procedure_id": "Requested Procedure ID", + "study.restore_instance": "Restore instance", + "study.restore_object": "Restore selected studies, series or instances", + "study.restore_series": "Restore series", + "study.restore_study": "Restore study", + "study.retrieve_matching_studies_depending": "Retrieve matching studies depending on selected filters, from external C-MOVE SCP", + "study.retrieve_multiple": "Retrieve matching studies", + "study.retrieve_series": "Retrieve Series", + "study.retrieve_series_as_stored_at_the_archive": "Retrieve Series as stored at the archive", + "study.retrieve_study": "Retrieve Study", + "study.retrieve_study_as_stored_at_the_archive": "Retrieve Study as stored at the archive", + "study.schedule_storage_verification": "Schedule Storage Verification", + "study.scheduled_procedure_step_description": "Scheduled Procedure Step Description", + "study.send_storage_commitment_request_for_series": "Send Storage Commitment Request for this series", + "study.send_storage_commitment_request_for_study": "Send Storage Commitment Request for this instance", + "study.series_rejected": "Series rejected successfully", + "study.series_restored": "Series restored successfully!", + "study.short_delete_object": "Delete selections", + "study.short_export_object": "Export selections", + "study.short_permanent_delete": "Permanent delete", + "study.short_reject_object": "Reject selections", + "study.short_restore_object": "Restore selections", + "study.short_update_access_control_id_to_selections": "Access Control ID to selections", + "study.show_attributes": "Show attributes", + "study.show_attributes_from_file": "Show attributes from file", + "study.show_diffs": "Show DIFFs", + "study.show_instances": "Show Instances", + "study.show_series": "Show Series", + "study.show_studies": "Show studies", + "study.something_went_wrong_on_extracting_roles_from_dcmproperty_of_webapp": "Something went wrong on extracting roles from dcmProperty of WebApp", + "study.sps_desc": "SPS Description", + "study.sps_start": "SPS Start", + "study.ss_aet": "SS AET", + "study.start_date_and_time": "Start Date and Time", + "study.step_m._date_and_time": "Step M. Date and Time", + "study.step_priority": "Step Priority", + "study.studies_will_not_be_send": "Studies will not be sent!", + "study.study_and_mwl_linked_successfully": "Study and MWL linked successfully!", + "study.study_deleted": "Study deleted successfully!", + "study.study_or_scheduled_missing": "Study Instance UID or Scheduled Procedure Step ID is missing!", + "study.study_restored": "Study restored successfully!", + "study.study_time": "Study Time", + "study.study_will_not_be_sent": "Study will not be sent!", + "study.target_object_can_not_be_in_clipboard": "Target object can not be in the clipboard", + "study.toggle_attributes": "Toggle Attributes", + "study.update_access_control_id_to_matching": "Update access Control ID", + "study.update_access_control_id_to_selections": "Updated Access Control ID to selected studies", + "study.update_study_access_control_id": "Update Study Access Control ID", + "study.update_study_access_control_id_param": "Update Study Access Control ID {$@@innerText}", + "study.upload_dicom_object": "Upload DICOM Object", + "study.verified_successfully_0_failed": "{$PH} verified successfully\n 0 failed!", + "study.verify_storage_commitment": "Verify storage commitment", + "study.view_dicom_object": "View DICOM Object", + "study.want_to_delete_study": "Are you sure you want to delete this study?", + "study_access": "Study Access", + "study_created_date": "Study Created Date", + "study_date": "Study date", + "study_desc": "Study Desc", + "study_description": "Study Description", + "study_error_on_opening_viewer": "Something went wrong while opening the Viewer open the inspect to see more details", + "study_exported_successfully": "Study exported successfully!", + "study_id": "Study ID", + "study_instance_uid": "Study Instance UID", + "study_instance_uid_0020000d": "Study Instance UID (0020,000D)", + "study_instance_uid_is_empty": "StudyInstanceUID is empty", + "study_participant_object_id": "Study ParticipantObjectID", + "study_queue_reject": "Study queued for rejection successfully", + "study_received": "Study Received", + "study_received_in_the_last_24h": "Study Received in the last 24 h", + "study_rejected_successfully": "Study rejected successfully!", + "study_saved": "Study saved successfully!", + "study_status": "Study Status", + "study_status_id_agfa": "Study Status ID - AGFA", + "study_study_rejected": "Study rejected successfully", + "study_time": "Study time", + "study_uid": "Study UID", + "study_uid_field": "Study UID Field", + "study_uploaded_successfully": "Study uploaded successfully!", + "sunday": "Sunday", + "supplement_issuer": "Supplement Issuer", + "supplement_issuer_test_only": "Only test, without actually supplementing", + "supplement_new_issuer": "Supplement new Issuer", + "supportive": "Supportive", + "synchronised_dicom_exporter": "Synchronised DICOM C-STORE exporter", + "synchronised_stow_exporter": "Synchronised DICOM STOW-RS exporter", + "task_canceled": "Task canceled successfully!", + "task_created": "Tasks created successfully!", + "task_delete_question": "Are you sure you want to delete all tasks to this batch?", + "task_deleted": "{$PH} tasks deleted successfully!", + "task_deleted_param": "{$@@deleted} tasks deleted successfully!", + "task_id": "Task ID", + "task_marked_for_export": "Task marked for export successfully!", + "task_marked_for_export_param": "Task {$@@taskid} marked for export successfully!", + "task_marked_for_retrieve": "Task marked for retrieve successfully!", + "task_marked_for_retrieve_param": "Task {$@@taskid} marked for retrieve successfully!", + "task_not_found": "Task not found!", + "task_rescheduled": "Task rescheduled successfully!", + "task_rescheduled_param": "Task {$@@taskid} rescheduled successfully!", + "tasks": "Tasks", + "tasks_canceled": "Tasks canceled successfully!", + "tasks_canceled_param": "{$PH} tasks canceled successfully!", + "tasks_created": "{$@@count} tasks created successfully!", + "tasks_deleted": "Tasks deleted successfully!", + "tasks_marked_for_export": "Tasks marked for export successfully!", + "tasks_marked_for_export_param": "{$@@count} tasks marked for export successfully!", + "tasks_marked_for_retrieve": "Tasks marked for retrieve successfully!", + "tasks_marked_for_retrieve_param": "{$@@count} tasks marked for retrieve successfully!", + "tasks_queue_canceled": "{$PH} tasks in queue canceled successfully!", + "tasks_queue_deleted": "{$PH} tasks in queue deleted successfully!", + "tasks_queue_rescheduled": "{$PH} tasks in queue rescheduled successfully!", + "tasks_rescheduled": "Tasks rescheduled successfully!", + "tasks_rescheduled_param": "{$@@count} tasks rescheduled successfully!", + "tcp_hit_count": "Hits", + "tcp_miss_count": "Miss", + "tcp_refresh_hit_count": "Refresh hits", + "tcp_refresh_miss_count": "Refresh miss", + "tcp_response_documents": "Documents", + "tcp_rest_cache": "Rest cache", + "tcp_size_100": "100 documents", + "tcp_size_10K": "10K documents", + "tcp_size_1K": "1K documents", + "tcp_size_1M": "1M documents", + "tcp_size_3K": "3K documents", + "tcp_size_5K": "5K documents", + "tcp_size_inf": "inf documents", + "tcp_used_cache": "Used cache", + "template": "Template", + "template_description": "Template description", + "template_name": "Template name", + "test": "Test", + "this_element_is_referenced": "This element is referenced, remove references first then you can delete this element!", + "this_field_is_required": "This field is required!", + "this_month": "This Month", + "this_period_will_last_week": "This period will last {$@@week} {$@@word_for_week}", + "this_quarter": "This Quarter", + "this_week": "This Week", + "this_year": "This Year", + "thursday": "Thursday", + "time": "Time", + "time-picker.now": "Now", + "time-picker.title": "Select time (hh:mm:ss)", + "timer_sec": "Timer (sec)", + "timestamp_per_2_min": "@timestamp per 2 min", + "timestamp_per_30_seconds": "@timestamp per 30 seconds", + "title": "Title", + "title.ae-list.delete_from_device_the_ae": "Delete from device the AE", + "title.ae-list.register_new_application_entity": "Register new application entity", + "title.app.go_to_wildfly_admin": "Go to Wildfly Administration Console", + "title.app.server_time_param": "Server time: {$INTERPOLATION}", + "title.associations.download_copy_as_csv": "Download copy of the table as csv-file", + "title.associations.get_associations": "Get associations", + "title.associations.sort_by_connection_time_local": "Sort by Connection time (Local)", + "title.associations.sort_by_connection_time_server": "Sort by Connection time (Server)", + "title.associations.sort_by_duration": "Sort by Duration", + "title.associations.sort_by_initiated": "Sort by initiated", + "title.associations.sort_by_invoked_ops": "Sort by Invoked Ops.", + "title.associations.sort_by_local_ae_title": "Sort by Local AE Title", + "title.associations.sort_by_other_attributes": "Sort by Other attributes", + "title.associations.sort_by_performed_ops": "Sort by Performed Ops.", + "title.associations.sort_by_remote_ae_title": "Sort by Remote AE Title", + "title.associations.start_getting_associations": "Start getting associations", + "title.associations.with_a_dot_you_can_set_milliseconds": "With a dot '.' you can set milliseconds for example: '0.6' = 600 milliseconds", + "title.cancel": "Cancel", + "title.cancel_selected": "Cancel selected", + "title.completed_remaining_failed": "Completed / Remaining / Failed", + "title.control.fetch_status": "Fetch status", + "title.control.reload_archive": "Reload archive", + "title.create-ae.add_the_new_connection_to_the_selected_device": "Add the new connection to the selected device", + "title.dashboard.study_participantobjectid": "Study ParticipantObjectID", + "title.delete": "Delete", + "title.delete_selected": "Delete selected", + "title.delete_task_with_this_batchid": "Delete Task with this BatchID", + "title.devices.clone_device": "Clone device", + "title.devices.delete_device": "Delete device", + "title.devices.edit_param": "Edit {$INTERPOLATION}", + "title.dicom_network_connection": "Dicom network connection", + "title.dynamic-form-element.add_new_label": "Add new {$INTERPOLATION}", + "title.dynamic-form-element.clone_this_param": "Clone this {$INTERPOLATION} part", + "title.dynamic-form-element.delete_file": "Delete File", + "title.dynamic-form-element.delete_this_label": "Delete this {$INTERPOLATION} part", + "title.dynamic-form-element.remove_this_value_from_the_array": "Remove this value from the array", + "title.dynamic-form-element.replace_file": "Replace File", + "title.export.export_task_id": "Export Task ID", + "title.export.number_of_instances": "Number of instances", + "title.export.processing_duration": "Processing duration", + "title.export.show_tasks_detail": "Show Tasks Detail", + "title.filter-generator.clear_current_filters": "Clear current filters", + "title.filter-generator.save_current_filters_as_template": "Save current filters as template", + "title.filter-generator.select_saved_filters_template": "Select saved filters-template", + "title.lifecycle-management.delete_retention_policy": "Delete retention policy", + "title.lifecycle-management.edit_retention_policy": "Edit retention policy", + "title.lifecycle-management.lock_the_study_by_adding_as_expired_date_31129999": "Lock the study by adding as expired date 31.12.9999", + "title.lifecycle-management.set_expired_date": "Set expired date", + "title.next_page": "Next page", + "title.permission-configurator.add_new_role": "Add New Role", + "title.permission-configurator.add_role": "Add Role", + "title.permission-configurator.show_help_on_click": "Show help on click", + "title.preview_page": "Preview page", + "title.queue-dashboard.refresh_export_counts": "Refresh Export counts", + "title.queue-dashboard.refresh_retrieve_counts": "Refresh Retrieve counts", + "title.reschedule": "Reschedule", + "title.reschedule_selected": "Reschedule selected", + "title.retrieve-monitoring.show_tasks_detail": "Show tasks detail", + "title.search_the_list": "Search the list", + "title.select_archive": "Select archive", + "title.size-range-picker.study_size_range_in_kb": "Study Size Range in KB", + "title.studies-stored.vertical_format": "Vertical Format", + "title.study.clear_clipboard": "Clear clipboard", + "title.study.mark_selected_patient_for_merge": "Mark selected patient for merge", + "title.study.mark_selected_study_for_copy": "Mark selected study for copy", + "title.study.mark_selected_study_for_linking_with_mwl": "Mark selected study for linking with MWL", + "title.study.mark_selected_study_for_move": "Mark selected study for move", + "title.study.search_current_list": "Search current local list ( That's NOT searching in the Server! )", + "title.study.start_the_process_of_copieng_moving_linked_or_merge": "Start the process of copying/moving/linking or merging", + "title.use_duration_format": "Use duration format (ISO 8601) ((P)nYnMnDTnHnMnS or (P)nW) to set first date/time of the range subtracted from today/now (Format is not case sensitive and P on start is optional). For Example 1y => one year back, 2y3m => 2 years and 3 months back, t2h12m => 2 hours and 12 minutes from now etc.", + "title.verify_aet_host_port": "Verify AET, host and port before saving", + "title.xds.search_the_table_local": "Search the table local", + "today": "Today", + "toggle_checkboxes": "Toggle checkboxes", + "toggle_checkboxes_for_selection": "Toggle checkboxes for selection", + "toggle_dark_design": "Toggle dark design", + "toggle_hide_forward_retrieve_tasks": "Toggle forward retrieve tasks", + "toggle_retrieve_tasks": "Toggle retrieve tasks", + "too_much_data": "Too much data!", + "tooltip.copy_text_to_clipboard": "Copy text to clipboard", + "tooltip.text_copied_successfully_in_the_clipboard": "Text copied successfully in the clipboard", + "transaction_uid": "Transaction UID", + "trigger_diff": "Trigger Diff", + "trigger_migration": "Trigger Migration", + "trigger_storage_verification": "Trigger storage verification", + "true": "true", + "tuesday": "Tuesday", + "type": "Type", + "ui_permission": "UI Permission", + "uid_of_new_created_workitem": "UID of new created Workitem", + "unable_to_connect_to_elasticsearch": "Unable to connect to Elasticsearch!", + "unfreeze_unprotect_expiration_date_of_the_study": "Unfreeze/Unprotect Expiration Date of the Study", + "unique_identifier_of_the_study_to_filter_by": "Unique Identifier of the Study to filter by", + "unit": "Unit", + "universal_entity_id": "Universal Entity ID", + "universal_entity_id_type": "Universal Entity ID Type", + "unknown_action_param": "Unknown action:{$@@action}", + "unmerge_patient_ask_confirmation": "Are you sure you want to unmerge this patient?", + "unmerge_this_patient": "Unmerge this Patient", + "unmerge_with_empty_id_not_allowed": "Cannot unmerge patient with empty Patient ID!", + "unmerged_patient_successfully": "Patient unmerged successfully!", + "unscheduled": "Unscheduled", + "unscheduled_series": "(Un-)Scheduled Series", + "unscheduled_series_desc": "Query Series with(-out) Request Attributes Sequence (0040,0275) in it", + "unscheduled_series_requested_desc": "Series having Request Attributes Sequence (0040,0275) in it", + "unscheduled_series_unscheduled_desc": "Series not having Request Attributes Sequence (0040,0275) in it", + "unscheduled_studies": "(Un-)Scheduled Studies", + "unscheduled_studies_desc": "Query Studies with(-out) Series having Request Attributes Sequence (0040,0275) in it", + "unscheduled_studies_requested_desc": "Studies with at least one Series having Request Attributes Sequence (0040,0275) in it", + "unscheduled_studies_unscheduled_desc": "Studies with no Series having Request Attributes Sequence (0040,0275) in it", + "unselect": "Unselect", + "unselect_all_patients": "Unselect all patients", + "unselect_all_studies": "Unselect all studies", + "update_charset": "Update Character Set", + "update_charset_test_only": "Only test, without actually updating charset", + "update_location_db": "Update Location DB", + "update_policy": "Update Policy", + "update_policy_desc": "Update Policy for modification of original attributes", + "update_u": "Update (U)", + "updated": "Updated", + "updated_before": "Updated before", + "updated_before_not_set": "\"Updated before\"-date was not set", + "updated_date": "Updated Date", + "updated_time": "Updated time", + "upload": "Upload", + "upload-dicom.chose_dicom_files_to_upload": "Choose DICOM Files to upload:", + "upload-dicom.select_the_ae_title": "Select the ae title:", + "upload-dicom.title": "Upload DICOM data", + "upload-file.title": "Upload image, video, PDF, CDA, MTL, STL, OBJ or Genozip files to study", + "upload-files.gif_with_multi_frames_in_it": "Gif with multi frames in it", + "upload-files.imported_": "Imported ", + "upload-files.no_web_application_with_the_web_service_class_stow_rs_found_in_this_device": "No Web Application with the Web Service Class \"STOW_RS\" found in this device", + "upload-files.secondary_capture_image_storage": "Secondary Capture Image Storage", + "upload-files.vl_photographic_image_storage": "VL Photographic Image Storage", + "upload-vendor.title": "Upload vendor device data", + "upload_csv": "Upload CSV", + "upload_failed_please_try_again_later": "Upload failed, please try again later!", + "upload_file": "Upload file", + "ups_template_cloning_failed": "UPS template cloning failed with status ", + "ups_template_created_successfully": "UPS template created successfully at ", + "ups_template_creation_failed": "UPS template creation failed with status ", + "ups_workitem_cloned_successfully": "UPS Workitem cloned successfully at ", + "ups_workitem_cloning_failed": "UPS workitem cloning failed with status ", + "ups_workitem_created_successfully": "UPS Workitem created successfully at ", + "ups_workitem_creation_failed": "UPS workitem creation failed with status ", + "ups_workitem_rescheduled_successfully": "UPS Workitem rescheduled successfully!", + "ups_workitem_update_failed": "UPS workitem update failed with status ", + "ups_workitem_updated_successfully": "UPS Workitem updated successfully", + "url_to_device_not_configured": "URL to this device was not configured in the UI Config!", + "urls": "URLs", + "usage": "Usage", + "use_semicolon_as_delimiter": "Use semicolon as delimiter", + "use_semicolon_delimiter": "Do you want to use semicolon as delimiter?", + "used": "Used", + "uwl": "Work Items", + "value_not_valid_string": "The given value is not a valid string!", + "verification_failed": "Verification Failed", + "verification_policy": "Verification Policy", + "verification_status": "Verification Status", + "verify_storage_of_instance": "Verify Storage of Instance", + "verify_storage_of_selected": "Verify Storage of selected entities", + "verify_storage_of_series": "Verify Storage of Series", + "verify_storage_of_study": "Verify Storage of Study", + "vpn_key": "vpn_key", + "want_to_cancel_this_task": "Are you sure you want to cancel this task?", + "want_to_delete_question": "Are you sure you want to delete?", + "want_to_delete_task_from_group": "Are you sure you want to delete all tasks from this group?", + "want_to_reschedule_this_task": "Are you sure you want to reschedule this task?", + "warning": "Warning", + "warnings": "Warnings", + "web-apps-list.application_entity_title": "Application Entity Title", + "web-apps-list.get_web_apps": "Get Web Apps", + "web-apps-list.keycloak_client_id": "Keycloak Client ID", + "web-apps-list.web_application_name": "Web Application Name", + "web-apps-list.web_applications": "Web Applications", + "web-apps-list.web_service_class": "Web Service Class", + "web-apps-list.web_service_path": "Web Service Path", + "web_app_service": "Web App Service", + "web_application_service": "Web Application Service", + "web_apps_list": "Web Apps list", + "webapp_couldnt_be_found": "Web Application couldn't be found", + "webapp_with_MOVE_MATCHING_not_found": "Web Application Service with the web service class 'MOVE_MATCHING' not found!", + "webapp_with_service_class_not_found": "Web Application Service with the web service class {$@@webServiceClass} not found!", + "wednesday": "Wednesday", + "week": "week:", + "week_plural": "weeks", + "week_singular": "week", + "without_scheduling": "Without Scheduling", + "worker_threads": "Worker Threads", + "worklist_label": "Worklist Label", + "xds": "XDS", + "xds.action_executed_successfully": "Action executed successfully!", + "xds.affinity_domain": "Affinity Domain", + "xds.creation_time": "Creation Time", + "xds.delete_process_executed_param": "Delete process executed successfully:
\nErrors: {$@@errors}
\nSuccessful: {$@@successful}", + "xds.document_deleted": "Document deleted successfully!", + "xds.document_uploader": "Document Uploader", + "xds.entry_uuid": "Entry UUID", + "xds.export_selected_documents": "Export selected Documents", + "xds.import": "Import", + "xds.mime_type": "Mime Type", + "xds.no_documents_fond": "No documents fond!", + "xds.patient_id_and_affinity_domain_filters_are_required": "Patient ID and Affinity Domain filters are required!", + "xds.show_file": "Show file", + "xds.unique_id": "Unique ID", + "xds.you_want_to_delete_selected_document": "Are you sure you want to delete selected documents?", + "xds.you_want_to_delete_this_document": "Are you sure you want to delete this document?", + "year": "year:", + "year_plural": "years", + "year_singular": "year", + "yes": "yes", + "yesterday": "Yesterday", + "you_are_about_to_mode_studies_without_specifying_a_study_date_range": "You are about to {$@@mode_text} studies without specifying a StudyDate range, are you sure you want to continue?", + "you_dont_have_access_permission": "You don't have permission to access {$PH}", + "your_browser_dose_not_support_audio": "Your browser does not support the audio element.", + "your_browser_dose_not_support_video": "Your browser does not support the video element." + } +} \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/agfaMigrationConfig.schema.json b/src/main/webapp/assets/schema/es/agfaMigrationConfig.schema.json new file mode 100644 index 00000000..27c496f9 --- /dev/null +++ b/src/main/webapp/assets/schema/es/agfaMigrationConfig.schema.json @@ -0,0 +1,61 @@ +{ + "title": "AGFA Migration Configuration Name", + "description": "AGFA Migration Configuration Name", + "type": "object", + "required": [ + "agfaMigrationDcm4cheeURL", + "agfaMigrationExtractionPath", + "agfaMigrationMigrationPath", + "agfaMigrationPathPattern", + "agfaMigrationQueueName", + "agfaMigrationKeycloakClientID", + "agfaMigrationDeleteOnImport", + "agfaMigrationContinueOnStartup" + ], + "properties": { + "agfaMigrationDcm4cheeURL": { + "title": "DCM4CHEE Import-RS URL", + "description": "REST Endpoint URL for Import RS", + "type": "string" + }, + "agfaMigrationExtractionPath": { + "title": "Extraction Path", + "description": "Path to extract Blob files - must match the Filesystem configruation of the filesystem descriptor used in the DCM4CHEE URL", + "type": "string" + }, + "agfaMigrationMigrationPath": { + "title": "Migration Path", + "description": "Path where Blob files are located", + "type": "string" + }, + "agfaMigrationPathPattern": { + "title": "Path Pattern", + "description": "Path Pattern to extract Blob files (f.e. 2021/01/23/{00100020,hash}/{0020000D,hash}/{0020000E,hash}/{00080018,hash})", + "type": "string" + }, + "agfaMigrationQueueName": { + "title": "JMS Queue Name", + "description": "JMS Queue Name where Migration Orders are stored", + "type": "string", + "default": "AgfaMigrate" + }, + "agfaMigrationKeycloakClientID": { + "title": "Keycloak Client ID", + "description": "Keycloak Client ID", + "type": "string" + }, + "agfaMigrationDeleteOnImport": { + "title": "Delete on Import", + "description": "Delete on Import", + "type": "boolean", + "default": false + }, + "agfaMigrationContinueOnStartup": { + "title": "Continue On Startup", + "description": "Automatically start the next scheduled batch on startup", + "type": "boolean", + "default": false + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/archiveAttributeCoercion.schema.json b/src/main/webapp/assets/schema/es/archiveAttributeCoercion.schema.json new file mode 100644 index 00000000..e6303f7e --- /dev/null +++ b/src/main/webapp/assets/schema/es/archiveAttributeCoercion.schema.json @@ -0,0 +1,236 @@ +{ + "title": "Archive Attribute Coercion - Legacy", + "description": "Archive Attribute Coercion of received/sent DIMSE", + "type": "object", + "required": [ + "cn", + "dcmDIMSE", + "dicomTransferRole", + "dcmRulePriority", + "dcmRetrieveAsReceived", + "dcmNoKeywords", + "dcmMWLImportFilterBySCU", + "dcmAttributeUpdatePolicy", + "dcmTrimISO2022CharacterSet" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Archive Attribute Coercion", + "type": "string" + }, + "dcmRulePriority": { + "title": "Rule Priority", + "description": "Rule Priority. Higher priority rule applied.", + "type": "integer", + "default" : 0, + "minimum": 0 + }, + "dcmDIMSE": { + "title": "DIMSE", + "description": "DICOM Message Element on which this Attribute Coercion shall be applied. Also applicable if the requests are received over web.", + "type": "string", + "enum": [ + "N_CREATE_RQ", + "C_STORE_RQ", + "C_FIND_RQ", + "C_FIND_RSP" + ] + }, + "dicomTransferRole": { + "title": "DICOM Transfer Role", + "description": "DICOM Transfer Role of peer DICOM AE.", + "type": "string", + "enum": [ + "SCU", + "SCP" + ] + }, + "dcmSOPClass": { + "title": "SOP Class UID", + "description": "UID of SOP Class for which this Attribute Coercion shall be applied. Apply on any if absent.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSOPClass" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmRetrieveAsReceived": { + "title": "Retrieve as Received", + "description": "Disables merge of DB information into the retrieved Composite Object, returning the objects as received. Only effective with DIMSE = C_STORE_RQ and DICOM Transfer Role = SCP.", + "type": "boolean", + "default": false + }, + "dcmDeIdentification": { + "title": "De-identification", + "description": "De-identify objects according the Basic Application Level Confidentiality Profile specified in DICOM PS3.15. Selecting any Option implicitly includes the Basic Application Level Confidentiality Profile.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "BasicApplicationConfidentialityProfile", + "RetainLongitudinalTemporalInformationFullDatesOption", + "RetainDeviceIdentityOption", + "RetainInstitutionIdentityOption", + "RetainUIDsOption", + "RetainPatientIDHashOption" + ] + } + }, + "dcmURI": { + "title": "XSL Stylesheet URI", + "description": "Specifies URI of the XSL style sheet for Attribute Coercion", + "type": "string" + }, + "dcmNoKeywords": { + "title": "No Attribute Keyword", + "description": "Indicates if attribute keywords shall be omitted in DICOM XML passed to XSLT", + "type": "boolean", + "default": false + }, + "dcmMergeMWLMatchingKey": { + "title": "Merge MWL Matching Key", + "description": "Specifies attribute of received object to lookup MWL Item used to coerce request attributes. If absent, request attributes of received objects will not be coerced. Refer applicability of merge MWL matching keys.", + "type": "string", + "enum": [ + "PatientID", + "PatientIDOnly", + "PatientIDAccessionNumber", + "AccessionNumber", + "StudyInstanceUID", + "ScheduledProcedureStepID" + ] + }, + "dcmMergeMWLTemplateURI": { + "title": "Merge MWL Template URI", + "description": "Specifies URI for the style sheet to coerce request attributes of received objects from matching DICOM MWL items. Only effective, if dcmMergeMWLMatchingKey is specified.", + "type": "string" + }, + "dcmMergeMWLSCP": { + "title": "Merge MWL SCP", + "description": "AE Title of External MWL SCP used to lookup MWL Item to coerce request attributes of received objects. If configured, external MWL SCP is queried by invoking a C-FIND RQ of the DICOM MWL Service and Merge Local MWL SCP is ignored.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmMergeLocalMWLWorklistLabel": { + "title": "Merge Local MWL Worklist Label", + "description": "Only consider MWL items with one of the specified values of its Worklist Label (0074,1202) in the Archive DB to coerce request attributes of received objects. If absent, the Archive DB is queried for matching MWL items with any Worklist Label (0074,1202).", + "type": "array", + "items" : { + "type": "string" + }, + "format": "dcmMWLWorklistLabel" + }, + "dcmMergeLocalMWLWithStatus" : { + "title": "Merge Local MWL With Status", + "description": "Only consider MWL items with one of the specified Scheduled Procedure Step Status codes. If absent, MWL items with any Scheduled Procedure Step Status are considered.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "SCHEDULED", + "ARRIVED", + "READY", + "STARTED", + "DEPARTED", + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + } + }, + "dcmMWLImportFilterBySCU": { + "title": "Merge MWL Filter by SCU", + "description": "Indicates to apply specified filter on matches returned by external MWL SCP.", + "type": "boolean", + "default": false + }, + "dcmLeadingCFindSCP": { + "title": "Leading C-FIND SCP", + "description": "AE Title of external C-FIND SCP for Attribute Coercion with Patient and Study attributes fetched from this AE. If no particular Attribute Set is specified for the C-FIND SCP, all Attributes of the configured Patient and Study Attribute Filter will be fetched.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmAttributeUpdatePolicy": { + "title": "Attribute Update Policy", + "description": "Specifies how attributes shall be updated with attributes fetched from Leading C-FIND SCP. Refer Attribute Update Policies meanings.", + "type": "string", + "default": "MERGE", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE" + ] + }, + "dcmTrimISO2022CharacterSet": { + "title": "Trim ISO 2022 Character Set", + "description": "Replace single code for Single-Byte Character Sets with Code Extensions by code for Single-Byte Character Sets without Code Extensions. Refer character sets to which this coercion applies.", + "type": "boolean", + "default": false + }, + "dcmUseCallingAETitleAs": { + "title": "Use Calling AE Title as", + "description": "Identifies the attribute which is set to the value of the Calling AET if it is absent or empty. ScheduledStationAETitle (= Scheduled Station AE Title (0040,0001) in item of Scheduled Procedure Step Sequence (0040,0100)), SendingApplicationEntityTitleOfSeries (= Sending Application Entity Title of Series (7777,xx37)).", + "type": "string", + "enum": [ + "ScheduledStationAETitle", + "SendingApplicationEntityTitleOfSeries" + ] + }, + "dcmNullifyTag": { + "title": "Nullify Attribute Tag", + "description": "DICOM Tag of Attribute to be nullified as hex string", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmTag" + }, + "dcmMergeAttribute": { + "title": "Merge Attribute", + "description": "Merge DICOM Attribute in format {attributeID}={value}. {attributeID} inside {value} will be replaced by the value of that attribute in the original dataset. Refer applicability, formats and some examples.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmNullifyIssuerOfPatientID": { + "title": "Nullify Issuer of Patient ID", + "description": "Conditionally nullify Issuer of Patient ID (0010,0021) and Issuer of Patient ID Qualifiers Sequence (0010,0024) from received objects", + "type": "string", + "enum": [ + "ALWAYS", + "MATCHING", + "NOT_MATCHING" + ] + }, + "dcmIssuerOfPatientID": { + "title": "Issuer of Patient ID", + "description": "Issuer of Patient ID (0010,0021), and optionally also values for the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Patient ID Qualifiers Sequence (0010,0024) against values in received objects are matched, if Nullify Issuer of Patient ID is set to MATCHING or NOT_MATCHING. Specify values in format: {IssuerOfPatientID}[&{UniversalEntityID&UniversalEntityIDType}].", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmIssuerOfPatientIDFormat": { + "title": "Issuer Of Patient ID Format", + "description": "Format of Issuer of Patient ID (0010,0021) derived from other attributes. E.g. \"{00100010,hash}-{00100030}\": use hash value of Patient Name and Birth Date separated by \"-\". Refer applicability of this field and some examples.", + "type": "string" + }, + "dcmSupplementFromDeviceReference": { + "title": "Supplement from Device", + "description": "Name of Device from which Assigning Authorities and other information is supplemented. Refer applicability to entities and information supplemented from device.", + "type": "string", + "format": "dicomDeviceName" + } + } +} diff --git a/src/main/webapp/assets/schema/es/archiveAttributeCoercion2.schema.json b/src/main/webapp/assets/schema/es/archiveAttributeCoercion2.schema.json new file mode 100644 index 00000000..1389e1c9 --- /dev/null +++ b/src/main/webapp/assets/schema/es/archiveAttributeCoercion2.schema.json @@ -0,0 +1,130 @@ +{ + "title": "Archive Attribute Coercion - New", + "description": "Archive Attribute Coercion of received/sent DIMSE", + "type": "object", + "required": [ + "cn", + "dcmDIMSE", + "dicomTransferRole", + "dcmURI", + "dcmCoercionSufficient", + "dcmCoercionOnFailure", + "dcmRulePriority", + "dcmAttributeUpdatePolicy" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Archive Attribute Coercion", + "type": "string" + }, + "dicomDescription": { + "title": "Attribute Coercion Description", + "description": "Unconstrained text description of the Attribute Coercion", + "type": "string" + }, + "dcmURI": { + "title": "Attribute Coercion URI", + "description": "Identifies Attribute Coercion by Uniform Resource Identifier. Refer values you can set for Attribute Coercion URI field depending on the coercion type.", + "type": "string" + }, + "dcmCoercionSufficient": { + "title": "Attribute Coercion Sufficient", + "description": "Do not apply other matching Attribute Coercions of lesser priority, if this Attribute Coercion was applied effectively.", + "type": "boolean", + "default": false + }, + "dcmCoercionOnFailure": { + "title": "Attribute Coercion on Failure", + "description": "Behavior on failure applying this Attribute Coercion. Refer Attribute Coercion on Failure meanings.", + "type": "string", + "default": "RETHROW", + "enum": [ + "RETHROW", + "CONTINUE", + "SUFFICIENT" + ] + }, + "dcmRulePriority": { + "title": "Attribute Coercion Priority", + "description": "Rule Priority. Higher priority rule takes precedence.", + "type": "integer", + "default" : 0, + "minimum": 0 + }, + "dcmDIMSE": { + "title": "DIMSE", + "description": "DICOM Message Element on which this Attribute Coercion shall be applied. Also applicable if the requests are received over web.", + "type": "string", + "enum": [ + "N_CREATE_RQ", + "C_STORE_RQ", + "C_FIND_RQ", + "C_FIND_RSP" + ] + }, + "dicomTransferRole": { + "title": "DICOM Transfer Role", + "description": "DICOM Transfer Role of peer DICOM AE.", + "type": "string", + "enum": [ + "SCU", + "SCP" + ] + }, + "dcmSOPClass": { + "title": "SOP Class UID", + "description": "UID of SOP Class for which this Attribute Coercion shall be applied. Apply on any if absent.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSOPClass" + }, + "dcmProperty": { + "title": "Condition", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmAttributeUpdatePolicy": { + "title": "Attribute Update Policy", + "description": "Applied Attribute Update Policy. Only effective for coerce from Leading C-FIND SCP coercion type. Refer Attribute Update Policies' meanings.", + "type": "string", + "default": "MERGE", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE" + ] + }, + "dcmSupplementFromDeviceReference": { + "title": "Device Name Coercion Parameter", + "description": "Device Name Coercion Parameter. Only effective for supplementing from device coercion type.", + "type": "string", + "format": "dicomDeviceName" + }, + "dcmMergeAttribute": { + "title": "DICOM Attribute Coercion Parameters", + "description": "DICOM Attribute Coercion Parameters in format {attributeID}={value}. {attributeID} inside of {value} may be replaced by the value of that attribute in the original dataset. Only effective for merging attributes coercion type. Refer formatting options and examples.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmCoercionParam": { + "title": "Other Coercion Parameters", + "description": "Refer applicability to coercion types and examples in Other Attribute Coercion specific Parameters", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + } + } +} diff --git a/src/main/webapp/assets/schema/es/archiveCompressionRule.schema.json b/src/main/webapp/assets/schema/es/archiveCompressionRule.schema.json new file mode 100644 index 00000000..fc167100 --- /dev/null +++ b/src/main/webapp/assets/schema/es/archiveCompressionRule.schema.json @@ -0,0 +1,52 @@ +{ + "title": "Archive Compression rule", + "description": "Archive Compression rule", + "type": "object", + "required": [ + "cn", + "dicomTransferSyntax", + "dcmRulePriority" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Archive Compression Rule", + "type": "string" + }, + "dicomTransferSyntax": { + "title": "DICOM Transfer Syntax UID", + "description": "Transfer Syntax to which received images shall be compressed", + "type": "string", + "format": "dcmTransferSyntax" + }, + "dcmRulePriority": { + "title": "Rule Priority", + "description": "If the condition of several Compression rules matches for a received image, the rule with the highest priority will get applied. If there are several matching rules with equal priority it is undefined which rule get applied.", + "type": "integer", + "default" : 0, + "minimum": 0 + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmImageWriteParam": { + "title": "Image Write Param", + "description": "Image Write Parameter(s) (name=value) set at on Image Writer before compression", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmCompressionDelay": { + "title": "Compression Delay", + "description": "Compression delay in ISO-8601 duration format PnDTnHnMn.nS. Compress on receive if absent.", + "type": "string", + "format": "dcmDuration" + } + } +} diff --git a/src/main/webapp/assets/schema/es/archiveDevice.schema.json b/src/main/webapp/assets/schema/es/archiveDevice.schema.json new file mode 100644 index 00000000..68db64e4 --- /dev/null +++ b/src/main/webapp/assets/schema/es/archiveDevice.schema.json @@ -0,0 +1,2180 @@ +{ + "title": "Archive Device", + "description": "DICOM Archive Device related information", + "type": "object", + "required": [ + "dcmFuzzyAlgorithmClass", + "dcmStoreImplementationVersionName", + "dcmCalculateStudySizeFetchSize", + "dcmCalculateQueryAttributes", + "dcmSeriesMetadataFetchSize", + "dcmSeriesMetadataThreads", + "dcmSeriesMetadataMaxRetries", + "dcmPurgeInstanceRecords", + "dcmPurgeInstanceRecordsFetchSize", + "dcmDeleteUPSFetchSize", + "dcmMWLFetchSize", + "dcmOverwritePolicy", + "dcmRecordAttributeModification", + "dcmIdentifyPatientByAllAttributes", + "dcmAcceptMissingPatientID", + "dcmAcceptConflictingPatientID", + "dcmValidateCallingAEHostname", + "dcmUserIdentityNegotiation", + "dcmPersonNameComponentOrderInsensitiveMatching", + "dcmSendPendingCGet", + "dcmQueryFetchSize", + "dcmQueryMaxNumberOfResults", + "dcmQidoMaxNumberOfResults", + "dcmQidoETag", + "dcmWadoThumbnailViewport", + "dcmWadoZIPEntryNameFormat", + "dcmIanOnTimeout", + "dcmIanTaskFetchSize", + "dcmSpanningCFindSCPPolicy", + "dcmFallbackCMoveSCPRetries", + "dcmFallbackWadoURIHttpStatusCode", + "dcmTaskFetchSize", + "dcmUPSProcessingFetchSize", + "dcmRetrieveTaskWarningOnNoMatch", + "dcmRetrieveTaskWarningOnWarnings", + "dcmPurgeStorageFetchSize", + "dcmFailedToDeleteFetchSize", + "dcmDeleteStudyBatchSize", + "dcmDeleteStudyChunkSize", + "dcmDeletePatientOnDeleteLastStudy", + "dcmDeleteRejectedFetchSize", + "dcmLeadingCFindSCPQueryCacheSize", + "dcmAuditUnknownStudyInstanceUID", + "dcmAuditUnknownPatientID", + "dcmShowPatientInfoInSystemLog", + "dcmShowPatientInfoInAuditLog", + "hl7ScheduledProtocolCodeInOrder", + "dcmBulkDataSpoolDirectory", + "dcmWadoSpoolDirectory", + "dcmStowSpoolDirectory", + "dcmAuditSpoolDirectory", + "dcmStorePermissionCacheSize", + "dcmMergeMWLCacheSize", + "dcmStoreUpdateDBMaxRetries", + "dcmStoreUpdateDBMinRetryDelay", + "dcmStoreUpdateDBMaxRetryDelay", + "dcmAllowRejectionForDataRetentionPolicyExpired", + "dcmAllowDeleteStudyPermanently", + "dcmAllowDeletePatient", + "dcmStorageVerificationPolicy", + "dcmStorageVerificationUpdateLocationStatus", + "dcmStorageVerificationAETitle", + "dcmStorageVerificationFetchSize", + "dcmUpdateLocationStatusOnRetrieve", + "dcmStorageVerificationOnRetrieve", + "dcmCompressionThreads", + "dcmCompressionFetchSize", + "dcmPatientVerificationFetchSize", + "dcmPatientVerificationAdjustIssuerOfPatientID", + "dcmPatientVerificationMaxRetries", + "dcmQueueTasksFetchSize", + "dcmSupplementIssuerFetchSize", + "dcmUpdateCharsetFetchSize", + "dcmCopyMoveUpdatePolicy", + "dcmLinkMWLEntryUpdatePolicy", + "dcmCSVUploadChunkSize", + "dcmValidateUID", + "dcmRelationalQueryNegotiationLenient", + "dcmRelationalRetrieveNegotiationLenient", + "dcmRestrictRetrieveSilently", + "dcmSchedulerMinStartDelay", + "dcmStowRetiredTransferSyntax", + "dcmAuditSoftwareConfigurationVerbose", + "dcmWadoIgnorePresentationLUTShape", + "dcmWadoMetadataExcludePrivate", + "dcmStowExcludeAPPMarkers", + "dcmStowQuicktime2MP4", + "dcmStowMaxFragmentLength", + "dcmFilterByIssuerOfPatientID", + "dcmMWLAccessionNumberGenerator", + "dcmMWLRequestedProcedureIDGenerator", + "dcmMWLScheduledProcedureStepIDGenerator", + "dcmAuditHL7MsgLimit", + "dcmMatchSOPClassOnInstanceLevel", + "dcmKeyValueRetentionFetchSize", + "dcmUPSUpdateWithoutTransactionUID", + "hl7PSUForRequestedProcedure", + "hl7PSUTemplateParam", + "hl7PSUMWL", + "hl7PSUMWLMatchingKey", + "hl7PSUOnTimeout", + "hl7PSUMessageType", + "hl7PSUPIDPV1", + "hl7PSUTaskFetchSize", + "hl7TrackChangedPatientID", + "hl7UseNullValue", + "hl7VeterinaryUsePatientName", + "hl7OtherPatientIDs", + "hl7OrderMissingStudyIUIDPolicy", + "hl7OrderMissingAdmissionIDPolicy", + "hl7ImportReportMissingStudyIUIDPolicy", + "hl7ImportReportMissingAdmissionIDPolicy", + "hl7ImportReportAdjustIUID", + "hl7ReferredMergedPatientPolicy" + ], + "properties": { + "dcmFuzzyAlgorithmClass": { + "title": "Fuzzy Algorithm Class", + "description": "Specifies Fuzzy Algorithm Implementation Class.", + "type": "string", + "enum":[ + "org.dcm4che3.soundex.Soundex", + "org.dcm4che3.soundex.ESoundex", + "org.dcm4che3.soundex.ESoundex9", + "org.dcm4che3.soundex.Metaphone", + "org.dcm4che3.soundex.KPhonetik", + "org.dcm4che3.soundex.Phonem" + ] + }, + "dcmStoreImplementationVersionName": { + "title": "Store Implementation Version Name", + "description": "Indicates to include Implementation Version Name (0002,0012) in the File Meta Information of stored DICOM objects.", + "type": "boolean", + "default" : true + }, + "dcmBulkDataDescriptorID": { + "title": "Bulk Data Descriptor ID", + "description": "ID of Bulk Data Descriptor applied by all services providing Metadata of archived instances. If absent, only Attributes specified by the Composite Instance Retrieve Without Bulk Data Service Class are treated as Bulk Data. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmBulkDataDescriptorID" + }, + "dcmCalculateStudySizeDelay": { + "title": "Calculate Study Size Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS for eager calculation of Study Size and Query Attributes. If absent, no (minimal) delay for eager calculation of the Study Size and Query Attributes is applied.", + "type": "string", + "format": "dcmDuration" + }, + "dcmCalculateStudySizePollingInterval": { + "title": "Calculate Study Size Polling Interval", + "description": "Polling Interval for Studies with unknown size in ISO-8601 duration format PnDTnHnMnS. If absent, there is no eager calculation of the Study Size and Query Attributes.", + "type": "string", + "format": "dcmDuration" + }, + "dcmCalculateStudySizeFetchSize": { + "title": "Calculate Study Size Fetch Size", + "description": "Limit result set of DB query for Studies with unknown size.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmCalculateQueryAttributes": { + "title": "Calculate Query Attributes", + "description": "Indicates to eager calculate Query Attributes according configured Calculate Study Size Delay and Calculate Study Size Polling Interval.", + "type": "boolean", + "default" : false + }, + "dcmSeriesMetadataStorageID": { + "title": "Series Metadata Storage ID", + "description": "ID of Storage on which ZIP archives with aggregated Metadata of all instances of a Series is stored. Multiple Storage Systems may be configured. If absent, no aggregated Series Metadata will be stored.", + "type": "array", + "items" : { + "type": "string" + }, + "format": "dcmStorageID" + }, + "dcmSeriesMetadataDelay": { + "title": "Aggregate Series Metadata Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS for storing aggregated Series Metadata on storage. If absent, no aggregated Series Metadata will be stored. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmDuration" + }, + "dcmSeriesMetadataPollingInterval": { + "title": "Update Series Metadata Polling Interval", + "description": "Polling Interval for Series scheduled for Metadata update in ISO-8601 duration format PnDTnHnMnS. If absent, no aggregated Series Metadata will be stored.", + "type": "string", + "format": "dcmDuration" + }, + "dcmSeriesMetadataFetchSize": { + "title": "Update Series Metadata Fetch Size", + "description": "Maximal number of Series scheduled for Metadata update fetched by one query.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmSeriesMetadataThreads": { + "title": "Update Series Metadata Threads", + "description": "Number of Threads used for creation and update of Series Metadata.", + "type": "integer", + "default" : 1, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmSeriesMetadataMaxRetries": { + "title": "Update Series Metadata Maximum Number of Retries", + "description": "Maximum number of retries to create/update aggregated Series Metadata. Only effective if Update Series Metadata Retry Interval is specified. -1 = forever.", + "type": "integer", + "default": 0, + "minimum": -1 + }, + "dcmSeriesMetadataRetryInterval": { + "title": "Update Series Metadata Retry Interval", + "description": "Interval in ISO-8601 duration format PnDTnHnMnS in which failed attempts to create/update aggregated Series Metadata will be retried. Only effective if Update Series Metadata Maximum Number of Retries != 0. If absent, failed attempts will not be retried.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeInstanceRecords": { + "title": "Purged Instance Records", + "description": "Indicates that Instance Records may have been purged from the DB.", + "type": "boolean", + "default" : false + }, + "dcmPurgeInstanceRecordsDelay": { + "title": "Purge Instance Records Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS for purging Instance Records from the DB. May be overwritten by configured values for particular Archive Network AEs. Only effective, if Purge Instance Records = true.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeInstanceRecordsPollingInterval": { + "title": "Purge Instance Records Polling Interval", + "description": "Polling Interval for Series scheduled for purging Instance Records from the DB in ISO-8601 duration format PnDTnHnMnS. Only effective, if Purge Instance Records = true.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeInstanceRecordsFetchSize": { + "title": "Purge Instance Records Fetch Size", + "description": "Maximal number of Series scheduled for purging Instance Records from the DB fetched by one query. Only effective, if Purge Instance Records = true.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmMWLPollingInterval": { + "title": "MWL Polling Interval", + "description": "Polling Interval for updating the status of idle MWL items and deleting MWL items in ISO-8601 duration format PnDTnHnMnS. If absent, MWL Items will not get update or deleted.", + "type": "string", + "format": "dcmDuration" + }, + "dcmMWLFetchSize": { + "title": "MWL Fetch Size", + "description": "Maximal number of MWL items to update or delete in one transaction.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmMWLImportInterval": { + "title": "MWL Import Interval", + "description": "Interval for import of Scheduled Procedure Steps from external MWL SCPs in ISO-8601 duration format PnDTnHnMn.nS; disabled if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmDeleteMWLDelay": { + "title": "Delete MWL Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS for deleting MWL items, whose updated_time is older than the specified delay. Status specific delays can be specified by prefix 'SCHEDULED:', 'ARRIVED:', 'READY:', 'STARTED:', 'DEPARTED:', 'CANCELED:', 'DISCONTINUED:', 'COMPLETED:'. Examples: PT5M or CANCELED:PT10M. If absent, MWL Items will not get deleted.", + "type": "array", + "items" : { "type": "string" } + }, + "dcmDeleteUPSPollingInterval": { + "title": "Delete UPS Polling Interval", + "description": "Polling Interval for deleting Unified Procedure Steps (UPS) in ISO-8601 duration format PnDTnHnMnS. If absent, Unified Procedure Steps will not get deleted.", + "type": "string", + "format": "dcmDuration" + }, + "dcmDeleteUPSFetchSize": { + "title": "Delete UPS Fetch Size", + "description": "Maximal number of Unified Procedure Steps (UPS) to delete in one transaction.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmDeleteUPSCompletedDelay": { + "title": "Delete UPS Completed Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS for deleting completed Unified Procedure Steps without Deletion Lock. If absent, completed Unified Procedure Steps without Deletion Lock are deleted immediately.", + "type": "string", + "format": "dcmDuration" + }, + "dcmDeleteUPSCanceledDelay": { + "title": "Delete UPS Canceled Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS for deleting canceled Unified Procedure Steps without Deletion Lock. If absent, canceled Unified Procedure Steps without Deletion Lock are deleted immediately.", + "type": "string", + "format": "dcmDuration" + }, + "dcmOverwritePolicy": { + "title": "Overwrite Policy", + "description": "Overwrite Policy. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "NEVER", + "enum": [ + "NEVER", + "ALWAYS", + "SAME_SOURCE", + "SAME_SERIES", + "SAME_SOURCE_AND_SERIES", + "EVEN_WITH_EQUAL_DIGEST" + ] + }, + "dcmRecordAttributeModification": { + "title": "Record Attribute Modification", + "description": "Indicates if modifications of attributes of stored objects are recorded in Items of the Original Attributes Sequence. May be overwritten by configured values for particular Archive Network AE or Archive HL7 Application.", + "type": "boolean", + "default": true + }, + "dcmAcceptMissingPatientID": { + "title": "Accept Missing Patient ID", + "description": "Indicates if objects without Patient IDs shall be accepted and if a Patient ID shall be created. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "CREATE", + "enum": [ + "YES", + "NO", + "CREATE" + ] + }, + "dcmAcceptConflictingPatientID": { + "title": "Accept Conflicting Patient ID", + "description": "Indicates if objects with a Patient IDs which differs from the Patient ID in previous received objects of the Study shall be accepted. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "MERGED", + "enum": [ + "YES", + "NO", + "MERGED" + ] + }, + "dcmIdentifyPatientByAllAttributes": { + "title": "Identify Patient by all Attributes", + "description": "Indicates if all Patient attributes in received objects shall be used for associating an already existing Patient in the archive, if the Assigning Authority of the Patient ID is not specified by an Issuer of Patient ID or Universal Entity ID. Attention: disables the coercion of stale Patient attributes in received objects and breaks Patient Management functions relying on the unambiguity of Patient IDs.", + "type": "boolean", + "default": false + }, + "dcmBulkDataSpoolDirectory": { + "title": "Bulk Data Spool Directory", + "description": "Path to Bulk Data Spool Directory. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "${jboss.server.temp.dir}" + }, + "dcmHideSPSWithStatusFromMWL": { + "title": "Hide SPS with Status by MWL SCP", + "description": "Scheduled Procedure Step Status codes of MWL items which shall not be returned by the MWL SCP. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "SCHEDULED", + "ARRIVED", + "READY", + "STARTED", + "DEPARTED", + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + } + }, + "dcmHideSPSWithStatusFromMWLRS": { + "title": "Hide SPS with Status by MWL RS", + "description": "Scheduled Procedure Step Status codes of MWL items which shall not be returned by the MWL RS. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "SCHEDULED", + "ARRIVED", + "READY", + "STARTED", + "DEPARTED", + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + } + }, + "dcmEncodeAsJSONNumber": { + "title": "Encode as JSON Number", + "description": "VR encoded as JSON Number. If not listed, IS, DS, SV and UV values are encoded as JSON Strings. May be supplemented by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "DS", + "IS", + "SV", + "UV" + ] + } + }, + "dcmValidateCallingAEHostname": { + "title": "Validate Calling AE Hostname", + "description": "Validate Calling AE Hostname or IP Address of Association requestors. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmUserIdentityNegotiation": { + "title": "User Identity Negotiation", + "description": "Specifies to ignore User Identity Negotiation Sub-Item in Association requests (=NOT_SUPPORTED), to verify passed Username and password or JSON Web Token are against a Keycloak server (=SUPPORTS), or to reject Association requests without a valid Username and password or JSON Web Token in its Identity Negotiation Sub-Item (=REQUIRED). May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "SUPPORTS", + "enum": [ + "NOT_SUPPORTED", + "SUPPORTS", + "REQUIRED" + ] + }, + "dcmUserIdentityNegotiationRole": { + "title": "User Identity Negotiation Role", + "description": "Constrain accepted User Identity Negotiation requests to users with specified role. If absent, only verify passed username and password or JSON Web Token. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmUserIdentityNegotiationKeycloakClientID": { + "title": "User Identity Negotiation Keycloak Client ID", + "description": "Keycloak Client ID referring Keycloak connection configuration for verifying passed username and password or JSON Web Token. If absent, System Properties ${auth-server-url}, ${realm-name:dcm4che}, ${ui-client-id:dcm4chee-arc-ui}, ${disable-trust-manager:false}, ${allow-any-hostname:true} will be applied. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmKeycloakClient" + }, + "dcmPersonNameComponentOrderInsensitiveMatching": { + "title": "Person Name Component Order Insensitive Matching", + "description": "Indicates if name component order insensitive matching is performed on fuzzy semantic matching of person names. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmSendPendingCGet": { + "title": "Send Pending C-Get", + "description": "Enables pending C-GET responses. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmSendPendingCMoveInterval": { + "title": "Send Pending C-Move Interval", + "description": "Interval of pending C-MOVE responses in ISO-8601 duration format PnDTnHnMnS; disabled if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmDuration" + }, + "dcmWadoSupportedSRClasses": { + "title": "Wado Supported SR Classes", + "description": "Supported SR SOP classes for WADO retrieval", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmSOPClass" + }, + "dcmWadoSupportedPRClasses": { + "title": "Wado Supported PR Classes", + "description": "Supported PR SOP classes for WADO retrieval", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmSOPClass" + }, + "dcmWadoSR2HtmlTemplateURI": { + "title": "Wado SR2 Html Template URI", + "description": "Specifies URI for the style sheet used to render structured reports to html. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmWadoSR2TextTemplateURI": { + "title": "Wado SR2 Text Template URI", + "description": "Specifies URI for the style sheet used to render structured reports to plain text. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmWadoCDA2HtmlTemplateURI": { + "title": "Wado CDA to HTML Template URI", + "description": "URL to XSL style sheet inserted as \" > in CDA documents returned by WADO-URI service. If absent, the embedded CDI document is returned verbatim. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmWadoThumbnailViewport": { + "title": "Wado Thumbnail Viewport", + "description": "Dimension of Thumbnails returned by WADO retrieve of Instance Thumbnails, if no Viewport is specified in the request. Format: ,. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "64,64", + "format": "dcmWadoThumbnailViewport" + }, + "dcmWadoZIPEntryNameFormat": { + "title": "Wado ZIP Entry Name Format", + "description": "Format of entry names in ZIP archive returned by WADO-RS. May be overwritten by configured value for particular Archive Network AEs.", + "type": "string", + "default": "DICOM/{0020000D,hash}/{0020000E,hash}/{00080018,hash}.dcm" + }, + "dcmWadoIgnorePresentationLUTShape": { + "title": "Wado Ignore Presentation LUT Shape", + "description": "Indicates to ignore (2050,0020) Presentation LUT Shape, but prioritize value of (0028,0004) Photometric Interpretation to determine if minimum sample value is intended to be displayed as white (=MONCHROME1) or as black (=MONCHROME2) on retrieve of rendered DICOM images by WADO-RS or WADO-URI services. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmWadoMetadataExcludePrivate": { + "title": "Wado Metadata Exclude Private", + "description": "Indicates to exclude Private Data Elements from Metadata returned by WADO-RS Retrieve Transaction. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmQueryFetchSize": { + "title": "Query Fetch Size", + "description": "Number of rows fetched from the database at once by the Query Service.", + "type": "integer", + "default": 100, + "minimum": 0 + }, + "dcmQueryMaxNumberOfResults": { + "title": "Query Max Number Of Results", + "description": "Maximal number of return results by C-FIND SCP. If the number of matches extends the limit, the C-FIND request will be refused. 0 = no limitation. May be overwritten by configured values for particular Archive Network AEs.", + "type": "integer", + "default": 0, + "minimum": 0 + }, + "dcmQidoMaxNumberOfResults": { + "title": "Qido Max Number Of Results", + "description": "Maximal number of return results by QIDO-RS Service. 0 = no limitation. May be overwritten by configured values for particular Archive Network AEs.", + "type": "integer", + "default": 0, + "minimum": 0 + }, + "dcmQidoETag": { + "title": "Qido ETag", + "description": "Indicates to return Last-Modified and ETag for Search Series or Instances of a Study; disabled if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmFwdMppsDestination": { + "title": "Mpps Forward Destination", + "description": "Destination to forward MPPS N-CREATE RQ and N-SET RQ. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmIanDestination": { + "title": "Ian Destination", + "description": "Destination to send IAN N-CREATE RQ. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmIanDelay": { + "title": "IAN Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which an IAN for a received study is sent to configured IAN destinations. If absent, IANs are triggered by received MPPS. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmDuration" + }, + "dcmIanTimeout": { + "title": "IAN Timeout", + "description": "Timeout in ISO-8601 duration format PnDTnHnMnS for waiting on receive of instances referenced in MPPS; check for completeness forever if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmDuration" + }, + "dcmIanOnTimeout": { + "title": "IAN On Timeout", + "description": "Specifies if the IAN is sent if the timeout for waiting on receive of instances referenced is exceeded. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmIanTaskPollingInterval": { + "title": "IAN Task Polling Interval", + "description": "Polling Interval for IAN Tasks in ISO-8601 duration format PnDTnHnMnS. IAN disabled, if absent", + "type": "string", + "format": "dcmDuration" + }, + "dcmIanTaskFetchSize": { + "title": "IAN Task Fetch Size", + "description": "Maximal number of IAN Tasks scheduled in one transaction.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmSpanningCFindSCP": { + "title": "Spanning C-Find SCP", + "description": "AE Title of external C-FIND SCP to forward C-FIND RQs and backward responses according configured Spanning C-Find SCP Policy. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmSpanningCFindSCPPolicy": { + "title": "Spanning C-Find SCP Policy", + "description": "Specifies policy for combining matches returned from configured Spanning C-Find SCP with matching entries from the archive DB. SUPPLEMENT (= returns local matches before additional matches from Spanning C-Find SCP ), MERGE (= returns matches from Spanning C-Find SCP before additional local matches), REPLACE (= returns only matches from Spanning C-Find SCP). May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "REPLACE", + "enum": [ + "SUPPLEMENT", + "MERGE", + "REPLACE" + ] + }, + "dcmSpanningCFindSCPRetrieveAET": { + "title": "Spanning C-Find SCP Retrieve AE Title", + "description": "Specifies Retrieve AE Title(s) in returned matches from Spanning C-Find SCP. Keep original Retrieve AE Title(s) returned by Spanning C-Find SCP if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmArchiveAETitle" + }, + "dcmFallbackCMoveSCP": { + "title": "Fallback C-Move SCP", + "description": "AE Title of external C-MOVE SCP to forward C-MOVE RQs if the requested Entities are not managed by this archive. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmFallbackCMoveSCPDestination": { + "title": "Fallback C-Move SCP Destination", + "description": "AE Title of local C-STORE-SCP to be set as Move Destination in C-MOVE RQs forwarded to the external C-MOVE SCP specified by dcmFallbackCMoveSCP", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmFallbackCMoveSCPStudyOlderThan": { + "title": "Fallback C-Move SCP Study Older Than", + "description": "Specifies threshold for Study Date in format YYYYMMDD for marking received Studies as (potential) incomplete to enforce the retrieve from configured dcmFallbackCMoveSCP", + "type": "string" + }, + "dcmFallbackCMoveSCPLeadingCFindSCP": { + "title": "Fallback C-Move SCP Leading C-Find SCP", + "description": "AE Title of external C-FIND SCP for Verification of Number of Instances retrieved from external C-MOVE SCP specified by dcmFallbackCMoveSCP.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmFallbackCMoveSCPRetries": { + "title": "Fallback C-Move SCP Retries", + "description": "Maximal number of retries to retrieve not available objects from C-MOVE SCP configured by dcmFallbackCMoveSCP. -1 = forever.", + "type": "integer", + "default": 0, + "minimum": -1 + }, + "dcmFallbackWadoURIWebAppName": { + "title": "Fallback WADO-URI Web Application Name", + "description": "Name of external Web Application to redirect WADO URI requests if the requested Object is not available by this archive. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "webApp" + }, + "dcmFallbackWadoURIHttpStatusCode": { + "title": "Fallback Wado URI Http Status Code", + "description": "HTTP Status code of Redirect Response configured by Fallback WADO-URI Web Application Name. May be overwritten by configured values for particular Archive Network AEs.", + "type": "integer", + "default": 303, + "enum": [ + 301, + 302, + 303, + 307 + ] + }, + "dcmFallbackCMoveSCPCallingAET": { + "title": "Fallback C-Move SCP Calling AE title", + "description": "Calling AE Title used in A-ASSOCIATE-RQ to configured Fallback C-MOVE SCP. If absent, the AE Title of the external C-MOVE SCU is used. May be overwritten by configured value for particular Archive Network AEs.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmAltCMoveSCP": { + "title": "Alternative C-Move SCP", + "description": "AE Title of alternative C-MOVE SCP to forward C-MOVE RQs if the requested Entities are not located on a local attached Storage", + "type": "string", + "format": "dcmAETitle" + }, + "dcmCStoreSCUOfCMoveSCP": { + "title": "C-STORE SCU of C-MOVE SCP", + "description": "Indicates to identify received C-STORE RQs as caused by a forwarded C-MOVE RQs by the Calling AET in the A-Associate-RQ in format =. Typically and are equal. If no value is configured for a particular C-MOVE SCP, attribute (0000,1030) Move Originator Application Entity Title in the C-STORE RQ is used to find the corresponding forwarded C-MOVE RQ to forward the received C-STORE RQ to the original Move Destination.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmTaskPollingInterval": { + "title": "Task Polling Interval", + "description": "Polling Interval for scheduled Tasks in ISO-8601 duration format PnDTnHnMnS. If absent, Tasks will not get processed.", + "type": "string", + "format": "dcmDuration" + }, + "dcmTaskFetchSize": { + "title": "Task Fetch Size", + "description": "Limit result set of DB query for scheduled Tasks.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmUPSProcessingPollingInterval": { + "title": "UPS Processing Polling Interval", + "description": "Polling Interval for Workitems ready for processing in ISO-8601 duration format PnDTnHnMnS.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSProcessingFetchSize": { + "title": "UPS Processing Fetch Size", + "description": "Limit result set of DB query for Workitems ready for processing.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmRetrieveTaskWarningOnNoMatch": { + "title": "Retrieve Task Warning on no Match", + "description": "Indicates if the result status of Retrieve Tasks shall be set to WARNING if none of the requested objects was found on the C-MOVE SCP. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmRetrieveTaskWarningOnWarnings": { + "title": "Retrieve Task Warning on Warnings", + "description": "Indicates if the result status of Retrieve Tasks shall be set to WARNING if there are Warning Sub-Operations, even if the retrieve of all objects was successful. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmPurgeStoragePollingInterval": { + "title": "Purge Storage Polling Interval", + "description": "Polling Interval for deleting objects in ISO-8601 duration format PnDTnHnMnS.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeStorageFetchSize": { + "title": "Purge Storage Fetch Size", + "description": "Maximal number of objects to delete in one task.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmFailedToDeletePollingInterval": { + "title": "Failed to delete Polling Interval", + "description": "Polling Interval for resolving deletion failures in ISO-8601 duration format PnDTnHnMnS.", + "type": "string", + "format": "dcmDuration" + }, + "dcmFailedToDeleteFetchSize": { + "title": "Failed to delete Fetch Size", + "description": "Maximal number of Location records fetched for resolving deletion failures in one query.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmDeleteStudyBatchSize": { + "title": "Delete Study Batch Size", + "description": "Number of Studies to delete from the Storage System, if the usable space fall below configured Usable Space, before checking the usable space again.", + "type": "integer", + "default": 10, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmDeleteStudyChunkSize": { + "title": "Delete Study Chunk Size", + "description": "Number of Instances deleted in one DB transaction on permanent deletion of Studies.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmDeletePatientOnDeleteLastStudy": { + "title": "Delete Patient On Delete Last Study", + "description": "Specifies if a Patient shall be deleted on deletion of its last study.", + "type": "boolean", + "default": false + }, + "dcmDeleteRejectedPollingInterval": { + "title": "Delete Rejected Polling Interval", + "description": "Polling Interval for deleting rejected instances from the DB in ISO-8601 duration format PnDTnHnMnS.", + "type": "string", + "format": "dcmDuration" + }, + "dcmDeleteRejectedFetchSize": { + "title": "Delete Rejected Fetch Size", + "description": "Maximal number of rejected instances to delete from the DB in one task.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmMaxAccessTimeStaleness": { + "title": "Maximum Access Time Staleness", + "description": "Maximal staleness of recorded study accession time in ISO-8601 duration format PnDTnHnMnS. Update of the access time disabled, if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmAECacheStaleTimeout": { + "title": "AE Cache Stale Timeout", + "description": "Maximal staleness of cached AE in ISO-8601 duration format PnDTnHnMnS. If absent, cached AE entries will not be refetched from LDAP.", + "type": "string", + "format": "dcmDuration" + }, + "dcmLeadingCFindSCPQueryCacheStaleTimeout": { + "title": "Leading C-Find SCP Query Cache Stale Timeout", + "description": "Maximal staleness of cached Patient and Study attributes fetched from leading C-Find SCP in ISO-8601 duration format PnDTnHnMnS. If absent, cache Study attributes are only removed on reaching the maximal cache size.", + "type": "string", + "format": "dcmDuration" + }, + "dcmLeadingCFindSCPQueryCacheSize": { + "title": "Leading C-Find SCP Query Cache Size", + "description": "Maximum number of cached Patient and Study attributes fetched from leading C-Find SCP.", + "type": "integer", + "default": 10, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmAuditSpoolDirectory": { + "title": "Audit Spool Directory", + "description": "Path to Audit Service Spool Directory.", + "type": "string", + "default": "${jboss.server.temp.dir}" + }, + "dcmAuditPollingInterval": { + "title": "Audit Polling Interval", + "description": "Polling Interval for aggregating Audit Messages in ISO-8601 duration format PnDTnHnMnS. Audit Message aggregation disabled, if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmAuditAggregateDuration": { + "title": "Audit Aggregate Duration", + "description": "Audit Message Aggregation Duration in ISO-8601 duration format PnDTnHnMnS. Audit Message aggregation disabled, if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmAuditUnknownStudyInstanceUID": { + "title": "Audit Unknown Study Instance UID", + "description": "Indicates study instance uid value to be sent in audit message when not known.", + "type": "string", + "default": "1.2.40.0.13.1.15.110.3.165.1", + "pattern": "^[0-2]((\\.0)|(\\.[1-9][0-9]*))*$" + }, + "dcmAuditUnknownPatientID": { + "title": "Audit Unknown Patient ID", + "description": "Indicates patient id value to be sent in audit message when not known.", + "type": "string", + "default": "" + }, + "dcmAudit2JsonFhirTemplateURI": { + "title": "Audit to json+fhir Template URI", + "description": "Specifies URI for the style sheet to transcode Audit Message to a FHIR JSON Resource Audit Event", + "type": "string" + }, + "dcmAudit2XmlFhirTemplateURI": { + "title": "Audit to xml+fhir Template URI", + "description": "Specifies URI for the style sheet to transcode Audit Message to a FHIR XML Resource Audit Event", + "type": "string" + }, + "dcmAuditSoftwareConfigurationVerbose": { + "title": "Audit Software Configuration Verbose", + "description": "Specifies if Child Objects and Attributes of created Objects should be included in Software Configuration Audit Message.", + "type": "boolean", + "default": false + }, + "dcmAuditAssigningAuthorityOfPatientID": { + "title": "Assigning Authority of Patient ID for Audit", + "description": "Assigning Authority of Patient ID in received HL7 message used to search qualified patient identifier in list of identifiers in PID-3. This qualified patient identifier shall be used in the patient details participant object. If absent, by default the first qualified patient identifier in PID-3 shall be used. If none of the qualified patient identifiers in the list match with the configured issuer, archive server log shall contain a log INFO message and by default the first qualified patient identifier in PID-3 shall be used. Format: [& & ].", + "type": "string" + }, + "dcmShowPatientInfoInSystemLog": { + "title": "Show Patient Info In System Log", + "description": "Specifies if Patient Information is shown as plain text or hashed in system logs.", + "type": "string", + "default": "PLAIN_TEXT", + "enum": [ + "PLAIN_TEXT", + "HASH_NAME", + "HASH_NAME_AND_ID" + ] + }, + "dcmShowPatientInfoInAuditLog": { + "title": "Show Patient Info In Audit Log", + "description": "Specifies if Patient Information is shown as plain text or hashed in emitted audit messages.", + "type": "string", + "default": "PLAIN_TEXT", + "enum": [ + "PLAIN_TEXT", + "HASH_NAME", + "HASH_NAME_AND_ID" + ] + }, + "dcmStowSpoolDirectory": { + "title": "STOW-RS Spool Directory", + "description": "Path to Directory used by STOW-RS Service to spool Bulkdata of XML/JSON Metadata and Bulk Data Request Messages.", + "type": "string", + "default": "${jboss.server.temp.dir}" + }, + "dcmMWLAccessionNumberGenerator": { + "title": "MWL Accession Number Generator", + "description": "Identifies ID Generator to supplement missing Accession Numbers of Scheduled Procedures Steps created on receive of HL7 Order messages or by RESTful service. May be overwritten by configured values for particular Archive Network AEs or Archive HL7 Application.", + "type": "string", + "format": "dcmIDGenerator", + "default": "AccessionNumber" + }, + "dcmMWLRequestedProcedureIDGenerator": { + "title": "MWL Requested Procedure ID Generator", + "description": "Identifies ID Generator to supplement missing Requested Procedure IDs of Scheduled Procedures Steps created on receive of HL7 Order messages or by RESTful service. May be overwritten by configured values for particular Archive Network AEs or Archive HL7 Application.", + "type": "string", + "format": "dcmIDGenerator", + "default": "RequestedProcedureID" + }, + "dcmMWLScheduledProcedureStepIDGenerator": { + "title": "MWL Scheduled Procedure Step ID Generator", + "description": "Identifies ID Generator to supplement missing Scheduled Procedure Step IDs of Scheduled Procedures Steps created on receive of HL7 Order messages or by RESTful service. May be overwritten by configured values for particular Archive Network AEs or Archive HL7 Application.", + "type": "string", + "format": "dcmIDGenerator", + "default": "ScheduledProcedureStepID" + }, + "dcmAuditHL7MsgLimit": { + "title": "Audit HL7 Message Limit", + "description": "Limit length of HL7 messages included in emitted Audit Records. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "integer", + "default": 1000 + }, + "hl7ORUAction": { + "title": "HL7 ORU Action", + "description": "Specifies action on receive of HL7 ORU^R01 message: IMPORT_REPORT (= transcode received HL7 ORU^R01 to DICOM SR), MWL_COMPLETED (= set Status of matching MWL items to COMPLETED). May be overwritten by configured values for particular Archive HL7 Application.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "IMPORT_REPORT", + "MWL_COMPLETED" + ] + } + }, + "hl7PatientUpdateTemplateURI": { + "title": "HL7 Patient Update Template URI", + "description": "Specifies URI for the style sheet used by HL7v2 Patient Update Service. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string" + }, + "hl7ImportReportTemplateURI": { + "title": "HL7 Import Report Template URI", + "description": "Specifies URI for the style sheet to transcode received HL7 ORU^R01 to DICOM SR. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string" + }, + "hl7ImportReportTemplateParam": { + "title": "HL7 Import Report Template Parameter", + "description": "XSLT parameters passed to style sheet specified by HL7 Import Report Template URI. Format: {name}={value}. E.g.: 'langCodeValue=et', 'langCodingSchemeDesignator=RFC5646', 'langCodeMeaning=Estonian'. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7ScheduleProcedureTemplateURI": { + "title": "HL7 Schedule Procedure Template URI", + "description": "Specifies URI for the style sheet to transcode received HL7 ORM^O01, OMI^O23, OMG^O19 to DICOM MWL items. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string" + }, + "hl7OutgoingPatientUpdateTemplateURI": { + "title": "HL7 Outgoing Patient Update Template URI", + "description": "Specifies URI for the style sheet to transcode DICOM object patient attributes to HL7 ADT messages.", + "type": "string" + }, + "hl7ScheduledProtocolCodeInOrder": { + "title": "HL7 Schedule Protocol Code in Order", + "description": "Specifies location of Scheduled Protocol Code in received HL7 Order message. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "OBR_4_4", + "enum": [ + "OBR_4_1", + "OBR_4_4" + ] + }, + "hl7ScheduledStationAETInOrder": { + "title": "HL7 Schedule Station AET in Order", + "description": "Specifies location of Scheduled Station AE Title in received HL7 Order message. Should not be configured for HL7 v2.5.1 OMI^O23 with IPC segment. If absent or no value is provided in the configured field, the Scheduled Station AE Title is selected according configured rules. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "enum": [ + "ORC_18" + ] + }, + "hl7LogFilePattern": { + "title": "HL7 Log File Pattern", + "description": "Path to HL7 messages which will be captured exactly as received. If absent, there is no logging. May be overwritten by configured values for particular Archive HL7 Application. eg. ${jboss.server.data.dir}/hl7/${date,yyyy/MM/dd}/${SerialNo}-${MSH-9}.hl7", + "type": "string" + }, + "hl7ErrorLogFilePattern": { + "title": "HL7 Error Log File Pattern", + "description": "Path to HL7 messages which will be captured exactly as received, when processing of HL7 messages fails. If absent, there is no logging. May be overwritten by configured values for particular Archive HL7 Application. eg. ${jboss.server.data.dir}/hl7-error/${date,yyyy/MM/dd}/${SerialNo}-${MSH-9}.hl7", + "type": "string" + }, + "hl7NoPatientCreateMessageType": { + "title": "HL7 No Patient Create Message Type", + "description": "Message Type(s) (MessageType^TriggerEvent) of HL7 messages which are only processed, if there is already a Patient record in the database, which Patient ID matches the Patient ID in the PID or MRG segment of the message. Thus no new Patient record will be created by messages of the specified types. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7PatientArrivalMessageType": { + "title": "HL7 Patient Arrival Message Type", + "description": "Message Type of HL7 messages which triggers the change the status of Scheduled Procedure Steps associated with the Patient from SCHEDULED to ARRIVED. If absent, the status of Scheduled Procedure Steps will not be affected by HL7 ADT messages. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "enum": [ + "ADT^A10" + ] + }, + "dcmUnzipVendorDataToURI": { + "title": "Unzip Vendor Data To URI", + "description": "Specifies URI of directory into which ZIP stream in Device Vendor Data attribute will be extracted", + "type": "string" + }, + "dcmPurgeQueueMessagePollingInterval": { + "title": "Purge Task Polling Interval", + "description": "Polling Interval for purging tasks in ISO-8601 duration format PnDTnHnMnS. If absent, there is no deletion", + "type": "string", + "format": "dcmDuration" + }, + "dcmWadoSpoolDirectory": { + "title": "Wado-RS Spool Directory", + "description": "Path to Wado-RS spool directory used to aggregate uncompressed frames.", + "type": "string", + "default": "${jboss.server.temp.dir}" + }, + "dcmRejectExpiredStudiesPollingInterval": { + "title": "Reject Expired Studies Polling Interval", + "description": "Polling Interval for rejecting expired Studies and Series in ISO-8601 duration format PnDTnHnMnS. If absent, neither expired Studies nor Series will be rejected automatically", + "type": "string", + "format": "dcmDuration" + }, + "dcmRejectExpiredStudiesSchedule": { + "title": "Reject Expired Studies Schedule", + "description": "Limits Rejection of Expired Studies to specified times in format 'hour=[0-23] dayOfWeek=[0-6]' (0=Sunday).", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmRejectExpiredStudiesFetchSize": { + "title": "Reject Expired Studies Fetch Size", + "description": "Maximal number of expired Studies fetched in one query; If absent, expired Studies will not be rejected automatically", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmRejectExpiredSeriesFetchSize": { + "title": "Reject Expired Series Fetch Size", + "description": "Maximal number of expired Series fetched in one query; If absent, expired Series will not be rejected automatically", + "type": "integer", + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmRejectExpiredStudiesAETitle": { + "title": "Reject Expired Studies AE Title", + "description": "AE Title of Local Application Entity performing the automatic rejection of expired Studies and Series. If absent, neither expired Studies nor Series will be rejected automatically.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmStorePermissionServiceURL": { + "title": "Store Permission Service URL", + "description": "URL of Store Permission Service which will be invoked on receive of the first object of a study by any AE. {} will be replaced by the value of the attribute in the object. E.g. http(s)://:/storage-permission/study/{0020000D}?patientId={00100020}&patientIdIssuer={00100021}&studyDescription={00081030,urlencoded}. May be overwritten by configured value for particular Archive Network AEs.", + "type": "string" + }, + "dcmStorePermissionServiceResponse": { + "title": "Store Permission Service Response", + "description": "Emulate Store Permission Service Response on receive of the first object of a study by any AE. {} will be replaced by the value of the attribute in the object. Only effective if no Store Permission Service URL is configured. Example: patientID={00100020},patientName={00100010},errorCode=0110H,errorComment=errorMessage. May be overwritten by configured value for particular Archive Network AEs.", + "type": "string" + }, + "dcmStorePermissionServiceResponsePattern": { + "title": "Store Permission Service Response Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to determine agreement for storage. E.g. \"validation\"\\s*:\\s*\"true\" or '(?<=patientName=)[^null].*?(?=,)'. If absent, every success response will be treated as agreement for storage. May be overwritten by configured value for particular Archive Network AEs.", + "type": "string" + }, + "dcmStorePermissionServiceErrorCommentPattern": { + "title": "Store Permission Service Error Comment Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to extract Error Comment. E.g. \"errorcomment\"\\s*:\\s*\"(.*)\". If absent, \"Storage denied.\" will be used as Error Comment. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmStorePermissionServiceErrorCodePattern": { + "title": "Store Permission Service Error Code Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to extract Error Code in hexadecimal. E.g. \"errorcode\"\\s*:\\s*\"(\\p{XDigit}{4})\". If absent, the Error Code will be 0124H (Not Authorized). May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmStorePermissionServiceExpirationDatePattern": { + "title": "Store Permission Service Expiration Date Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to extract the initial Study Expiration Date. E.g. \"expirationdate\"\\s*:\\s*\"([0-9]{8})\". If absent, locally configured Study Retention Policy Rules will be applied. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmStorePermissionCacheStaleTimeout": { + "title": "Store Permission Cache Stale Timeout", + "description": "Maximal staleness of cached responses from Storage Permission Service in ISO-8601 duration format PnDTnHnMnS. If absent, cached responses are only removed on reaching the maximal cache size.", + "type": "string", + "format": "dcmDuration" + }, + "dcmStorePermissionCacheSize": { + "title": "Store Permission Cache Size", + "description": "Maximum number of cached responses from Storage Permission Service.", + "type": "integer", + "default": 10, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmMergeMWLCacheStaleTimeout": { + "title": "Merge MWL Cache Stale Timeout", + "description": "Maximal staleness of Request Attributes extracted from matching DICOM MWL items in ISO-8601 duration format PnDTnHnMnS. If absent, cached Request Attributes are only removed on reaching the maximal cache size.", + "type": "string", + "format": "dcmDuration" + }, + "dcmMergeMWLCacheSize": { + "title": "Merge MWL Cache Size", + "description": "Maximum number of cached Request Attributes extracted from matching DICOM MWL items.", + "type": "integer", + "default": 10, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmStoreUpdateDBMaxRetries": { + "title": "Store Update DB Maximum Number of Retries", + "description": "Maximum number of retries to update the database on storage.", + "type": "integer", + "default": 3, + "minimum": 0 + }, + "dcmStoreUpdateDBMinRetryDelay": { + "title": "Minimal Store Update DB Delay of Retry", + "description": "Minimal Delay in ms between retries to update the database on storage.", + "type": "integer", + "default": 500, + "minimum": 0 + }, + "dcmStoreUpdateDBMaxRetryDelay": { + "title": "Maximal Store Update DB Delay of Retry", + "description": "Maximal Delay in ms between retries to update the database on storage.", + "type": "integer", + "default": 1000, + "minimum": 1 + }, + "dcmAllowRejectionForDataRetentionPolicyExpired": { + "title": "Allow Rejection For Data Retention Policy Expired", + "description": "Allow Rejection For Data Retention Policy Expired. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "EXPIRED_UNSET", + "enum": [ + "NEVER", + "ALWAYS", + "EXPIRED_UNSET", + "ONLY_EXPIRED" + ] + }, + "dcmAllowDeleteStudyPermanently": { + "title": "Allow Delete Study permanently", + "description": "Allow to delete Study permanently. REJECTED = only already rejected Studies. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "REJECTED", + "enum": [ + "ALWAYS", + "REJECTED" + ] + }, + "dcmAllowDeletePatient": { + "title": "Allow Delete Patient", + "description": "Allow permanent deletion of Patients. WITHOUT_STUDIES = only Patients without Studies.", + "type": "string", + "default": "WITHOUT_STUDIES", + "enum": [ + "NEVER", + "ALWAYS", + "WITHOUT_STUDIES" + ] + }, + "dcmPurgeStgCmtCompletedDelay": { + "title": "Purge Storage Commitment Completed Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which results of completed Storage Commitment requests are purged. If absent, there is no deletion.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeStgCmtPollingInterval": { + "title": "Purge Storage Commitment Polling Interval", + "description": "Polling Interval for purging Storage Commitment Results in ISO-8601 duration format PnDTnHnMnS. If absent, there is no deletion", + "type": "string", + "format": "dcmDuration" + }, + "dcmDefaultCharacterSet": { + "title": "Default Character Set", + "description": "Value of Specific Character Set (0008,0005) added to Data Sets of C-STORE RQs and pending C-FIND RSPs without Specific Character Set (0008,0005) attribute received by any AE. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmCharset" + }, + "dcmCharsetNameMapping": { + "title": "DICOM Character Set Name Mapping", + "description": "Customize mapping of value of DICOM Specific Character Set (0008,0005) to named charset in format =. E.g.: \"ISO_IR 100=windows-1252\".", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "hl7CharsetNameMapping": { + "title": "HL7 Character Set Name Mapping", + "description": "Add mapping of value of HL7 MSH-18 to named charset in format =. E.g.: \"Windows-1252=windows-1252\". Typically you will also have to specify the HL7 DICOM Character Set of the Archive HL7 Application to use for received HL7 messages with such Character Set.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmUPSWorklistLabel": { + "title": "UPS Worklist Label", + "description": "Value of Worklist Label (0074,1202) of created UPS by any Network AE, if the UPS Push SCU or UPS-RS User Agent does not provide a value for this attribute. If absent, the AE Title of the receiving AE will be used. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "dcmUPSEventSCU": { + "title": "UPS Event SCU", + "description": "AE Title of UPS Event SOP Class SCU, to which UPS Event Reports are sent - independently if the subscription was created by the N-ACTION DIMSE service, or by a corresponding UPS RESTful service. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmUPSEventSCUKeepAlive": { + "title": "UPS Event SCU Keep Alive", + "description": "Timeout in ms to keep associations to UPS Event SCUs alive. If absent, associations will not be reused for sending multiple UPS Event Reports to one UPS Event SCU. May be overwritten by configured values for particular Archive Network AEs.", + "type": "integer", + "minimum": 100 + }, + "dcmUPSEventWebSocketQueueSize": { + "title": "UPS Event Web Socket Queue Size", + "description": "Indicates to queue UPS events to be sent to a particular Web Client identified by its Subscriber AET in case there is no open Web Socket connection to that client at the time of the event. Format: =.", + "type": "array", + "items": { + "type": "string" + }, + "pattern": "^\\w*=\\d+$" + }, + "dcmRetrieveAET": { + "title": "Retrieve AE Title", + "description": "Specifies Retrieve AE Titles associated with received DICOM objects. If absent, the Called AE Title of the receiving AE will be used. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmArchiveAETitle" + }, + "dcmReturnRetrieveAET": { + "title": "Return Retrieve AE Title", + "description": "Retrieve AE Title returned in C-FIND and QIDO responses. If absent, the Retrieve AET associated with the archived entity will be returned. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmArchiveAETitle" + }, + "dcmMultipleStoreAssociations": { + "title": "Multiple Store Associations", + "description": "Number of Storage Associations used for retrieve of Composite Objects. C-STORE SCP specific numbers can be specified by prefix ':'. If absent, only one Association will be used. Examples : 2 or STORESCP:3 May be supplemented by configured Multiple Store Associations for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmMultipleStoreAssociations" + }, + "dcmExternalRetrieveAEDestination": { + "title": "External Retrieve AE Destination", + "description": "AE Title of local C-STORE-SCP to be set as Move Destination in C-MOVE RQs forwarded to external retrieve AE. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmXDSiImagingDocumentSourceAETitle": { + "title": "XDS-I Imaging Document Source AE Title", + "description": "AE Title of local Application Entity associated with XDS-I Imaging Document Source.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmQueueTasksFetchSize": { + "title": "Queue Tasks Fetch Size", + "description": "Maximal number of Tasks rescheduled or deleted or canceled in one transaction.", + "type": "integer", + "default": 100, + "minimum": 1 + }, + "dcmRemapRetrieveURL": { + "title": "Remap Retrieve URL", + "description": "Remap Retrieve URL used in QIDO-RS and WADO-RS Metadata responses. Optionally prefixed with \"[]\". E.g.: \"[cache-proxy]http://cache-proxy:8080\". If absent or if the specified does not match, scheme and server authority of the QIDO-RS or WADO-RS request URL are used.", + "type": "string" + }, + "dcmProxyUpstreamURL": { + "title": "Proxy Upstream URL", + "description": "URL for the upstream endpoint that shall be proxied.", + "type": "string" + }, + "dcmCopyMoveUpdatePolicy": { + "title": "Copy Move Update Policy", + "description": "Specifies update policy for attributes of the destination Study on Copy/Move of Instances from another Study. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "PRESERVE", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE", + "REPLACE" + ] + }, + "dcmLinkMWLEntryUpdatePolicy": { + "title": "Link MWL Entry Update Policy", + "description": "Specifies update policy for Study attributes on Link of Instances of another Study with a MWL Entry referring an existing Study. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "PRESERVE", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE", + "REPLACE" + ] + }, + "dcmStorageVerificationPolicy": { + "title": "Storage Verification Policy", + "description": "DB_RECORD_EXISTS: only check for existence of DB records, OBJECT_EXISTS: check if object exists on Storage System, OBJECT_SIZE: check size of object on Storage System, OBJECT_FETCH: fetch object from Storage System), OBJECT_CHECKSUM: recalculate checksum of object on Storage System, S3_MD5SUM: check MD5 checksum of object on S3 Storage System. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "OBJECT_CHECKSUM", + "enum": [ + "DB_RECORD_EXISTS", + "OBJECT_EXISTS", + "OBJECT_SIZE", + "OBJECT_FETCH", + "OBJECT_CHECKSUM", + "S3_MD5SUM" + ] + }, + "dcmStorageVerificationUpdateLocationStatus": { + "title": "Storage Verification Update Location Status", + "description": "Indicates if the Status of the Location DB record shall be updated on Storage Verification accordingly. Not effective with Storage Verification Policy: DB_RECORD_EXISTS. False if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmStorageVerificationStorageID": { + "title": "Storage Verification Storage IDs", + "description": "Indicates that for successful Storage Verification the object must be stored on (one of) the specified Storage System. If absent, successful verification of the storage on any Storage System is sufficient. Not effective with Storage Validation Policy: DB_RECORD_EXISTS. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmStorageID" + }, + "dcmStorageVerificationAETitle": { + "title": "Storage Verification AE Title", + "description": "Archive AE Title used for scheduled Storage Verifications.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmStorageVerificationBatchID": { + "title": "Storage Verification Batch ID", + "description": "Batch ID of Storage Verification Tasks triggered by scheduler.", + "type": "string" + }, + "dcmStorageVerificationInitialDelay": { + "title": "Storage Verification Initial Delay", + "description": "Delay of first Storage Verification of a Series after it was received. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmPeriod" + }, + "dcmStorageVerificationPeriod": { + "title": "Storage Verification Period", + "description": "Period in which the storage of individual Series is verified. If absent, storage of individual Series are only verified once after configured Storage Verification Initial Delay.", + "type": "string", + "format": "dcmPeriod" + }, + "dcmStorageVerificationMaxScheduled": { + "title": "Maximal scheduled Storage Verifications", + "description": "Maximal number of scheduled Storage Verification tasks on this device. Shall be set > 0 to distribute tasks over nodes of a clustered archive.", + "type": "integer", + "default": 0, + "minimum": 0 + }, + "dcmStorageVerificationPollingInterval": { + "title": "Storage Verification Polling Interval", + "description": "Polling Interval for Series scheduled for Storage Verification in ISO-8601 duration format PnDTnHnMnS.", + "type": "string", + "format": "dcmDuration" + }, + "dcmStorageVerificationSchedule": { + "title": "Storage Verification Schedule", + "description": "Limits Storage Verification to specified times in format 'hour=[0-23] dayOfWeek=[0-6]' (0=Sunday).", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmStorageVerificationFetchSize": { + "title": "Storage Verification Fetch Size", + "description": "Maximal number of Series scheduled for Storage Verification fetched by one query.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmUpdateLocationStatusOnRetrieve": { + "title": "Update Location Status on Retrieve", + "description": "Indicates if the Status of the Location DB record shall be updated for objects failed to get fetched from storage on retrieve to MISSING_OBJECT or FAILED_TO_FETCH_OBJECT. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmStorageVerificationOnRetrieve": { + "title": "Storage Verification on Retrieve", + "description": "Indicates if failures to fetch an object from Storage on retrieve shall trigger a Storage Verification of the whole Series. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmCompressionAETitle": { + "title": "Compression AE Title", + "description": "Archive AE Title used for delayed Compression.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmCompressionPollingInterval": { + "title": "Compression Polling Interval", + "description": "Polling Interval for Series to be compressed in ISO-8601 duration format PnDTnHnMnS.", + "type": "string", + "format": "dcmDuration" + }, + "dcmCompressionThreads": { + "title": "Compression Threads", + "description": "Number of Threads used for Compression.", + "type": "integer", + "default" : 1, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmCompressionSchedule": { + "title": "Compression Schedule", + "description": "Limits compression to specified times in format 'hour=[0-23] dayOfWeek=[0-6]' (0=Sunday)", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmCompressionFetchSize": { + "title": "Compression Fetch Size", + "description": "Maximal number of Series fetched for compression by one query.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmDiffTaskProgressUpdateInterval": { + "title": "Diff Task Progress Update Interval", + "description": "Interval of updating Diff Tasks in process for progress monitoring; disabled if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPatientVerificationPDQServiceID": { + "title": "Patient Verification PDQ Service ID", + "description": "ID of Patient Demographics Query Service used for Verification of Patient Demographic. If absent, no Patient Verification will be performed.", + "type": "string", + "format": "dcmPDQServiceID" + }, + "dcmPatientVerificationPollingInterval": { + "title": "Patient Verification Polling Interval", + "description": "Patient Verification Polling Interval. If absent, no Patient Verification will be performed.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPatientVerificationFetchSize": { + "title": "Patient Verification Fetch Size", + "description": "Maximal number of Patients fetched for Patient Verification in one query.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmPatientVerificationAdjustIssuerOfPatientID": { + "title": "Patient Verification Adjust Issuer of Patient ID", + "description": "Indicates if the Issuer Of Patient ID shall be adjusted to the value returned by the PDQ Service.", + "type": "boolean", + "default" : false + }, + "dcmPatientVerificationPeriod": { + "title": "Patient Verification Period", + "description": "Period in which Patient Demographic will be verified. If absent, Patient Verification will not be renewed for Patients verified in the past.", + "type": "string", + "format": "dcmPeriod" + }, + "dcmPatientVerificationPeriodOnNotFound": { + "title": "Patient Verification Period Not Found", + "description": "Period in which Patient Demographic will be retried for Patients which were not found by the configured PDQ Service on last attempt. If absent, Patient Verification will not be retried for Patients not found in the past.", + "type": "string", + "format": "dcmPeriod" + }, + "dcmPatientVerificationRetryInterval": { + "title": "Patient Verification Retry Interval", + "description": "Patient Verification Retry Interval in which failed attempts to verify Patient Demographics against the PDQ Service configured by Patient Verification PDQ Service ID will be retried until the maximal number of retries specified by Patient Verification Max Retries is reached. If absent, failed Patient Verification attempts will not be retried.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPatientVerificationMaxRetries": { + "title": "Patient Verification Maximum Number of Retries", + "description": "Maximum number of retries to verify Patient Demographics against the PDQ Service configured by dcmPatientVerificationPDQServiceID. Only effective if Patient Verification Retry Interval is specified. -1 = forever.", + "type": "integer", + "default": 0, + "minimum": -1 + }, + "dcmPatientVerificationMaxStaleness": { + "title": "Patient Verification Maximum Staleness", + "description": "Indicates to renew the verification of Patient Demographics on receive of objects for a patient, if previous executed verification is older than specified interval. If absent, Patient Verification on receive of objects is disabled.", + "type": "string", + "format": "dcmDuration" + }, + "dcmSupplementIssuerFetchSize": { + "title": "Supplement Issuer Fetch Size", + "description": "Limit result set of DB query for matching Patients by RESTful service for supplementing Issuer of Patient ID.", + "type": "integer", + "default": 100, + "minimum": 1 + }, + "dcmUpdateCharsetFetchSize": { + "title": "Update Charset Fetch Size", + "description": "Limit result set of DB query for matching Patients by RESTful service to update the character set of Patient Attributes in DB BLOB fields.", + "type": "integer", + "default": 100, + "minimum": 1 + }, + "hl7ADTSendingApplication": { + "title": "HL7 ADT Sending Application", + "description": "Application|Facility name of Sending Application for HL7 ADT messages to synchronize external systems about performed Patient Information updates. If absent, synchronization of external systems by HL7 ADT messages is disabled.", + "type": "string", + "format": "hl7ApplicationName" + }, + "hl7ADTReceivingApplication": { + "title": "HL7 ADT Receiving Application", + "description": "Application|Facility name of Receiving Application for HL7 ADT messages to synchronize external systems about performed Patient Information updates. If absent, synchronization of external systems by HL7 ADT messages is disabled.", + "type": "array", + "items" : { "type": "string" }, + "format": "hl7ApplicationName" + }, + "hl7PSUSendingApplication": { + "title": "HL7 Procedure Status Update Sending Application", + "description": "Application|Facility name of Sending Application for HL7 Procedure Status Update. HL7 Procedure Status Update disabled, if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "hl7ApplicationName" + }, + "hl7PSUReceivingApplication": { + "title": "HL7 Procedure Status Update Receiving Application", + "description": "Application|Facility name of Receiving Application for HL7 Procedure Status Update. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items" : { "type": "string" }, + "format": "hl7ApplicationName" + }, + "hl7PSUTaskPollingInterval": { + "title": "HL7 Procedure Status Update Task Polling Interval", + "description": "Polling Interval for HL7 Procedure Status Update Tasks in ISO-8601 duration format PnDTnHnMnS. Disabled, if absent.", + "type": "string", + "format": "dcmDuration" + }, + "hl7PSUTaskFetchSize": { + "title": "HL7 Procedure Status Update Tasks Fetch Size", + "description": "Maximal number of HL7 Procedure Status Update Tasks fetched in one query.", + "type": "integer", + "default": 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "hl7PSUDelay": { + "title": "HL7 Procedure Status Update Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which an HL7 Procedure Status Update for a received study is sent to configured HL7 receivers. If absent, HL7 Procedure Status Update is triggered by received MPPS. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmDuration" + }, + "hl7PSUStudyTemplateURI": { + "title": "HL7 Procedure Status Update Study Template URI", + "description": "URL of XSL style sheet to create HL7v2 message to notify configured HL7 receivers about changes of the Status of requested Procedures triggered by received Study. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "hl7PSUTimeout": { + "title": "HL7 Procedure Status Update Timeout", + "description": "Timeout in ISO-8601 duration format PnDTnHnMnS for waiting on receive of instances referenced in MPPS; check for completeness forever if absent. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmDuration" + }, + "hl7PSUOnTimeout": { + "title": "HL7 Procedure Status Update On Timeout", + "description": "Specifies if the HL7 Procedure Status Update is sent if the timeout for waiting on receive of instances referenced is exceeded. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "hl7PSUMppsTemplateURI": { + "title": "HL7 Procedure Status Update MPPS Template URI", + "description": "URL of XSL style sheet to create HL7v2 message to notify configured HL7 receivers about changes of the Status of requested Procedures triggered by MPPS. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string" + }, + "hl7PSUCondition": { + "title": "HL7 Procedure Status Update Conditions", + "description": "Restrict notification of configured HL7 Procedure Status Update Receiving Applications about Procedure Status Update by conditions on attributes of received composite object in format {key}[!]={value}. Refer applicability, format and some examples. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "hl7PSUForRequestedProcedure": { + "title": "HL7 Procedure Status Update for Requested Procedure", + "description": "Restrict notification of configured HL7 Procedure Status Update Receiving Applications about Procedure Status Update to existence of Scheduled Procedure Steps of a Requested Procedure (MWL Items in the DB) with matching Study Instance UID. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "hl7PSUTemplateParam": { + "title": "HL7 Procedure Status Update Template Parameters", + "description": "XSLT parameters in format {attributeID}={value} passed to style sheet specified by HL7 Procedure Status Update MPPS Template URI or HL7 Procedure Status Update Study Template URI. {attributeID} inside of {value} will be replaced by the value of that attribute in the original dataset. E.g.: 'RequestedProcedureID={StudyInstanceUID,hash}' or 'AccessionNumber={0020000D,hash}'. May be overwritten by configured values for particular Archive Network AEs.", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7PSUMessageType": { + "title": "HL7 Procedure Status Update Message Type", + "description": "Message Type of HL7 Procedure Status Update message. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "OMG_O19", + "enum": [ + "OMG_O19", + "ORU_R01" + ] + }, + "hl7PSUPIDPV1": { + "title": "HL7 Procedure Status Update PID PV1", + "description": "Indicates to include a Patient Identification (PID) and a Patient Visit (PV1) segment in the HL7 Procedure Status Update message. Implicitly set, if HL7 Procedure Status Message Type = ORU_R01. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "hl7PSUMWL": { + "title": "HL7 Procedure Status Update MWL", + "description": "Specifies if the Status of MWL Items in the DB is updated to COMPLETED for a received study after the configured HL7 Procedure Status Update Delay. Implicitly set to true, if notification to HL7 receivers is configured, triggered by received studies associated with MWL. May be overwritten by configured values for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "hl7PSUMWLMatchingKey": { + "title": "HL7 Procedure Status Update MWL Matching Key", + "description": "Specifies attribute of received object to lookup MWL Item whose status is to be updated to COMPLETED. Only applicable is 'HL7 Procedure Status Update MWL' is configured as or implicitly set to true. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "default": "StudyInstanceUID", + "enum": [ + "AccessionNumber", + "StudyInstanceUID" + ] + }, + "hl7TrackChangedPatientID": { + "title": "HL7 Track Changed Patient ID", + "description": "Enable to keep track of the prior Patient ID on a change of the Patient ID by HL7 ADT^A47 or by the RESTful Patient Update Service.", + "type": "boolean", + "default": true + }, + "hl7UseNullValue": { + "title": "Use HL7 Null Value", + "description": "Specifies if HL7 v2 null values (specified in segment field as |\"\"|) are used in sent HL7 messages for not present or empty entity attributes. Required to unset entity attributes at the remote HL7 Application. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "boolean", + "default": false + }, + "hl7VeterinaryUsePatientName": { + "title": "HL7 Veterinary use Patient Name", + "description": "Indicates to force veterinary use of Patient Names on mapping HL7 PID fields to DICOM attributes: only use the first two components of PID.5 as DICOM Patient Name; if PID.5 only contains one component, use that value as given name, and the first component of PID.9 as family name of the DICOM Patient Name. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "boolean", + "default": false + }, + "hl7PrimaryAssigningAuthorityOfPatientID": { + "title": "HL7 Primary Assigning Authority of Patient ID", + "description": "Assigning Authority of Patient ID in received HL7 message used to search primary qualified patient identifier in the list of identifiers in PID-3 / MRG.1. This qualified patient identifier shall be used on the root dataset. If absent, by default the first patient identifier pair in PID-3 / MRG.1 shall be used as primary patient identifier on root dataset. If none of the qualified patient identifiers in the list match with the configured issuer, archive server log shall contain a log INFO message and by default the first qualified patient identifier in PID-3 / MRG.1 shall be used. Format: {Issuer of Patient ID}[&{UniversalEntityID}&{UniversalEntityIDType}]. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string" + }, + "hl7OtherPatientIDs": { + "title": "HL7 Other Patient IDs", + "description": "Specifies inclusion policy for patient identifiers in PID-3 / MRG-1 of HL7 message in Other Patient IDs Sequence (0010,1002). May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "OTHER", + "enum": [ + "ALL", + "NONE", + "OTHER" + ] + }, + "hl7OrderMissingStudyIUIDPolicy": { + "title": "HL7 Order Missing Study Instance UID Policy", + "description": "Specifies policy for missing Study Instance UID in incoming HL7 Order messages. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "GENERATE", + "enum": [ + "REJECT", + "GENERATE", + "ACCESSION_BASED" + ] + }, + "hl7OrderMissingAdmissionIDPolicy": { + "title": "HL7 Order Missing Admission ID Policy", + "description": "Specifies policy on incoming HL7 Order messages without a value for PID-18 Patient Account Number nor field PV1-19 Visit Number. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "ACCEPT", + "enum": [ + "ACCEPT", + "REJECT", + "ACCESSION_AS_ADMISSION" + ] + }, + "hl7ImportReportMissingStudyIUIDPolicy": { + "title": "HL7 Import Report Missing Study Instance UID Policy", + "description": "Specifies policy for missing Study Instance UID in incoming HL7 Import Report (ORU) messages. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "GENERATE", + "enum": [ + "REJECT", + "GENERATE", + "ACCESSION_BASED" + ] + }, + "hl7ImportReportMissingAdmissionIDPolicy": { + "title": "HL7 Import Report Missing Admission ID Policy", + "description": "Specifies policy on incoming HL7 ImportReport (ORU) messages without a value for PID-18 Patient Account Number nor field PV1-19 Visit Number. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "ACCEPT", + "enum": [ + "ACCEPT", + "REJECT", + "ACCESSION_AS_ADMISSION" + ] + }, + "hl7ImportReportMissingStudyIUIDCFindSCP": { + "title": "HL7 Import Report Missing Study Instance UID C-FIND SCP", + "description": "AE Title of external C-FIND SCP to query for missing Study Instance UID in incoming HL7 Import Report (ORU) messages by given Accession Number. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "format": "dcmAETitle" + }, + "hl7ImportReportAdjustIUID": { + "title": "HL7 Import Report Adjust Instance UID", + "description": "Specifies adjustment of Series and SOP Instances UIDs returned by XSLT on incoming HL7 Import Report (ORU) messages. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "NONE", + "enum": [ + "NONE", + "APPEND_HASH_OF_STUDY_INSTANCE_UID" + ] + }, + "hl7ReferredMergedPatientPolicy": { + "title": "HL7 Referred Merged Patient Policy", + "description": "Specifies policy on incoming HL7 messages referring an already merged Patient. REJECT: reject any such HL7 message, IGNORE: ignore any such HL7 message, IGNORE_DUPLICATE_MERGE: Ignore only duplicate HL7 Merge messages, Reject any other such Message. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "string", + "default": "REJECT", + "enum": [ + "REJECT", + "IGNORE", + "IGNORE_DUPLICATE_MERGE" + ] + }, + "hl7DicomCharacterSet": { + "title": "HL7 Dicom Character Set", + "description": "Indicates to use specified Value of Specific Character Set (0008,0005) in Data Sets transcoded from received HL7 messages. Use Value corresponding to Character Set of the HL7 message specified by MSH-18 if absent.", + "type": "string", + "format": "dcmCharset" + }, + "dcmRejectionNoteStorageAET": { + "title": "Rejection Note Storage AE title", + "description": "Title of Archive Application Entity, of which first configured Object Storage will be used for storing Rejection Notes generated either by IOCM-RS services or by Delete Expired Studies Scheduler. If absent, for IOCM services the Object Storage configured for Archive AE referred in the IOCM-RS request will be used, or for Delete Expired Studies Scheduler the Object Storage configured for Reject Expired Studies AE will be used.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmUIConfigurationDeviceName": { + "title": "UI Configuration Device Name", + "description": "Specifies the device name containing the Archive UI Configuration.", + "type": "string", + "format": "dicomDeviceName" + }, + "dcmCSVUploadChunkSize": { + "title": "CSV Upload Chunk Size", + "description": "Number of CSV file upload tasks to be processed in one chunk.", + "type": "integer", + "default": 100, + "minimum": 1 + }, + "dcmValidateUID": { + "title": "Validate UID", + "description": "Indicates if UIDs shall be validated or not.", + "type": "boolean", + "default": true + }, + "dcmRelationalQueryNegotiationLenient": { + "title": "Relational Query Negotiation Lenient", + "description": "Indicates to accept C-FIND RQs without unique keys for levels above the query level also if support for relational-queries was not negotiated. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmRelationalRetrieveNegotiationLenient": { + "title": "Relational Retrieve Negotiation Lenient", + "description": "Indicates to accept C-MOVE and C-GET RQs without unique keys for levels above the query level also if support for relational-queries was not negotiated. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmRestrictRetrieveSilently": { + "title": "Restrict Retrieve Silently", + "description": "Indicates if the set of requested objects to retrieve shall be silently (=without counting not transferred object as failures) restricted according the Transfer Capabilities of the Retrieve Destination. Otherwise the number of requested objects for which no Transfer Capability is configured for the Retrieve Destination and therefore are not retrieved is counted as failures. Only effective, if the Retrieve Destination has configured at least one Transfer Capability with SCP role. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default": false + }, + "dcmSchedulerMinStartDelay": { + "title": "Scheduler Minimum Start Delay", + "description": "Minimal delay in s to start schedulers on system start up.", + "type": "integer", + "default" : 60, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmRejectConflictingPatientAttribute": { + "title": "Reject Conflicting Patient Attribute", + "description": "DICOM Tag of Patient Attribute which have to match in received objects with the value in previous received objects with equal Patient ID to be accepted. May be overwritten by configured value for particular Archive Network AEs.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmTag" + }, + "dcmStowRetiredTransferSyntax": { + "title": "STOW Retired Transfer Syntax", + "description": "Store received JPEG Full Progression, Non-Hierarchical JPEG images in DICOM images with corresponding (retired) Transfer Syntax UID 1.2.840.10008.1.2.4.55. Otherwise set 1.2.840.10008.1.2.4.50 (= JPEG Baseline) or 1.2.840.10008.1.2.4.51 (= JPEG Extended) as Transfer Syntax UID of the stored DICOM image, without transcoding to JPEG Baseline or JPEG Extended, but including the JPEG image as received. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default" : false + }, + "dcmStowExcludeAPPMarkers": { + "title": "STOW Exclude Application Markers", + "description": "Indicates if APP markers in JPEG images received in STOW-RS Metadata and Bulkdata requests shall be excluded from the JPEG bit streams encapsulated in created DICOM instances. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default" : false + }, + "dcmStowQuicktime2MP4": { + "title": "STOW Quicktime to MP4", + "description": "Indicates if QuickTime containers received in STOW-RS Metadata and Bulkdata requests shall be converted to MP4 containers encapsulated in created DICOM instances. The conversion requires that ffmpeg is installed and the ffmpeg CLI utility is available in the PATH. Otherwise Quicktime containers will get encapsulated in the stored DICOM object verbatim, with a declared DICOM MPEG-4 Transfer Syntax which reflects the encoding of the video stream in the container, but contradicts the actual container format. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default" : false + }, + "dcmStowMaxFragmentLength": { + "title": "STOW Maximum Fragment Length", + "description": "Maximum length of data fragments of encapsulated JPEG/MPEG stream in stored DICOM object. If the received JPEG/MPEG stream exceeds that value, it will be split into several fragments, using a Fragmentable Encapsulated Transfer Syntax. Valid range: 1024..4294967294. May be overwritten by configured value for particular Archive Network AEs.", + "type": "integer", + "default": 2147483646, + "minimum": 1024, + "exclusiveMinimum": false, + "maximum": 4294967294, + "exclusiveMaximum": false + }, + "dcmChangeRequesterAET": { + "title": "Change Requester AET", + "description": "Indicates change requester AET in rejections triggered by archive. May be overwritten by configured values for particular Archive Network AEs.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmFilterByIssuerOfPatientID": { + "title": "Filter by Issuer of Patient ID", + "description": "Filter by Issuer of Patient ID even if no matching key for Patient ID is specified. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default" : false + }, + "dcmMatchSOPClassOnInstanceLevel": { + "title": "Match SOP Class on Instance level", + "description": "Indicates to consider the SOP Class UID on Instance level for calculation of matches with SOP Classes in Study (0008,0062); otherwise rely on stored SOP Class UID on Series level, which may result in missing matches if one Series includes Instances of different SOP Classes. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default" : false + }, + "dcmKeyValueRetentionPollingInterval": { + "title": "Key Value Retention Polling Interval", + "description": "Polling Interval for Key Value pairs which retention period expired in ISO-8601 duration format PnDTnHnMnS. If absent, Key Value pairs will not get deleted automatically.", + "type": "string", + "format": "dcmDuration" + }, + "dcmKeyValueRetentionFetchSize": { + "title": "Key Value Retention Fetch Size", + "description": "Limit result set of DB query for Key Value pairs which retention period expired; 100 if absent", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmKeyValueRetentionPeriod": { + "title": "Key Value Retention Period", + "description": "Retention period in ISO-8601 duration format PnDTnHnMn.nS of stored Key Value pairs. If absent, Key Value pairs will not get deleted automatically.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSUpdateWithoutTransactionUID": { + "title": "UPS Update Without Transaction UID", + "description": "Indicates to permit an UPS Pull SCU or UPS-RS Web client to update or change the state of an UPS workitem in state IN PROCESS without specifying a Transaction UID. May be overwritten by configured value for particular Archive Network AEs.", + "type": "boolean", + "default" : false + }, + "dcmAttributeFilter": { + "title": "Attribute Filter", + "description": "Specifies Attributes stored in the database", + "type": "array", + "titleKey":"{dcmEntity}", + "items" : { + "$ref": "attributeFilter.schema.json" + } + }, + "dcmAttributeSet": { + "title": "Attribute Set", + "description": "Named Attribute Set for Query Parameter 'includefields' of QIDO-RS and WADO-RS Metadata or by Query Parameter 'comparefield' of DIFF-RS requests.", + "type": "array", + "titleKey":"{dcmAttributeSetType}:{dcmAttributeSetID}", + "items" : { + "$ref": "attributeSet.schema.json" + } + }, + "dcmBulkDataDescriptor": { + "title": "Bulk Data Descriptor", + "description": "Specifies Bulk Data Descriptors applied by services providing Metadata of archived instances.", + "type": "array", + "titleKey":"{dcmBulkDataDescriptorID}", + "items" : { + "$ref": "bulkData.schema.json" + } + }, + "dcmStorage": { + "title": "Storage Descriptor", + "description": "Specifies Storage System", + "type": "array", + "titleKey":"{dcmStorageID}", + "items" : { + "$ref": "storage.schema.json" + } + }, + "dcmQueryRetrieveView": { + "title": "Query Retrieve View", + "description": "Specifies behavior on Rejection Note Stored", + "type": "array", + "titleKey":"{dcmQueryRetrieveViewID}", + "items" : { + "$ref": "queryRetrieveView.schema.json" + } + }, + "dcmQueue": { + "title": "Queue", + "description": "Managed Task Queue", + "type": "array", + "titleKey":"{dcmQueueName}", + "items" : { + "$ref": "queue.schema.json" + } + }, + "dcmMetrics": { + "title": "Metrics", + "description": "Activated Metrics", + "type": "array", + "titleKey":"{dcmMetricsName}", + "items" : { + "$ref": "metrics.schema.json" + } + }, + "dcmPDQService": { + "title": "PDQ Service Descriptor", + "description": "Patient Demographics Query Service Descriptor", + "type": "array", + "titleKey":"{dcmPDQServiceID}", + "items" : { + "$ref": "pdqService.schema.json" + } + }, + "dcmExporter": { + "title": "Exporter Descriptor", + "description": "Exporter Descriptor", + "type": "array", + "titleKey":"{dcmExporterID}", + "items" : { + "$ref": "exporter.schema.json" + } + }, + "dcmExportRule": { + "title": "Export Rule", + "description": "Export Rules applied to DICOM objects received by any AE. May be supplemented by configured Export Rules for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "exportRule.schema.json" + } + }, + "dcmExportPriorsRule": { + "title": "Export Priors Rule", + "description": "Export Priors Rules applied to DICOM objects received by any AE. May be supplemented by configured Export Priors Rules for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "exportPriorsRule.schema.json" + } + }, + "dcmMPPSForwardRule": { + "title": "MPPS Forward Rule", + "description": "MPPS Forward Rules applied to MPPS received by any AE. May be supplemented by configured MPPS Forward Rules for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "mppsForwardRule.schema.json" + } + }, + "dcmRSForwardRule": { + "title": "RESTful Forward Rule", + "description": "RESTful Forward Rules. May be supplemented by configured RESTful Forward Rules for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "rsForwardRule.schema.json" + } + }, + "dcmArchiveCompressionRule": { + "title": "Compression rule", + "description": "Compression rules applied to DICOM objects received by any AE. May be supplemented by configured Compression Rules for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "archiveCompressionRule.schema.json" + } + }, + "dcmArchiveAttributeCoercion": { + "title": "Attribute Coercion (Legacy)", + "description": "Attribute Coercion applied to DIMSE received/sent by any AE. May be supplemented by configured Attribute Coercions for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "archiveAttributeCoercion.schema.json" + } + }, + "dcmArchiveAttributeCoercion2": { + "title": "Attribute Coercion (New)", + "description": "Attribute Coercion applied to DIMSE received/sent by any AE. May be supplemented by configured Attribute Coercions for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "archiveAttributeCoercion2.schema.json" + } + }, + "dcmRejectionNote": { + "title": "Rejection Note", + "description": "Specifies behavior on Rejection Note Stored", + "type": "array", + "titleKey":"{dcmRejectionNoteLabel}", + "items" : { + "$ref": "rejectionNote.schema.json" + } + }, + "dcmStudyRetentionPolicy": { + "title": "Study Retention Policy", + "description": "Study Retention Policies applied to Studies received by any AE. May be supplemented by configured Study Retention Policies for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "studyRetentionPolicy.schema.json" + } + }, + "dcmStoreAccessControlIDRule": { + "title": "Store Access Control Rules", + "description": "Store Access Control Rules applied to Studies received by any AE. May be supplemented by configured Store Access Control Rules for particular Archive Network AEs.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "storeAccessControlIDRule.schema.json" + } + }, + "dcmUPSOnStore": { + "title": "UPS on Store Rules", + "description": "UPS on Store Rules applied to DICOM objects received by any AE. May be supplemented by configured UPS on Store Rules for particular Archive Network AEs.", + "type": "array", + "titleKey": "{dcmUPSOnStoreID}", + "items": { + "$ref": "upsOnStore.schema.json" + } + }, + "hl7UPSOnHL7": { + "title": "UPS on HL7 Rules", + "description": "UPS on HL7 Rules applied to HL7 messages received by any HL7 Application. May be supplemented by configured UPS on HL7 Rules for particular HL7 Applications.", + "type": "array", + "titleKey": "{hl7UPSOnHL7ID}", + "items": { + "$ref": "upsOnHL7.schema.json" + } + }, + "dcmUPSOnUPSCompleted": { + "title": "UPS on UPS Completed Rules", + "description": "UPS on UPS Completed Rules applied to UPS managed by any AE. May be supplemented by configured UPS on Store Rules for particular Archive Network AEs.", + "type": "array", + "titleKey": "{dcmUPSOnUPSCompletedID}", + "items": { + "$ref": "upsOnUPSCompleted.schema.json" + } + }, + "dcmUPSProcessingRule": { + "title": "UPS Processing Rules", + "description": "UPS Processing Rules.", + "type": "array", + "titleKey": "{dcmUPSProcessingRuleID}", + "items": { + "$ref": "upsProcessingRule.schema.json" + } + }, + "dcmIDGenerator": { + "title": "ID Generator", + "description": "ID Generator", + "type": "array", + "titleKey":"{dcmIDGeneratorName}", + "items" : { + "$ref": "idGenerator.schema.json" + } + }, + "dcmMWLImport": { + "title": "MWL Import", + "description": "MWL Import", + "type": "array", + "titleKey":"{dcmMWLImportID}", + "items" : { + "$ref": "mwlImport.schema.json" + } + }, + "dcmMWLIdleTimeout": { + "title": "MWL Idle Timeout", + "description": "MWL Idle Timeout", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "mwlIdleTimeout.schema.json" + } + }, + "hl7ForwardRule": { + "title": "HL7 Forward Rule", + "description": "HL7 Forward Rules for HL7 messages received by any HL7 Application. May be supplemented by configured HL7 Forward Rules for particular HL7 Applications.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7ForwardRule.schema.json" + } + }, + "hl7ExportRule": { + "title": "HL7 Export Rule", + "description": "Export Rules applied to HL7 messages received by any HL7 Application. May be supplemented by configured HL7 Export Rules for particular HL7 Application.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7ExportRule.schema.json" + } + }, + "hl7PrefetchRule": { + "title": "HL7 Prefetch Rule", + "description": "HL7 Prefetch Rules applied to HL7 messages received by any HL7 Application. May be supplemented by configured HL7 Prefetch Rules for particular HL7 Application.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7PrefetchRule.schema.json" + } + }, + "hl7StudyRetentionPolicy": { + "title": "HL7 Study Retention Policy", + "description": "HL7 Study Retention Policies triggered by HL7 messages received by any HL7 Application. May be supplemented by configured Study Retention Policies for particular HL7 Applications.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7StudyRetentionPolicy.schema.json" + } + }, + "hl7OrderScheduledStation": { + "title": "Scheduled Station for HL7 Order", + "description": "Scheduled Station selected on MWL HL7 Order Feed received by any HL7 Application. May be supplemented by configured values for particular HL7 Applications.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7OrderScheduledStation.schema.json" + } + }, + "hl7OrderSPSStatus": { + "title": "SPS Status for HL7 Order", + "description": "Specifies SPS Status of DICOM MWL items created/updated on received HL7 ORM^O01, OMI^O23, OMG^O19 messages. May be overwritten by configured values for particular Archive HL7 Application.", + "type": "array", + "titleKey":"{dcmSPSStatus}", + "items" : { + "$ref": "hl7OrderSPSStatus.schema.json" + } + }, + "dcmXRoadProperty": { + "title": "X-Road Property", + "description": "Properties for accessing Estonian National Patient Registry in format =", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmImpaxReportProperty": { + "title": "Impax Report Property", + "description": "Properties for accessing Agfa Impax Report Service in format =", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/archiveHL7Application.schema.json b/src/main/webapp/assets/schema/es/archiveHL7Application.schema.json new file mode 100644 index 00000000..2fb1031f --- /dev/null +++ b/src/main/webapp/assets/schema/es/archiveHL7Application.schema.json @@ -0,0 +1,288 @@ +{ + "title": "Archive HL7 Application", + "description": "DICOM Archive HL7 Application related information", + "type": "object", + "required": [ + "dicomAETitle" + ], + "properties": { + "dicomAETitle": { + "title": "AE Title", + "description": "Archive AE Title associated with this HL7 Application.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmRecordAttributeModification": { + "title": "Record Attribute Modification", + "description": "Indicates if modifications of attributes of stored objects by this HL7 Application are recorded in Items of the Original Attributes Sequence. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmMWLWorklistLabel": { + "title": "MWL Worklist Label", + "description": "Value of Worklist Label (0074,1202) of created MWL items on receive of HL7 Order messages. If absent, created MWL items are not bound to a particular MWL Worklist and are provided by all Archive AEs with MWL SCP Transfer Capability.", + "type": "string", + "format": "dcmMWLWorklistLabel" + }, + "dcmMWLAccessionNumberGenerator": { + "title": "MWL Accession Number Generator", + "description": "Identifies ID Generator to supplement missing Accession Numbers of Scheduled Procedures Steps created on receive of HL7 Order messages. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmIDGenerator" + }, + "dcmMWLRequestedProcedureIDGenerator": { + "title": "MWL Requested Procedure ID Generator", + "description": "Identifies ID Generator to supplement missing Requested Procedure IDs of Scheduled Procedures Steps created on receive of HL7 Order messages. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmIDGenerator" + }, + "dcmMWLScheduledProcedureStepIDGenerator": { + "title": "MWL Scheduled Procedure Step ID Generator", + "description": "Identifies ID Generator to supplement missing Scheduled Procedure Step IDs of Scheduled Procedures Steps created on receive of HL7 Order messages. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmIDGenerator" + }, + "dcmAuditHL7MsgLimit": { + "title": "Audit HL7 Message Limit", + "description": "Limit length of HL7 messages included in emitted Audit Records. Overwrites value specified on Device level.", + "type": "integer" + }, + "hl7ORUAction": { + "title": "HL7 ORU Action", + "description": "Specifies action on receive of HL7 ORU^R01 message: IMPORT_REPORT (= transcode received HL7 ORU^R01 to DICOM SR), MWL_COMPLETED (= set Status of matching MWL items to COMPLETED). Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "IMPORT_REPORT", + "MWL_COMPLETED" + ] + } + }, + "hl7PatientUpdateTemplateURI": { + "title": "HL7 Patient Update Template URI", + "description": "Specifies URI for the style sheet used by HL7v2 Patient Update Service. Overwrites value specified on Device level.", + "type": "string" + }, + "hl7ImportReportTemplateURI": { + "title": "HL7 Import Report Template URI", + "description": "Specifies URI for the style sheet to transcode received HL7 ORU^R01 to DICOM SR. Overwrites value specified on Device level.", + "type": "string" + }, + "hl7ImportReportTemplateParam": { + "title": "HL7 Import Report Template Parameter", + "description": "XSLT parameters passed to style sheet specified by HL7 Import Report Template URI. Format: {name}={value}. E.g.: 'langCodeValue=et', 'langCodingSchemeDesignator=RFC5646', 'langCodeMeaning=Estonian'. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7ScheduleProcedureTemplateURI": { + "title": "HL7 Schedule Procedure Template URI", + "description": "Specifies URI for the style sheet to transcode received HL7 ORM^O01, OMI^O23, OMG^O19 to DICOM MWL items. Overwrites value specified on Device level.", + "type": "string" + }, + "hl7ScheduledProtocolCodeInOrder": { + "title": "HL7 Schedule Protocol Code in Order", + "description": "Specifies location of Scheduled Protocol Code in received HL7 Order message. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "OBR_4_1", + "OBR_4_4" + ] + }, + "hl7ScheduledStationAETInOrder": { + "title": "HL7 Schedule Station AET in Order", + "description": "Specifies location of Scheduled Station AE Title in received HL7 Order message. Should not be configured for HL7 v2.5.1 OMI^O23 with IPC segment. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "ORC_18" + ] + }, + "hl7LogFilePattern": { + "title": "HL7 Log File Pattern", + "description": "Path to HL7 messages which will be captured exactly as received. If absent, there is no logging. Overwrites value specified on Device level. eg. ${jboss.server.data.dir}/hl7/${date,yyyy/MM/dd}/${SerialNo}-${MSH-9}.hl7", + "type": "string" + }, + "hl7ErrorLogFilePattern": { + "title": "HL7 Error Log File Pattern", + "description": "Path to HL7 messages which will be captured exactly as received, when processing of HL7 messages fails. If absent, there is no logging. Overwrites value specified on Device level. eg. ${jboss.server.data.dir}/hl7-error/${date,yyyy/MM/dd}/${SerialNo}-${MSH-9}.hl7", + "type": "string" + }, + "hl7NoPatientCreateMessageType": { + "title": "HL7 No Patient Create Message Type", + "description": "Message Type(s) (MessageType^TriggerEvent) of HL7 messages which are only processed, if there is already a Patient record in the database, which Patient ID matches the Patient ID in the PID or MRG segment of the message. Thus no new Patient record will be created by messages of the specified types. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7PatientArrivalMessageType": { + "title": "HL7 Patient Arrival Message Type", + "description": "Message Type of HL7 messages which triggers the change the status of Scheduled Procedure Steps associated with the Patient from SCHEDULED to ARRIVED. Overwrite value specified on Device level.", + "type": "string", + "enum": [ + "ADT^A10" + ] + }, + "hl7UseNullValue": { + "title": "Use HL7 Null Value", + "description": "Specifies if HL7 v2 null values (specified in segment field as |\"\"|) are used in sent HL7 messages for not present or empty entity attributes. Required to unset entity attributes at the remote HL7 Application. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7VeterinaryUsePatientName": { + "title": "HL7 Veterinary use Patient Name", + "description": "Indicates to force veterinary use of Patient Names on mapping HL7 PID fields to DICOM attributes: only use the first two components of PID.5 as DICOM Patient Name; if PID.5 only contains one component, use that value as given name, and the first component of PID.9 as family name of the DICOM Patient Name. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7PrimaryAssigningAuthorityOfPatientID": { + "title": "HL7 Primary Assigning Authority of Patient ID", + "description": "Assigning Authority of Patient ID in received HL7 message used to search primary qualified patient identifier in the list of identifiers in PID-3 / MRG.1. This qualified patient identifier shall be used on the root dataset. If absent, by default the first patient identifier pair in PID-3 / MRG.1 shall be used as primary patient identifier on root dataset. If none of the qualified patient identifiers in the list match with the configured issuer, archive server log shall contain a log INFO message and by default the first qualified patient identifier in PID-3 / MRG.1 shall be used. Format: {Issuer of Patient ID}[&{UniversalEntityID}&{UniversalEntityIDType}]. Overwrites value specified on Device level.", + "type": "string" + }, + "hl7OtherPatientIDs": { + "title": "HL7 Other Patient IDs", + "description": "Specifies inclusion policy for patient identifiers in PID-3 / MRG-1 of HL7 message in Other Patient IDs Sequence (0010,1002). Overwrites value specified on Device level.", + "type": "string", + "default": "OTHER", + "enum": [ + "ALL", + "NONE", + "OTHER" + ] + }, + "hl7OrderMissingStudyIUIDPolicy": { + "title": "HL7 Order Missing Study Instance UID Policy", + "description": "Specifies policy for missing Study Instance UID in incoming HL7 Order messages. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "REJECT", + "GENERATE", + "ACCESSION_BASED" + ] + }, + "hl7OrderMissingAdmissionIDPolicy": { + "title": "HL7 Order Missing Admission ID Policy", + "description": "Specifies policy on incoming HL7 Order messages without a value for PID-18 Patient Account Number nor field PV1-19 Visit Number. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "ACCEPT", + "REJECT", + "ACCESSION_AS_ADMISSION" + ] + }, + "hl7ImportReportMissingStudyIUIDPolicy": { + "title": "HL7 Import Report Missing Study Instance UID Policy", + "description": "Specifies policy for missing Study Instance UID in incoming HL7 Import Report (ORU) messages. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "REJECT", + "GENERATE", + "ACCESSION_BASED" + ] + }, + "hl7ImportReportMissingAdmissionIDPolicy": { + "title": "HL7 Import Report Missing Admission ID Policy", + "description": "Specifies policy on incoming HL7 ImportReport (ORU) messages without a value for PID-18 Patient Account Number nor field PV1-19 Visit Number. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "ACCEPT", + "REJECT", + "ACCESSION_AS_ADMISSION" + ] + }, + "hl7ImportReportMissingStudyIUIDCFindSCP": { + "title": "HL7 Import Report Missing Study Instance UID C-FIND SCP", + "description": "AE Title of external C-FIND SCP to query for missing Study Instance UID in incoming HL7 Import Report (ORU) messages by given Accession Number. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmAETitle" + }, + "hl7ImportReportAdjustIUID": { + "title": "HL7 Import Report Adjust Instance UID", + "description": "Specifies adjustment of Series and SOP Instances UIDs returned by XSLT on incoming HL7 Import Report (ORU) messages. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "NONE", + "APPEND_HASH_OF_STUDY_INSTANCE_UID" + ] + }, + "hl7ReferredMergedPatientPolicy": { + "title": "HL7 Referred Merged Patient Policy", + "description": "Specifies policy on incoming HL7 messages referring an already merged Patient. REJECT: reject any such HL7 message, IGNORE: ignore any such HL7 message, IGNORE_DUPLICATE_MERGE: Ignore only duplicate HL7 Merge messages, Reject any other such Message. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "REJECT", + "IGNORE", + "IGNORE_DUPLICATE_MERGE" + ] + }, + "hl7DicomCharacterSet": { + "title": "HL7 Dicom Character Set", + "description": "Indicates to use specified Value of Specific Character Set (0008,0005) in Data Sets transcoded from received HL7 messages. Use Value corresponding to Character Set of the HL7 message specified by MSH-18 if absent.", + "type": "string", + "format": "dcmCharset" + }, + "hl7ForwardRule": { + "title": "HL7 Forward Rule", + "description": "HL7 Forward Rule. Supplements values specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7ForwardRule.schema.json" + } + }, + "hl7ExportRule": { + "title": "HL7 Export Rule", + "description": "Export Rules applied to HL7 messages received by this HL7 Application. Supplements HL7 Export Rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7ExportRule.schema.json" + } + }, + "hl7UPSOnHL7": { + "title": "UPS on HL7 Rules", + "description": "UPS on HL7 Rules applied to HL7 messages received by any HL7 Application. Supplements UPS on HL7 Rules specified on Device level.", + "type": "array", + "titleKey": "{hl7UPSOnHL7ID}", + "items": { + "$ref": "upsOnHL7.schema.json" + } + }, + "hl7PrefetchRule": { + "title": "HL7 Prefetch Rule", + "description": "Prefetch Rules applied to HL7 messages received by this HL7 Application. Supplements HL7 Prefetch Rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7PrefetchRule.schema.json" + } + }, + "hl7StudyRetentionPolicy": { + "title": "HL7 Study Retention Policy", + "description": "HL7 Study Retention Policies triggered by HL7 messages received by this HL7 Application. Supplements values specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7StudyRetentionPolicy.schema.json" + } + }, + "hl7OrderScheduledStation": { + "title": "Scheduled Station for HL7 Order", + "description": "Scheduled Station selected on MWL HL7 Order Feed. Supplements values specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "hl7OrderScheduledStation.schema.json" + } + }, + "hl7OrderSPSStatus": { + "title": "SPS Status for HL7 Order", + "description": "Specifies SPS Status of DICOM MWL items created/updated on received HL7 ORM^O01, OMI^O23, OMG^O19 messages. Overwrites values specified on Device level.", + "type": "array", + "titleKey":"{dcmSPSStatus}", + "items" : { + "$ref": "hl7OrderSPSStatus.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/archiveNetworkAE.schema.json b/src/main/webapp/assets/schema/es/archiveNetworkAE.schema.json new file mode 100644 index 00000000..300c6bd3 --- /dev/null +++ b/src/main/webapp/assets/schema/es/archiveNetworkAE.schema.json @@ -0,0 +1,863 @@ +{ + "title": "Archive Network AE", + "description": "DICOM Archive Network AE related information", + "type": "object", + "required": [ + "dcmQueryRetrieveViewID", + "dcmObjectStorageCount" + ], + "properties": { + "dcmObjectStorageID": { + "title": "Object Storage ID", + "description": "ID of Storage System on which received DICOM composite objects are stored. Multiple Storage Systems may be configured.", + "type": "array", + "items" : { + "type": "string" + }, + "format": "dcmStorageID" + }, + "dcmObjectStorageCount": { + "title": "Object Storage Count", + "description": "Number of Storage Systems which are filled in parallel.", + "type": "integer", + "default": 1, + "minimum": 1 + }, + "dcmMetadataStorageID": { + "title": "Metadata Storage ID", + "description": "ID of Storage on which Metadata is stored in JSON format - additionally to the complete DICOM composite object. Multiple Storage Systems may be configured. If absent, metadata is not stored additionally.", + "type": "array", + "items" : { + "type": "string" + }, + "format": "dcmStorageID" + }, + "dcmBulkDataDescriptorID": { + "title": "Bulk Data Descriptor ID", + "description": "ID of Bulk Data Descriptor applied by all services of this Archive Network AE providing Metadata of archived instances. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmBulkDataDescriptorID" + }, + "dcmSeriesMetadataDelay": { + "title": "Aggregate Series Metadata Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS for storing aggregated Series Metadata on storage of objects received by this AE. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeInstanceRecordsDelay": { + "title": "Purge Instance Records Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS for purging Instance Records from the DB received by this AE. Overwrites value specified on Device level. Only effective, if Purge Instance Records on Device Level = true.", + "type": "string", + "format": "dcmDuration" + }, + "dcmStoreAccessControlID": { + "title": "Store Access Control ID", + "description": "Access Control ID assigned to Studies received by this AE", + "type": "string" + }, + "dcmAccessControlID": { + "title": "Access Control ID", + "description": "Access Control IDs assigned to Query/Retrieve requests received by this AE.", + "type": "array", + "items": { "type": "string" } + }, + "dcmAcceptedMoveDestination": { + "title": "Accepted Move Destination", + "description": "Accepted Move Destination in C-MOVE requests; any if absent.", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmOverwritePolicy": { + "title": "Overwrite Policy", + "description": "Overwrite Policy for Objects received by this AE. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "NEVER", + "ALWAYS", + "SAME_SOURCE", + "SAME_SERIES", + "SAME_SOURCE_AND_SERIES", + "EVEN_WITH_EQUAL_DIGEST" + ] + }, + "dcmRecordAttributeModification": { + "title": "Record Attribute Modification", + "description": "Indicates if modifications of attributes of stored objects by this AE are recorded in Items of the Original Attributes Sequence. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmAcceptMissingPatientID": { + "title": "Accept Missing Patient ID", + "description": "Indicates if objects without Patient IDs shall be accepted and if a Patient ID shall be created. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "YES", + "NO", + "CREATE" + ] + }, + "dcmAcceptConflictingPatientID": { + "title": "Accept Conflicting Patient ID", + "description": "Indicates if objects with a Patient IDs which differs from the Patient ID in previous received objects of the Study shall be accepted. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "YES", + "NO", + "MERGED" + ] + }, + "dcmQueryRetrieveViewID": { + "title": "Query/Retrieve View ID", + "description": "Query/Retrieve View Identifier.", + "type": "string", + "format": "dcmQueryRetrieveViewID" + }, + "dcmBulkDataSpoolDirectory": { + "title": "Bulk Data Spool Directory", + "description": "Path to Bulk Data Spool Directory. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmHideSPSWithStatusFromMWL": { + "title": "Hide SPS with Status by MWL SCP", + "description": "Scheduled Procedure Step Status codes of MWL items which shall not be returned by the MWL SCP. Overwrites value specified on Device level.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "SCHEDULED", + "ARRIVED", + "READY", + "STARTED", + "DEPARTED", + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + } + }, + "dcmHideSPSWithStatusFromMWLRS": { + "title": "Hide SPS with Status by MWL RS", + "description": "Scheduled Procedure Step Status codes of MWL items which shall not be returned by the MWL RS. Overwrites value specified on Device level.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "SCHEDULED", + "ARRIVED", + "READY", + "STARTED", + "DEPARTED", + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + } + }, + "dcmMWLAccessionNumberGenerator": { + "title": "MWL Accession Number Generator", + "description": "Identifies ID Generator to supplement missing Accession Numbers of Scheduled Procedures Steps created by RESTful service. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmIDGenerator" + }, + "dcmMWLRequestedProcedureIDGenerator": { + "title": "MWL Requested Procedure ID Generator", + "description": "Identifies ID Generator to supplement missing Requested Procedure IDs of Scheduled Procedures Steps created by RESTful service. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmIDGenerator" + }, + "dcmMWLScheduledProcedureStepIDGenerator": { + "title": "MWL Scheduled Procedure Step ID Generator", + "description": "Identifies ID Generator to supplement missing Scheduled Procedure Step IDs of Scheduled Procedures Steps created by RESTful service. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmIDGenerator" + }, + "dcmEncodeAsJSONNumber": { + "title": "Encode as JSON Number", + "description": "VR encoded as JSON Number. If not listed, IS, DS, SV and UV values are encoded as JSON Strings. Supplements values specified on Device level.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "DS", + "IS", + "SV", + "UV" + ] + } + }, + "dcmValidateCallingAEHostname": { + "title": "Validate Calling AE Hostname", + "description": "Validate Calling AE Hostname or IP Address of Association requestors for this AE. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmUserIdentityNegotiation": { + "title": "User Identity Negotiation", + "description": "Specifies to ignore User Identity Negotiation Sub-Item in Association requests (=NOT_SUPPORTED), to verify passed Username and password or JSON Web Token are against a Keycloak server (=SUPPORTS), or to reject Association requests without a valid Username and password or JSON Web Token in its Identity Negotiation Sub-Item (=REQUIRED). Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "NOT_SUPPORTED", + "SUPPORTS", + "REQUIRED" + ] + }, + "dcmUserIdentityNegotiationRole": { + "title": "User Identity Negotiation Role", + "description": "Constrain accepted User Identity Negotiation requests to users with specified role. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmUserIdentityNegotiationKeycloakClientID": { + "title": "User Identity Negotiation Keycloak Client ID", + "description": "Keycloak Client ID referring Keycloak connection configuration for verifying passed username and password or JSON Web Token. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmKeycloakClient" + }, + "dcmPersonNameComponentOrderInsensitiveMatching": { + "title": "Person Name Component Order Insensitive Matching", + "description": "Indicates if name component order insensitive matching is performed on fuzzy semantic matching of person names by this AE. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmSendPendingCGet": { + "title": "Send Pending C-Get", + "description": "Enables pending C-GET responses. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmSendPendingCMoveInterval": { + "title": "Send Pending C-Move Interval", + "description": "Interval of pending C-MOVE responses in ISO-8601 duration format PnDTnHnMn.nS. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmDuration" + }, + "dcmWadoSR2HtmlTemplateURI": { + "title": "Wado SR2Html Template URI", + "description": "Specifies URI for the style sheet used to render structured reports to html. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmWadoSR2TextTemplateURI": { + "title": "Wado SR2Text Template URI", + "description": "Specifies URI for the style sheet used to render structured reports to plain text. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmWadoCDA2HtmlTemplateURI": { + "title": "Wado CDA to HTML Template URI", + "description": "URL to XSL style sheet inserted as \" > in CDA documents returned by WADO-URI service. If absent, the embedded CDI document is returned verbatim. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmWadoThumbnailViewport": { + "title": "Wado Thumbnail Viewport", + "description": "Dimension of Thumbnails returned by WADO retrieve of Instance Thumbnails, if no Viewport is specified in the request. Format: ,. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmWadoThumbnailViewport" + }, + "dcmWadoZIPEntryNameFormat": { + "title": "Wado ZIP Entry Name Format", + "description": "Format of entry names in ZIP archive returned by WADO-RS. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmWadoIgnorePresentationLUTShape": { + "title": "Wado Ignore Presentation LUT Shape", + "description": "Indicates to ignore (2050,0020) Presentation LUT Shape, but prioritize value of (0028,0004) Photometric Interpretation to determine if minimum sample value is intended to be displayed as white (=MONCHROME1) or as black (=MONCHROME2) on retrieve of rendered DICOM images by WADO-RS or WADO-URI services. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmWadoMetadataExcludePrivate": { + "title": "Wado Metadata Exclude Private", + "description": "Indicates to exclude Private Data Elements from Metadata returned by WADO-RS Retrieve Transaction. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmQueryMaxNumberOfResults": { + "title": "Query Max Number Of Results", + "description": "Maximal number of return results by C-FIND SCP. If the number of matches extends the limit, the C-FIND request will be refused. 0 = no limitation. Overwrites value specified on Device level.", + "type": "integer", + "minimum": 0 + }, + "dcmQidoMaxNumberOfResults": { + "title": "Qido Max Number Of Results", + "description": "Maximal number of return results by QIDO-RS Service. 0 = unlimited. Overwrites value specified on Device level.", + "type": "integer", + "minimum": 0 + }, + "dcmQidoETag": { + "title": "Qido ETag", + "description": "Indicates to return Last-Modified and ETag for Search Series or Instances of a Study. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmFwdMppsDestination": { + "title": "Mpps Forward Destination", + "description": "Destination to forward MPPS N-CREATE RQ and N-SET RQ. Overwrites value specified on Device level.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmIanDestination": { + "title": "Ian Destination", + "description": "Destination to send IAN N-CREATE RQ. Overwrites value specified on Device level.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmIanDelay": { + "title": "IAN Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which an IAN for a received study is sent to configured IAN destinations. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmDuration" + }, + "dcmIanTimeout": { + "title": "IAN Timeout", + "description": "Timeout in ISO-8601 duration format PnDTnHnMn.nS for waiting on receive of instances referenced in MPPS. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmDuration" + }, + "dcmIanOnTimeout": { + "title": "IAN On Timeout", + "description": "Specifies if the IAN is sent if the timeout for waiting on receive of instances referenced is exceeded. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmSpanningCFindSCP": { + "title": "Spanning C-Find SCP", + "description": "AE Title of external C-FIND SCP to forward C-FIND RQs and backward responses according configured Spanning C-Find SCP Policy. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmSpanningCFindSCPPolicy": { + "title": "Spanning C-Find SCP Policy", + "description": "Specifies policy for combining matches returned from configured Spanning C-Find SCP with matching entries from the archive DB. SUPPLEMENT (= returns local matches before additional matches from Spanning C-Find SCP ), MERGE (= returns matches from Spanning C-Find SCP before additional local matches), REPLACE (= returns only matches from Spanning C-Find SCP). Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "SUPPLEMENT", + "MERGE", + "REPLACE" + ] + }, + "dcmSpanningCFindSCPRetrieveAET": { + "title": "Spanning C-Find SCP Retrieve AE Title", + "description": "Specifies Retrieve AE Title(s) in returned matches from Spanning C-Find SCP. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmArchiveAETitle" + }, + "dcmFallbackCMoveSCP": { + "title": "Fallback C-Move SCP", + "description": "AE Title of external C-MOVE SCP to forward C-MOVE RQs if the requested Entities are not managed by this archive. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmFallbackCMoveSCPStudyOlderThan": { + "title": "Fallback C-Move SCP Study Older Than", + "description": "Specifies threshold for Study Date in format YYYYMMDD for marking received Studies as (potential) incomplete to enforce the retrieve from configured dcmFallbackCMoveSCP. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmFallbackCMoveSCPDestination": { + "title": "Fallback C-Move SCP Destination", + "description": "AE Title of local C-STORE-SCP to be set as Move Destination in C-MOVE RQs forwarded to the external C-MOVE SCP specified by dcmFallbackCMoveSCP. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmFallbackCMoveSCPLeadingCFindSCP": { + "title": "Fallback C-Move SCP Leading C-Find SCP", + "description": "AE Title of external C-FIND SCP for Verification of Number of Instances retrieved from external C-MOVE SCP specified by dcmFallbackCMoveSCP. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmFallbackCMoveSCPRetries": { + "title": "Fallback C-Move SCP Retries", + "description": "Maximal number of retries to retrieve not available objects from C-MOVE SCP configured by dcmFallbackCMoveSCP. -1 = forever. Overwrites value specified on Device level.", + "type": "integer" + }, + "dcmFallbackWadoURIWebAppName": { + "title": "Fallback WADO-URI Web Application Name", + "description": "Name of external Web Application to redirect WADO URI requests if the requested Object is not available by this archive. Overwrites value specified on Device level.", + "type": "string", + "format": "webApp" + }, + "dcmFallbackWadoURIHttpStatusCode": { + "title": "Fallback WADO-URI HTTP Status Code", + "description": "HTTP Status code of Redirect Response configured by Fallback WADO-URI Web Application Name. Overwrites value specified on Device level.", + "type": "integer", + "default": 303, + "enum": [ + 301, + 302, + 303, + 307 + ] + }, + "dcmFallbackCMoveSCPCallingAET": { + "title": "Fallback C-Move SCP Calling AE title", + "description": "Calling AE Title used in A-ASSOCIATE-RQ to configured Fallback C-MOVE SCP. If absent, the AE Title of the external C-MOVE SCU is used. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmAltCMoveSCP": { + "title": "Alternative C-Move SCP", + "description": "AE Title of alternative C-MOVE SCP to forward C-MOVE RQs if the requested Entities are not located on a local attached Storage. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmStorePermissionServiceURL": { + "title": "Store Permission Service URL", + "description": "URL of Store Permission Service which will be invoked on receive of the first object of a study. {} will be replaced by the value of the attribute in the object. E.g. http(s)://:/storage-permission/study/{0020000D}?patientId={00100020}&patientIdIssuer={00100021}&studyDescription={00081030,urlencoded}. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmStorePermissionServiceResponse": { + "title": "Store Permission Service Response", + "description": "Emulate Store Permission Service Response on receive of the first object of a study. {} will be replaced by the value of the attribute in the object. Only effective if no Store Permission Service Response is configured. Example: patientID={00100020},patientName={00100010},errorCode=0110H,errorComment=errorMessage. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmStorePermissionServiceResponsePattern": { + "title": "Store Permission Service Response Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to determine agreement for storage. E.g. \"validation\"\\s*:\\s*\"true\" or '(?<=patientName=)[^null].*?(?=,)'. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmStorePermissionServiceErrorCommentPattern": { + "title": "Store Permission Service Error Comment Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to extract Error Comment. E.g. \"errorcomment\"\\s*:\\s*\"(.*)\". Overwrites value specified on Device level.", + "type": "string" + }, + "dcmStorePermissionServiceErrorCodePattern": { + "title": "Store Permission Service Error Code Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to extract Error Code in hexadecimal. E.g. \"errorcode\"\\s*:\\s*\"(\\p{XDigit}{4})\". Overwrites value specified on Device level.", + "type": "string" + }, + "dcmStorePermissionServiceExpirationDatePattern": { + "title": "Store Permission Service Expiration Date Pattern", + "description": "Regular Expression applied to responses from Store Permission Service to extract the initial Study Expiration Date. E.g. \"expirationdate\"\\s*:\\s*\"([0-9]{8})\". Overwrites value specified on Device level.", + "type": "string" + }, + "dcmAllowRejectionForDataRetentionPolicyExpired": { + "title": "Allow Rejection For Data Retention Policy Expired", + "description": "Allow Rejection For Data Retention Policy Expired. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "NEVER", + "ALWAYS", + "EXPIRED_UNSET", + "ONLY_EXPIRED" + ] + }, + "dcmAcceptedUserRole": { + "title": "Accepted User Role", + "description": "Roles of users from which web requests are accepted; any if absent.", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmAllowDeleteStudyPermanently": { + "title": "Allow Delete Study permanently", + "description": "Allow to delete Study permanently. REJECTED = only already rejected Studies. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "ALWAYS", + "REJECTED" + ] + }, + "dcmAllowDeletePatient": { + "title": "Allow Delete Patient", + "description": "Allow permanent deletion of Patients. Enumerated values: NEVER, ALWAYS, WITHOUT_STUDIES. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "NEVER", + "ALWAYS", + "WITHOUT_STUDIES" + ] + }, + "dcmDefaultCharacterSet": { + "title": "Default Character Set", + "description": "Value of Specific Character Set (0008,0005) added to Data Sets of C-STORE RQs and pending C-FIND RSPs without Specific Character Set (0008,0005) attribute received by this Network AE. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmCharset" + }, + "dcmMWLWorklistLabel": { + "title": "MWL Worklist Label", + "description": "Only consider MWL items with this or no Worklist Label (0074,1202) for matching by this Archive AE acting as MWP SCP. If absent, MWL items with any Value of Worklist Label (0074,1202) are considered for matching by this Archive AE acting as MWL SCP.", + "type": "string", + "format": "dcmMWLWorklistLabel" + }, + "dcmUPSWorklistLabel": { + "title": "UPS Worklist Label", + "description": "Value of Worklist Label (0074,1202) of created UPS by this Network AE, if the UPS Push SCU or UPS-RS User Agent does not provide a value for this attribute. If absent, the AE Title of the receiving AE will be used. Overwrites value specified on Device level.", + "type": "string" + }, + "dcmUPSEventSCU": { + "title": "UPS Event SCU", + "description": "AE Title of UPS Event SOP Class SCU, to which UPS Event Reports are sent for subscriptions created on this Network AE - independently if the subscription was created by the N-ACTION DIMSE service, or by a corresponding UPS RESTful service. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmUPSEventSCUKeepAlive": { + "title": "UPS Event SCU Keep Alive", + "description": "Timeout in ms to keep associations to UPS Event SCUs alive. If absent, associations will not be reused for sending multiple UPS Event Reports to one UPS Event SCU. Overwrites value specified on Device level.", + "type": "integer", + "minimum": 100 + }, + "dcmRetrieveAET": { + "title": "Retrieve AE Title", + "description": "Specifies Retrieve AE Titles associated with DICOM objects received by this Network AE. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmArchiveAETitle" + }, + "dcmReturnRetrieveAET": { + "title": "Return Retrieve AE Title", + "description": "Retrieve AE Title returned in C-FIND and QIDO responses. If absent, the Retrieve AET associated with the archived entity will be returned. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmArchiveAETitle" + }, + "dcmMultipleStoreAssociations": { + "title": "Multiple Store Associations", + "description": "Number of Storage Associations used for retrieve of Composite Objects. C-STORE SCP specific numbers can be specified by prefix ':'. Examples : 2 or STORESCP:3 Supplements Multiple Store Associations specified on Device level.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmMultipleStoreAssociations" + }, + "dcmExternalRetrieveAEDestination": { + "title": "External Retrieve AE Destination", + "description": "AE Title of local C-STORE-SCP to be set as Move Destination in C-MOVE RQs forwarded to external retrieve AE. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmCopyMoveUpdatePolicy": { + "title": "Copy Move Update Policy", + "description": "Specifies update policy for attributes of the destination Study on Copy/Move of Instances from another Study. If absent, the attributes will not be updated. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE", + "REPLACE" + ] + }, + "dcmLinkMWLEntryUpdatePolicy": { + "title": "Link MWL Entry Update Policy", + "description": "Specifies update policy for Study attributes on Link of Instances of another Study with a MWL Entry referring an existing Study. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE", + "REPLACE" + ] + }, + "dcmStorageVerificationPolicy": { + "title": "Storage Verification Policy", + "description": "DB_RECORD_EXISTS: only check for existence of DB records, OBJECT_EXISTS: check if object exists on Storage System, OBJECT_SIZE: check size of object on Storage System, OBJECT_FETCH: fetch object from Storage System), OBJECT_CHECKSUM: recalculate checksum of object on Storage System, S3_MD5SUM: check MD5 checksum of object on S3 Storage System. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "DB_RECORD_EXISTS", + "OBJECT_EXISTS", + "OBJECT_SIZE", + "OBJECT_FETCH", + "OBJECT_CHECKSUM", + "S3_MD5SUM" + ] + }, + "dcmStorageVerificationUpdateLocationStatus": { + "title": "Storage Verification Update Location Status", + "description": "Indicates if the Status of the Location DB record shall be updated on Storage Verification accordingly. Not effective with Storage Verification Policy: DB_RECORD_EXISTS. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmStorageVerificationStorageID": { + "title": "Storage Verification Storage IDs", + "description": "Only accept Storage Verification if the validation of the storage of the object on one of the specified Storage Systems is successful. Not effective with Storage Verification Policy: DB_RECORD_EXISTS. Overwrites values specified on Device level.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmStorageID" + }, + "dcmStorageVerificationInitialDelay": { + "title": "Storage Verification Initial Delay", + "description": "Delay in ISO-8601 duration format PnYnMnD or PnW of first Storage Verification of a Series after it was received. Overwrites values specified on Device level.", + "type": "string", + "format": "dcmPeriod" + }, + "dcmUpdateLocationStatusOnRetrieve": { + "title": "Update Location Status on Retrieve", + "description": "Indicates if the Status of the Location DB record shall be updated for objects failed to get fetched from storage on retrieve to MISSING_OBJECT or FAILED_TO_FETCH_OBJECT. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmStorageVerificationOnRetrieve": { + "title": "Storage Verification on Retrieve", + "description": "Indicates if failures to fetch an object from Storage on retrieve shall trigger a Storage Verification of the whole Series. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7PSUSendingApplication": { + "title": "HL7 Procedure Status Update Sending Application", + "description": "Application|Facility name of Sending Application for HL7 Procedure Status Update. Overwrites value specified on Device level.", + "type": "string", + "format": "hl7ApplicationName" + }, + "hl7PSUReceivingApplication": { + "title": "HL7 Procedure Status Update Receiving Application", + "description": "Application|Facility name of Receiving Application for HL7 Procedure Status Update. Overwrites value specified on Device level.", + "type": "array", + "items" : { "type": "string" }, + "format": "hl7ApplicationName" + }, + "hl7PSUDelay": { + "title": "HL7 Procedure Status Update Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which an HL7 Procedure Status Update for a received study is sent to configured HL7 receivers. If absent, HL7 Procedure Status Update is triggered by received MPPS. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmDuration" + }, + "hl7PSUStudyTemplateURI": { + "title": "HL7 Procedure Status Update Study Template URI", + "description": "URL of XSL style sheet to create HL7v2 message to notify configured HL7 receivers about changes of the Status of requested Procedures triggered by received Study. Overwrites value specified on Device level.", + "type": "string" + }, + "hl7PSUTimeout": { + "title": "HL7 Procedure Status Update Timeout", + "description": "Timeout in ISO-8601 duration format PnDTnHnMn.nS for waiting on receive of instances referenced in MPPS. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmDuration" + }, + "hl7PSUOnTimeout": { + "title": "HL7 Procedure Status Update On Timeout", + "description": "Specifies if the HL7 Procedure Status Update is sent if the timeout for waiting on receive of instances referenced is exceeded. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7PSUMppsTemplateURI": { + "title": "HL7 Procedure Status Update MPPS Template URI", + "description": "URL of XSL style sheet to create HL7v2 message to notify configured HL7 receivers about changes of the Status of requested Procedures triggered by MPPS. Overwrites value specified on Device level.", + "type": "string" + }, + "hl7PSUCondition": { + "title": "HL7 Procedure Status Update Conditions", + "description": "Restrict notification of configured HL7 Procedure Status Update Receiving Applications about Procedure Status Update by conditions on attributes of received composite object in format {key}[!]={value}. Refer applicability, format and some examples. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "hl7PSUForRequestedProcedure": { + "title": "HL7 Procedure Status Update for Requested Procedure", + "description": "Restrict notification of configured HL7 Procedure Status Update Receiving Applications about Procedure Status Update to existence of Scheduled Procedure Steps of a Requested Procedure (MWL Items in the DB) with matching Study Instance UID. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7PSUTemplateParam": { + "title": "HL7 Procedure Status Update Template Parameters", + "description": "XSLT parameters in format {attributeID}={value} passed to style sheet specified by HL7 Procedure Status Update MPPS Template URI or HL7 Procedure Status Update Study Template URI. {attributeID} inside of {value} will be replaced by the value of that attribute in the original dataset. E.g.: 'RequestedProcedureID={StudyInstanceUID,hash}' or 'AccessionNumber={0020000D,hash}'. Overwrites value specified on Device level.", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7PSUMessageType": { + "title": "HL7 Procedure Status Update Message Type", + "description": "Message Type of HL7 Procedure Status Update message. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "OMG_O19", + "ORU_R01" + ] + }, + "hl7PSUPIDPV1": { + "title": "HL7 Procedure Status Update PID PV1", + "description": "Indicates to include a Patient Identification (PID) and a Patient Visit (PV1) segment in the HL7 Procedure Status Update message. Implicitly set, if HL7 Procedure Status Message Type = ORU_R01. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7PSUMWL": { + "title": "HL7 Procedure Status Update MWL", + "description": "Specifies if the Status of MWL Items in the DB is updated to COMPLETED for a received study after the configured HL7 Procedure Status Update Delay. Implicitly set to true, if notification to HL7 receivers is configured, triggered by received studies associated with MWL. Overwrites value specified on Device level.", + "type": "boolean" + }, + "hl7PSUMWLMatchingKey": { + "title": "HL7 Procedure Status Update MWL Matching Key", + "description": "Specifies attribute of received object to lookup MWL Item whose status is to be updated to COMPLETED. Only applicable is 'HL7 Procedure Status Update MWL' is configured as or implicitly set to true. Overwrites value specified on Device level.", + "type": "string", + "enum": [ + "AccessionNumber", + "StudyInstanceUID" + ] + }, + "dcmRelationalQueryNegotiationLenient": { + "title": "Relational Query Negotiation Lenient", + "description": "Indicates to accept C-FIND RQs without unique keys for levels above the query level also if support for relational-queries was not negotiated. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmRelationalRetrieveNegotiationLenient": { + "title": "Relational Retrieve Negotiation Lenient", + "description": "Indicates to accept C-MOVE and C-GET RQs without unique keys for levels above the query level also if support for relational-queries was not negotiated. Overwrites value specified on Device level. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmRestrictRetrieveSilently": { + "title": "Restrict Retrieve Silently", + "description": "Indicates if the set of requested objects to retrieve shall be silently (=without counting not transferred object as failures) restricted according the Transfer Capabilities of the Retrieve Destination. Otherwise the number of requested objects for which no Transfer Capability is configured for the Retrieve Destination and therefore are not retrieved is counted as failures. Only effective, if the Retrieve Destination has configured at least one Transfer Capability with SCP role. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmRejectConflictingPatientAttribute": { + "title": "Reject Conflicting Patient Attribute", + "description": "DICOM Tag of Patient Attribute which have to match in received objects with the value in previous received objects with equal Patient ID to be accepted. Overwrites value specified on Device level.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmTag" + }, + "dcmStowRetiredTransferSyntax": { + "title": "STOW Retired Transfer Syntax", + "description": "Store received JPEG Full Progression, Non-Hierarchical JPEG images in DICOM images with corresponding (retired) Transfer Syntax UID 1.2.840.10008.1.2.4.55. Otherwise set 1.2.840.10008.1.2.4.50 (= JPEG Baseline) or 1.2.840.10008.1.2.4.51 (= JPEG Extended) as Transfer Syntax UID of the stored DICOM image, without transcoding to JPEG Baseline or JPEG Extended, but including the JPEG image as received. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmStowExcludeAPPMarkers": { + "title": "STOW Exclude Application Markers", + "description": "Indicates if APP markers in JPEG images received in STOW-RS Metadata and Bulkdata requests shall be excluded from the JPEG bit streams encapsulated in created DICOM instances. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmStowQuicktime2MP4": { + "title": "STOW Quicktime to MP4", + "description": "Indicates if QuickTime containers received in STOW-RS Metadata and Bulkdata requests shall be converted to MP4 containers encapsulated in created DICOM instances. The conversion requires that ffmpeg is installed and the ffmpeg CLI utility is available in the PATH. Otherwise Quicktime containers will get encapsulated in the stored DICOM object verbatim, with a declared DICOM MPEG-4 Transfer Syntax which reflects the encoding of the video stream in the container, but contradicts the actual container format. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmStowMaxFragmentLength": { + "title": "STOW Maximum Fragment Length", + "description": "Maximum length of data fragments of encapsulated JPEG/MPEG stream in stored DICOM object. If the received JPEG/MPEG stream exceeds that value, it will be split into several fragments, using a Fragmentable Encapsulated Transfer Syntax. Valid range: 1024..4294967294. Overwrites value specified on Device level.", + "type": "integer", + "minimum": 1024, + "exclusiveMinimum": false, + "maximum": 4294967294, + "exclusiveMaximum": false + }, + "dcmRetrieveTaskWarningOnNoMatch": { + "title": "Retrieve Task Warning on no Match", + "description": "Indicates if the result status of Retrieve Tasks shall be set to WARNING if none of the requested objects was found on the C-MOVE SCP. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmRetrieveTaskWarningOnWarnings": { + "title": "Retrieve Task Warning on Warnings", + "description": "Indicates if the result status of Retrieve Tasks shall be set to WARNING if there are Warning Sub-Operations, even if the retrieve of all objects was successful. Overwrites value specified on Device level", + "type": "boolean" + }, + "dcmChangeRequesterAET": { + "title": "Change Requester AET", + "description": "Indicates change requester AET in rejections triggered by archive. Overwrites value specified on Device level.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmFilterByIssuerOfPatientID": { + "title": "Filter by Issuer of Patient ID", + "description": "Filter by Issuer of Patient ID even if no matching key for Patient ID is specified. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmMatchSOPClassOnInstanceLevel": { + "title": "Match SOP Class on Instance level", + "description": "Indicates to consider the SOP Class UID on Instance level for calculation of matches with SOP Classes in Study (0008,0062); otherwise rely on stored SOP Class UID on Series level, which may result in missing matches if one Series includes Instances of different SOP Classes. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmUPSUpdateWithoutTransactionUID": { + "title": "UPS Update Without Transaction UID", + "description": "Indicates to permit an UPS Pull SCU or UPS-RS Web client to update or change the state of an UPS workitem in state IN PROCESS without specifying a Transaction UID. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmExportRule": { + "title": "Export Rule", + "description": "Export Rules applied to DICOM objects received by this AE. Supplements Export Rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "exportRule.schema.json" + } + }, + "dcmExportPriorsRule": { + "title": "Export Priors Rule", + "description": "Export Priors Rules applied to DICOM objects received by this AE. Supplements Export Priors Rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "exportPriorsRule.schema.json" + } + }, + "dcmMPPSForwardRule": { + "title": "MPPS Forward Rule", + "description": "MPPS Forward Rules applied to MPPS received by this AE. Supplements MPPS Forward Rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "mppsForwardRule.schema.json" + } + }, + "dcmRSForwardRule": { + "title": "RESTful Forward Rule", + "description": "RESTful Forward Rules. Supplements RESTful Forward rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "rsForwardRule.schema.json" + } + }, + "dcmArchiveCompressionRule": { + "title": "Compression rule", + "description": "Compression rules. Supplements Compression rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "archiveCompressionRule.schema.json" + } + }, + "dcmArchiveAttributeCoercion": { + "title": "Attribute Coercion (Legacy)", + "description": "Attribute Coercion of received/sent DIMSE. Supplements Attribute Coercions specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "archiveAttributeCoercion.schema.json" + } + }, + "dcmArchiveAttributeCoercion2": { + "title": "Attribute Coercion (New)", + "description": "Attribute Coercion of received/sent DIMSE. Supplements Attribute Coercions specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "archiveAttributeCoercion2.schema.json" + } + }, + "dcmStudyRetentionPolicy": { + "title": "Study Retention Policy", + "description": "Study Retention Policies. Supplements Study Retention Policies specified on Device level.", + "type": "array", + "titleKey": "{cn}", + "items": { + "$ref": "studyRetentionPolicy.schema.json" + } + }, + "dcmStoreAccessControlIDRule": { + "title": "Store Access Control Rules", + "description": "Store Access Control Rules applied to Studies received by this AE. Supplements Store Access Control Rules specified on Device level.", + "type": "array", + "titleKey":"{cn}", + "items" : { + "$ref": "storeAccessControlIDRule.schema.json" + } + }, + "dcmUPSOnStore": { + "title": "UPS on Store Rule", + "description": "UPS on Store Rules applied to DICOM objects received by this AE. Supplements UPS on Store Rules specified on Device level.", + "type": "array", + "titleKey":"{dcmUPSOnStoreID}", + "items" : { + "$ref": "upsOnStore.schema.json" + } + }, + "dcmUPSOnUPSCompleted": { + "title": "UPS on UPS Completed Rules", + "description": "UPS on UPS Completed Rules applied to UPS managed by this AE. Supplements UPS on UPS Completed Rules specified on Device level.", + "type": "array", + "titleKey": "{dcmUPSOnUPSCompletedID}", + "items": { + "$ref": "upsOnUPSCompleted.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/attributeFilter.schema.json b/src/main/webapp/assets/schema/es/attributeFilter.schema.json new file mode 100644 index 00000000..1b545158 --- /dev/null +++ b/src/main/webapp/assets/schema/es/attributeFilter.schema.json @@ -0,0 +1,58 @@ +{ + "title": "Attribute Filter", + "description": "Attributes stored in the database", + "type": "object", + "required": [ + "dcmEntity", + "dcmTag" + ], + "properties": { + "dcmEntity": { + "title": "Attribute Entity", + "description": "Entity of the Attribute Filter or Export Rule ('Patient', 'Study', 'Series', 'Instance', 'MPPS', 'MWL').", + "type": "string", + "enum": [ + "Patient", + "Study", + "Series", + "Instance", + "MPPS", + "MWL" + ] + }, + "dcmTag": { + "title": "Attribute Tag", + "description": "DICOM Tag as hex string", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmTag" + }, + "dcmCustomAttribute1": { + "title": "Custom Attribute 1", + "description": "Configure any attribute from the DICOM object which shall be inserted in database as Custom Attribute 1. Only applicable for Patient / Study / Series / Instance entities. Eg. DicomAttribute[@tag=\"00200070\"]/Value[@number=\"1\"] or for a Private attribute DicomAttribute[@tag=\"00E10024\" and @privateCreator=\"ELSCINT1\"]/Value[@number=\"1\"]", + "type": "string" + }, + "dcmCustomAttribute2": { + "title": "Custom Attribute 2", + "description": "Configure any attribute from the DICOM object which shall be inserted in database as Custom Attribute 2. Only applicable for Patient / Study / Series / Instance entities. Eg. DicomAttribute[@tag=\"00200070\"]/Value[@number=\"1\"] or for a Private attribute DicomAttribute[@tag=\"00E10024\" and @privateCreator=\"ELSCINT1\"]/Value[@number=\"1\"]", + "type": "string" + }, + "dcmCustomAttribute3": { + "title": "Custom Attribute 3", + "description": "Configure any attribute from the DICOM object which shall be inserted in database as Custom Attribute 3. Only applicable for Patient / Study / Series / Instance entities. Eg. DicomAttribute[@tag=\"00200070\"]/Value[@number=\"1\"] or for a Private attribute DicomAttribute[@tag=\"00E10024\" and @privateCreator=\"ELSCINT1\"]/Value[@number=\"1\"]", + "type": "string" + }, + "dcmAttributeUpdatePolicy": { + "title": "Attribute Update Policy", + "description": "Specifies update policy for extracted attributes into the DB on Series, Study & Patient level on receive of further instance of the entity. PRESERVE (= nullify attributes in the new dataset which are not present in the original dataset), SUPPLEMENT (= attributes not present in original dataset will be supplemented), REPLACE (= original dataset is completely replaced), MERGE (= attribute values will be written from new dataset), OVERWRITE (= attribute values if null in new dataset, will be nullified in original dataset). If absent, PRESERVE will be applied", + "type": "string", + "enum": [ + "PRESERVE", + "SUPPLEMENT", + "MERGE", + "OVERWRITE", + "REPLACE" + ] + } + } +} diff --git a/src/main/webapp/assets/schema/es/attributeSet.schema.json b/src/main/webapp/assets/schema/es/attributeSet.schema.json new file mode 100644 index 00000000..8959a780 --- /dev/null +++ b/src/main/webapp/assets/schema/es/attributeSet.schema.json @@ -0,0 +1,67 @@ +{ + "title": "Attribute Set", + "description": "Named Attribute Set for Query Parameter 'includefields' of QIDO-RS and WADO-RS Metadata or by Query Parameter 'comparefield' of DIFF-RS requests.", + "type": "object", + "required": [ + "dcmAttributeSetType", + "dcmAttributeSetID", + "dcmTag", + "dicomInstalled" + ], + "properties": { + "dicomDescription": { + "title": "Attribute Set Description", + "description": "Unconstrained text description of this Attribute Set", + "type": "string" + }, + "dcmAttributeSetType": { + "title": "Attribute Set Type", + "description": "Specifies if this Attribute Set is used by Query Parameter 'includefields' of QIDO-RS and WADO-RS Metadata or by Query Parameter 'comparefield' of DIFF-RS requests.", + "type": "string", + "enum": [ + "QIDO_RS", + "WADO_RS", + "DIFF_RS", + "LEADING_CFIND_SCP" + ] + }, + "dcmAttributeSetID": { + "title": "Attribute Set ID", + "description": "ID used by Query Parameter 'includefields' of QIDO-RS and WADO-RS Metadata requests and by Query Parameter 'comparefield' of DIFF-RS requests to refer this Attribute Set.", + "type": "string" + }, + "dcmAttributeSetTitle": { + "title": "Attribute Set Title", + "description": "Title of this Attribute Set.", + "type": "string" + }, + "dcmAttributeSetNumber": { + "title": "Attribute Set Number", + "description": "Number used to order Attribute Sets.", + "type": "integer" + }, + "dicomInstalled": { + "title": "installed", + "description": "Boolean to indicate whether this Attribute Set is presently installed on the archive device", + "type": "boolean", + "default": true + }, + "dcmTag": { + "title": "Attribute Tag", + "description": "DICOM Tag as hex string", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmTag" + }, + "dcmProperty": { + "title": "Property", + "description": "Property in format =", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/auditLogger.schema.json b/src/main/webapp/assets/schema/es/auditLogger.schema.json new file mode 100644 index 00000000..1a3d22b2 --- /dev/null +++ b/src/main/webapp/assets/schema/es/auditLogger.schema.json @@ -0,0 +1,229 @@ +{ + "title": "Audit Logger", + "description": "Audit Logger related information", + "type": "object", + "required": [ + "cn", + "dicomNetworkConnectionReference", + "dcmAuditRecordRepositoryDeviceName", + "dcmAuditFacility", + "dcmAuditSuccessSeverity", + "dcmAuditMinorFailureSeverity", + "dcmAuditSeriousFailureSeverity", + "dcmAuditMajorFailureSeverity", + "dcmAuditMessageID", + "dcmAuditMessageEncoding", + "dcmAuditMessageSchemaURI", + "dcmAuditMessageBOM", + "dcmAuditTimestampInUTC", + "dcmAuditMessageFormatXML", + "dcmAuditIncludeInstanceUID" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name for the Audit Logger object", + "type": "string" + }, + "dicomNetworkConnectionReference": { + "title": "Network Connection Reference", + "description": "The JSON Pointers to the Network Connection objects used by this Audit Logger", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmAuditRecordRepositoryDeviceName": { + "title": "Audit Record Repository Device Name", + "description": "Device Name of Audit Record Repository to which Audit Messages are sent", + "type": "string", + "format": "dicomDeviceName" + }, + "dcmAuditSourceID": { + "title": "Source ID", + "description": "RFC 3881 Audit Source ID; device name if absent", + "type": "string" + }, + "dcmAuditEnterpriseSiteID": { + "title": "Enterprise Site ID", + "description": "RFC 3881 Audit Enterprise Site ID; value 'dicomInstitutionName' is replaced by the institution name of the DICOM device", + "type": "string" + }, + "dcmAuditSourceTypeCode": { + "title": "Source Type Code", + "description": "RFC 3881 Audit Source Type Code; value 'dicomPrimaryDeviceType' is replaced by the primary type of the DICOM device", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmAuditFacility": { + "title": "Syslog Facility", + "description": "RFC 5424 Syslog Facility string value of audit message.", + "type": "string", + "default": "authpriv", + "enum": [ + "kern", + "user", + "mail", + "daemon", + "auth", + "syslog", + "lpr", + "news", + "uucp", + "cron", + "authpriv", + "ftp", + "ntp", + "audit", + "console", + "cron2", + "local0", + "local1", + "local2", + "local3", + "local4", + "local5", + "local6", + "local7" + ] + }, + "dcmAuditSuccessSeverity": { + "title": "Syslog Severity - Success", + "description": "RFC 5424 Syslog Severity string value of audit message with Event Outcome Indicator 0 (Success).", + "type": "string", + "default": "notice", + "enum": [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug" + ] + }, + "dcmAuditMinorFailureSeverity": { + "title": "Syslog Severity - Failure", + "description": "RFC 5424 Syslog Severity string value of audit message with Event Outcome Indicator 4 (Minor failure).", + "type": "string", + "default": "warning", + "enum": [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug" + ] + }, + "dcmAuditSeriousFailureSeverity": { + "title": "Syslog Severity - Failure", + "description": "RFC 5424 Syslog Severity string value of audit message with Event Outcome Indicator 8 (Serious failure).", + "type": "string", + "default": "err", + "enum": [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug" + ] + }, + "dcmAuditMajorFailureSeverity": { + "title": "Syslog Severity - Major", + "description": "RFC 5424 Syslog Severity string value of audit message with Event Outcome Indicator 12 (Major failure).", + "type": "string", + "default": "crit", + "enum": [ + "emerg", + "alert", + "crit", + "err", + "warning", + "notice", + "info", + "debug" + ] + }, + "dcmAuditApplicationName": { + "title": "Syslog Application Name", + "description": "RFC 5424 Syslog APP-NAME of audit message; Audit Source ID if absent", + "type": "string" + }, + "dcmAuditMessageID": { + "title": "Syslog Message ID", + "description": "RFC 5424 Syslog MSGID of audit message.", + "type": "string", + "default": "IHE+RFC-3881" + }, + "dcmAuditMessageEncoding": { + "title": "Message Encoding", + "description": "Character encoding of RFC 5424 Syslog MSG part of audit message.", + "type": "string", + "default": "UTF-8" + }, + "dcmAuditMessageBOM": { + "title": "Message BOM", + "description": "Enable/disable Unicode BOM prefix of RFC 5424 Syslog MSG part of audit message; include BOM if absent", + "type": "boolean", + "default": true + }, + "dcmAuditTimestampInUTC": { + "title": "Timestamp in UTC", + "description": "Specify if RFC 5424 Syslog TIMESTAMP and the Event Date/Time of the audit message are specified in Coordinated Universal Time. Default indicates it will be in Local Time zone.", + "type": "boolean", + "default": false + }, + "dcmAuditMessageFormatXML": { + "title": "Message Format XML", + "description": "Specify whether or not the XML audit message is formatted with line feeds and indentation.", + "type": "boolean", + "default": false + }, + "dcmAuditMessageSchemaURI": { + "title": "Message Schema URI", + "description": "URI of DICOM Audit Message Schema referenced in audit message", + "type": "string", + "default": "http://www.dcm4che.org/DICOM/audit-message.rnc" + }, + "dcmAuditIncludeInstanceUID": { + "title": "Include Instance UIDs", + "description": "Indicates if Audit Log Message should contain optional Instance UIDs", + "type": "boolean", + "default": false + }, + "dcmAuditLoggerSpoolDirectoryURI": { + "title": "Spool Directory URI", + "description": "URI of spool directory used to store messages which could not delivered to the record repository; use system temporary directory if absent.", + "type": "string" + }, + "dcmAuditLoggerRetryInterval": { + "title": "Retry Interval", + "description": "Retry interval in s to re-sent messages which could not delivered to the record repository; do no retry to re-sent messages if absent", + "type": "integer", + "minimum": 1 + }, + "dicomInstalled": { + "title": "installed", + "description": "True if the Audit Logger is installed on network. If not present, information about the installed status of the Audit Logger is inherited from the device", + "type": "boolean" + }, + "dcmAuditSuppressCriteria": { + "title": "Audit Suppress Criteria", + "description": "Audit Suppress Criteria", + "type": "array", + "titleKey":"{cn}", + "items": { + "$ref": "auditSuppressCriteria.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/auditRecordRepository.schema.json b/src/main/webapp/assets/schema/es/auditRecordRepository.schema.json new file mode 100644 index 00000000..3fd37c78 --- /dev/null +++ b/src/main/webapp/assets/schema/es/auditRecordRepository.schema.json @@ -0,0 +1,24 @@ +{ + "title": "Audit Record Repository", + "description": "Audit Record Repository related information", + "type": "object", + "required": [ + "dicomNetworkConnectionReference" + ], + "properties": { + "dicomNetworkConnectionReference": { + "title": "Network Connection Reference", + "description": "The JSON Pointers to the Network Connection objects of this Audit Record Repository", + "type": "array", + "items": { + "type": "string" + }, + "format": "dicomDeviceName" + }, + "dicomInstalled": { + "title": "installed", + "description": "True if the ARR is installed on network. If not present, information about the installed status of the ARR is inherited from the device", + "type": "boolean" + } + } +} diff --git a/src/main/webapp/assets/schema/es/auditSuppressCriteria.schema.json b/src/main/webapp/assets/schema/es/auditSuppressCriteria.schema.json new file mode 100644 index 00000000..9c4bfbe3 --- /dev/null +++ b/src/main/webapp/assets/schema/es/auditSuppressCriteria.schema.json @@ -0,0 +1,244 @@ +{ + "title": "Audit Suppress Criteria", + "description": "Audit Suppress Criteria", + "type": "object", + "required": [ + "cn" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Audit Suppress Criteria.", + "type": "string" + }, + "dcmAuditEventID": { + "title": "Audit Event ID", + "description": "DICOM PS 3.15 A.5 Audit Event ID code and codeSystemName in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string", + "enum": [ + "(110100, DCM, \"Application Activity\")", + "(110101, DCM, \"Audit Log Used\")", + "(110102, DCM, \"Begin Transferring DICOM Instances\")", + "(110103, DCM, \"DICOM Instances Accessed\")", + "(110104, DCM, \"DICOM Instances Transferred\")", + "(110105, DCM, \"DICOM Study Deleted\")", + "(110106, DCM, \"Export\")", + "(110107, DCM, \"Import\")", + "(110108, DCM, \"Network Entry\")", + "(110109, DCM, \"Order Record\")", + "(110110, DCM, \"Patient Record\")", + "(110111, DCM, \"Procedure Record\")", + "(110112, DCM, \"Query\")", + "(110113, DCM, \"Security Alert\")", + "(110114, DCM, \"User Authentication\")", + "(IHE0001, IHE, \"Health Services Provision Event\")", + "(IHE0002, IHE, \"Medication Event\")", + "(IHE0003, IHE, \"Patient Care Resource Assignment\")", + "(IHE0004, IHE, \"Patient Care Episode\")", + "(IHE0005, IHE, \"Patient Care Protocol\")" + ] + } + }, + "dcmAuditEventTypeCode": { + "title": "Audit Event Type Code", + "description": "DICOM PS 3.15 A.5 Audit Event Type code in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string", + "enum": [ + "(110120, DCM, \"Application Start\")", + "(110121, DCM, \"Application Stop\")", + "(110122, DCM, \"Login\")", + "(110123, DCM, \"Logout\")", + "(110124, DCM, \"Attach\")", + "(110125, DCM, \"Detach\")", + "(110126, DCM, \"Node Authentication\")", + "(110127, DCM, \"Emergency Override Started\")", + "(110128, DCM, \"Network Configuration\")", + "(110129, DCM, \"Security Configuration\")", + "(110130, DCM, \"Hardware Configuration\")", + "(110131, DCM, \"Software Configuration\")", + "(110132, DCM, \"Use of Restricted Function\")", + "(110133, DCM, \"Audit Recording Stopped\")", + "(110134, DCM, \"Audit Recording Started\")", + "(110135, DCM, \"Object Security Attributes Changed\")", + "(110136, DCM, \"Security Roles Changed\")", + "(110137, DCM, \"User security Attributes Changed\")", + "(110138, DCM, \"Emergency Override Stopped\")", + "(110139, DCM, \"Remote Service Operation Started\")", + "(110140, DCM, \"Remote Service Operation Stopped\")", + "(110141, DCM, \"Local Service Operation Started\")", + "(110142, DCM, \"Local Service Operation Stopped\")", + "(ITI-8, IHE Transactions, \"Patient Identity Feed\")", + "(ITI-9, IHE Transactions, \"PIX Query\")", + "(ITI-10, IHE Transactions, \"PIX Update Notification\")", + "(ITI-18, IHE Transactions, \"Registry Stored Query\")", + "(ITI-21, IHE Transactions, \"Patient Demographics Query\")", + "(ITI-22, IHE Transactions, \"Patient Demographics and Visit Query\")", + "(ITI-38, IHE Transactions, \"Cross Gateway Query\")", + "(ITI-39, IHE Transactions, \"Cross Gateway Retrieve\")", + "(ITI-41, IHE Transactions, \"Provide and Register Document Set-b\")", + "(ITI-42, IHE Transactions, \"Register Document Set-b\")", + "(ITI-43, IHE Transactions, \"Retrieve Document Set\")", + "(ITI-44, IHE Transactions, \"Patient Identity Feed\")", + "(ITI-45, IHE Transactions, \"PIX Query\")", + "(ITI-46, IHE Transactions, \"PIX Update Notification\")", + "(ITI-47, IHE Transactions, \"Patient Demographics Query\")", + "(ITI-51, IHE Transactions, \"Multi-Patient Query\")", + "(ITI-63, IHE Transactions, \"XCF Fetch\")" + ] + } + }, + "dcmAuditEventActionCode": { + "title": "Event Action Code", + "description": "DICOM PS 3.15 A.5 Audit Event Action Type code.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "C", + "R", + "U", + "D", + "E" + ] + } + }, + "dcmAuditEventOutcomeIndicator": { + "title": "Event Outcome Indicator", + "description": "DICOM PS 3.15 A.5 Audit Event Outcome Indicator.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "0", + "4", + "8", + "12" + ] + } + }, + "dcmAuditUserID": { + "title": "User ID", + "description": "DICOM PS 3.15 A.5 Audit Active Participant User ID.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmAuditAlternativeUserID": { + "title": "Alternative User ID", + "description": "DICOM PS 3.15 A.5 Audit Active Participant Alternative User ID.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmAuditUserRoleIDCode": { + "title": "User Role ID Code", + "description": "DICOM PS 3.15 A.5 Audit Active Participant User Role ID code in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string", + "enum": [ + "(110150, DCM, \"Application\")", + "(110151, DCM, \"Application Launcher\")", + "(110152, DCM, \"Destination Role ID\")", + "(110153, DCM, \"Source Role ID\")", + "(110154, DCM, \"Destination Media\")", + "(110155, DCM, \"Source Media\")" + ] + } + }, + "dcmAuditNetworkAccessPointID": { + "title": "Network Access Point ID", + "description": "DICOM PS 3.15 A.5 Audit Active Participant Network Access Point ID.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmAuditUserIsRequestor": { + "title": "User is Requestor", + "description": "Indicates if Active Participant is initiator/requestor of the Audit Event as specified by DICOM PS 3.15 A.5", + "type": "boolean" + }, + "dcmParticipantObjectTypeCode": { + "title": "Participant Object Type Code", + "description": "DICOM PS 3.15 A.5 Participant Object Type Code.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4" + ] + } + }, + "dcmParticipantObjectTypeCodeRole": { + "title": "Participant Object Type Code Role", + "description": "DICOM PS 3.15 A.5 Participant Object Type Code Role.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15", + "16", + "17", + "18", + "19", + "20", + "21", + "22", + "23", + "24", + "25", + "26" + ] + } + }, + "dcmParticipantObjectDataLifeCycle": { + "title": "Participant Object Data Life Cycle", + "description": "DICOM PS 3.15 A.5 Participant Object Data Life Cycle.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9", + "10", + "11", + "12", + "13", + "14", + "15" + ] + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/bulkData.schema.json b/src/main/webapp/assets/schema/es/bulkData.schema.json new file mode 100644 index 00000000..2543e3c7 --- /dev/null +++ b/src/main/webapp/assets/schema/es/bulkData.schema.json @@ -0,0 +1,43 @@ +{ + "title": "Bulk Data Descriptor", + "description": "Bulk Data Descriptor", + "type": "object", + "required": [ + "dcmBulkDataDescriptorID", + "dcmBulkDataExcludeDefaults" + ], + "properties": { + "dcmBulkDataDescriptorID": { + "title": "Bulk Data Descriptor ID", + "description": "Bulk Data Descriptor ID", + "type": "string", + "use": [ + "$.dcmDevice.dcmArchiveDevice.dcmBulkDataDescriptorID" + ] + }, + "dcmBulkDataExcludeDefaults": { + "title": "Exclude Defaults", + "description": "Indicates if Attributes specified by the 'Composite Instance Retrieve Without Bulk Data Service Class' shall be implicitly treated as Bulk Data (=false) or not (=true).", + "type": "boolean", + "default": false + }, + "dcmAttributeSelector": { + "title": "Attribute Selector", + "description": "Specifies individual Attributes treated as Bulk Data by XPath (e.g. 'DicomAttribute[@tag=\"54000100\"]/Item/DicomAttribute[@tag=\"54001010\"]' ).", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmAttributeSelector" + }, + "dcmBulkDataVRLengthThreshold": { + "title": "VR Length Threshold", + "description": "Specifies to treat all Attributes with a particular Value Representation (VR) which value length exceeds the specified threshold as Bulk Date. Format: =.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmBulkDataVRLengthThreshold" + } + } +} diff --git a/src/main/webapp/assets/schema/es/dcmDevice.schema.json b/src/main/webapp/assets/schema/es/dcmDevice.schema.json new file mode 100644 index 00000000..14f2dcfd --- /dev/null +++ b/src/main/webapp/assets/schema/es/dcmDevice.schema.json @@ -0,0 +1,220 @@ +{ + "title": "Device Extension", + "description": "dcm4che proprietary Device Attributes", + "type": "object", + "required": [ + "dcmRoleSelectionNegotiationLenient", + "dcmLimitOpenAssociations" + ], + "properties": { + "dcmRoleSelectionNegotiationLenient": { + "title": "Role Selection Negotiation Lenient", + "description": "Indicates to disable check for required SCP/SCU role selection negotiation on sending of DIMSE-RQs. May be overwritten by configured value for particular Network AEs.", + "type": "boolean", + "default": false + }, + "dcmLimitOpenAssociations": { + "title": "Association Limit", + "description": "Maximal number of open DICOM connections; rejects Association requests if the limit is exceeded; 0 = unlimited.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmLimitAssociationsInitiatedBy": { + "title": "Association Limit for AE", + "description": "Maximal number of open DICOM connections initiated by a particular Application Entity (AE) in format =; rejects Association requests from that AE if the limit is exceeded.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmLimitAssociationsInitiatedBy" + }, + "dcmTrustStoreURL": { + "title": "Trust Store URL", + "description": "URL of Trust Store with Certificates for DICOM nodes that are authorized to connect to this node; overrides dicomAuthorizedNodeCertificateReference", + "type": "string" + }, + "dcmTrustStoreType": { + "title": "Trust Store Type", + "description": "Key Store Type of Trust Store specified by dcmTrustStoreURL. Enumerated values: JKS, PKCS12.", + "type":"string" + }, + "dcmTrustStorePin": { + "title": "Trust Store Pin", + "description": "Key Store Password of Trust Store specified by Trust Store URL", + "type": "string" + }, + "dcmTrustStorePinProperty": { + "title": "Trust Store Pin Property", + "description": "System property of Key Store Password of Trust Store specified by Trust Store URL", + "type": "string" + }, + "dcmKeyStoreURL": { + "title": "Key Store URL", + "description": "URL of Key Store with private Key and certificate used to identify this DICOM node in TLS connections", + "type": "string" + }, + "dcmKeyStoreType": { + "title": "Key Store Type", + "description": "Key Store Type of Key Store specified by Key Store URL. Enumerated values: JKS, PKCS12.", + "type": "string" + }, + "dcmKeyStorePin": { + "title": "Key Store Pin", + "description": "Key Store Password of Key Store specified by Key Store URL", + "type": "string" + }, + "dcmKeyStorePinProperty": { + "title": "Key Store Pin Property", + "description": "System property of Key Store Password of Key Store specified by Key Store URL", + "type": "string" + }, + "dcmKeyStoreKeyPin": { + "title": "Key Store Key Pin", + "description": "Key Password of Key Store specified by Key Store URL", + "type": "string" + }, + "dcmKeyStoreKeyPinProperty": { + "title": "Key Store Key Pin Property", + "description": "System property of Key Password of Key Store specified by Key Store URL", + "type": "string" + }, + "dcmTimeZoneOfDevice": { + "title": "Time Zone of Device", + "description": "Time Zone ID of the Device; matches Java TimeZone ID", + "type": "string" + }, + "dcmWebApp": { + "title": "Web Applications", + "description": "Web Applications provided by the Device", + "type": "array", + "titleKey":"{dcmWebAppName}", + "order":26, + "items": { + "$ref": "webApplication.schema.json" + } + }, + "dcmKeycloakClient": { + "title": "Keycloak Clients", + "description": "Keycloak Clients provided by the Device", + "type": "array", + "titleKey":"{dcmKeycloakClientID}", + "order":27, + "items": { + "$ref": "keycloakClient.schema.json" + } + }, + "hl7Application": { + "title": "HL7 Applications", + "description": "HL7 Applications provided by the Device", + "type": "array", + "titleKey":"{hl7ApplicationName}", + "order":28, + "items": { + "$ref": "hl7Application.schema.json" + } + }, + "dcmImageWriter": { + "title": "Image Writers", + "description": "Specifies Java Image IO Image Writers with Write Parameters used for compressing DICOM images", + "type": "array", + "titleKey":"{dicomTransferSyntax}", + "order":29, + "items": { + "$ref": "imageWriter.schema.json" + } + }, + "dcmImageReader": { + "title": "Image Readers", + "description": "Specifies Java Image IO Image Readers used for decompressing compressed DICOM images", + "type": "array", + "titleKey":"{dicomTransferSyntax}", + "order":30, + "items": { + "$ref": "imageReader.schema.json" + } + }, + "dcmAuditLogger": { + "title": "Audit Logger", + "description": "Audit Logger related information", + "titleKey":"{cn}", + "type": "array", + "order":31, + "items" : { + "$ref": "auditLogger.schema.json" + } + }, + "dcmAuditRecordRepository": { + "title": "Audit Record Repository", + "description": "Audit Record Repository related information", + "$ref": "auditRecordRepository.schema.json", + "order":32 + }, + "dcmArchiveDevice": { + "title": "Archive Device", + "description": "DICOM Archive Device related information", + "order":33, + "$ref": "archiveDevice.schema.json" + }, + "dcmuiConfig": { + "title": "UI Configuration", + "description": "UI Configuration", + "titleKey":"{dcmuiConfigName}", + "type": "array", + "order":34, + "items" : { + "$ref": "uiConfig.schema.json" + } + }, + "xdsAdConfig": { + "title": "XDS Administrator Configuration", + "description": "XDS Administrator Configuration", + "titleKey":"{xdsAdConfigName}", + "type": "array", + "order":35, + "items" : { + "$ref": "xdsAdministratorConfig.schema.json" + } + }, + "agfaMigrationConfig": { + "title": "AGFA Migration Configuration", + "description": "AGFA Migration Configuration", + "order":36, + "$ref": "agfaMigrationConfig.schema.json" + }, + "studyUpdaterConfig": { + "title": "Study Updater Configuration", + "description": "Study Updater Configuration", + "order":37, + "$ref": "studyUpdaterConfig.schema.json" + }, + "dicomRouter": { + "title": "DICOM Router Configuration", + "description": "DICOM Router Configuration", + "order":38, + "$ref": "dicomRouterConfig.schema.json" + }, + "pixpdqCoercionProcessor": { + "title": "PIX PDQ Coercion Processor Configuration", + "description": "PIX PDQ Coercion Processor Configuration", + "order":39, + "$ref": "pixPdqCoercionProcessor.schema.json" + }, + "restCoercionProcessor": { + "title": "REST Coercion Processor Configuration", + "description": "REST Coercion Processor Configuration", + "order":40, + "$ref": "restCoercionProcessor.schema.json" + }, + "workflowManager": { + "title": "Workflow Manager", + "description": "Workflow Manager", + "order":41, + "$ref": "workflowManagerConfig.schema.json" + }, + "mpiEmulator": { + "title": "MPI Emulator", + "description": "MPI Emulator", + "order":42, + "$ref": "mpiEmulatorConfig.schema.json" + } + } +} \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/dcmNetworkAE.schema.json b/src/main/webapp/assets/schema/es/dcmNetworkAE.schema.json new file mode 100644 index 00000000..c3ea6771 --- /dev/null +++ b/src/main/webapp/assets/schema/es/dcmNetworkAE.schema.json @@ -0,0 +1,65 @@ +{ + "title": "Network AE Extension", + "description": "dcm4che proprietary Attributes of Network AE", + "type": "object", + "properties": { + "dcmRoleSelectionNegotiationLenient": { + "title": "Role Selection Negotiation Lenient", + "description": "Indicates to disable check for required SCP/SCU role selection negotiation on sending of DIMSE-RQs. Overwrites value specified on Device level.", + "type": "boolean" + }, + "dcmAcceptedCallingAETitle": { + "title": "Accepted Calling AE Title", + "description": "Prohibit accepting associations from unlisted AE. If not present, any AE will be accepted", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmOtherAETitle": { + "title": "Other AE Title", + "description": "Additional AE Title of Network AE - will also accept Association RQs with such Called AE Title", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmNoAsyncModeCalledAETitle": { + "title": "No Async Mode Called AE Title", + "description": "Blacklist AE Title of peer Network AE as not capable to handle Asynchronous Operations Window Negotiation correctly. Suppress including corresponding User-data sub-Item in A-ASSOCIATE RQs to that Network AEs.", + "type": "array", + "format": "dcmAETitle", + "items": { + "type": "string" + } + }, + "dcmMasqueradeCallingAETitle": { + "title": "Masquerade Calling AE Title", + "description": "AE Title used for initiating network associations, masquerading the actual AE Title for this Network AE - optional prefix [] limits the masquerading to association to a particular AE Title", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmPreferredTransferSyntax": { + "title": "Preferred Transfer Syntax", + "description": "Preferred Transfer Syntax for selection of Transfer Syntax within a Presentation Context, ordered by priority. If absent, the first acceptable Transfer Syntax in the offered Presentation Context will be selected. May be overwritten by configured values for particular Transfer Capabilities of this AE.", + "type": "array", + "format": "dcmTransferSyntax", + "items": { + "type": "string" + } + }, + "hl7ApplicationName": { + "title": "HL7 Application name", + "description": "HL7 Application and Facility name (Application|Facility) associated with this AE", + "type": "string", + "format": "hl7ApplicationName" + }, + "dcmArchiveNetworkAE": { + "title": "Archive Network AE", + "description": "DICOM Archive Network AE related information", + "$ref": "archiveNetworkAE.schema.json" + } + } +} diff --git a/src/main/webapp/assets/schema/es/dcmNetworkConnection.schema.json b/src/main/webapp/assets/schema/es/dcmNetworkConnection.schema.json new file mode 100644 index 00000000..a444a759 --- /dev/null +++ b/src/main/webapp/assets/schema/es/dcmNetworkConnection.schema.json @@ -0,0 +1,220 @@ +{ + "title": "Network Connection Extension", + "description": "dcm4che proprietary Network Connection Attributes", + "type": "object", + "required": [ + "dcmProtocol", + "dcmTLSNeedClientAuth", + "dcmTLSProtocol", + "dcmTCPBacklog", + "dcmTCPCloseDelay", + "dcmTCPNoDelay", + "dcmSendPDULength", + "dcmReceivePDULength", + "dcmMaxOpsPerformed", + "dcmMaxOpsInvoked", + "dcmPackPDV", + "dcmRetrieveTimeoutTotal", + "dcmAATimeout" + ], + "properties": { + "dcmProtocol": { + "title": "Protocol", + "description": "Protocol of Network Connection.", + "type": "string", + "default": "DICOM", + "enum": [ + "DICOM", + "HL7", + "HL7_MLLP2", + "SYSLOG_TLS", + "SYSLOG_UDP", + "HTTP" + ] + }, + "dcmHTTPProxy": { + "title": "HTTP Proxy", + "description": "HTTP Proxy: [user:password@]host:port", + "type": "string" + }, + "dcmTLSNeedClientAuth": { + "title": "TLS Need Client Auth", + "description": "Indicates if TLS client authentication is required.", + "type": "boolean", + "default": true + }, + "dcmTLSProtocol": { + "title": "TLS Protocol", + "description": "The Supported TLS Protocols.", + "default": ["TLSv1.2"], + "type": "array", + "items" : { + "type": "string", + "enum": [ + "TLSv1.3", + "TLSv1.2", + "TLSv1.1", + "TLSv1", + "SSLv3" + ] + } + }, + "dcmTLSEndpointIdentificationAlgorithm": { + "title": "TLS Endpoint Identification Algorithm", + "description": "Indicates the endpoint identification or verification procedures during TLS handshaking.", + "type": "string", + "enum": [ "HTTPS", "LDAPS"] + }, + "dcmTCPBacklog": { + "title": "TCP Backlog", + "description": "Maximum queue length for incoming TCP connections.", + "type": "integer", + "default": 50, + "minimum": 1 + }, + "dcmTCPConnectTimeout": { + "title": "TCP Connect Timeout", + "description": "TCP connect timeout in ms; no timeout if absent.", + "type": "integer", + "minimum": 100 + }, + "dcmTCPCloseDelay": { + "title": "TCP Close Delay", + "description": "TCP socket close delay in ms after send of A-ASSOCIATE-RJ, A-RELEASE-RP or A-ABORT PDU.", + "type": "integer", + "default": 50, + "minimum": 0 + }, + "dcmTCPSendBufferSize": { + "title": "TCP Send Buffer Size", + "description": "TCP send buffer size; use system defaults if absent", + "type": "integer", + "minimum": 1024 + }, + "dcmTCPReceiveBufferSize": { + "title": "TCP Receive Buffer Size", + "description": "TCP receive buffer size; use system defaults if absent", + "type": "integer", + "minimum": 1024 + }, + "dcmTCPNoDelay": { + "title": "TCP No Delay", + "description": "Enable/disable TCP_NODELAY (disable/enable Nagle algorithm).", + "type": "boolean", + "default": true + }, + "dcmBindAddress": { + "title": "Bind Address", + "description": "Bind address of listening socket; use hostname of the connection if absent", + "type": "string" + }, + "dcmClientBindAddress": { + "title": "Client Bind Address", + "description": "Bind address of outgoing connections; use hostname of the connection if absent", + "type": "string" + }, + "dcmBlacklistedHostname": { + "title": "Blacklisted Hostname", + "description": "blacklisted DNS hostnames", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmSendPDULength": { + "title": "Send PDU Length", + "description": "Maximal length of emitted PDUs.", + "type": "integer", + "default": 16378, + "minimum": 1024 + }, + "dcmReceivePDULength": { + "title": "Receive PDU Length", + "description": "Maximal length of received PDUs.", + "type": "integer", + "default": 16378, + "minimum": 1024 + }, + "dcmMaxOpsPerformed": { + "title": "Max Ops Performed", + "description": "Maximal number of operations to perform asynchronously; 0 = infinite.", + "type": "integer", + "default": 1, + "minimum": 0 + }, + "dcmMaxOpsInvoked": { + "title": "Max Ops Invoked", + "description": "Maximal number of operations to invoke asynchronously; 0 = infinite.", + "type": "integer", + "default": 1, + "minimum": 0 + }, + "dcmPackPDV": { + "title": "Pack PDV", + "description": "Enable/disable packing of command and data PDVs into one P-DATA-TF PDU.", + "type": "boolean", + "default": true + }, + "dcmAARQTimeout": { + "title": "AA-RQ Timeout", + "description": "Timeout in ms for receive of A-ASSOCIATE-RQ PDU after TCP connect; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmAAACTimeout": { + "title": "AA-AC Timeout", + "description": "Timeout in ms for receive of A-ASSOCIATE-AC PDU after send of A-ASSOCIATE-RQ PDU; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmARRPTimeout": { + "title": "AR-RP Timeout", + "description": "Timeout in ms for receive of A-RELEASE-RP PDU after send of A-RELEASE-RQ PDU; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmSendTimeout": { + "title": "Send Timeout", + "description": "Timeout in ms for sending other DIMSE RQs than C-STORE RQs; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmStoreTimeout": { + "title": "Store Timeout", + "description": "Timeout in ms for sending C-STORE RQs; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmResponseTimeout": { + "title": "Response Timeout", + "description": "Timeout in ms for receive of outstanding
- DIMSE RSPs other than C-MOVE / C-GET RSPs
- responses of outgoing HL7 messages
- HTTP(S) responses
No timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmRetrieveTimeout": { + "title": "Retrieve Timeout", + "description": "Timeout in ms for receive of outstanding C-GET or C-MOVE RSPs; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmRetrieveTimeoutTotal": { + "title": "Retrieve Timeout Total", + "description": "Indicates if the timer with the specified timeout for outstanding C-GET and C-MOVE RSPs shall be restarted on receive of pending RSPs (=false) or not (=true).", + "type": "boolean", + "default": false + }, + "dcmIdleTimeout": { + "title": "Idle Timeout", + "description": "Indicates aborting of idle Associations after specified timeout in ms; no timeout if absent", + "type": "integer", + "minimum": 100 + }, + "dcmAATimeout": { + "title": "A-ABORT Timeout", + "description": "Timeout in ms for waiting for finishing sending any DIMSE before sending an A-ABORT PDU, triggered by the application or by expiration of a configured other timeout of this Connection. If the timeout expires, the TCP connection will be closed without sending the A-ABORT.", + "type": "integer", + "minimum": 0, + "default": 1000 + } + } +} diff --git a/src/main/webapp/assets/schema/es/dcmTransferCapability.schema.json b/src/main/webapp/assets/schema/es/dcmTransferCapability.schema.json new file mode 100644 index 00000000..be9ac50b --- /dev/null +++ b/src/main/webapp/assets/schema/es/dcmTransferCapability.schema.json @@ -0,0 +1,78 @@ +{ + "title": "Transfer Capability Extension", + "description": "dcm4che proprietary Transfer Capability Attributes", + "type": "object", + "required": [ + "dcmRelationalQueries", + "dcmCombinedDateTimeMatching", + "dcmFuzzySemanticMatching", + "dcmTimezoneQueryAdjustment" + ], + "properties": { + "dcmPreferredTransferSyntax": { + "title": "PreferredTransferSyntax", + "description": "Preferred Transfer Syntax for selection of Transfer Syntax within a Presentation Context, ordered by priority. Overwrites values specified on AE level.", + "type": "array", + "format": "dcmTransferSyntax", + "items": { + "type": "string" + } + }, + "dcmRelationalQueries": { + "title": "Relational Queries", + "description": "Enable/disable relational queries.", + "type": "boolean", + "default": false + }, + "dcmCombinedDateTimeMatching": { + "title": "Combined Date Time Matching", + "description": "Enable/disable combined date time matching.", + "type": "boolean", + "default": false + }, + "dcmFuzzySemanticMatching": { + "title": "Fuzzy Semantic Matching", + "description": "Enable/disable fuzzy semantic matching of person names.", + "type": "boolean", + "default": false + }, + "dcmTimezoneQueryAdjustment": { + "title": "Timezone Query Adjustment", + "description": "Enable/disable timezone query adjustment", + "type": "boolean", + "default": false + }, + "dcmStorageConformance": { + "title": "Storage Conformance", + "description": "Indicates level of Conformance of a Storage SCP", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "dcmDigitalSignatureSupport": { + "title": "Digital Signature Support", + "description": "Indicates level of Digital Signature Support of a Storage SCP", + "type": "integer", + "enum": [ + 0, + 1, + 2, + 3 + ] + }, + "dcmDataElementCoercion": { + "title": "Data Element Coercion", + "description": "Indicates coercion of Data Elements of a Storage SCP", + "type": "integer", + "enum": [ + 0, + 1, + 2 + ] + } + } +} diff --git a/src/main/webapp/assets/schema/es/device.schema.json b/src/main/webapp/assets/schema/es/device.schema.json new file mode 100644 index 00000000..80172283 --- /dev/null +++ b/src/main/webapp/assets/schema/es/device.schema.json @@ -0,0 +1,292 @@ +{ + "title": "Device", + "description": "DICOM Device related information", + "type": "object", + "required": ["dicomDeviceName", "dicomInstalled"], + "groups": { + "Manufacturer Information": [ + "dicomManufacturer", + "dicomManufacturerModelName", + "dicomSoftwareVersion", + "dicomDeviceSerialNumber" + ], + "Organisation": [ + "dicomStationName", + "dicomInstitutionName", + "dicomInstitutionCode", + "dicomInstitutionAddress", + "dicomInstitutionDepartmentName" + ], + "Issuers": [ + "dicomIssuerOfPatientID", + "dicomIssuerOfAccessionNumber", + "dicomOrderPlacerIdentifier", + "dicomOrderFillerIdentifier", + "dicomIssuerOfAdmissionID", + "dicomIssuerOfServiceEpisodeID", + "dicomIssuerOfContainerIdentifier", + "dicomIssuerOfSpecimenIdentifier" + ], + "Certificates": [ + "dicomAuthorizedNodeCertificateReference", + "dicomThisNodeCertificateReference" + ] + }, + "properties": { + "dicomDeviceName": { + "title": "Device Name", + "description": "A unique name for this device", + "type": "string", + "order":1 + }, + "dicomDescription": { + "title": "Device Description", + "description": "Unconstrained text description of the device", + "type": "string", + "order":2 + }, + "dicomVendorData":{ + "title": "Vendor Device Data", + "description": "Device specific vendor configuration information", + "type": "boolean", + "order":2 + }, + "dicomDeviceUID": { + "title": "Device UID", + "description": "Unique identifier of the device", + "type": "string", + "pattern": "^[0-2]((\\.0)|(\\.[1-9][0-9]*))*$", + "order":3 + }, + "dicomManufacturer": { + "title": "Manufacturer", + "description": "Manufacturer of the device. Default value of Manufacturer (0008,0070) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device.", + "type": "string", + "order":4 + }, + "dicomManufacturerModelName": { + "title": "Manufacturer Model Name", + "description": "Manufacturer Model Name of the device. Default value of Manufacturer Model Name (0008,1090) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device.", + "type": "string", + "order":5 + }, + "dicomSoftwareVersion": { + "title": "Software Version", + "description": "Software Versions of the device. Default values of Software Versions (0018,1020) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device.", + "type": "array", + "order":6, + "items": { + "type": "string" + } + }, + "dicomStationName": { + "title": "Station Name", + "description": "Station Name of the device. Default value of Station Name (0008,1010) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device.", + "type": "string", + "order":7 + }, + "dicomDeviceSerialNumber": { + "title": "Device Serial Number", + "description": "Device Serial Number of the device. Default value of Device Serial Number (0018,1000) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device.", + "type": "string", + "order":8 + }, + "dicomPrimaryDeviceType": { + "title": "Primary Device Type", + "description": "Represents the kind of device and is most applicable for acquisition modalities", + "type": "array", + "order":9, + "items" : { + "type": "string", + "enum":[ + "ARCHIVE", + "COMP", + "CAD", + "DSS", + "FILMD", + "M3D", + "MCD", + "PRINT", + "CAPTURE", + "LOG", + "RT", + "WSD", + "AR", + "BMD", + "BDUS", + "EPS", + "CR", + "CT", + "DX", + "ECG", + "ES", + "XC", + "GM", + "HD", + "IO", + "IVOCT", + "IVUS", + "KER", + "LEN", + "MR", + "MG", + "NM", + "OAM", + "OCT", + "OPM", + "OP", + "OPR", + "OPT", + "OPTBSV", + "OPTENF", + "OPV", + "OSS", + "PX", + "PT", + "RF", + "RG", + "SM", + "SRF", + "US", + "VA", + "XA" + ] + } + }, + "dicomInstitutionName": { + "title": "Institution Name", + "description": "Institution Name of the device. Default value of Institution Name (0008,0080) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device. Only the first configured value gets used by supplementing coercion, as the field is single-valued according to the General Equipment Module Attributes. Multi-valued possibility for this field here is to fulfill the requirement in DICOM Part 15 - Security and System Management Profiles - LDAP Schema For Objects and Attributes.", + "type": "array", + "order":10, + "items": { + "type": "string" + } + }, + "dicomInstitutionCode": { + "title": "Institution Code", + "description": "Institution Code of the device. Default value of Institution Code Sequence (0008,0082) in format (CV, CSD, \"CM\") on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device. Only the first configured value gets used by supplementing coercion, as the field is single-valued according to the General Equipment Module Attributes. Multi-valued possibility for this field here is to fulfill the requirement in DICOM Part 15 - Security and System Management Profiles - LDAP Schema For Objects and Attributes.", + "type": "array", + "order":11, + "items": { + "type": "string" + } + }, + "dicomInstitutionAddress": { + "title": "Institution Address", + "description": "Institution Address of the device. Default value of Institution Address (0008,0081) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device. Only the first configured value gets used by supplementing coercion, as the field is single-valued according to the General Equipment Module Attributes. Multi-valued possibility for this field here is to fulfill the requirement in DICOM Part 15 - Security and System Management Profiles - LDAP Schema For Objects and Attributes.", + "type": "array", + "order":12, + "items": { + "type": "string" + } + }, + "dicomInstitutionDepartmentName": { + "title": "Institution Department Name", + "description": "Institutional Department Name of the device. Default value of Institutional Department Name (0008,1040) on invocation by archive attribute coercions on an archive device to supplement this attribute from this device when it is missing in the SOP Instances created by the invoking archive device. Only the first configured value gets used by supplementing coercion, as the field is single-valued according to the General Equipment Module Attributes. Multi-valued possibility for this field here is to fulfill the requirement in DICOM Part 15 - Security and System Management Profiles - LDAP Schema For Objects and Attributes.", + "type": "array", + "order":13, + "items": { + "type": "string" + } + }, + "dicomIssuerOfPatientID": { + "title": "Issuer of Patient ID", + "description": "Default value for the Issuer of Patient ID (0010,0021), and optionally also default values for the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Patient ID Qualifiers Sequence (0010,0024) for SOP Instances created by this device when Patient ID (0010,0020) is missing; may be overridden with values received in a worklist or other source. It is also used on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Patient ID (0010,0020) is missing :
- on receive and creation of SOP instances by the invoking archive device
- on receive and creation of MPPS by the invoking archive device
- on DICOM (MWl) C-FIND requests from external systems to invoking archive device
- on DICOM (MWl) C-FIND requests from invoking archive device to external systems
- on DICOM (MWl) C-FIND responses from external systems to invoking archive device.
Format: {Issuer of Patient ID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":14 + }, + "dicomIssuerOfAccessionNumber": { + "title": "Issuer of Accession Number", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Accession Number Sequence (0008,0051) for Modality Worklist items created or updated by this device when Accession Number (0008,0050) is missing; may be overridden with values received in a worklist or other source. It is also used on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Accession Number (0008,0050) is missing :
- within Request Attributes Sequence (0040,0275) item and root level attributes on receive and creation of SOP instances by the invoking archive device
- within Scheduled Step Attributes Sequence (0040,0270) item and root level attributes on receive and creation of MPPS by the invoking archive device
- within Request Attributes Sequence (0040,0275) item and root level attributes on DICOM (MWl) C-FIND requests from external systems to invoking archive device
- within Request Attributes Sequence (0040,0275) item and root level attributes on DICOM (MWl) C-FIND requests from invoking archive device to external systems
- within Request Attributes Sequence (0040,0275) item and root level attributes on DICOM (MWl) C-FIND responses from external systems to invoking archive device.
Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":15 + }, + "dicomOrderPlacerIdentifier": { + "title": "Order Placer Identifier", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Order Placer Identifier Sequence (0040,0026) on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Placer Order Number / Imaging Service Request (0040,2016) is missing :
- within Request Attributes Sequence (0040,0275) item on receive and creation of SOP instances by the invoking archive device
- within Scheduled Step Attributes Sequence (0040,0270) on receive and creation of MPPS by the invoking archive device
- within Request Attributes Sequence (0040,0275) item on DICOM C-FIND / root level attributes on DICOM MWL C-FIND requests respectively, from external systems to invoking archive device
- within Request Attributes Sequence (0040,0275) item on DICOM C-FIND / root level attributes on DICOM MWL C-FIND requests respectively, from invoking archive device to external systems
- within Request Attributes Sequence (0040,0275) item on DICOM C-FIND / root level attributes on DICOM MWL C-FIND responses respectively, from external systems to invoking archive device.
May be overridden by the values received in a worklist or other source. Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":16 + }, + "dicomOrderFillerIdentifier": { + "title": "Order Filler Identifier", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Order Filler Identifier Sequence (0040,0027) on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Filler Order Number / Imaging Service Request (0040,2017) is missing :
- within Request Attributes Sequence (0040,0275) item on receive and creation of SOP instances by the invoking archive device
- within Scheduled Step Attributes Sequence (0040,0270) on receive and creation of MPPS by the invoking archive device
- within Request Attributes Sequence (0040,0275) item on DICOM C-FIND / root level attributes on DICOM MWL C-FIND requests respectively, from external systems to invoking archive device
- within Request Attributes Sequence (0040,0275) item on DICOM C-FIND / root level attributes on DICOM MWL C-FIND requests respectively, from invoking archive device to external systems
- within Request Attributes Sequence (0040,0275) item on DICOM C-FIND / root level attributes on DICOM MWL C-FIND responses respectively, from external systems to invoking archive device.
May be overridden by the values received in a worklist or other source. Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":17 + }, + "dicomIssuerOfAdmissionID": { + "title": "Issuer of Admission ID", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Admission ID Sequence (0038,0014) on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Admission ID (0038,0010) is missing :
- on receive and creation of SOP instances by the invoking archive device
- on receive and creation of MPPS by the invoking archive device
- on DICOM (MWl) C-FIND requests from external systems to invoking archive device
- on DICOM (MWl) C-FIND requests from invoking archive device to external systems
- on DICOM (MWl) C-FIND responses from external systems to invoking archive device.
May be overridden by the values received in a worklist or other source. Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":18 + }, + "dicomIssuerOfServiceEpisodeID": { + "title": "Issuer of Service Episode ID", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Service Episode ID Sequence (0038,0064) on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Service Episode ID (0038,0060) is missing :
- on receive and creation of SOP instances by the invoking archive device
- on receive and creation of MPPS by the invoking archive device
- on DICOM (MWl) C-FIND requests from external systems to invoking archive device
- on DICOM (MWl) C-FIND requests from invoking archive device to external systems
- on DICOM (MWl) C-FIND responses from external systems to invoking archive device.
May be overridden by the values received in a worklist or other source. Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":19 + }, + "dicomIssuerOfContainerIdentifier": { + "title": "Issuer of Container Identifier", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Container Identifier Sequence (0040,0513) on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Container Identifier (0040,0512) is missing :
- on receive and creation of SOP instances by the invoking archive device
- on receive and creation of MPPS by the invoking archive device
- on DICOM (MWl) C-FIND requests from external systems to invoking archive device
- on DICOM (MWl) C-FIND requests from invoking archive device to external systems
- on DICOM (MWl) C-FIND responses from external systems to invoking archive device.
May be overridden by the values received in a worklist or other source. Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":20 + }, + "dicomIssuerOfSpecimenIdentifier": { + "title": "Issuer of Specimen Identifier", + "description": "Default values for the Local Namespace Entity ID (0040,0031), the Universal Entity ID (0040,0032) and the Universal Entity ID Type (0040,0033) of the Item of the Issuer of Specimen Identifier Sequence (0040,0562) on invocation by archive attribute coercions on an archive device to supplement from this device when assigning authority of Specimen Identifier (0040,0551) is missing :
- on receive and creation of SOP instances by the invoking archive device
- on receive and creation of MPPS by the invoking archive device
- on DICOM (MWl) C-FIND requests from external systems to invoking archive device
- on DICOM (MWl) C-FIND requests from invoking archive device to external systems
- on DICOM (MWl) C-FIND responses from external systems to invoking archive device.
May be overridden by the values received in a worklist or other source. Format: {LocalNamespaceEntityID}[&{UniversalEntityID}&{UniversalEntityIDType}]", + "type": "string", + "order":21 + }, + "dicomAuthorizedNodeCertificateReference": { + "title": "Authorized Node Certificate Reference", + "description": "The DNs for the certificates of nodes that are authorized to connect to this device", + "type": "array", + "order":22, + "items": { + "type": "string" + } + }, + "dicomThisNodeCertificateReference": { + "title": "This Node Certificate Reference", + "description": "The DNs of the public certificate(s) for this node", + "type": "array", + "order":23, + "items": { + "type": "string" + } + }, + "dicomInstalled": { + "title": "installed", + "description": "Boolean to indicate whether this device is presently installed on the network", + "type": "boolean", + "order":24, + "default": true + }, + "dicomNetworkConnection": { + "title": "Network Connections", + "description": "network connections of the device", + "type": "array", + "order":25, + "titleKey":"{dicomHostname}:{dicomPort} {cn}", + "items": { + "$ref": "networkConnection.schema.json" + } + }, + "dicomNetworkAE": { + "title": "Network AEs", + "description": "Application entity provided by the device", + "type": "array", + "titleKey":"{dicomAETitle}", + "order":26, + "items": { + "$ref": "networkAE.schema.json" + } + }, + "dcmDevice": { + "title": "Device Extension", + "description": "dcm4che proprietary Device Attributes", + "$ref": "dcmDevice.schema.json", + "order":27 + } + } +} diff --git a/src/main/webapp/assets/schema/es/dicomRouterConfig.schema.json b/src/main/webapp/assets/schema/es/dicomRouterConfig.schema.json new file mode 100644 index 00000000..fe637c40 --- /dev/null +++ b/src/main/webapp/assets/schema/es/dicomRouterConfig.schema.json @@ -0,0 +1,63 @@ +{ + "title": "DICOM Router Configuration", + "description": "DICOM Router Configuration", + "type": "object", + "required": [ + "dicomRouterRoutingScriptsDirectory", + "dicomRouterDcm4cheeAET", + "dicomRouterDcm4cheeURL", + "dicomRouterKeycloakURL", + "dicomRouterKeycloakClient", + "dicomRouterKeycloakSecret" + ], + "properties": { + "dicomRouterRoutingScriptsDirectory": { + "title": "Routing Scripts Directory", + "description": "Base Directory for Routing Scripts as seen from the container", + "type": "string" + }, + "dicomRouterDcm4cheeAET": { + "title": "DCM4CHEE AET", + "description": "DCM4CHEE AET for Router Transactions - this AET is used to instruct DCM4CHEE to perform the necessary Tasks (c-find,c-move,...)", + "type": "string" + }, + "dicomRouterDcm4cheeURL": { + "title": "DCM4CHEE URL", + "description": "DCM4CHEE URL for Router Transactions (e.g. https://dcm4chee.server:8443/dcm4chee-arc)", + "type": "string" + }, + "dicomRouterKeycloakURL": { + "title": "Keycloak URL", + "description": "Keycloak URL for Authentication (e.g. https://keycloak.server:8843/realms/dcm4che/protocol/openid-connect/token)", + "type": "string" + }, + "dicomRouterKeycloakClient": { + "title": "Keycloak Client", + "description": "Keyclock Client for Authentication", + "type": "string" + }, + "dicomRouterKeycloakSecret": { + "title": "Keycloak Secret", + "description": "Keycloak Secret for Authentication", + "type": "string" + }, + "dicomRouterModalityImageSizeMap": { + "title": "Modality Image Size Map", + "description": "Standard Mapping for estimating Study Sizes in kb (f.e. MR=250 will map MR with 250kb for each image) ", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomRouterRouteConfiguration":{ + "title": "Route Configurations", + "description": "Route Configurations", + "titleKey":"{dicomRouterRouteConfiguration}", + "type": "array", + "items" : { + "$ref": "dicomRouterRouteConfiguration.schema.json" + } + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/dicomRouterRouteConfiguration.schema.json b/src/main/webapp/assets/schema/es/dicomRouterRouteConfiguration.schema.json new file mode 100644 index 00000000..3867c7c3 --- /dev/null +++ b/src/main/webapp/assets/schema/es/dicomRouterRouteConfiguration.schema.json @@ -0,0 +1,188 @@ +{ + "title": "Route Configuration", + "description": "Route Configuration", + "type": "object", + "required": [ + "dicomRouterRouteConfiguration", + "dicomRouterRouteConfigurationDisplayName", + "dicomRouterRouteConfigurationQueueName", + "dicomRouterRouteConfigurationSourceFindAET", + "dicomRouterRouteConfigurationSourceRetrieveAET", + "dicomRouterRouteConfigurationSourceURL", + "dicomRouterRouteConfigurationRouteType", + "dicomRouterRouteConfigurationWorkerThreads", + "dicomRouterRouteConfigurationDestinationAETs", + "dicomRouterRouteConfigurationAET2AssigningAuthority" + ], + "properties": { + "dicomRouterRouteConfiguration": { + "title": "Route Configuration Name (internal)", + "description": "Route Configuration Name (internal)", + "type": "string" + }, + "dicomRouterRouteConfigurationDisplayName": { + "title": "Route Configuration Name (UI)", + "description": "Route Configuration Name (UI)", + "type": "string" + }, + "dicomRouterRouteConfigurationQueueName": { + "title": "Queue Name", + "description": "DCM4CHEE Queue Name used for Jobs", + "type": "string" + }, + "dicomRouterRouteConfigurationSourceFindAET": { + "title": "Source Find AET", + "description": "AET to Query when retrieving Input Data (HL7,IAN,...) to search for up2date study information (only used if Input Dataset contains StudyInstanceUID)", + "type": "string" + }, + "dicomRouterRouteConfigurationSourceRetrieveAET": { + "title": "Source Retrieve AET", + "description": "AET to Retrieve Source Study from (only used if Input Dataset contains StudyInstanceUID)", + "type": "string" + }, + "dicomRouterRouteConfigurationSourceURL": { + "title": "Source URL", + "description": "Listening Source URL (e.g. ORM: orm-route1://0.0.0.0:4713?audit=false, ORU: oru-route1://0.0.0.0:4711?audit=false, IAN: dicomDevice:dicom?sopClasses=1.2.840.10008.5.1.4.33,REST: rest:dummy)", + "type": "string" + }, + "dicomRouterRouteConfigurationRouteType": { + "title": "Route Type", + "description": "Route Type", + "default": "ORU", + "type": "string", + "enum": [ + "IAN", + "ORU", + "ORM", + "REST" + ] + }, + "dicomRouterRouteConfigurationWorkerThreads": { + "title": "Worker Threads", + "description": "Number of Worker Threads that will work on queued Routing Orders", + "type": "integer", + "default": 2, + "minimum": 1 + }, + "dicomRouterRouteConfigurationNextVerificationDelay": { + "title": "Next Verification Delay", + "description": "Number of Minutes that should be added to Next Verificaton Date to synchronize the Routing Tasks", + "type": "integer", + "default": 1, + "minimum": 1 + }, + "dicomRouterRouteConfigurationDestinationAETs": { + "title": "Destination AETs", + "description": "List of Destination AETs where studies should be sent to", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomRouterRouteConfigurationAET2AssigningAuthority": { + "title": "AET - Assigning Authority Mapping", + "description": "List of AETs that should be searched for corresponding studies in the form AET=NamespaceID&UniversalID&UniversalIDType (e.g. MED1=IHERED&1.3.6.1.4.1.21367.13.20.1000&ISO)", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomRouterRouteConfigurationAET2ForwardCronExpression": { + "title": "AET - Forward Cron Expression", + "description": "AET - Forward Cron Expression in the Form of AET=Cron Expression (e.g MED4=0 * 10-17 ? * MON-FRI)", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomRouterRouteConfigurationBodyPartMap": { + "title": "Body Part Mapping", + "description": "Map Body Parts to make them compareable (e.g. HEAD=HEAD,SKULL,HEADNECK)", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomRouterRouteConfigurationBodyPartScore": { + "title": "Body Part Score", + "description": "Score that should be used if a body part was matched translated via the configured Body Part Map - 0 will deactivate the body part matching", + "type": "integer", + "default": 0 + }, + "dicomRouterRouteConfigurationMaxRetrieveTasks": { + "title": "Maximum Retrieve Tasks", + "description": "The maximum number of Retrieve Tasks that should be created based on the found datasets ordered by score - 0 will deactivate the feature", + "type": "integer", + "default": 0 + }, + "dicomRouterRouteConfigurationMinScore": { + "title": "Minimum Score", + "description": "The minimum score a study needs to reach to be considered for Routing - 0 will deactivate the feature", + "type": "integer", + "default": 0 + }, + "dicomRouterRouteConfigurationCronExpression": { + "title": "Cron Expression", + "description": "Cron Expression to determine the next available Schedule Time for the Routing Order to be processed", + "type": "string" + }, + "dicomRouterRouteConfigurationPurgingDelayCanceledTasks": { + "title": "Purging Delay Canceled Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which canceled tasks are purged. If absent, there is no deletion for that particular route.", + "type": "string", + "format": "dcmDuration" + }, + "dicomRouterRouteConfigurationPurgingDelayCompletedTasks": { + "title": "Purging Delay Completed Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which completed tasks are purged. If absent, there is no deletion for that particular route.", + "type": "string", + "format": "dcmDuration" + }, + "dicomRouterRouteConfigurationPurgingDelayFailedTasks": { + "title": "Purging Delay Failed Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which failed tasks are purged. If absent, there is no deletion for that particular route.", + "type": "string", + "format": "dcmDuration" + }, + "dicomRouterRouteConfigurationPurgingDelayWarningTasks": { + "title": "Purging Delay Warning Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which warning tasks are purged. If absent, there is no deletion for that particular route.", + "type": "string", + "format": "dcmDuration" + }, + "dicomRouterRouteConfigurationHL7ConfigurationReceivingApplication": { + "title": "HL7 Configuration Receiving Application", + "description": "HL7 Configuration Receiving Application", + "type": "string" + }, + "dicomRouterRouteConfigurationHL7ConfigurationReceivingFacility": { + "title": "HL7 Configuration Receiving Facility", + "description": "HL7 Configuration Receiving Facility", + "type": "string" + }, + "dicomRouterRouteConfigurationHL7ConfigurationSendingApplication": { + "title": "HL7 Configuration Sending Application", + "description": "HL7 Configuration Sending Application", + "type": "string" + }, + "dicomRouterRouteConfigurationHL7ConfigurationSendingFacility": { + "title": "HL7 Configuration Sending Facility", + "description": "HL7 Configuration Sending Facility", + "type": "string" + }, + "dicomRouterRouteConfigurationHL7ConfigurationURIPrefix": { + "title": "HL7 Configuration URI Prefix", + "description": "URI Prefix to setup the HL7 Listener (e.g orm-route1)", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfiguration":{ + "title": "PIX Configurations", + "description": "PIX Configurations", + "titleKey":"{dicomRouterRouteConfigurationPixConfiguration}", + "type": "array", + "items" : { + "$ref": "dicomRouterRouteConfigurationPixConfiguration.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/dicomRouterRouteConfigurationPixConfiguration.schema.json b/src/main/webapp/assets/schema/es/dicomRouterRouteConfigurationPixConfiguration.schema.json new file mode 100644 index 00000000..517c67cb --- /dev/null +++ b/src/main/webapp/assets/schema/es/dicomRouterRouteConfigurationPixConfiguration.schema.json @@ -0,0 +1,69 @@ +{ + "title": "PIX Configuration", + "description": "PIX Configuration", + "type": "object", + "required": [ + "dicomRouterRouteConfigurationPixConfiguration", + "dicomRouterRouteConfigurationPixConfigurationDisplayName", + "dicomRouterRouteConfigurationPixConfigurationDomainsReturned", + "dicomRouterRouteConfigurationPixConfigurationIssuer2AssigningAuthority", + "dicomRouterRouteConfigurationPixConfigurationITI9EndpointURI", + "dicomRouterRouteConfigurationPixConfigurationReceivingApplication", + "dicomRouterRouteConfigurationPixConfigurationReceivingFacility", + "dicomRouterRouteConfigurationPixConfigurationSendingApplication", + "dicomRouterRouteConfigurationPixConfigurationSendingFacility" + ], + "properties": { + "dicomRouterRouteConfigurationPixConfiguration": { + "title": "PIX Configuration Name (internal)", + "description": "PIX Configuration Name (internal)", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationDisplayName": { + "title": "PIX Configuration Name (UI)", + "description": "PIX Configuration Name (UI)", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationDomainsReturned": { + "title": "Domains Return", + "description": "List of Domains to return in the PIX Query in the form NamespaceID&UniversalID&UniversalIDType (e.g FOREIGN&5.6.7.8&ISO)", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomRouterRouteConfigurationPixConfigurationITI9EndpointURI": { + "title": "ITI-9 Endpoint URI", + "description": "ITI-9 URI - f.e pix-iti9://localhost:3600?audit=false", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationReceivingApplication": { + "title": "Receiving Application", + "description": "Receiving Application", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationReceivingFacility": { + "title": "Receiving Facility", + "description": "Receiving Facility", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationSendingApplication": { + "title": "Sending Application", + "description": "Sending Application", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationSendingFacility": { + "title": "Sending Facility", + "description": "Sending Facility", + "type": "string" + }, + "dicomRouterRouteConfigurationPixConfigurationIssuer2AssigningAuthority": { + "title": "Issuer - Assigning Authority Mapping", + "description": "Issuer - Assigning Authority Mapping in the form AET=NamespaceID&UniversalID&UniversalIDType (e.g FOREIGN=FOREIGN&5.6.7.8&ISO)", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/exportPriorsRule.schema.json b/src/main/webapp/assets/schema/es/exportPriorsRule.schema.json new file mode 100644 index 00000000..f351e2d5 --- /dev/null +++ b/src/main/webapp/assets/schema/es/exportPriorsRule.schema.json @@ -0,0 +1,66 @@ +{ + "title": "Export Priors Rule", + "description": "Export Priors Rule", + "type": "object", + "required": [ + "cn", + "dcmExporterID", + "dcmDuration", + "dcmExportReoccurredInstances" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Export Priors Rule", + "type": "string" + }, + "dcmExporterID": { + "title": "Exporter ID", + "description": "Exporter ID", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmExporterID" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmSchedule": { + "title": "Time Conditions", + "description": "Apply this rule only within specified time ranges.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmEntitySelector": { + "title": "Entity Selector", + "description": "Specifies matching keys used to select prior Studies to export. Format: {key}={value}[&{key}={value}]..., with {key} = 'priors' | 'StudyAge' | {attributeID}. {value} in the format '$'{attributeID} are replaced by the value of the specified attribute from the received object which triggered the export. If no Entity Selector is specified, all prior Studies for the Patient will be exported. Example: 'priors=2&StudyAge=-5Y&ModalitiesInStudy=CT' => select at most 2 prior Studies not older than 5 years containing at least one CT Series.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmEntitySelector" + }, + "dcmDuration": { + "title": "Suppress Duplicate Export Interval", + "description": "Suppress Export of Studies already exported not earlier than the specified interval to avoid duplicate exports.", + "type": "string", + "format": "dcmDuration" + }, + "dcmExportReoccurredInstances": { + "title": "Export Reoccurred Instances", + "description": "Indicates if the entity shall be exported on subsequent occurrence of instances", + "type": "string", + "default": "REPLACE", + "enum": [ + "NEVER", + "ALWAYS", + "REPLACE" + ] + } + } +} diff --git a/src/main/webapp/assets/schema/es/exportRule.schema.json b/src/main/webapp/assets/schema/es/exportRule.schema.json new file mode 100644 index 00000000..70976f85 --- /dev/null +++ b/src/main/webapp/assets/schema/es/exportRule.schema.json @@ -0,0 +1,82 @@ +{ + "title": "Export Rule", + "description": "Export Rule", + "type": "object", + "required": [ + "cn", + "dcmEntity", + "dcmExporterID", + "dcmExportPreviousEntity", + "dcmExportReoccurredInstances" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Export Rule", + "type": "string" + }, + "dcmEntity": { + "title": "Export Entity", + "description": "Entity of Export", + "type": "string", + "enum": [ + "Study", + "Series", + "Instance" + ] + }, + "dcmExporterID": { + "title": "Exporter ID", + "description": "Exporter ID", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmExporterID" + }, + "dicomDeviceName": { + "title": "Exporter Device Name", + "description": "Specifies Device on which the Export Task(s) shall be scheduled. If not specified, the Export Task(s) is/are scheduled on the Device which received the objects. Attention: the specified Device must (also) have Exporters with the specified IDs configured!", + "type": "string", + "format": "dicomDeviceName" + }, + "dcmExportPreviousEntity": { + "title": "Export Previous Entity", + "description": "Specifies if the previous Entity of a replaced Instance shall be also exported.", + "type": "boolean", + "default": false + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmSchedule": { + "title": "Time Conditions", + "description": "Apply this rule only within specified time ranges.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmDuration": { + "title": "Export Delay", + "description": "Delay export of entities to accumulate multiple trigger events to one export task.", + "type": "string", + "format": "dcmDuration" + }, + "dcmExportReoccurredInstances": { + "title": "Export Reoccurred Instances", + "description": "Indicates if the entity shall be exported on subsequent occurrence of instances", + "type": "string", + "default": "REPLACE", + "enum": [ + "NEVER", + "ALWAYS", + "REPLACE" + ] + } + } +} diff --git a/src/main/webapp/assets/schema/es/exporter.schema.json b/src/main/webapp/assets/schema/es/exporter.schema.json new file mode 100644 index 00000000..49b036d1 --- /dev/null +++ b/src/main/webapp/assets/schema/es/exporter.schema.json @@ -0,0 +1,125 @@ +{ + "title": "Exporter Descriptor", + "description": "Exporter Descriptor", + "type": "object", + "required": [ + "dcmExporterID", + "dcmURI", + "dcmQueueName", + "dcmExportPriority", + "dcmInstanceAvailability", + "dicomAETitle", + "dcmExportAsSourceAE", + "dcmRejectForDataRetentionExpiry" + ], + "properties": { + "dcmExporterID": { + "title": "Exporter ID", + "description": "Exporter ID", + "type": "string", + "use": [ + "$.dcmDevice.dcmArchiveDevice.dcmExportPriorsRule[*].dcmExporterID[*]", + "$.dcmDevice.dcmArchiveDevice.dcmExportRule[*].dcmExporterID[*]", + "$.dcmDevice.dcmArchiveDevice.hl7ExportRule[*].dcmExporterID[*]", + "$.dcmDevice.dcmArchiveDevice.dcmStudyRetentionPolicy[*].dcmExporterID", + "$.dcmDevice.dcmArchiveDevice.hl7StudyRetentionPolicy[*].dcmExporterID", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmExportPriorsRule[*].dcmExporterID[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmExportRule[*].dcmExporterID[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmStudyRetentionPolicy[*].dcmExporterID", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.hl7ExportRule[*].dcmExporterID[*]", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.hl7StudyRetentionPolicy[*].dcmExporterID", + "$.dcmDevice.dcmuiConfig[*].dcmuiDashboardConfig[*].dcmuiExportName[*]" + ] + }, + "dcmURI": { + "title": "Exporter URI", + "description": "RFC2079: Uniform Resource Identifier. Refer various Exporter URI that can be configured based on the exporter type.", + "type": "string" + }, + "dcmQueueName": { + "title": "Queue Name", + "description": "Task Queue Name", + "type": "string", + "format":"dcmQueueName" + }, + "dicomDescription": { + "title": "Exporter Description", + "description": "Unconstrained text description of the exporter", + "type": "string" + }, + "dicomAETitle": { + "title": "Archive Application Entity (AE) title", + "description": "Archive Application Entity (AE) title", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmExportAsSourceAE": { + "title": "Export as Source Application Entity (AE)", + "description": "Mask the Archive Application Entity (AE) title by the title of the Application Entity (AE) from which a Series was received on establishing the Association to the Destination Application Entity (AE).", + "type": "boolean", + "default": false + }, + "dcmDeleteStudyFromStorageID": { + "title": "Delete Study From Storage ID", + "description": "ID of Storage System from which the objects of the exported Study shall be deleted. Only effective for Export Tasks on Study level.", + "type": "string", + "format": "dcmStorageID" + }, + "dcmRejectForDataRetentionExpiry": { + "title": "Reject Entity for Data Retention Expiry", + "description": "Reject entity for Data Retention Expiry after export on completion of Export Task.", + "type": "boolean", + "default": false + }, + "dcmStgCmtSCP": { + "title": "Storage Commitment SCP AE Title", + "description": "AE Title of external Storage Commitment SCP used to verify export to another archive.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmIanDestination": { + "title": "Ian Destination", + "description": "Destination to send IAN N-CREATE RQ", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmRetrieveAET": { + "title": "Retrieve AE Title", + "description": "AE Title associated with Network AE", + "type": "array", + "items": { "type": "string" }, + "format": "dcmArchiveAETitle" + }, + "dcmRetrieveLocationUID": { + "title": "Retrieve Location UID", + "description": "Retrieve Location UID.", + "type": "string", + "pattern": "^[0-2]((\\.0)|(\\.[1-9][0-9]*))*$" + }, + "dcmInstanceAvailability": { + "title": "Instance Availability", + "description": "Instance Availability.", + "type": "string", + "default": "ONLINE", + "enum": [ + "ONLINE", + "NEARLINE", + "OFFLINE" + ] + }, + "dcmSchedule": { + "title": "Export Schedule", + "description": "Delay export to specified time periods. If no Export Schedule is specified, queue the export task for processing immediately. Format: 'hour=[0-23] dayOfWeek=[0-6]' (0=Sunday)", + "type": "array", + "items": { "type": "string" }, + "format": "dcmSchedule" + }, + "dcmProperty": { + "title": "Exporter Property", + "description": "Specify exporter properties in format {name}={value}. Refer various Exporter Properties that can be configured based on the exporter type.", + "type": "array", + "items": { "type": "string" } + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7Application.schema.json b/src/main/webapp/assets/schema/es/hl7Application.schema.json new file mode 100644 index 00000000..4cf30ee0 --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7Application.schema.json @@ -0,0 +1,116 @@ +{ + "title": "HL7 Application", + "description": "HL7 Application information", + "type": "object", + "required": [ + "hl7ApplicationName", + "dicomNetworkConnectionReference", + "hl7DefaultCharacterSet", + "hl7SendingCharacterSet" + ], + "properties": { + "hl7ApplicationName": { + "title": "HL7 Application name", + "description": "HL7 Application and Facility name (Application|Facility)", + "type": "string", + "use": [ + "$.dcmDevice.dcmArchiveDevice.hl7ADTSendingApplication", + "$.dcmDevice.dcmArchiveDevice.hl7ADTReceivingApplication[*]", + "$.dcmDevice.dcmArchiveDevice.hl7PSUSendingApplication", + "$.dcmDevice.dcmArchiveDevice.hl7PSUReceivingApplication[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.hl7PSUSendingApplication", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.hl7PSUReceivingApplication[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.hl7ApplicationName", + "$.dcmDevice.dcmArchiveDevice.hl7ForwardRule[*].hl7FwdApplicationName[*]", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.hl7ForwardRule[*].hl7FwdApplicationName[*]" + ] + }, + "dicomNetworkConnectionReference": { + "title": "Network Connection Reference", + "description": "The JSON Pointers to the Network Connection objects for this HL7 Application", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7AcceptedSendingApplication": { + "title": "Accepted Sending Application", + "description": "Application|Facility name of accepted Sending Application(s); any if absent", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7OtherApplicationName": { + "title": "Other HL7 Application Name", + "description": "Additional HL7 Application and Facility name (Application|Facility) - will also accept HL7 messages with such Receiving Application and Facility name", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7AcceptedMessageType": { + "title": "Accepted Message Type", + "description": "Message Type(s) (MessageType^TriggerEvent) of accepted messages", + "type": "array", + "items": { + "type": "string" + } + }, + "hl7DefaultCharacterSet": { + "title": "Default Character Set", + "description": "Character Set used to decode received messages if not specified by MSH-18.", + "type": "string", + "default": "ASCII", + "format": "hl7Charset" + }, + "hl7SendingCharacterSet": { + "title": "Sending Character Set", + "description": "Character Set used to encode HL7 messages sent from archive.", + "type": "string", + "default": "ASCII", + "format": "hl7Charset" + }, + "hl7OptionalMSHField": { + "title": "Optional MSH Field", + "description": "Accept HL7 Messages with missing values for specified MSH fields, even they are required according to IHE RAD TF Vol 2 Message Control requirements.", + "type": "array", + "items": { + "type": "integer", + "enum": [ + 3, + 4, + 5, + 6, + 7, + 10, + 11, + 12 + ] + } + }, + "dicomDescription": { + "title": "HL7 Description", + "description": "Unconstrained text description of the HL7 Application", + "type": "string" + }, + "dicomApplicationCluster": { + "title": "Application Cluster", + "description": "Locally defined names for a subset of related applications", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomInstalled": { + "title": "installed", + "description": "True if the HL7 Application is installed on network. If not present, information about the installed status of the HL7 Application is inherited from the device", + "type": "boolean" + }, + "dcmArchiveHL7Application": { + "title": "Archive HL7 Application", + "description": "DICOM Archive HL7 Application related information", + "$ref": "archiveHL7Application.schema.json" + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7ExportRule.schema.json b/src/main/webapp/assets/schema/es/hl7ExportRule.schema.json new file mode 100644 index 00000000..d623194a --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7ExportRule.schema.json @@ -0,0 +1,73 @@ +{ + "title": "HL7 Export Rule", + "description": "HL7 Export Rule", + "type": "object", + "required": [ + "cn", + "dcmExporterID", + "dcmDuration", + "dcmHistorySize" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the HL7 Export Rule", + "type": "string" + }, + "dcmExporterID": { + "title": "Exporter ID", + "description": "Exporter ID", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmExporterID" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {SEG}-{Seq#}[.{Comp#}[.{SubComp#}]][!]={regEx}. Example: MSH-4=FORWARD or MSH-9=ORM\\^O01 or PID-3[.3]=PIDIssuer or PID-3[.3[.2]]=PIDIssuerUniversalEntityIDType", + "type": "array", + "items": { "type": "string" } + }, + "dcmEntitySelector": { + "title": "Entity Selector", + "description": "Specifies matching keys used to select Studies to export. Format: {key}={value}[&{key}={value)]..., with {key} = 'StudyAge' | {attributeID}. {value} in the format '$'{SEG}-{Seq#}[.{Comp#}[.{SubComp#}]] are replaced by the value of the specified HL7 field from the received HL7 message which triggered the export. If no Entity Selector is specified, all Studies for the Patient will be exported. Example: 'priors=2&StudyAge=-5Y&ModalitiesInStudy=CT' => select at most 2 prior Studies not older than 5 years containing at least one CT Series.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmEntitySelector" + }, + "dcmNullifyIssuerOfPatientID": { + "title": "Ignore Assigning Authority of Patient ID", + "description": "Conditionally ignore Assigning Authority of Patient ID (PID-3.4) in received HL7 message which triggered the export for selecting Studies of the Patient.", + "type": "string", + "enum": [ + "ALWAYS", + "MATCHING", + "NOT_MATCHING" + ] + }, + "dcmIssuerOfPatientID": { + "title": "Assigning Authority of Patient ID", + "description": "Assigning Authority of Patient ID against values in received HL7 message are matched, if Assigning Authority of Patient ID is set to MATCHING or NOT_MATCHING. Format: [& & ].", + "type": "array", + "items": { "type": "string" } + }, + "dcmPrefetchForIssuerOfPatientID": { + "title": "Export for Assigning Authority of Patient ID", + "description": "Assigning Authority of Patient ID in received HL7 message used to search qualified patient identifier in list of identifiers in PID-3. Studies matching the specified Entity Selector of this qualified patient identifier shall be queried. If absent, by default the first qualified patient identifier in PID-3 shall be used. Format: [& & ].", + "type": "string" + }, + "dcmDuration": { + "title": "Suppress Duplicate Export Interval", + "description": "Suppress Export of Studies already exported not earlier than the specified interval to avoid duplicate exports.", + "type": "string", + "format": "dcmDuration" + }, + "dcmHistorySize": { + "title": "Suppress Duplicate History Size", + "description": "Maximum number of HL7 messages with distinct PID-3 triggering this rule to remember on the history list.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7ForwardRule.schema.json b/src/main/webapp/assets/schema/es/hl7ForwardRule.schema.json new file mode 100644 index 00000000..5b4ad37b --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7ForwardRule.schema.json @@ -0,0 +1,33 @@ +{ + "title": "HL7 Forward Rule", + "description": "HL7 Forward Rule", + "type": "object", + "required": [ + "cn", + "hl7FwdApplicationName" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the HL7 Forward Rule", + "type": "string" + }, + "hl7FwdApplicationName": { + "title": "HL7 Forward Application Name", + "description": "HL7 Forward Destination Application and Facility name (Application|Facility)", + "type": "array", + "items": { + "type": "string" + }, + "format": "hl7ApplicationName" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {SEG}-{Seq#}[.{Comp#}[.{SubComp#}]][!]={regEx}. Examples: MSH-4=FORWARD or MSH-9=ADT\\^A28\\^ADT_A05 or PID-3[.3]=PIDIssuer or PID-3[.3[.2]]=PIDIssuerUniversalEntityIDType", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7OrderSPSStatus.schema.json b/src/main/webapp/assets/schema/es/hl7OrderSPSStatus.schema.json new file mode 100644 index 00000000..46396236 --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7OrderSPSStatus.schema.json @@ -0,0 +1,40 @@ +{ + "title": "SPS Status for HL7 Order", + "description": "Specifies SPS Status of DICOM MWL items created/updated on received HL7 ORM^O01, OMI^O23, OMG^O19 messages", + "type": "object", + "required": [ + "dcmSPSStatus", + "hl7OrderControlStatus" + ], + "properties": { + "dcmSPSStatus": { + "title": "Scheduled Procedure Step Status code", + "description": "Scheduled Procedure Step Status code", + "type": "string", + "enum": [ + "SCHEDULED", + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + }, + "hl7OrderControlStatus": { + "title": "HL7 Order Control Status", + "description": "HL7 Order Control Status Code combinations. These combinations refer to values present in ORC-1_ORC-5.", + "type": "array", + "items": { + "type": "string", + "enum": [ + "NW_SC", + "NW_IP", + "CA_CA", + "DC_CA", + "XO_SC", + "XO_CM", + "SC_CM", + "SC_A" + ] + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7OrderScheduledStation.schema.json b/src/main/webapp/assets/schema/es/hl7OrderScheduledStation.schema.json new file mode 100644 index 00000000..7cd229cd --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7OrderScheduledStation.schema.json @@ -0,0 +1,38 @@ +{ + "title": "Scheduled Station for HL7 Order", + "description": "Scheduled Station selected on MWL HL7 Order Feed", + "type": "object", + "required": [ + "cn", + "hl7OrderScheduledStationDeviceName", + "dcmRulePriority" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name for the Scheduled Station Order Mapping", + "type": "string" + }, + "hl7OrderScheduledStationDeviceName": { + "title": "Scheduled Station Device Name", + "description": "Device name of Scheduled Station used for HL7 Order Messages.", + "type": "string", + "format": "dicomDeviceName" + }, + "dcmRulePriority": { + "title": "Mapping Priority", + "description": "Mapping Priority.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {SEG}-{Seq#}[.{Comp#}[.{SubComp#}]][!]={regEx}. Examples: MSH-4=FORWARD or MSH-9=ADT\\^A28\\^ADT_A05 or PID-3[.3]=PIDIssuer or PID-3[.3[.2]]=PIDIssuerUniversalEntityIDType", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7PrefetchRule.schema.json b/src/main/webapp/assets/schema/es/hl7PrefetchRule.schema.json new file mode 100644 index 00000000..8af579b9 --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7PrefetchRule.schema.json @@ -0,0 +1,131 @@ +{ + "title": "HL7 Prefetch Rule", + "description": "HL7 Prefetch Rule", + "type": "object", + "required": [ + "cn", + "dcmQueueName", + "dicomAETitle", + "dcmPrefetchCFindSCP", + "dcmPrefetchCMoveSCP", + "dcmPrefetchCStoreSCP", + "dcmDuration", + "dcmHistorySize" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Prefetch Rule", + "type": "string" + }, + "dcmQueueName": { + "title": "Queue Name", + "description": "Name of Task Queue used for scheduling retrieve tasks triggered by this Prefetch Rule", + "type": "string", + "format":"dcmQueueName" + }, + "dicomAETitle": { + "title": "Archive AE title", + "description": "AE Title of Archive Application Entity used for retrieving selected Studies from Prefetch C-Move SCP.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmPrefetchCFindSCP": { + "title": "Prefetch C-Find SCP", + "description": "AE Title of C-FIND SCP which is queried for Studies matching the specified Entity Selector.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmPrefetchCMoveSCP": { + "title": "Prefetch C-Move SCP", + "description": "AE Title of C-MOVE SCP from which selected Studies are retrieved.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmPrefetchCStoreSCP": { + "title": "Prefetch C-Store SCP", + "description": "AE Title of C-STORE SCP to which selected Studies are retrieved.", + "type": "array", + "items": { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmDestinationCFindSCP": { + "title": "Destination C-FIND SCP", + "description": "Suppress retrieve of selected Studies from Prefetch C-Move SCP which are (already) available at specified Destination C-FIND SCP with equal or more Number of Study Related Instances as returned by Prefetch C-FIND SCP. Retrieve all selected Studies if absent.", + "type": "string", + "format": "dcmAETitle" + }, + "dicomDeviceName": { + "title": "Prefetch Device Name", + "description": "Specifies Device on which the Retrieve Task(s) shall be scheduled. If not specified, the Retrieve Task(s) is/are scheduled on the Device which received the HL7 messages.", + "type": "string", + "format": "dicomDeviceName" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {SEG}-{Seq#}[.{Comp#}[.{SubComp#}]][!]={regEx}. Example: MSH-4=FORWARD or MSH-9=ORM\\^O01 or PID-3[.3]=PIDIssuer or PID-3[.3[.2]]=PIDIssuerUniversalEntityIDType", + "type": "array", + "items": { "type": "string" } + }, + "dcmEntitySelector": { + "title": "Entity Selector", + "description": "Specifies matching keys used to select Studies to prefetch. Format: {key}={value}[&{key}={value)]..., with {key} = 'priors' | 'StudyAge' | {attributeID}. {value} in the format '$'{SEG}-{Seq#}[.{Comp#}[.{SubComp#}]] are replaced by the value of the specified HL7 field from the received HL7 message which triggered the prefetch. If no Entity Selector is specified, all Studies for the Patient will be pre-fetched. Example: 'priors=2&StudyAge=-5Y&ModalitiesInStudy=$OBR-24' => select at most 2 prior Studies not older than 5 years containing at least one Series with Modality from OBR-24.", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmEntitySelector" + }, + "dcmNullifyIssuerOfPatientID": { + "title": "Ignore Assigning Authority of Patient ID", + "description": "Conditionally ignore Assigning Authority of Patient ID (PID-3.4) in received HL7 message which triggered the prefetch for selecting Studies of the Patient.", + "type": "string", + "enum": [ + "ALWAYS", + "MATCHING", + "NOT_MATCHING" + ] + }, + "dcmIssuerOfPatientID": { + "title": "Assigning Authority of Patient ID", + "description": "Assigning Authority of Patient ID against values in received HL7 message are matched, if Assigning Authority of Patient ID is set to MATCHING or NOT_MATCHING. Format: [& & ].", + "type": "array", + "items": { "type": "string" } + }, + "dcmPrefetchForIssuerOfPatientID": { + "title": "Prefetch for Assigning Authority of Patient ID", + "description": "Assigning Authority of Patient ID in received HL7 message used to search qualified patient identifier in list of identifiers in PID-3. Studies matching the specified Entity Selector of this qualified patient identifier shall be queried. If absent, by default the first qualified patient identifier in PID-3 shall be used. Format: [& & ].", + "type": "string" + }, + "dcmDuration": { + "title": "Suppress Duplicate Retrieve Interval", + "description": "Suppress Retrieve of Studies already retrieved not earlier than the specified interval to avoid duplicate retrieves.", + "type": "string", + "format": "dcmDuration" + }, + "dcmHistorySize": { + "title": "Suppress Duplicate History Size", + "description": "Maximum number of HL7 messages with distinct PID-3 triggering this rule to remember on the history list.", + "type": "integer", + "default" : 100, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmPrefetchDateTimeField": { + "title": "Prefetch Date Time Field", + "description": "Delay retrieve of selected Studies to time from referred HL7 TS field in format {SEG}-{Seq#}[.{Comp#}]. Example: TQ1-7 or SCH-11.4. Schedule retrieve of selected Studies immediate if absent.", + "type": "string" + }, + "dcmPrefetchInAdvance": { + "title": "Prefetch In Advance", + "description": "Schedule retrieve of selected Studies in advance to the time from configured dcmPrefetchDateTimeField with given time span in ISO-8601 duration format PnDTnHnMn.nS. Not effective, if dcmPrefetchDateTimeField is absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmSchedule": { + "title": "Prefetch Schedule", + "description": "Delay prefetch to specified time periods in addition to configured Prefetch Date Time field. If no Prefetch Schedule is specified, queue a Prefetch Task for the selected Studies of the Patient based on configured Prefetch Date Time field. Format: 'hour=[0-23] dayOfWeek=[0-6]' (0=Sunday)", + "type": "array", + "items": { "type": "string" }, + "format": "dcmSchedule" + } + } +} diff --git a/src/main/webapp/assets/schema/es/hl7StudyRetentionPolicy.schema.json b/src/main/webapp/assets/schema/es/hl7StudyRetentionPolicy.schema.json new file mode 100644 index 00000000..4b8c652f --- /dev/null +++ b/src/main/webapp/assets/schema/es/hl7StudyRetentionPolicy.schema.json @@ -0,0 +1,78 @@ +{ + "title": "HL7 Study Retention Policy", + "description": "HL7 Study Retention Policy", + "type": "object", + "required": [ + "cn", + "dcmRulePriority", + "dicomAETitle", + "dcmExpireSeriesIndividually", + "dcmStartRetentionPeriodOnStudyDate", + "dcmFreezeExpirationDate", + "dcmRevokeExpiration" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the HL7 Study Retention Policy", + "type": "string" + }, + "dicomAETitle": { + "title": "Application Entity (AE) title", + "description": "Application Entity (AE) title", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmRetentionPeriod": { + "title": "Minimal Study Retention Period", + "description": "Minimal Study Retention Period in ISO-8601 period format PnYnMnD or PnW. Ineffective if 'Maximal Study Retention Period' is also set.", + "type": "string", + "format": "dcmPeriod" + }, + "dcmMaxRetentionPeriod": { + "title": "Maximal Study Retention Period", + "description": "Maximal Study Retention Period in ISO-8601 period format PnYnMnD or PnW", + "type": "string", + "format": "dcmPeriod" + }, + "dcmRulePriority": { + "title": "Rule Priority", + "description": "Rule Priority.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {SEG}-{Seq#}[.{Comp#}[.{SubComp#}]][!]={regEx}. Examples: MSH-4=FORWARD or MSH-9=ADT\\^A28\\^ADT_A05 or PID-3[.3]=PIDIssuer or PID-3[.3[.2]]=PIDIssuerUniversalEntityIDType", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmStartRetentionPeriodOnStudyDate": { + "title": "Start Retention Period on Study Date", + "description": "Indicates if retention period should be started on individual Study Dates instead on receive of the HL7 message triggering this rule.", + "type": "boolean", + "default": false + }, + "dcmExporterID": { + "title": "Export expired Study", + "description": "Export expired Study/Series using the specified Exporter", + "type": "string", + "format": "dcmExporterID" + }, + "dcmFreezeExpirationDate": { + "title": "Freeze Expiration Date", + "description": "Indicate to disable changes of the Expiration Date by following events.", + "type": "boolean", + "default": false + }, + "dcmRevokeExpiration": { + "title": "Revoke Expiration Date", + "description": "Indicate to revoke a previous set Expiration Date.", + "type": "boolean", + "default": false + } + } +} diff --git a/src/main/webapp/assets/schema/es/idGenerator.schema.json b/src/main/webapp/assets/schema/es/idGenerator.schema.json new file mode 100644 index 00000000..347fdcb3 --- /dev/null +++ b/src/main/webapp/assets/schema/es/idGenerator.schema.json @@ -0,0 +1,29 @@ +{ + "title": "ID Generator", + "description": "ID Generator", + "type": "object", + "required": [ + "dcmIDGeneratorName", + "dcmIDGeneratorFormat", + "dcmIDGeneratorInitialValue" + ], + "properties": { + "dcmIDGeneratorName": { + "title": "ID Generator Name", + "description": "ID Generator Name.", + "type": "string" + }, + "dcmIDGeneratorFormat": { + "title": "ID Generator Format", + "description": "Format string used by this ID Generator. %0d will be replaced by a sequential number with leading zeros according the given width", + "type": "string" + }, + "dcmIDGeneratorInitialValue": { + "title": "ID Generator Initial Value", + "description": "Initial value for sequence used by this ID Generator.", + "type": "integer", + "minimum": 0, + "default": 1 + } + } +} diff --git a/src/main/webapp/assets/schema/es/imageReader.schema.json b/src/main/webapp/assets/schema/es/imageReader.schema.json new file mode 100644 index 00000000..13e8640f --- /dev/null +++ b/src/main/webapp/assets/schema/es/imageReader.schema.json @@ -0,0 +1,45 @@ +{ + "title": "Image Reader", + "description": "Specifies Java Image IO Image Readers used for decompressing compressed DICOM images", + "type": "object", + "required": [ + "dicomTransferSyntax", + "dcmIIOFormatName" + ], + "properties": { + "dicomTransferSyntax": { + "title": "Transfer Syntax", + "description": "Transfer Syntax of compressed DICOM image", + "type": "string", + "format": "dcmTransferSyntax" + }, + "dcmIIOFormatName": { + "title": "Image IO Reader Format Name", + "description": "Image IO Reader Format Name", + "type": "string" + }, + "dcmJavaClassName": { + "title": "Java Class Name", + "description": "Fully qualified Java class of Image IO Reader. If absent, use any Image Reader found for specified Format Name", + "type": "string" + }, + "dcmPatchJPEGLS": { + "title": "Patch JPEG-LS", + "description": "Patch JPEG-LS before decompressing", + "type": "string", + "enum": [ + "JAI2ISO", + "ISO2JAI", + "ISO2JAI_IF_APP_OR_COM" + ] + }, + "dcmImageReadParam": { + "title": "Image Read Param", + "description": "Image Read Parameter(s) (name=value)", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/imageWriter.schema.json b/src/main/webapp/assets/schema/es/imageWriter.schema.json new file mode 100644 index 00000000..cd387ea5 --- /dev/null +++ b/src/main/webapp/assets/schema/es/imageWriter.schema.json @@ -0,0 +1,45 @@ +{ + "title": "Image Writer", + "description": "Specifies Java Image IO Image Writer and Write Parameter used for compressing DICOM images", + "type": "object", + "required": [ + "dicomTransferSyntax", + "dcmIIOFormatName" + ], + "properties": { + "dicomTransferSyntax": { + "title": "Transfer Syntax", + "description": "Transfer Syntax to which to compress the DICOM image", + "type": "string", + "format": "dcmTransferSyntax" + }, + "dcmIIOFormatName": { + "title": "Image IO Writer Format Name", + "description": "Image IO Writer Format Name", + "type": "string" + }, + "dcmJavaClassName": { + "title": "Java Class Name", + "description": "Fully qualified Java class of Image IO Writer. If absent, use any Image Writer found for specified Format Name", + "type": "string" + }, + "dcmPatchJPEGLS": { + "title": "Patch JPEG-LS", + "description": "Patch JPEG-LS after compressing", + "type": "string", + "enum": [ + "JAI2ISO", + "ISO2JAI", + "ISO2JAI_IF_APP_OR_COM" + ] + }, + "dcmImageWriteParam": { + "title": "Image Write Param", + "description": "Image Write Parameter(s) (name=value) set at on Image Writer before compression", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/keycloakClient.schema.json b/src/main/webapp/assets/schema/es/keycloakClient.schema.json new file mode 100644 index 00000000..63903029 --- /dev/null +++ b/src/main/webapp/assets/schema/es/keycloakClient.schema.json @@ -0,0 +1,72 @@ +{ + "title": "Keycloak Client", + "description": "Keycloak Client", + "type": "object", + "required": [ + "dcmKeycloakClientID", + "dcmURI", + "dcmKeycloakRealm", + "dcmKeycloakGrantType", + "dcmTLSAllowAnyHostname", + "dcmTLSDisableTrustManager" + ], + "properties": { + "dcmKeycloakClientID": { + "title": "Keycloak Client ID", + "description": "Client ID used in token requests.", + "type": "string", + "use": [ + "$.dcmWebApp[*].dcmKeycloakClientID", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmUserIdentityNegotiationKeycloakClientID", + "$.dcmDevice.dcmArchiveDevice.dcmUserIdentityNegotiationKeycloakClientID" + ] + }, + "dcmURI": { + "title": "Server URL", + "description": "The base URL of the Keycloak server.", + "type": "string" + }, + "dcmKeycloakRealm": { + "title": "Keycloak Realm", + "description": "Name of the realm in token requests.", + "type": "string" + }, + "dcmKeycloakGrantType": { + "title": "Keycloak grant type", + "description": "Keycloak grant type used in token requests.", + "type": "string", + "enum": [ + "client_credentials", + "password" + ], + "default": "client_credentials" + }, + "dcmKeycloakClientSecret": { + "title": "Keycloak Client secret", + "description": "Keycloak client secret. Required if grant type = client_credentials.", + "type": "string" + }, + "dcmTLSAllowAnyHostname": { + "title": "TLS Allow Any Hostname", + "description": "If the other server requires HTTPS and this config option is set to true the other server’s certificate is validated via the truststore, but host name validation is not done.", + "type": "boolean", + "default": false + }, + "dcmTLSDisableTrustManager": { + "title": "TLS Disable Trust Manager", + "description": "If the other server requires HTTPS and this config option is set to true you do not have to specify a truststore", + "type": "boolean", + "default": false + }, + "uid": { + "title": "User ID", + "description": "User ID. Required if grant type = password.", + "type": "string" + }, + "userPassword": { + "title": "User Password", + "description": "User Password. Required if grant type = password.", + "type": "string" + } + } +} diff --git a/src/main/webapp/assets/schema/es/metadataFilter.schema.json b/src/main/webapp/assets/schema/es/metadataFilter.schema.json new file mode 100644 index 00000000..b29d2677 --- /dev/null +++ b/src/main/webapp/assets/schema/es/metadataFilter.schema.json @@ -0,0 +1,25 @@ +{ + "title": "Metadata Filter", + "description": "Named Attribute Filter for WADO-RS Metadata requests.", + "type": "object", + "required": [ + "dcmMetadataFilterName", + "dcmTag" + ], + "properties": { + "dcmMetadataFilterName": { + "title": "Metadata Filter Name", + "description": "Metadata Filter Name referenced by proprietary 'includefields' Query Parameter of WADO-RS Metadata requests.", + "type": "string" + }, + "dcmTag": { + "title": "Attribute Tag", + "description": "DICOM Tag as hex string", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmTag" + } + } +} diff --git a/src/main/webapp/assets/schema/es/metrics.schema.json b/src/main/webapp/assets/schema/es/metrics.schema.json new file mode 100644 index 00000000..e1bfa25f --- /dev/null +++ b/src/main/webapp/assets/schema/es/metrics.schema.json @@ -0,0 +1,33 @@ +{ + "title": "Metrics Descriptor", + "description": "Metrics Descriptor", + "type": "object", + "required": [ + "dcmMetricsName", + "dcmMetricsRetentionPeriod" + ], + "properties": { + "dcmMetricsName": { + "title": "Metrics Name", + "description": "Metrics Name", + "type": "string" + }, + "dicomDescription": { + "title": "Metrics Description", + "description": "Unconstrained text description of the metrics", + "type": "string" + }, + "dcmMetricsRetentionPeriod": { + "title": "Metrics Retention Period", + "description": "Metrics Retention Period in minutes", + "type": "integer", + "default" : 60, + "minimum": 1 + }, + "dcmUnit": { + "title": "Metrics Unit", + "description": "Unit of metrics data", + "type": "string" + } + } +} diff --git a/src/main/webapp/assets/schema/es/mpiEmulatorConfig.schema.json b/src/main/webapp/assets/schema/es/mpiEmulatorConfig.schema.json new file mode 100755 index 00000000..e4afb944 --- /dev/null +++ b/src/main/webapp/assets/schema/es/mpiEmulatorConfig.schema.json @@ -0,0 +1,106 @@ +{ + "title": "MPI Emulator Configuration", + "description": "MPI Emulator Configuration", + "type": "object", + "required": [ + "mpiEmulatorScriptsDirectory", + "mpiEmulatorDcm4cheeAET", + "mpiEmulatorDcm4cheeURL", + "mpiEmulatorKeycloakURL", + "mpiEmulatorKeycloakClient", + "mpiEmulatorKeycloakSecret" + ], + "properties": { + "mpiEmulatorScriptsDirectory": { + "title": "Scripts Directory", + "description": "Base Directory for Scripts as seen from the container", + "type": "string" + }, + "mpiEmulatorDcm4cheeAET": { + "title": "DCM4CHEE AET", + "description": "DCM4CHEE AET - this AET is used to instruct DCM4CHEE to perform the necessary Tasks (c-find,c-move,...)", + "type": "string" + }, + "mpiEmulatorDcm4cheeURL": { + "title": "DCM4CHEE URL", + "description": "DCM4CHEE URL (e.g. https://dcm4chee.server:8443/dcm4chee-arc)", + "type": "string" + }, + "mpiEmulatorKeycloakURL": { + "title": "Keycloak URL", + "description": "Keycloak URL for Authentication (e.g. https://keycloak.server:8843/realms/dcm4che/protocol/openid-connect/token)", + "type": "string" + }, + "mpiEmulatorKeycloakClient": { + "title": "Keycloak Client", + "description": "Keyclock Client for Authentication", + "type": "string" + }, + "mpiEmulatorKeycloakSecret": { + "title": "Keycloak Secret", + "description": "Keycloak Secret for Authentication", + "type": "string" + }, + "mpiEmulatorPIXDicomCFindFacadeConfigurationPixITI9URL": { + "title": "PIX DICOM C-FIND Facade PIX-ITI9 URL", + "description": "Listening URL (f.e pix-iti9://localhost:23456)", + "type": "string" + }, + "mpiEmulatorPIXDicomCFindFacadeConfigurationCFindScp": { + "title": "PIX DICOM C-FIND Facade C-FIND SCP", + "description": "PIX DICOM C-FIND Facade C-FIND SCP - this AET is used to instruct DCM4CHEE where the c-find should be performed at" , + "type": "string" + }, + "mpiEmulatorPIXDicomCFindFacadeConfigurationSendingApplication": { + "title": "PIX DICOM C-FIND Facade Sending Application", + "description": "PIX DICOM C-FIND Facade Sending Application", + "type": "string" + }, + "mpiEmulatorPIXDicomCFindFacadeConfigurationSendingFacility": { + "title": "PIX DICOM C-FIND Facade Sending Facility", + "description": "PIX DICOM C-FIND Facade Sending Facility", + "type": "string" + }, + "mpiEmulatorPIXDicomCFindFacadeConfigurationReceivingApplication": { + "title": "PIX DICOM C-FIND Facade Receiving Application", + "description": "PIX DICOM C-FIND Facade Receiving Application", + "type": "string" + }, + "mpiEmulatorPIXDicomCFindFacadeConfigurationReceivingFacility": { + "title": "PIX DICOM C-FIND Facade Receiving Facility", + "description": "PIX DICOM C-FIND Facade Receiving Facility", + "type": "string" + }, + "mpiEmulatorPIXGroovyFacadeConfigurationPixITI9URL": { + "title": "PIX Groovy Facade PIX-ITI9 URL", + "description": "Listening URL (f.e pix-iti9://localhost:23456)", + "type": "string" + }, + "mpiEmulatorPIXGroovyFacadeConfigurationScriptFile": { + "title": "PIX Groovy Facade Script File", + "description": "Script File to create RSP_K23 Message (e.g. /app/config/pix-facade.groovy)", + "type": "string" + }, + "mpiEmulatorPIXGroovyFacadeConfigurationSendingApplication": { + "title": "PIX Groovy Facade Sending Application", + "description": "PIX Groovy Facade Sending Application", + "type": "string" + }, + "mpiEmulatorPIXGroovyFacadeConfigurationSendingFacility": { + "title": "PIX Groovy Facade Sending Facility", + "description": "PIX Groovy Facade Sending Facility", + "type": "string" + }, + "mpiEmulatorPIXGroovyFacadeConfigurationReceivingApplication": { + "title": "PIX Groovy Facade Receiving Application", + "description": "PIX Groovy Facade Receiving Application", + "type": "string" + }, + "mpiEmulatorPIXGroovyFacadeConfigurationReceivingFacility": { + "title": "PIX Groovy Facade Receiving Facility", + "description": "PIX Groovy Facade Receiving Facility", + "type": "string" + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/mppsForwardRule.schema.json b/src/main/webapp/assets/schema/es/mppsForwardRule.schema.json new file mode 100644 index 00000000..50ce349f --- /dev/null +++ b/src/main/webapp/assets/schema/es/mppsForwardRule.schema.json @@ -0,0 +1,40 @@ +{ + "title": "MPPS Forward Rule", + "description": "MPPS Forward Rule", + "type": "object", + "required": [ + "cn", + "dcmFwdMppsDestination" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the MPPS Forward Rule", + "type": "string" + }, + "dcmFwdMppsDestination": { + "title": "MPPS Forward Destination", + "description": "Destination to forward MPPS N-CREATE RQ and N-SET RQ", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmAETitle" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmSchedule": { + "title": "Time Conditions", + "description": "Apply this rule only within specified time ranges.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + } + } +} diff --git a/src/main/webapp/assets/schema/es/mwlIdleTimeout.schema.json b/src/main/webapp/assets/schema/es/mwlIdleTimeout.schema.json new file mode 100644 index 00000000..d189828d --- /dev/null +++ b/src/main/webapp/assets/schema/es/mwlIdleTimeout.schema.json @@ -0,0 +1,49 @@ +{ + "title": "MWL Idle Timeout", + "description": "MWL Idle Timeout", + "type": "object", + "required": [ + "cn", + "dicomAETitle", + "dcmMWLStatusOnIdle", + "dcmDuration" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the MWL Idle Timeout.", + "type": "string" + }, + "dicomAETitle": { + "title": "MWL SCP AE Title", + "description": "Archive AE Title of MWL SCP on which the MWL Idle Timeout shall be applied.", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmAETitle": { + "title": "Scheduled Station AE Title", + "description": "Scheduled Station AE Title(s) of Scheduled Procedure Steps for which the MWL Idle Timeout shall be applied. If none is specified, the MWL Idle Timeout is applied to all Scheduled Procedure Steps provided by the MWL SCP.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmMWLStatusOnIdle": { + "title": "MWL Status on Idle", + "description": "Change Status of idle Scheduled Procedure Steps to specified value.", + "type": "string", + "enum":[ + "CANCELED", + "DISCONTINUED", + "COMPLETED" + ] + }, + "dcmDuration": { + "title": "Idle Timeout", + "description": "Timeout after which the Status of matching Scheduled Procedure Steps is changed to the specified final status.", + "type": "string", + "format": "dcmDuration" + } + } +} diff --git a/src/main/webapp/assets/schema/es/mwlImport.schema.json b/src/main/webapp/assets/schema/es/mwlImport.schema.json new file mode 100644 index 00000000..f91d4a94 --- /dev/null +++ b/src/main/webapp/assets/schema/es/mwlImport.schema.json @@ -0,0 +1,77 @@ +{ + "title": "MWL Import", + "description": "Specifies import of Scheduled Procedure Step from external MWL SCP", + "type": "object", + "required": [ + "dcmMWLImportID", + "dicomAETitle", + "dcmMergeMWLSCP", + "dcmMWLImportFilterBySCU", + "dcmMWLImportDeleteNotFound" + ], + "properties": { + "dcmMWLImportID": { + "title": "MWL Import ID", + "description": "ID of MWL Import", + "type": "string" + }, + "dicomAETitle": { + "title": "Calling AE Title", + "description": "Calling AE Title used in A-ASSOCIATE-RQ to external MWL SCP", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmMergeMWLSCP": { + "title": "Source MWL SCP", + "description": "AE Title of external MWL SCP to query for Scheduled Procedure Step to import.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmMWLWorklistLabel": { + "title": "MWL Worklist Label", + "description": "Value of Worklist Label (0074,1202) of imported MWL items fetched from Source MWL SCP. If absent, imported MWL items are provided by all MWL SCP Archive Network AEs.", + "type": "string", + "format": "dcmMWLWorklistLabel" + }, + "dcmDuration": { + "title": "Import not before", + "description": "Import Scheduled Procedure Steps from external MWL SCP to Scheduled Procedure Steps scheduled earlier in the future than the specified Time interval in ISO-8601 duration format PnDTnHnMn.nS; if absent, import all Scheduled Procedure Steps which are scheduled in the future.", + "type": "string", + "format": "dcmDuration" + }, + "dcmMWLImportNotOlder": { + "title": "Import not older than", + "description": "Import Scheduled Procedure Steps from external MWL SCP to Scheduled Procedure Steps scheduled later in the past than the specified Time interval in ISO-8601 duration format PnDTnHnMn.nS; if absent, import all Scheduled Procedure Steps which are scheduled in the past.", + "type": "string", + "format": "dcmDuration" + }, + "dcmMWLImportFilterBySCU": { + "title": "Filter by SCU", + "description": "Indicates to apply specified filter on matches returned by external MWL SCP.", + "type": "boolean", + "default": false + }, + "dcmMWLImportDeleteNotFound": { + "title": "Delete not found", + "description": "Indicates to delete Scheduled Procedure Steps from local MWL not returned by external MWL SCP.", + "type": "boolean", + "default": false + }, + "dcmProperty": { + "title": "Matching Keys", + "description": "Filter Attributes in format ({AttributeTagOrKeyword}|{SequenceTagOrKeyword.AttributeTagOrKeyword})={value}. Eg: ScheduledProcedureStepSequence.ScheduledStationAETitle=MODALITY_XY", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmIncludeField": { + "title": "Return Keys", + "description": "Attributes in format (all|{AttributeTagOrKeyword}|{SequenceTagOrKeyword.AttributeTagOrKeyword}) requested from the external MWL SCP additional to attributes required to be supported by MWL SCPs according DICOM. 'all' requests all attributes configured by the Patient and the MWL Attribute Filter of the Archive.", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/networkAE.schema.json b/src/main/webapp/assets/schema/es/networkAE.schema.json new file mode 100644 index 00000000..994a4077 --- /dev/null +++ b/src/main/webapp/assets/schema/es/networkAE.schema.json @@ -0,0 +1,140 @@ +{ + "title": "Network AE", + "description": "Application entity that provides services on a network", + "type": "object", + "required": [ + "dicomAETitle", + "dicomNetworkConnectionReference", + "dicomAssociationInitiator", + "dicomAssociationAcceptor" + ], + "properties": { + "dicomAETitle": { + "title": "AE Title", + "description": "Unique AE title for this Network AE", + "type": "string", + "order":1, + "use": [ + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmSpanningCFindSCPRetrieveAET[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmFallbackCMoveSCPDestination", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmRetrieveAET[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmReturnRetrieveAET[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmFallbackCMoveSCPCallingAET", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmExternalRetrieveAEDestination", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmExporter[*].dicomAETitle", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmExporter[*].dcmRetrieveAET[*]", + "$.dcmDevice.dcmWebApp[*].dicomAETitle", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.dicomAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmSpanningCFindSCPRetrieveAET[*]", + "$.dcmDevice.dcmArchiveDevice.dcmFallbackCMoveSCPDestination", + "$.dcmDevice.dcmArchiveDevice.dcmRejectExpiredStudiesAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmRetrieveAET[*]", + "$.dcmDevice.dcmArchiveDevice.dcmReturnRetrieveAET[*]", + "$.dcmDevice.dcmArchiveDevice.dcmExternalRetrieveAEDestination", + "$.dcmDevice.dcmArchiveDevice.dcmXDSiImagingDocumentSourceAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmStorageVerificationAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmCompressionAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmRejectionNoteStorageAET", + "$.dcmDevice.dcmArchiveDevice.dcmFallbackCMoveSCPCallingAET", + "$.dcmDevice.dcmArchiveDevice.hl7StudyRetentionPolicy[*].dicomAETitle", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.hl7StudyRetentionPolicy[*].dicomAETitle", + "$.dcmDevice.dcmArchiveDevice.hl7PrefetchRule[*].dicomAETitle", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.hl7PrefetchRule[*].dicomAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmExporter[*].dicomAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmExporter[*].dcmRetrieveAET[*]", + "$.dcmDevice.dcmArchiveDevice.dcmMWLIdleTimeout[*].dicomAETitle", + "$.dcmDevice.dcmArchiveDevice.dcmUPSProcessingRule[*].dicomAETitle", + "$.dcmDevice.dcmuiConfig[*].dcmuiDiffConfig[*].dcmuiDiffCallingAET", + "$.dcmDevice.dcmuiConfig[*].dcmuiDashboardConfig[*].dcmuiCountAET" + ] + }, + "dicomNetworkConnectionReference": { + "title": "Network Connection Reference", + "description": "JSON Pointers to the Network Connection objects for this AE", + "type": "array", + "order":2, + "items": { + "type": "string" + } + }, + "dicomAssociationInitiator": { + "title": "Association Initiator", + "description": "True if the Network AE can initiate associations.", + "type": "boolean", + "default": true, + "order":3 + }, + "dicomAssociationAcceptor": { + "title": "Association Acceptor", + "description": "True if the Network AE can accept associations.", + "type": "boolean", + "default": true, + "order":4 + }, + "dicomDescription": { + "title": "AE Description", + "description": "Unconstrained text description of the application entity", + "type": "string", + "order":5 + }, + "dicomApplicationCluster": { + "title": "Application Cluster", + "description": "Locally defined names for a subset of related applications", + "type": "array", + "order":6, + "items": { + "type": "string" + } + }, + "dicomPreferredCalledAETitle": { + "title": "Preferred Called AE Title", + "description": "AE Title(s) that are preferred for initiating associations", + "type": "array", + "order":7, + "items": { + "type": "string" + } + }, + "dicomPreferredCallingAETitle": { + "title": "Preferred Calling AE Title", + "description": "AE Title(s) that are preferred for accepting associations", + "type": "array", + "order":8, + "items": { + "type": "string" + } + }, + "dicomSupportedCharacterSet": { + "title": "Supported Character Set", + "description": "Character Set(s) supported by the Network AE for data sets it receives", + "type": "array", + "order":9, + "items": { + "type": "string" + }, + "format": "dcmCharset" + }, + "dicomInstalled": { + "title": "installed", + "description": "True if the AE is installed on network. If not present, information about the installed status of the AE is inherited from the device", + "order":10, + "type": "boolean" + }, + "dicomTransferCapability": { + "title": "Transfer Capabilities", + "description": "Transfer capabilities provided by the application entity", + "type": "array", + "order":11, + "titleKey":"{cn}", + "items": { + "$ref": "transferCapability.schema.json" + } + }, + "dcmNetworkAE": { + "title": "Network AE Extension", + "description": "dcm4che proprietary Attributes of Network AE", + "$ref": "dcmNetworkAE.schema.json", + "order":12 + } + } +} diff --git a/src/main/webapp/assets/schema/es/networkConnection.schema.json b/src/main/webapp/assets/schema/es/networkConnection.schema.json new file mode 100644 index 00000000..fc0892d8 --- /dev/null +++ b/src/main/webapp/assets/schema/es/networkConnection.schema.json @@ -0,0 +1,54 @@ +{ + "title": "Network Connection", + "description": "Describes one TCP/UDP port on one network device.", + "type": "object", + "required": [ + "dicomHostname" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name for the Network Connection object", + "type": "string" + }, + "dicomHostname": { + "title": "Hostname", + "description": "DNS name for this particular connection", + "type": "string" + }, + "dicomPort": { + "title": "Port", + "description": "TCP/UDP port that a service is listening on. May be missing if this network connection is only used for outbound connections", + "type": "integer", + "minimum": 1, + "maximum": 99999 + }, + "dicomTLSCipherSuite": { + "title": "TLS CipherSuites", + "description": "The TLS CipherSuites that are supported on this particular connection. If not present TLS is disabled", + "type": "array", + "items": { + "type": "string", + "enum": [ + "SSL_RSA_WITH_NULL_SHA", + "TLS_RSA_WITH_AES_128_CBC_SHA", + "SSL_RSA_WITH_3DES_EDE_CBC_SHA", + "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", + "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", + "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" + ] + } + }, + "dicomInstalled": { + "title": "installed", + "description": "True if the Network Connection is installed on the network. If not present, information about the installed status of the Network Connection is inherited from the device", + "type": "boolean" + }, + "dcmNetworkConnection": { + "title": "Network Connection Extension", + "description": "dcm4che proprietary Network Connection Attributes", + "$ref": "dcmNetworkConnection.schema.json" + } + } +} diff --git a/src/main/webapp/assets/schema/es/pdqService.schema.json b/src/main/webapp/assets/schema/es/pdqService.schema.json new file mode 100644 index 00000000..8dfb2333 --- /dev/null +++ b/src/main/webapp/assets/schema/es/pdqService.schema.json @@ -0,0 +1,54 @@ +{ + "title": "PDQ Service", + "description": "Patient Demographics Query Service Descriptor", + "type": "object", + "required": [ + "dcmPDQServiceID", + "dcmURI", + "dcmEntity" + ], + "properties": { + "dcmPDQServiceID": { + "title": "PDQ Service ID", + "description": "Patient Demographics Query Service ID", + "type": "string", + "use": [ + "$.dcmDevice.dcmArchiveDevice.dcmPatientVerificationPDQServiceID" + ] + }, + "dcmURI": { + "title": "Patient Demographics Query Service URI", + "description": "PDQ Service URI, e.g. 'pdq-dicom:FINDSCP' or 'pdq-hl7:SendingApplication/SendingFacility:ReceivingApplication/ReceivingFacility' or pdq-fhir:HL7-FHIR-R4-WebApplication.", + "type": "string" + }, + "dicomDescription": { + "title": "PDQ Service Description", + "description": "Unconstrained text description of the Patient Demographics Query Service", + "type": "string" + }, + "dcmTag": { + "title": "Patient Attributes", + "description": "Queried Patient Attributes - if not specified all available Patient attributes will be queried. Only applicable for 'pdq-dicom' PDQ Service", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmTag" + }, + "dcmEntity": { + "title": "Query Entity", + "description": "Indicates if the C-FIND SCP is queried for a particular Patient or for Studies of a particular Patient. Only effective for DICOM PDQ Services (URI: pdq-dicom:{AETitle}).", + "type": "string", + "enum": [ "Patient", "Study" ], + "default": "Patient" + }, + "dcmProperty": { + "title": "PDQ Service Property", + "description": "Property in format =, e.g. 'LocalAET=DCM4CHEE' for URI with schema pdq-dicom or 'XSLStylesheetURI=${jboss.server.temp.url}/dcm4chee-arc/hl7-adt2dcm.xsl' for URI with schema pdq-hl7 or 'XSLStylesheetURI=${jboss.server.temp.url}/dcm4chee-arc/fhir-pat2dcm.xsl' for URI with schema pdq-fhir. Additional properties for URI with schema pdq-fhir may be set eg. 'search._format=xml', 'search.identifier.system={issuer}'. For complete list of properties, refer https://github.com/dcm4che/dcm4chee-arc-light/issues/3307", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/pixPdqCoercionProcessor.schema.json b/src/main/webapp/assets/schema/es/pixPdqCoercionProcessor.schema.json new file mode 100644 index 00000000..5a1be6f0 --- /dev/null +++ b/src/main/webapp/assets/schema/es/pixPdqCoercionProcessor.schema.json @@ -0,0 +1,50 @@ +{ + "title": "PIX PDQ Coercion Processor Configuration", + "description": "PIX PDQ Coercion Processor Configuration", + "type": "object", + "required": [ + "pixpdqCoercionProcessorHL7Sender", + "pixpdqCoercionProcessorHL7Receiver", + "pixpdqCoercionProcessorAETAssigningAuthorityMapping", + "pixpdqCoercionProcessorAETDomainsReturnedMapping" + ], + "properties": { + "pixpdqCoercionProcessorHL7Sender": { + "title": "HL7 Sender", + "description": "Hl7 Sender to be used for connecting to PIX Manager in form SendApp|SendFac", + "type": "string" + }, + "pixpdqCoercionProcessorHL7Receiver": { + "title": "HL7 Receiver", + "description": "Hl7 Receiver to be used for connecting to PIX Manager in form RecApp|RecFac", + "type": "string" + }, + "pixpdqCoercionProcessorAETAssigningAuthorityMapping": { + "title": "AET Assigning Authoriy Mapping", + "description": "Mapping of AET to Assigning Authorities in the format AET=NamespaceID&Universal ID&Universal ID Type", + "type": "array", + "items": { + "type": "string" + } + }, + "pixpdqCoercionProcessorAETDomainsReturnedMapping": { + "title": "AET Domains Returned Mapping", + "description": "Mapping of AET to Domains Returned in the format AET=NamespaceID&Universal ID&Universal ID Type", + "type": "array", + "items": { + "type": "string" + } + }, + "pixpdqCoercionProcessorCacheMaxSize": { + "title": "Cache Max Size", + "description": "Maximum Number of PIX Responses to cache", + "type": "integer" + }, + "pixpdqCoercionProcessorCacheStaleTimeout": { + "title": "Cache Stale Timeout", + "description": "Timeout in seconds before a Cache Entry is invalid and a new response will be requested from the PIX/PDQ Manager", + "type": "integer" + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/queryRetrieveView.schema.json b/src/main/webapp/assets/schema/es/queryRetrieveView.schema.json new file mode 100644 index 00000000..b0cb8ccb --- /dev/null +++ b/src/main/webapp/assets/schema/es/queryRetrieveView.schema.json @@ -0,0 +1,43 @@ +{ + "title": "Query Retrieve View", + "description": "Specifies behavior on Rejection Note Stored", + "type": "object", + "required": [ + "dcmQueryRetrieveViewID", + "dcmHideNotRejectedInstances" + ], + "properties": { + "dcmQueryRetrieveViewID": { + "title": "Query/Retrieve View ID", + "description": "Query/Retrieve View Identifier", + "type": "string", + "use": [ + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmQueryRetrieveViewID" + ] + }, + "dcmShowInstancesRejectedByCode": { + "title": "Show Instances Rejected By Code", + "description": "Indicates if the Q/R Services shall show instances rejected by the specified code in format (CV, CSD, 'CM')", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmRejectionNoteCode" + }, + "dcmHideRejectionNoteWithCode": { + "title": "Hide Rejection Note With Code", + "description": "Indicates if the Q/R Services shall hide Rejection Notes with the specified code in format (CV, CSD, 'CM')", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmRejectionNoteCode" + }, + "dcmHideNotRejectedInstances": { + "title": "Hide Not Rejected Instances", + "description": "Indicates if the Q/R Services shall hide instances not rejected by any reason.", + "type": "boolean", + "default": false + } + } +} diff --git a/src/main/webapp/assets/schema/es/queue.schema.json b/src/main/webapp/assets/schema/es/queue.schema.json new file mode 100644 index 00000000..dbadc1d2 --- /dev/null +++ b/src/main/webapp/assets/schema/es/queue.schema.json @@ -0,0 +1,109 @@ +{ + "title": "Queue", + "description": "Managed Task Queue", + "type": "object", + "required": [ + "dcmQueueName", + "dcmMaxTasksParallel", + "dcmRetryDelay", + "dcmRetryOnWarning", + "dcmRetryDelayMultiplier", + "dcmMaxRetries", + "dicomInstalled" + ], + "properties": { + "dcmQueueName": { + "title": "Queue Name", + "description": "Task Queue Name", + "type": "string", + "use": [ + "$.dcmDevice.dcmuiConfig[*].dcmuiDashboardConfig[*].dcmuiQueueName[*]", + "$.dcmDevice.dcmuiConfig[*].dcmuiDashboardConfig[*].dcmuiCompareSideObjects[*].dcmuiCompareSideQueueName" + ] + }, + "dicomInstalled": { + "title": "installed", + "description": "If false, processing of tasks in this queue is paused.", + "type": "boolean", + "default": true + }, + "dcmMaxTasksParallel": { + "title": "Maximum parallel Tasks", + "description": "Maximal number of tasks processed in parallel.", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "dicomDescription": { + "title": "DICOM Description", + "description": "Textual description of the DICOM entity", + "type": "string" + }, + "dcmMaxRetries": { + "title": "Maximum Number of Retries", + "description": "Maximal number of retries to process tasks scheduled in a specific queue.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmRetryDelay": { + "title": "Retry Delay", + "description": "Delay to retry to process tasks scheduled in a specific queue in ISO-8601 duration format PnDTnHnMn.nS.", + "type": "string", + "default": "PT1M", + "format": "dcmDuration" + }, + "dcmMaxRetryDelay": { + "title": "Maximum Retry Delay", + "description": "Maximal Delay to retry to process tasks scheduled in a specific queue in ISO-8601 duration format PnDTnHnMn.nS. Infinite if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmRetryDelayMultiplier": { + "title": "Retry Delay Multiplier", + "description": "Multiplier in % that will take effect on top of dcmRetryDelay with dcmMaxRetryDelay to be taken into account.", + "type": "integer", + "minimum": 100, + "default": 100 + }, + "dcmRetryOnWarning": { + "title": "Retry on Warning", + "description": "Enables retries to process tasks not only on failure but also on a warning outcome status in a specific queue.", + "type": "boolean", + "default": false + }, + "dcmPurgeQueueMessageCompletedDelay": { + "title": "Delay for purging completed tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which completed tasks are purged. If absent, there is no deletion for that particular queue", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeQueueMessageFailedDelay": { + "title": "Delay for purging failed tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which failed tasks are purged. If absent, there is no deletion for that particular queue", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeQueueMessageWarningDelay": { + "title": "Delay for purging warning tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which warning tasks are purged. If absent, there is no deletion for that particular queue", + "type": "string", + "format": "dcmDuration" + }, + "dcmPurgeQueueMessageCanceledDelay": { + "title": "Delay for purging canceled tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which canceled tasks are purged. If absent, there is no deletion for that particular queue", + "type": "string", + "format": "dcmDuration" + }, + "dcmSchedule": { + "title": "Restrict Scheduling", + "description": "Restrict Scheduling to specified time ranges. Use Maximum Queue Size to control maximal number of Tasks processed between specified time ranges.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + } + } +} diff --git a/src/main/webapp/assets/schema/es/rejectionNote.schema.json b/src/main/webapp/assets/schema/es/rejectionNote.schema.json new file mode 100644 index 00000000..e7f424ac --- /dev/null +++ b/src/main/webapp/assets/schema/es/rejectionNote.schema.json @@ -0,0 +1,74 @@ +{ + "title": "Rejection Note", + "description": "Specifies behavior on Rejection Note Stored", + "type": "object", + "required": [ + "dcmRejectionNoteLabel", + "dcmRejectionNoteCode", + "dcmAcceptPreviousRejectedInstance" + ], + "properties": { + "dcmRejectionNoteLabel": { + "title": "Rejection Note Label", + "description": "Rejection Note Label", + "type": "string", + "use": [ + "$.dcmDevice.dcmArchiveDevice.dcmQueryRetrieveView[*].dcmShowInstancesRejectedByCode[*]" + ] + }, + "dcmRejectionNoteType": { + "title": "Rejection Note Type", + "description": "Type of Rejection Note.", + "type": "string", + "enum": [ + "REJECTED_FOR_QUALITY_REASONS", + "REJECTED_FOR_PATIENT_SAFETY_REASONS", + "INCORRECT_MODALITY_WORKLIST_ENTRY", + "DATA_RETENTION_POLICY_EXPIRED", + "REVOKE_REJECTION" + ] + }, + "dcmRejectionNoteCode": { + "title": "Rejection Note Code", + "description": "Specifies Document Title of Rejection Note in format (CV, CSD, 'CM')", + "type": "string" + }, + "dcmAcceptPreviousRejectedInstance": { + "title": "Accept Previous Rejected Instance", + "description": "Specifies behavior on subsequent occurrence of instances rejected by a particular Rejection Note.", + "type": "string", + "default": "REJECT", + "enum": [ + "REJECT", + "RESTORE", + "IGNORE" + ] + }, + "dcmOverwritePreviousRejection": { + "title": "Overwrite Previous Rejection", + "description": "Specifies Document Title of previous Rejection Note in format (CV, CSD, 'CM') which may be overwritten by that Rejection Note", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmAcceptRejectionBeforeStorage": { + "title": "Accept Rejection before Storage", + "description": "Time interval in ISO-8601 duration format PnDTnHnMn.nS after receive of a Rejection Note, in which received object referenced by this Rejection Note are treated as rejected. Referenced objects received afterwards are treated as subsequent occurrence of an already rejected instance. If not present, Rejection Notes which refers not yet received objects will not be accepted.", + "type": "string", + "format": "dcmDuration" + }, + "dcmDeleteRejectedInstanceDelay": { + "title": "Delete Rejected Instance Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which instances rejected by a particular Rejection Note are deleted. Infinite if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmDeleteRejectionNoteDelay": { + "title": "Delete Rejection Note Delay", + "description": "Delay in ISO-8601 duration format PnDTnHnMn.nS after which particular Rejection Notes are deleted. Infinite if absent.", + "type": "string", + "format": "dcmDuration" + } + } +} diff --git a/src/main/webapp/assets/schema/es/restCoercionProcessor.schema.json b/src/main/webapp/assets/schema/es/restCoercionProcessor.schema.json new file mode 100755 index 00000000..c5c535fc --- /dev/null +++ b/src/main/webapp/assets/schema/es/restCoercionProcessor.schema.json @@ -0,0 +1,34 @@ +{ + "title": "REST Coercion Processor Configuration", + "description": "REST Coercion Processor Configuration", + "type": "object", + "required": [ + "restCoercionProcessorWebApplicationName" + ], + "properties": { + "restCoercionProcessorWebApplicationName": { + "title": "Web Application Name", + "description": "Web Application Name of the Workflow Manager Web Application to get the URL and Keycloak Configuration", + "type": "string" + }, + "restCoercionProcessorQueryParameters": { + "title": "Query Parameters", + "description": "List of DICOM Tags to pass to Workflow Manager to find the Workflow entry in the respective Workflow", + "type": "array", + "items": { + "type": "string" + } + }, + "restCoercionProcessorCacheMaxSize": { + "title": "Cache Max Size", + "description": "Maximum Number of REST Responses to cache", + "type": "integer" + }, + "restCoercionProcessorCacheStaleTimeout": { + "title": "Cache Stale Timeout", + "description": "Timeout in seconds before a Cache Entry is invalid and a new response will be requested from the Workflow Manager", + "type": "integer" + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/rsForwardRule.schema.json b/src/main/webapp/assets/schema/es/rsForwardRule.schema.json new file mode 100644 index 00000000..93adfc2f --- /dev/null +++ b/src/main/webapp/assets/schema/es/rsForwardRule.schema.json @@ -0,0 +1,77 @@ +{ + "title": "RESTful Forward Rule", + "description": "RESTful Forward Rule", + "type": "object", + "required": [ + "cn", + "dcmWebAppName", + "dcmTLSAllowAnyHostname", + "dcmTLSDisableTrustManager" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the RESTful Forward Rule", + "type": "string" + }, + "dcmWebAppName": { + "title": "Web Application name", + "description": "Name of the Web Application", + "type": "string", + "format": "webApp" + }, + "dcmURIPattern": { + "title": "Request URL Pattern", + "description": "Only forward requests which match the given Regular Expression. If prefixed with !, only forward requests which does not match the given Regular Expression.", + "type": "string" + }, + "dcmHostnamePattern": { + "title": "Hostname Pattern", + "description": "Only forward requests received from clients which hostname match the given Regular Expression. If prefixed with !, only forward requests from clients which hostname does not match the given Regular Expression.", + "type": "string" + }, + "dcmIPAddressPattern": { + "title": "IP Address Pattern", + "description": "Only forward requests received from clients which match the given Regular Expression. If prefixed with !, only forward requests from clients which IP address does not match the given Regular Expression.", + "type": "string" + }, + "dcmRSOperation": { + "title": "RESTful Operation", + "description": "Name of RESTful Operation which shall be forwarded to another archive instance.", + "type": "array", + "items" : { + "type": "string", + "enum": [ + "CreatePatient", + "UpdatePatient", + "DeletePatient", + "ChangePatientID", + "ChangePatientID2", + "MergePatient", + "MergePatient2", + "UnmergePatient", + "SupplementIssuer", + "UpdateCharset", + "UpdateStudy", + "UpdateStudyRequest", + "UpdateSeries", + "UpdateSeriesRequest", + "DeleteStudy", + "RejectStudy", + "RejectSeries", + "RejectInstance", + "ApplyRetentionPolicy", + "ReimportStudy", + "UpdateStudyExpirationDate", + "UpdateSeriesExpirationDate", + "UpdateStudyAccessControlID", + "MoveStudyToPatient", + "LinkStudyToMWLMerge", + "CreateMWL", + "UpdateMWL", + "DeleteMWL" + ] + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/storage.schema.json b/src/main/webapp/assets/schema/es/storage.schema.json new file mode 100644 index 00000000..074ea670 --- /dev/null +++ b/src/main/webapp/assets/schema/es/storage.schema.json @@ -0,0 +1,224 @@ +{ + "title": "Storage", + "description": "Storage Descriptor", + "type": "object", + "required": [ + "dcmStorageID", + "dcmURI", + "dcmMaxRetries", + "dcmInstanceAvailability", + "dcmRetrieveCacheMaxParallel", + "dcmReadOnly", + "dcmStorageThresholdExceedsPermanently", + "dcmNoDeletionConstraint", + "dcmNoRetrieveCacheOnPurgedInstanceRecords", + "dcmDeleterThreads", + "dcmStorageDuration" + ], + "properties": { + "dcmStorageID": { + "title": "Storage ID", + "description": "Storage ID", + "type": "string", + "use": [ + "$.dcmDevice.dcmArchiveDevice.dcmSeriesMetadataStorageID[*]", + "$.dcmDevice.dcmArchiveDevice.dcmStorageVerificationStorageID[*]", + "$.dcmDevice.dcmArchiveDevice.dcmStorage[*].dcmExportStorageID[*]", + "$.dcmDevice.dcmArchiveDevice.dcmStorage[*].dcmRetrieveCacheStorageID", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmObjectStorageID[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmMetadataStorageID[*]", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmStorageVerificationStorageID[*]" + ] + }, + "dcmURI": { + "title": "Storage URI", + "description": "RFC2079: Uniform Resource Identifier", + "type": "string" + }, + "dcmDigestAlgorithm": { + "title": "Digest Algorithm", + "description": "Algorithm for generation of check sums.", + "type": "string", + "enum" : [ + "MD5", + "SHA-1" + ] + }, + "dcmMaxRetries": { + "title": "Maximum Number of Retries", + "description": "Maximum number of retries to store an object on the storage system.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmRetryDelay": { + "title": "Retry Delay", + "description": "Delay to retry to store an object on the storage system in ISO-8601 duration format PnDTnHnMn.nS. Retry immediately if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmInstanceAvailability": { + "title": "Instance Availability", + "description": "Instance Availability.", + "type": "string", + "default": "ONLINE", + "enum": [ + "ONLINE", + "NEARLINE", + "OFFLINE" + ] + }, + "dcmStorageDuration": { + "title": "Storage Duration", + "description": "Indicates if the Storage is used as permanent (=PERMANENT), cache (=CACHE) or temporary (=TEMPORARY) storage. Objects get purged from cache and temporary storage according configured deleter thresholds or - if no deleter threshold is specified and no Retention Periods are configured - all objects on the Storage will get purged. In the case of temporary storage, the studies which objects were purged are also deleted from the database.", + "type": "string", + "default": "PERMANENT", + "enum": [ + "PERMANENT", + "CACHE", + "TEMPORARY" + ] + }, + "dcmReadOnly": { + "title": "Read Only", + "description": "Indicates if a Storage System is read only.", + "type": "boolean", + "default": false + }, + "dcmStorageClusterID": { + "title": "Storage Cluster ID", + "description": "Identifies a CACHE Storage belonging to a Storage Cluster. Objects of one Study may be distributed over Storage Systems of one Storage Cluster. Used by threshold triggered deletion.", + "type": "string" + }, + "dcmStorageThreshold": { + "title": "Storage Threshold", + "description": "Minimal Usable Space on Storage System. If the usable space falls below that value the Storage System will be marked as full by setting Storage Threshold Exceeds to the current time and - if Storage Threshold Exceeds Permanently is true - the Storage System will be removed from the list of configured Storage Systems of the Network AE requesting that Storage System. Format nnn(MB|GB|MiB|GiB)", + "type": "string" + }, + "dcmStorageThresholdExceeded": { + "title": "Storage Threshold Exceeded", + "description": "Date and time in format YYYYMMDDHHMMSS.FFFFFF when the Storage Threshold exceeded.", + "type": "string" + }, + "dcmStorageThresholdExceedsPermanently": { + "title": "Storage Threshold Exceeds Permanently", + "description": "Indicates to removed the Storage System from the list of configured Storage Systems of the Network AE requesting that Storage System when the Storage Threshold exceeds.", + "type": "boolean", + "default": true + }, + "dcmNoDeletionConstraint": { + "title": "No Deletion Constraint", + "description": "Delete Studies from cache/temporary Storage System, if no Deleter Threshold and no other deletion constraint is configured.", + "type": "boolean", + "default": false + }, + "dcmDeleterThreshold": { + "title": "Deleter Threshold", + "description": "Minimal Usable Space on Storage System to trigger deletion. If present, studies are deleted from the Storage System configured for cache (Storage Duration = CACHE) or temporary (Storage Duration = TEMPORARY) storage, if the usable space fall below that value. Format [nn'['']']nnn(MB|GB|MiB|GiB).", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmDeleteStudiesOlderThan": { + "title": "Delete Studies Older Than", + "description": "Delete Studies from the Storage System configured for cache (dcmStorageDuration=CACHE) or temporary (dcmStorageDuration=TEMPORARY) storage, if their Study Date is longer ago than the specified value in ISO-8601 period format. Format [nn\"[\"\"]\"](PnYnMnD|PnW).", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmPeriod" + }, + "dcmDeleteStudiesReceivedBefore": { + "title": "Delete Studies Received Before", + "description": "Delete Studies from the Storage System configured for cache (dcmStorageDuration=CACHE) or temporary (dcmStorageDuration=TEMPORARY) storage, if they were received longer ago than the specified value in ISO-8601 period format. Format [nn\"[\"\"]\"](PnYnMnD|PnW).", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmPeriod" + }, + "dcmDeleteStudiesNotUsedSince": { + "title": "Delete Studies Not Used Since", + "description": "Delete Studies from the Storage System configured for cache (dcmStorageDuration=CACHE) or temporary (dcmStorageDuration=TEMPORARY) storage, if they were last accessed longer ago than the specified value in ISO-8601 period format. Format [nn\"[\"\"]\"](PnYnMnD|PnW).", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmPeriod" + }, + "dcmDeleterThreads": { + "title": "Deleter Threads", + "description": "Number of Threads used for deletion of objects from the Storage System.", + "type": "integer", + "default" : 1, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmExternalRetrieveAET": { + "title": "External Retrieve AETs", + "description": "Constrains deletion of Studies, additionally to configured deleter thresholds and/or deletion retention period constraints, from the Storage System to Studies which objects are retrievable using one of the AEs from an external C-MOVE SCP.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmExternalRetrieveInstanceAvailability": { + "title": "External Retrieve Instance Availability", + "description": "Updates instance availability on deletion of studies for instances available on external retrieve archive.", + "type": "string", + "enum": [ + "ONLINE", + "NEARLINE", + "OFFLINE" + ] + }, + "dcmExportStorageID": { + "title": "Export Storage ID", + "description": "Constrains deletion of Studies, additionally to configured deleter thresholds and/or deletion retention period constraints, from the Storage System to Studies whose objects are also accessible from the specified other storages.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmStorageID" + }, + "dcmRetrieveCacheStorageID": { + "title": "Retrieve Cache Storage ID", + "description": "Specifies another Storage to which objects are copied in parallel on retrieve to increase the performance on accessing storage systems which provides more bandwidth using multiple connections in parallel.", + "type": "string", + "format": "dcmStorageID" + }, + "dcmNoRetrieveCacheOnDestinationAETitle": { + "title": "No Retrieve Cache on Destination AE Title", + "description": "Specifies AE Titles of C-STORE SCPs to which objects are retrieved without copying them to a configured Retrieve Cache Storage.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmNoRetrieveCacheOnPurgedInstanceRecords": { + "title": "No Retrieve Cache on Purged Instance Records", + "description": "Indicates to NOT copy retrieved objects to a configured Retrieve Cache Storage, wherein corresponding Instance Records were already purged from the DB.", + "type": "boolean", + "default": false + }, + "dcmRetrieveCacheMaxParallel": { + "title": "Retrieve Cache Max Parallel", + "description": "Maximal number of parallel copies to cache storage on retrieve. Only effective if a Retrieve Cache Storage ID is configured.", + "type": "integer", + "default" : 10, + "minimum": 0, + "exclusiveMinimum": true + }, + "dcmProperty": { + "title": "Storage Property", + "description": "Specify storage properties in format {name}={value}. Refer various Storage Properties that can be configured based on the storage type.", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/storeAccessControlIDRule.schema.json b/src/main/webapp/assets/schema/es/storeAccessControlIDRule.schema.json new file mode 100644 index 00000000..60a9d42b --- /dev/null +++ b/src/main/webapp/assets/schema/es/storeAccessControlIDRule.schema.json @@ -0,0 +1,37 @@ +{ + "title": "Store Access Control ID Rule", + "description": "Store Access Control ID Rule", + "type": "object", + "required": [ + "cn", + "dcmStoreAccessControlID", + "dcmRulePriority" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Store Access Control ID Rule", + "type": "string" + }, + "dcmStoreAccessControlID": { + "title": "Store Access Control ID", + "description": "Access Control ID assigned to Studies which attributes match all conditions", + "type": "string" + }, + "dcmRulePriority": { + "title": "Rule Priority", + "description": "Rule Priority.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/studyRetentionPolicy.schema.json b/src/main/webapp/assets/schema/es/studyRetentionPolicy.schema.json new file mode 100644 index 00000000..6d254ffa --- /dev/null +++ b/src/main/webapp/assets/schema/es/studyRetentionPolicy.schema.json @@ -0,0 +1,72 @@ +{ + "title": "Study Retention Policy", + "description": "Study Retention Policy", + "type": "object", + "required": [ + "cn", + "dcmRetentionPeriod", + "dcmRulePriority", + "dcmExpireSeriesIndividually", + "dcmStartRetentionPeriodOnStudyDate", + "dcmFreezeExpirationDate", + "dcmRevokeExpiration" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name of the Study Retention Policy", + "type": "string" + }, + "dcmRetentionPeriod": { + "title": "Study Retention Period", + "description": "Study Retention Period in ISO-8601 period format PnYnMnD or PnW", + "type": "string", + "format": "dcmPeriod" + }, + "dcmRulePriority": { + "title": "Rule Priority", + "description": "Rule Priority.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmExpireSeriesIndividually": { + "title": "Expire Series Individually", + "description": "Indicates if series should be expired individually or not.", + "type": "boolean", + "default": false + }, + "dcmStartRetentionPeriodOnStudyDate": { + "title": "Start Retention Period on Study Date", + "description": "Indicates if retention period should be started on Study Date instead on receive of an object of the Study", + "type": "boolean", + "default": false + }, + "dcmExporterID": { + "title": "Export expired Study", + "description": "Export expired Study/Series using the specified Exporter", + "type": "string", + "format": "dcmExporterID" + }, + "dcmFreezeExpirationDate": { + "title": "Freeze Expiration Date", + "description": "Indicate to disable changes of the Expiration Date by following events.", + "type": "boolean", + "default": false + }, + "dcmRevokeExpiration": { + "title": "Revoke Expiration Date", + "description": "Indicate to revoke a previous set Expiration Date.", + "type": "boolean", + "default": false + } + } +} diff --git a/src/main/webapp/assets/schema/es/studyUpdaterConfig.schema.json b/src/main/webapp/assets/schema/es/studyUpdaterConfig.schema.json new file mode 100644 index 00000000..1c9b732b --- /dev/null +++ b/src/main/webapp/assets/schema/es/studyUpdaterConfig.schema.json @@ -0,0 +1,36 @@ +{ + "title": "Study Updater Configuration", + "description": "Study Updater Configuration", + "type": "object", + "required": [ + "studyUpdaterUpdaterURL", + "studyUpdaterKeycloakClientID" + ], + "properties": { + "studyUpdaterUpdaterURL": { + "title": "Updater URL", + "description": "REST Endpoint URL for the external Updater service (f.e. Study Update CSV RS)", + "type": "string" + }, + "studyUpdaterUpdaterProperty": { + "title": "Updater Properties", + "description": "Properties for Updater specific configuration in the form = - f.e. Seperator=,", + "type": "array", + "items": { + "type": "string" + } + }, + "studyUpdaterKeycloakClientID": { + "title": "Keycloak Client ID", + "description": "Keycloak Client ID", + "type": "string" + }, + "studyUpdaterUpdaterWarningOnNoMatch": { + "title": "Warning on No Match", + "description": "Warning on No Match", + "type": "boolean", + "default": false + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/transferCapability.schema.json b/src/main/webapp/assets/schema/es/transferCapability.schema.json new file mode 100644 index 00000000..0e4196bf --- /dev/null +++ b/src/main/webapp/assets/schema/es/transferCapability.schema.json @@ -0,0 +1,46 @@ +{ + "title": "Transfer Capability", + "description": "Each transfer capability specifies the SOP class that the Network AE can support, the mode that it can utilize (SCP or SCU), and the Transfer Syntax(es) that it can utilize", + "type": "object", + "required": [ + "dicomSOPClass", + "dicomTransferRole", + "dicomTransferSyntax" + ], + "properties": { + "cn": { + "title": "Name", + "description": "Arbitrary/Meaningful name for the Transfer Capability object", + "type": "string" + }, + "dicomSOPClass": { + "title": "SOP Class", + "description": "SOP Class UID", + "type": "string", + "format": "dcmSOPClass" + }, + "dicomTransferRole": { + "title": "DICOM Transfer Role", + "description": "DICOM Transfer Role.", + "type": "string", + "enum": [ + "SCP", + "SCU" + ] + }, + "dicomTransferSyntax": { + "title": "Transfer Syntax", + "description": "Transfer syntax(es) that may be requested as an SCU or that are offered as an SCP.", + "type": "array", + "format": "dcmTransferSyntax", + "items": { + "type": "string" + } + }, + "dcmTransferCapability": { + "title": "Transfer Capability Extension", + "description": "dcm4che proprietary Transfer Capability Attributes", + "$ref": "dcmTransferCapability.schema.json" + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiAet.schema.json b/src/main/webapp/assets/schema/es/uiAet.schema.json new file mode 100644 index 00000000..1f3bdc8d --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiAet.schema.json @@ -0,0 +1,49 @@ +{ + "title": "Aet drop-down list", + "description": "Aet drop-down list", + "type": "object", + "required": [ + "dcmuiAetListName", + "dcmuiAets", + "dcmAcceptedUserRole", + "dcmuiMode" + ], + "properties": { + "dcmuiAetListName": { + "title": "List Name", + "description": "Define a name for this config", + "type": "string" + }, + "dcmuiAetListDescription": { + "title": "Description", + "description": "Aet List description", + "type": "string" + }, + "dcmuiMode": { + "title": "AEt list mode", + "description": "Define in which mode should be this config available in 'internal' ( archive own AETs, in some places called also 'Home AET' or 'Local AET' ) or 'external' ( or in some places also called 'Remote AET' ) aet drop-down list, to be available for both don't select any of them", + "type": "string", + "enum": [ + "internal", + "external" + ] + }, + "dcmuiAets": { + "title": "AETs", + "description": "UI Action Parameter", + "format": "dcmAETitle", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmAcceptedUserRole": { + "title": "Accepted User Role", + "description": "Define the roles for which this config should be available, use 'user' to be available for all roles", + "type": "array", + "items" : { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiCompareSide.schema.json b/src/main/webapp/assets/schema/es/uiCompareSide.schema.json new file mode 100644 index 00000000..a2c1d89a --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiCompareSide.schema.json @@ -0,0 +1,58 @@ +{ + "title": "Compare Side", + "description": "Compare Side", + "type": "object", + "required": [ + "dcmuiCompareSideName", + "dcmuiCompareSideCluster", + "dcmuiCompareSideElasticsearch", + "dcmuiCompareSideInstalled", + "dcmuiCompareSideOrder" + ], + "properties": { + "dcmuiCompareSideName": { + "title": "Name", + "description": "Compare Side Name", + "type": "string" + }, + "dcmuiCompareSideDescription": { + "title": "Description", + "description": "A short description about this Group", + "type": "string" + }, + "dcmuiCompareSideOrder": { + "title": "Order", + "description": "Order of the Compare side", + "type": "integer", + "default":0, + "enum":[ + 0, + 1 + ] + }, + "dcmuiCompareSideCluster": { + "title": "Cluster", + "description": "Select a Cluster", + "type": "string", + "format":"dcmuiDeviceClusterObject" + }, + "dcmuiCompareSideElasticsearch": { + "title": "Elasticsearch", + "description": "Select an Elasticsearch URL", + "type": "string", + "format":"dcmuiElasticsearchConfig" + }, + "dcmuiCompareSideQueueName": { + "title": "Queue", + "description": "Select the QueueName that should be used for the compare side", + "type": "string", + "format":"dcmQueueName" + }, + "dcmuiCompareSideInstalled": { + "title": "Installed", + "description": "If true this Compare side is active in the dashboard", + "type": "boolean", + "default": true + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiConfig.schema.json b/src/main/webapp/assets/schema/es/uiConfig.schema.json new file mode 100644 index 00000000..e6d1e870 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiConfig.schema.json @@ -0,0 +1,197 @@ +{ + "title": "UI Configuration", + "description": "UI Configuration", + "type": "object", + "required": [ + "dcmuiConfigName", + "dcmuiPatientIdVisibility" + ], + "properties": { + "dcmuiConfigName": { + "title": "UI Configuration Name", + "description": "UI Configuration Name", + "type": "string" + }, + "dcmuiModalities": { + "title": "Statistic Modalities", + "description": "Preselected Modalities that should show in the Statistic page", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmuiLanguageConfig":{ + "title": "Language Config", + "description": "Config the languages of the UI", + "titleKey":"{dcmuiLanguageConfigName}", + "type": "array", + "items" : { + "$ref": "uiLanguage.schema.json" + } + }, + "dcmuiWidgetAets": { + "title": "Widget AETs", + "description": "Select the AETs that you wan't to see in the AET widget, where you can select in which of them the newly added AET should be as `Accepted Calling AE Title`", + "type": "array", + "items" : { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmuiBackgroundURL": { + "title": "Background URL", + "description": "Background URL for changing the background of the UI, it can be relative or absolute URL, the image should have the width of at least of 1024px ", + "type": "string" + }, + "dcmuiPatientIdVisibility": { + "title": "Hide additional Patient ID-s", + "description": "If you set it to true, in the navigation table only the main ID-s of the Patient will be visible", + "type": "boolean", + "default": false + }, + "dcmuiLogoURL": { + "title": "Logo URL", + "description": "Logo URL for changing the logo of the UI, it can be relative or absolute URL, the image should have the width of 140px and should be in format png with the transparent background", + "type": "string" + }, + "dcmuiAboutInfo": { + "title": "About Info", + "description": "Here you can add the information about the About page if you want to change the default info by using following keywords, for example like this:title=\"J4Care\", subtitle=\"SMooTH Archive\", company_name=\"J4Care GmbH\", street=\"Enzersdorfer Strasse 7\", postal_code=\"A-2340\", town=\"Mödling\"", + "type": "string" + }, + "dcmuiDateTimeFormat": { + "title": "Format Date Time", + "description": "Here you can format the date time in the UI by using 'yyyy' for the year, 'MM' for the Month, 'dd' for the date, 'HH' for the hour 'mm' for the minutes, 'ss' for the seconds and 'SSS' for milliseconds. To format Date, Time and Date-Time you should use `DATE`, `TIME` and `DATE-TIME` for example like this: `DATE=yyyy-MM-dd, TIME=HH:mm, DATE-TIME=yyyy-MM-dd HH:mm`", + "type": "string" + }, + "dcmuiHideClock": { + "title": "Hide Clock", + "description": "Set to true if you want to hide the clock in the UI", + "type": "boolean", + "default": false + }, + "dcmuiPageTitle": { + "title": "Page Title", + "description": "If set, it will be used as UI page Title ( The Text shown in the Tab of the Browser ) ", + "type": "string" + }, + "dcmuiPersonNameFormat": { + "title": "Format Person Name", + "description": "Here you can format the person Name in the UI by using:{FAMILY-NAME}, {GIVEN-NAME}, {MIDDLE-NAME}, {NAME-PREFIX}, {NAME-SUFFIX} for Alphabetic, or by appending 'I_' for the Ideographic and 'P_' for the Phonetic version like {P_FAMILY-NAME}, {I_NAME-SUFFIX}", + "type": "string" + }, + "dcmuiDefaultWidgetAets": { + "title": "Default Widget AETs", + "description": "Select the AETs that should be preselected on Widget AETs", + "type": "array", + "items" : { + "type": "string" + }, + "format": "dcmAETitle" + }, + "dcmuiMWLWorklistLabel": { + "title": "MWL Worklist Label", + "description": "Selectable values for MWL Worklist Label", + "type": "array", + "items" : { + "type": "string" + }, + "use": [ + "$.dcmDevice.dcmArchiveDevice.dcmMWLImport.dcmMWLWorklistLabel", + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmMWLWorklistLabel", + "$.dcmDevice.hl7Application[*].dcmArchiveHL7Application.dcmMWLWorklistLabel", + "$.dcmDevice.dcmArchiveDevice.dcmArchiveAttributeCoercion[*].dcmMergeLocalMWLWorklistLabel[*]" + ] + }, + "dcmuiAetConfig": { + "title": "AET drop-down list", + "description": "Define which AETs should be visible in the drop-down lists in the UI", + "titleKey":"{dcmuiAetListName}", + "type": "array", + "items" : { + "$ref": "uiAet.schema.json" + } + }, + "dcmuiWebAppConfig": { + "title": "Web App drop-down list", + "description": "Define which WebApps should be visible on the top of the drop-down list in the UI", + "titleKey":"{dcmuiWebAppListName}", + "type": "array", + "items" : { + "$ref": "uiWebApp.schema.json" + } + }, + "dcmuiPermission": { + "title": "Permission", + "description": "Permission", + "titleKey":"{dcmuiPermissionName}", + "type": "array", + "items" : { + "$ref": "uiPermission.schema.json" + } + }, + "dcmuiFilterTemplateObject": { + "title": "UI Filter Template", + "description": "Defined filter template", + "titleKey":"{dcmuiFilterTemplateGroupName} ( {dcmuiFilterTemplateID} )", + "type": "array", + "items" : { + "$ref": "uiFilterTemplate.schema.json" + } + }, + "dcmuiDiffConfig": { + "title": "Study Diff Configuration", + "description": "Study Diff Configuration", + "titleKey":"{dcmuiDiffConfigName}", + "type": "array", + "items" : { + "$ref": "uiDiffConfig.schema.json" + } + }, + "dcmuiTableConfig": { + "title": "UI Table Configuration", + "description": "Configuration of table", + "titleKey":"{dcmuiTableConfigName}", + "type": "array", + "items" : { + "$ref": "uiTable.schema.json" + } + }, + "dcmuiElasticsearchConfig": { + "title": "UI Elasticsearch Configuration", + "description": "Elasticsearch Configuration for the pro version", + "titleKey":"{dcmuiElasticsearchConfigName}", + "type": "array", + "items" : { + "$ref": "uiElasticsearch.schema.json" + } + }, + "dcmuiDeviceClusterObject": { + "title": "UI Cluster Configuration", + "description": "Group Devices in Clusters", + "titleKey":"{dcmuiDeviceClusterName}", + "type": "array", + "items" : { + "$ref": "uiDeviceCluster.schema.json" + } + }, + "dcmuiDashboardConfig": { + "title": "UI Dashboard Configuration", + "description": "UI Dashboard Configuration", + "titleKey":"{dcmuiDashboardConfigName}", + "type": "array", + "items" : { + "$ref": "uiDashboard.schema.json" + } + }, + "dcmuiCreateDialogTemplate": { + "title": "UI Dialog Template", + "description": "UI Create Dialog Templates Configuration", + "titleKey":"{dcmuiTemplateName}", + "type": "array", + "items" : { + "$ref": "uiDialogTemplate.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiDashboard.schema.json b/src/main/webapp/assets/schema/es/uiDashboard.schema.json new file mode 100644 index 00000000..d5b465de --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiDashboard.schema.json @@ -0,0 +1,70 @@ +{ + "title": "UI Dashboard Configuration", + "description": "UI Dashboard Configuration", + "type": "object", + "required": [ + "dcmuiDashboardConfigName", + "dcmuiCountWebApp" + ], + "properties": { + "dcmuiDashboardConfigName": { + "title": "UI Dashboard Configuration Name", + "description": "UI Dashboard Configuration Name", + "type": "string" + }, + "dcmuiShowStarBlock":{ + "title": "Show Star Block", + "description": "Show Star Block - tasks without defined deviceName", + "type": "boolean", + "default" : true + }, + "dcmuiQueueName": { + "title": "Queues", + "description": "Queue Names for UI Dashboard Configuration used in queue block", + "type": "array", + "items" : { "type": "string" }, + "format" : "dcmQueueName" + }, + "dcmuiExportName": { + "title": "Exporter IDs", + "description": "Exporter ID-s for UI Dashboard Configuration used in queue and compare block", + "type": "array", + "items" : { "type": "string" }, + "format" : "dcmExporterID" + }, + "dicomuiDeviceName": { + "title": "Device Names", + "description": "Device Names for UI Dashboard Configuration used for generating the Retrieve and Export block", + "type": "array", + "items" : { "type": "string" }, + "format": "dicomDeviceName" + }, + "dicomuiIgnoreParams": { + "title": "Audit Events Ignore Parameters", + "description": "Set Elasticsearch parameters that should be ignored in the Audit Events. E.g. Source.UserID=TESTVALUE", + "type": "array", + "items" : { "type": "string" } + }, + "dcmuiCountWebApp": { + "title": "Count Web App", + "description": "Selected Web App, It will be used to get the count of studies in the dashboard", + "type": "string", + "format": "webApp" + }, + "dcmuiCompareSideObjects": { + "title": "Compare Sides", + "description": "Compare Sides", + "titleKey":"{dcmuiCompareSideName}", + "type": "array", + "items" : { + "$ref": "uiCompareSide.schema.json" + } + }, + "dicomuiDockerContainer": { + "title": "Archive Docker Containers", + "description": "Names of the archive docker containers used in the hardware page", + "type": "array", + "items" : { "type": "string" } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiDeviceCluster.schema.json b/src/main/webapp/assets/schema/es/uiDeviceCluster.schema.json new file mode 100644 index 00000000..8cb79c93 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiDeviceCluster.schema.json @@ -0,0 +1,41 @@ +{ + "title": "UI Cluster Configuration", + "description": "Configuration of Device URL to use beside the main UI URL", + "type": "object", + "required": [ + "dcmuiDeviceClusterName", + "dcmuiDeviceClusterDevices", + "dcmuiDeviceClusterInstalled" + ], + "properties": { + "dcmuiDeviceClusterName": { + "title": "Name", + "description": "Cluster Name", + "type": "string" + }, + "dcmuiDeviceClusterDescription": { + "title": "Description", + "description": "Cluster Description", + "type": "string" + }, + "dcmuiDeviceClusterDevices": { + "title": "Web Application for Devices", + "description": "Select configured WebApps to used to access the corresponding devices", + "type": "array", + "items" : { "type": "string" }, + "format": "webApp" + }, + "dcmuiClusterWebApp": { + "title": "Web Application", + "description": "Web Application with the class QIDO-RS", + "type": "string", + "format": "webApp" + }, + "dcmuiDeviceClusterInstalled": { + "title": "Installed", + "description": "Use this URL in the UI", + "type": "boolean", + "default": true + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiDialogTemplate.schema.json b/src/main/webapp/assets/schema/es/uiDialogTemplate.schema.json new file mode 100644 index 00000000..c8aa3171 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiDialogTemplate.schema.json @@ -0,0 +1,38 @@ +{ + "title": "UI Dialog Template", + "description": "Define Create Dialog Template", + "type": "object", + "required": [ + "dcmuiTemplateName", + "dcmTag" + ], + "properties": { + "dcmuiTemplateName": { + "title": "Name", + "description": "Name of the dialog template", + "type": "string" + }, + "dcmTag": { + "title": "Attribute Tag", + "description": "DICOM Tag as hex string which shall be included in this dialog template", + "type": "array", + "items" : { "type": "string" }, + "format": "dcmTag" + }, + "dicomDescription": { + "title": "Description", + "description": "Dialog template description", + "type": "string" + }, + "dcmuiDialog": { + "title": "Dialog Function", + "description": "Specifies the function where this Dialog Template shall get applied", + "type": "string", + "enum": [ + "mwl", + "patient" + ], + "default": "mwl" + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiDiffConfig.schema.json b/src/main/webapp/assets/schema/es/uiDiffConfig.schema.json new file mode 100644 index 00000000..dd5098f1 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiDiffConfig.schema.json @@ -0,0 +1,66 @@ +{ + "title": "UI Diff Configuration", + "description": "UI Diff Configuration", + "type": "object", + "required": [ + "dcmuiDiffConfigName" + ], + "properties": { + "dcmuiDiffConfigName": { + "title": "UI Diff Configuration Name", + "description": "UI Diff Configuration Name", + "type": "string" + }, + "dcmuiDiffCallingAET": { + "title": "Diff Calling AET", + "description": "Diff Calling AET", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmuiDiffPrimaryCFindSCP": { + "title": "UI Diff Primary C-FIND SCP", + "description": "UI Diff Primary C-FIND SCP", + "type": "string", + "format": "dcmAETitle" + }, + "dcmuiDiffPrimaryCMoveSCP": { + "title": "UI Diff Primary C-MOVE SCP", + "description": "UI Diff Primary C-MOVE SCP", + "type": "string", + "format": "dcmAETitle" + }, + "dcmuiDiffPrimaryCStoreSCP": { + "title": "UI Diff Primary C-STORE SCP", + "description": "UI Diff Primary C-STORE SCP", + "type": "string", + "format": "dcmAETitle" + }, + "dcmuiDiffSecondaryCFindSCP": { + "title": "UI Diff Secondary C-FIND SCP", + "description": "UI Diff Secondary C-FIND SCP", + "type": "string", + "format": "dcmAETitle" + }, + "dcmuiDiffSecondaryCMoveSCP": { + "title": "UI Diff Secondary C-MOVE SCP", + "description": "UI Diff Secondary C-MOVE SCP", + "type": "string", + "format": "dcmAETitle" + }, + "dcmuiDiffSecondaryCStoreSCP": { + "title": "UI Diff Secondary C-STORE SCP", + "description": "UI Diff Secondary C-STORE SCP", + "type": "string", + "format": "dcmAETitle" + }, + "dcmuiDiffCriteria": { + "title": "UI Diff Criteria", + "description": "UI Diff Criteria", + "titleKey":"{dcmuiDiffCriteriaTitle}", + "type": "array", + "items" : { + "$ref": "uiDiffCriteria.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiDiffCriteria.schema.json b/src/main/webapp/assets/schema/es/uiDiffCriteria.schema.json new file mode 100644 index 00000000..aaf0357c --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiDiffCriteria.schema.json @@ -0,0 +1,66 @@ +{ + "title": "UI Diff Criteria", + "description": "UI Diff Criteria", + "type": "object", + "required": [ + "dcmuiDiffCriteriaTitle", + "dcmuiDiffIncludeMissing" + ], + "properties": { + "dcmuiDiffCriteriaTitle": { + "title": "UI Diff Criteria Title", + "description": "Title of Diff Criteria", + "type": "string" + }, + "dicomDescription": { + "title": "UI Diff Criteria Description", + "description": "Unconstrained text description of this UI Diff Criteria", + "type": "string" + }, + "dcmuiDiffCriteriaNumber": { + "title": "UI Diff Criteria Number", + "description": "Attribute Set Number used to order Attribute Sets.", + "type": "integer", + "minimum": 1 + }, + "dcmuiDiffIncludeMissing": { + "title": "UI Including Missing", + "description": "Indicate if missing Studies shall be included", + "type": "boolean", + "default": false + }, + "dcmAttributeSetID": { + "title": "Attribute Set ID", + "description": "ID of Attribute Set specifying compared attributes", + "type": "string", + "format": "dcmAttributeSetID" + }, + "dcmuiDiffGroupButton": { + "title": "UI Diff Group Button", + "description": "UI Diff Group Button", + "type": "array", + "items": { + "type": "string", + "enum": [ + "synchronize", + "export", + "reject" + ] + } + }, + "dcmuiDiffAction": { + "title": "UI Diff Action", + "description": "UI Diff Action", + "type": "array", + "items": { + "type": "string", + "enum": [ + "patient-update", + "study-reject-export", + "study-reject", + "study-export" + ] + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiElasticsearch.schema.json b/src/main/webapp/assets/schema/es/uiElasticsearch.schema.json new file mode 100644 index 00000000..689d8937 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiElasticsearch.schema.json @@ -0,0 +1,24 @@ +{ + "title": "UI Elasticsearch Configuration", + "description": "Elasticsearch Configuration for the pro version", + "type": "object", + "required": [ + "dcmuiElasticsearchConfigName" + ], + "properties": { + "dcmuiElasticsearchConfigName": { + "title": "UI Elasticsearch Configuration Name", + "description": "UI Elasticsearch Configuration Name", + "type": "string" + }, + "dcmuiElasticsearchURLObjects": { + "title": "UI Elasticsearch URL", + "description": "UI Elasticsearch URL", + "titleKey":"{dcmuiElasticsearchURLName}", + "type": "array", + "items" : { + "$ref": "uiElasticsearchURL.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiElasticsearchURL.schema.json b/src/main/webapp/assets/schema/es/uiElasticsearchURL.schema.json new file mode 100644 index 00000000..724ee239 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiElasticsearchURL.schema.json @@ -0,0 +1,41 @@ +{ + "title": "UI Elasticsearch URL Configuration", + "description": "Elasticsearch URL", + "type": "object", + "required": [ + "dcmuiElasticsearchURLName", + "dcmuiElasticsearchURL", + "dcmuiElasticsearchIsDefault", + "dcmuiElasticsearchInstalled" + ], + "properties": { + "dcmuiElasticsearchURLName": { + "title": "Elasticsearch URL Name", + "description": "UI Elasticsearch URL Name", + "type": "string" + }, + "dcmuiElasticsearchWebApp": { + "title": "Elasticsearch WebApp", + "description": "Web Application that will be used te extract the Elasticsearch URL and access Elasticsearch", + "type": "string", + "format": "webApp" + }, + "dcmuiAuditEnterpriseSiteID": { + "title": "Audit Enterprise SiteID", + "description": "Set Audit Enterprise SiteID which should be used on Elasticsearch queries", + "type": "string" + }, + "dcmuiElasticsearchIsDefault": { + "title": "Is Default", + "description": "Set this URL to the default one. (Make sure that only one of the urls - siblings child is set to default).", + "type": "boolean", + "default": false + }, + "dcmuiElasticsearchInstalled": { + "title": "Installed", + "description": "Use this URL in the UI", + "type": "boolean", + "default": true + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiFilterTemplate.schema.json b/src/main/webapp/assets/schema/es/uiFilterTemplate.schema.json new file mode 100644 index 00000000..88b04315 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiFilterTemplate.schema.json @@ -0,0 +1,51 @@ +{ + "title": "UI Filter Template", + "description": "Defined filter template", + "type": "object", + "required": [ + "dcmuiFilterTemplateGroupName", + "dcmuiFilterTemplateID", + "dcmuiFilterTemplateFilters" + ], + "properties": { + "dcmuiFilterTemplateGroupName": { + "title": "Name", + "description": "Name of the template", + "type": "string" + }, + "dcmuiFilterTemplateID": { + "title": "ID", + "description": "ID of the filter where this template can apply", + "type": "string" + }, + "dcmuiFilterTemplateDescription": { + "title": "Description", + "description": "Filter template description", + "type": "string" + }, + "dcmuiFilterTemplateUsername": { + "title": "Username", + "description": "Username that can use this template", + "type": "string" + }, + "dcmuiFilterTemplateRole": { + "title": "Role", + "description": "Username role that can use this template", + "type": "string" + }, + "dcmuiFilterTemplateFilters": { + "title": "Filters", + "description": "Default filters in this template, filter pare key=value (example LocalAET=DCM4CHEE). For date filter you can use the predefined keywords (today, yesterday, this_week, this_month, last_week, last_month, this_quarter, last_quarter, this_year, last_year) so the dynamic values of the filters can be generated.", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmuiFilterTemplateDefault": { + "title": "Default", + "description": "Use this template as default", + "type": "boolean", + "default": false + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiLanguage.schema.json b/src/main/webapp/assets/schema/es/uiLanguage.schema.json new file mode 100644 index 00000000..a8e728ff --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiLanguage.schema.json @@ -0,0 +1,34 @@ +{ + "title": "UI Language Config", + "description": "UI Language Config", + "type": "object", + "required": [ + "dcmLanguages", + "dcmuiLanguageConfigName" + ], + "properties": { + "dcmuiLanguageConfigName": { + "title": "Language Config Name", + "description": "Name of the Language Config", + "type": "string" + }, + "dcmLanguages":{ + "title": "Available languages", + "description": "Set languages that should be available in the UI (The JSON-files to those language must exist in the code, if they don't exist open an Issue in github", + "type": "array", + "items":{ + "type": "string" + }, + "format": "dcmLanguageChooser" + }, + "dcmuiLanguageProfileObjects": { + "title": "Language Profile", + "description": "Language profile for username, role or everyone", + "titleKey":"{dcmuiLanguageProfileName}", + "type": "array", + "items" : { + "$ref": "uiLanguageProfile.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiLanguageProfile.schema.json b/src/main/webapp/assets/schema/es/uiLanguageProfile.schema.json new file mode 100644 index 00000000..05e9bb25 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiLanguageProfile.schema.json @@ -0,0 +1,38 @@ +{ + "title": "UI Elasticsearch URL Configuration", + "description": "Elasticsearch URL", + "type": "object", + "required": [ + "dcmuiLanguageProfileName", + "dcmuiDefaultLanguage" + ], + "properties": { + "dcmuiLanguageProfileName": { + "title": "Name", + "description": "Language profile name", + "type": "string" + }, + "dcmDefaultLanguage": { + "title": "Default language", + "description": "Select default language for the UI", + "type": "string", + "items" : { + "type": "string" + }, + "format": "dcmDefaultLanguage" + }, + "dcmuiLanguageProfileRole": { + "title": "Role", + "description": "Username role that this language profile should apply to", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmuiLanguageProfileUsername": { + "title": "Username", + "description": "Username for the language profile", + "type": "string" + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiPermission.schema.json b/src/main/webapp/assets/schema/es/uiPermission.schema.json new file mode 100644 index 00000000..8c685068 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiPermission.schema.json @@ -0,0 +1,116 @@ +{ + "title": "UI Permission", + "description": "UI Permission", + "type": "object", + "required": [ + "dcmuiPermissionName", + "dcmuiAction" + ], + "properties": { + "dcmuiPermissionName": { + "title": "UI Permission Name", + "description": "Name of Permission for UI Action", + "type": "string" + }, + "dcmuiAction": { + "title": "UI Action", + "description": "UI Action", + "type": "string", + "enum": [ + "menu-studies", + "menu-dashboard", + "menu-correct_data", + "menu-lifecycle_management", + "menu-audit_record_repository", + "menu-configuration", + "menu-move_data", + "menu-statistics", + "menu-monitoring", + "menu-study", + "menu-xds", + "tab-monitoring->queues", + "tab-monitoring->export", + "tab-monitoring->external_retrieve", + "tab-monitoring->control", + "tab-monitoring->associations", + "tab-monitoring->storage_commitments", + "tab-monitoring->storage_systems", + "tab-monitoring->diff", + "tab-statistics->statistics", + "tab-statistics->studies-stored", + "tab-configuration->devices", + "tab-configuration->ae_list", + "tab-configuration->hl7_applications", + "tab-configuration->permission", + "tab-correct_data->diff", + "tab-correct_data->patient_data", + "tab-move_data->retrieve", + "tab-move_data->export", + "tab-audit-record-repository->all", + "tab-audit-record-repository->audit_errors", + "tab-audit-record-repository->app_errors", + "tab-audit-record-repository->authentication", + "tab-audit-record-repository->software_configuration", + "tab-audit-record-repository->patients", + "tab-audit-record-repository->rejections", + "tab-audit-record-repository->hl7", + "tab-study-study", + "tab-study-patient", + "tab-study-mwl", + "tab-study-diff", + "action-devicelist-device_configuration", + "action-studies-patient", + "action-studies-mwl", + "action-studies-uwl", + "action-studies-study", + "action-studies-serie", + "action-studies-instance", + "action-studies-copy_merge_move", + "action-studies-more_function", + "action-studies-diff", + "action-studies-count", + "action-studies-show-attributes", + "action-studies-size", + "action-studies-viewer", + "action-studies-verify_storage_commitment", + "action-studies-download", + "action-monitoring->queues-all_action", + "action-monitoring->export-all_action", + "action-monitoring->external_retrieve-all_action", + "action-monitoring->queues-single_action", + "action-monitoring->export-single_action", + "action-monitoring->diff_monitor-all_action", + "action-monitoring->external_retrieve-single_action" + ] + }, + "dcmuiActionParam": { + "title": "UI Action Parameter", + "description": "UI Action Parameter", + "type": "array", + "items" : { + "type": "string", + "enum":[ + "edit", + "create", + "delete", + "export", + "accessible", + "visible", + "merge", + "upload", + "reject", + "restore", + "recreate" + ] + } + }, + "dcmAcceptedUserRole": { + "title": "Accepted User Role", + "description": "Accepted User Role", + "type": "array", + "items" : { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiTable.schema.json b/src/main/webapp/assets/schema/es/uiTable.schema.json new file mode 100644 index 00000000..3e496403 --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiTable.schema.json @@ -0,0 +1,51 @@ +{ + "title": "UI Table Configuration", + "description": "Study Table configuration for the pro version", + "type": "object", + "required": [ + "dcmuiTableConfigName" + ], + "properties": { + "dcmuiTableConfigName": { + "title": "Configuration Name", + "description": "UI Table Configuration Name", + "type": "string" + }, + "dcmuiTableConfigUsername": { + "title": "Username", + "description": "Username to which this set should be available", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmuiTableConfigRoles": { + "title": "Role", + "description": "Username role that can use this Set ( If you set the username, the role will be ignored )", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmuiTableID": { + "title": "Table ID", + "description": "The ID of the Table in the UI for which the config should be effective", + "type": "string" + }, + "dcmuiTableConfigIsDefault": { + "title": "Is Default", + "description": "Set this Column-Set to the default one. (Make sure that only one of the Set - siblings child is set to default).", + "type": "boolean", + "default": false + }, + "dcmuiTableColumnConfigObjects": { + "title": "Table Columns", + "description": "Define Table Columns", + "titleKey":"{dcmuiColumnName}", + "type": "array", + "items" : { + "$ref": "uiTableColumns.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiTableColumns.schema.json b/src/main/webapp/assets/schema/es/uiTableColumns.schema.json new file mode 100644 index 00000000..9a30565a --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiTableColumns.schema.json @@ -0,0 +1,51 @@ +{ + "title": "UI Study Table Columns Configuration", + "description": "Study Table Columns", + "type": "object", + "required": [ + "dcmuiColumnName", + "dcmuiValuePath", + "dcmuiValueType" + ], + "properties": { + "dcmuiColumnName": { + "title": "Column Name", + "description": "The Name of the Column in the Study Table", + "type": "string" + }, + "dcmuiColumnId": { + "title": "Column ID", + "description": "Every possible column that is used in the UI, has and ID, by using the ID you can change some of the properties of that Column, like Name, Description, Order or width", + "type": "string" + }, + "dcmuiColumnTitle": { + "title": "Column Description", + "description": "Description of the Column, shown on hover", + "type": "string" + }, + "dcmuiValuePath": { + "title": "Value path", + "description": "Value (json-Object) Path of the column (for Example: '00100010.Value[0].Alphabetic' for Patient's Name or '00100020.Value[0]' for Patient ID", + "type": "string" + }, + "dcmuiValueType": { + "title": "Type of the value", + "description": "Type of the column how to get the value, default should be 'value'", + "type": "string", + "enum": [ + "value", + "pipe" + ] + }, + "dcmuiColumnWidth": { + "title": "Column width in weight", + "description": "Width of the column in weight ( x > 0.1 - x < infinite ) default 1", + "type": "string" + }, + "dcmuiColumnOrder": { + "title": "Order of the Column", + "description": "Order of the Column", + "type": "number" + } + } +} diff --git a/src/main/webapp/assets/schema/es/uiWebApp.schema.json b/src/main/webapp/assets/schema/es/uiWebApp.schema.json new file mode 100644 index 00000000..729c02ea --- /dev/null +++ b/src/main/webapp/assets/schema/es/uiWebApp.schema.json @@ -0,0 +1,57 @@ +{ + "title": "Web App drop-down list", + "description": "Web App drop-down list", + "type": "object", + "required": [ + "dcmuiWebAppListName", + "dcmuiWebApps", + "dcmuiMode" + ], + "properties": { + "dcmuiWebAppListName": { + "title": "List Name", + "description": "Define a name for this config", + "type": "string" + }, + "dcmuiWebAppListDescription": { + "title": "Description", + "description": "Web Application List description", + "type": "string" + }, + "dcmuiMode": { + "title": "List mode", + "description": "You have two possibilities how to show the defined list: 1.) On top on the rest of list 'separated' with a line, 2.) Show only those hir defined ( 'exclusive' ).", + "type": "string", + "default":"separated", + "enum": [ + "separated", + "exclusive" + ] + }, + "dcmuiWebApps": { + "title": "WebApps", + "description": "Web Application", + "format": "webApp", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmAcceptedUserRole": { + "title": "Accepted User Role", + "description": "Define the roles for which this config should be available, use 'user' to be available for all roles ( You should either define a username ( following attribute ) or user role ( this attribute ))", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmAcceptedUserName": { + "title": "Accepted User Name", + "description": "Define the Username for which this config should be available ( You should either define a username ( this attribute ) or user role ( previous attribute ))", + "type": "array", + "items" : { + "type": "string" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/upsOnHL7.schema.json b/src/main/webapp/assets/schema/es/upsOnHL7.schema.json new file mode 100644 index 00000000..a7900376 --- /dev/null +++ b/src/main/webapp/assets/schema/es/upsOnHL7.schema.json @@ -0,0 +1,204 @@ +{ + "title": "UPS on HL7", + "description": "Create/Update Workitem in unified Worklist on receive of HL7v2 message", + "type": "object", + "required": [ + "cn", + "dcmUPSLabel", + "dcmUPSPriority", + "dcmUPSInputReadinessState", + "dcmUPSIncludeStudyInstanceUID", + "dcmUPSIncludeReferencedRequest", + "dcmURI" + ], + "properties": { + "hl7UPSOnHL7ID": { + "title": "UPS on HL7 ID", + "description": "ID of UPS on HL7 Rule", + "type": "string" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format -[.[.]][!]=. Example: MSH-4=FORWARD or MSH-9=ORM\\^O01 or PID-3[.3]=PIDIssuer or PID-3[.3[.2]]=PIDIssuerUniversalEntityIDType", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmSchedule": { + "title": "Time Conditions", + "description": "Apply this rule only within specified time ranges.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmUPSLabel": { + "title": "Procedure Step Label", + "description": "Value of Procedure Step Label (0074,1204) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmUPSWorklistLabel": { + "title": "Worklist Label", + "description": "Value of Worklist Label (0074,1202) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. If absent or if value could not be found in HL7 Message, HL7 Application Name of the receiving HL7 Application will be used. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmUPSPriority": { + "title": "Priority", + "description": "Value of Scheduled Procedure Step Priority (0074,1200) in created UPS. Enumerated Values: HIGH, MEDIUM, LOW. If absent, MEDIUM will be applied.", + "type": "string", + "default": "MEDIUM", + "enum": [ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "dcmUPSInputReadinessState": { + "title": "Input Readiness State", + "description": "Value of Input Readiness State (0040,4041) in created UPS", + "type": "string", + "default": "READY", + "enum": [ + "INCOMPLETE", + "UNAVAILABLE", + "READY" + ] + }, + "dcmUPSStartDateTimeDelay": { + "title": "Scheduled Procedure Step Start DateTime Delay", + "description": "Delay of Scheduled Procedure Step Start DateTime (0040,4005) in created UPS from receive time in format PnDTnHnMn.nS. Only effective, if no Scheduled Procedure Step Start DateTime is found in HL7 Message.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSCompletionDateTimeDelay": { + "title": "Expected Completion DateTime Delay", + "description": "Delay of Expected Completion DateTime (0040,4011) in created UPS from receive time in format PnDTnHnMn.nS. If absent, no Expected Completion Date and Time will be set.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSInstanceUIDBasedOnName": { + "title": "UPS Instance UID based on name", + "description": "Value used to generate name based SOP Instance UID (0008,0018) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. If absent, a random generated SOP Instance UID (0008,0018) will be used. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmDestinationAE": { + "title": "Destination AE", + "description": "Title of a DICOM Application Entity to which Instances will be stored.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmUPSScheduledWorkitemCode": { + "title": "Scheduled Workitem Code", + "description": "Item of Scheduled Workitem Code Sequence (0040,4018) in created UPS in format (CV, CSD, \"CM\").", + "type": "string" + }, + "dcmUPSScheduledStationNameCode": { + "title": "Scheduled Station Name Code", + "description": "Item of Scheduled Station Name Code Sequence (0040,4025) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledStationClassCode": { + "title": "Scheduled Station Class Code", + "description": "Item of Scheduled Station Class Code Sequence (0040,4026) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledStationLocationCode": { + "title": "Scheduled Station Geographic Location Code", + "description": "Item of Scheduled Station Geographic Location Code Sequence (0040,4027) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledHumanPerformerCode": { + "title": "Scheduled Human Performer Code", + "description": "Item of Human Performer Code Sequence (0040,4009) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledHumanPerformerName": { + "title": "Scheduled Human Performer Name", + "description": "Value of Human Performer's Name (0040,4037) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmUPSScheduledHumanPerformerOrganization": { + "title": "Scheduled Human Performer Organization", + "description": "Value of Human Performer's Organization (0040,4036) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmUPSIncludeStudyInstanceUID": { + "title": "Include Study Instance UID", + "description": "Indicates if Study Instance UID (0020,000D) in the received HL7 message shall be included in the created UPS", + "type": "boolean", + "default": false + }, + "dcmUPSIncludeReferencedRequest": { + "title": "Include Referenced Request", + "description": "Indicates if the Study Instance UID (0020,000D) in the received HL7 message and the specified Accession Number (0008,0050), Requested Procedure ID (0040,1001) and Requesting Service (0032,1033) shall be included in the item of the Referenced Request Sequence (0040,A370) in the created UPS. Otherwise an empty Referenced Request Sequence (0040,A370) is included.", + "type": "boolean", + "default": false + }, + "dcmStudyInstanceUID": { + "title": "Study Instance UID", + "description": "Value of Study Instance UID (0020,000D) in Item of Referenced Request Sequence (0040,A370) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmAdmissionID": { + "title": "Admission Number", + "description": "Value of Admission ID (0038,0010) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dicomIssuerOfAdmissionID": { + "title": "Issuer of Admission ID", + "description": "Value of Local Namespace Entity ID (0040,0031), Universal Entity ID (0040,0032) and Universal Entity ID Type (0040,0033) of the Item of the Issuer of Admission ID Sequence (0038,0014) in created UPS. Format: ['&''&']", + "type": "string" + }, + "dcmAccessionNumber": { + "title": "Accession Number", + "description": "Value of Accession Number (0008,0050) in Item of Referenced Request Sequence (0040,A370) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dicomIssuerOfAccessionNumber": { + "title": "Issuer of Accession Number", + "description": "Value of Local Namespace Entity ID (0040,0031), Universal Entity ID (0040,0032) and Universal Entity ID Type (0040,0033) in Item of Issuer of Accession Number Sequence (0008,0051) in Item of Referenced Request Sequence (0040,A370) in created UPS. Format: ['&''&']", + "type": "string" + }, + "dcmRequestedProcedureID": { + "title": "Requested Procedure ID", + "description": "Value of Requested Procedure ID (0040,1001) in Item of Referenced Request Sequence (0040,A370) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmRequestedProcedureDescription": { + "title": "Requested Procedure Description", + "description": "Value of Requested Procedure Description (0032,1060) in Item of Referenced Request Sequence (0040,A370) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmRequestingPhysician": { + "title": "Requesting Physician", + "description": "Value of Requesting Physician (0032,1032) in Item of Referenced Request Sequence (0040,A370) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmRequestingService": { + "title": "Requesting Service", + "description": "Value of Requesting Service (0032,1033) in Item of Referenced Request Sequence (0040,A370) in created UPS. {-[.[.]]} will be replaced by the value of that field in the received HL7 message. Examples: MSH-9 or ORC-1[.1] or ORC-10[.2[.1]]", + "type": "string" + }, + "dcmURI": { + "title": "XSL Stylesheet URI", + "description": "Specifies URI of the XSL style sheet to to transcode received HL7 message to include attributes in created UPS.", + "type": "string", + "default": "${jboss.server.temp.url}/dcm4chee-arc/hl7-order2ups.xsl" + } + } +} diff --git a/src/main/webapp/assets/schema/es/upsOnStore.schema.json b/src/main/webapp/assets/schema/es/upsOnStore.schema.json new file mode 100644 index 00000000..c5f7b81d --- /dev/null +++ b/src/main/webapp/assets/schema/es/upsOnStore.schema.json @@ -0,0 +1,235 @@ +{ + "title": "UPS on Store", + "description": "Create/Update Workitem in unified Worklist on receive of Composite Object", + "type": "object", + "required": [ + "dcmUPSOnStoreID", + "dcmUPSLabel", + "dcmUPSPriority", + "dcmUPSInputReadinessState", + "dcmUPSIncludeStudyInstanceUID", + "dcmUPSIncludeInputInformation", + "dcmUPSIncludePatient", + "dcmUPSIncludeReferencedRequest", + "dcmNoKeywords" + ], + "properties": { + "dcmUPSOnStoreID": { + "title": "UPS on Store ID", + "description": "ID of UPS on Store Rule", + "type": "string" + }, + "dcmProperty": { + "title": "Conditions", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmSchedule": { + "title": "Time Conditions", + "description": "Apply this rule only within specified time ranges.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmSchedule" + }, + "dcmUPSLabel": { + "title": "Procedure Step Label", + "description": "Value of Procedure Step Label (0074,1204) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {StudyDescription}", + "type": "string" + }, + "dcmUPSWorklistLabel": { + "title": "Worklist Label", + "description": "Value of Worklist Label (0074,1202) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {StudyDescription}", + "type": "string" + }, + "dcmUPSPriority": { + "title": "Priority", + "description": "Value of Scheduled Procedure Step Priority (0074,1200) in created UPS. Enumerated Values: HIGH, MEDIUM, LOW. If absent, MEDIUM will be applied.", + "type": "string", + "default": "MEDIUM", + "enum": [ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "dcmUPSInputReadinessState": { + "title": "Input Readiness State", + "description": "Value of Input Readiness State (0040,4041) in created UPS", + "type": "string", + "default": "READY", + "enum": [ + "INCOMPLETE", + "UNAVAILABLE", + "READY" + ] + }, + "dcmUPSStartDateTimeDelay": { + "title": "Scheduled Procedure Step Start DateTime Delay", + "description": "Delay of Scheduled Procedure Step Start DateTime (0040,4005) in created UPS from receive time in format PnDTnHnMn.nS. No delay if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSCompletionDateTimeDelay": { + "title": "Expected Completion DateTime Delay", + "description": "Delay of Expected Completion DateTime (0040,4011) in created UPS from receive time in format PnDTnHnMn.nS. If absent, no Expected Completion Date and Time will be set.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSInstanceUIDBasedOnName": { + "title": "UPS Instance UID based on name", + "description": "Value used to generate name based SOP Instance UID (0008,0018) in created UPS. Typically, the value will include {StudyInstanceUID}, {SeriesInstanceUID} or {SOPInstanceUID} to create a different UPS for each received Study, Series or Object. If absent, a random generated SOP Instance UID (0008,0018) will be used.", + "type": "string" + }, + "dcmUPSIncludeInputInformation": { + "title": "Include Input Information", + "description": "Indicates if received objects shall be referenced in the Input Information Sequence (0040,4021) in created UPS. SINGLE (= do not updating existing UPS), APPEND (= update existing UPS in state SCHEDULED), SINGLE_OR_CREATE (= if UPS already exists, create new UPS with derived UID), APPEND_OR_CREATE (= if existing UPS is no longer in state SCHEDULED, create new UPS with derived UID).", + "type": "string", + "default": "APPEND_OR_CREATE", + "enum": [ + "NO", + "SINGLE", + "APPEND", + "SINGLE_OR_CREATE", + "APPEND_OR_CREATE" + ] + }, + "dcmUPSIncludePatient": { + "title": "UPS Include Patient", + "description": "Indicates if patient (associated with created UPS) is created using patient attributes in received object; true if absent.", + "type": "boolean", + "default": true + }, + "dcmDestinationAE": { + "title": "Destination AE", + "description": "Title of a DICOM Application Entity to which Instances will be stored.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmEntity": { + "title": "Scope of Accumulation", + "description": "Scope of Accumulation", + "type": "string", + "enum": [ + "Study", + "Series", + "MPPS" + ] + }, + "dcmUPSScheduledWorkitemCode": { + "title": "Scheduled Workitem Code", + "description": "Item of Scheduled Workitem Code Sequence (0040,4018) in created UPS in format (CV, CSD, \"CM\").", + "type": "string" + }, + "dcmUPSScheduledStationNameCode": { + "title": "Scheduled Station Name Code", + "description": "Item of Scheduled Station Name Code Sequence (0040,4025) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledStationClassCode": { + "title": "Scheduled Station Class Code", + "description": "Item of Scheduled Station Class Code Sequence (0040,4026) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledStationLocationCode": { + "title": "Scheduled Station Geographic Location Code", + "description": "Item of Scheduled Station Geographic Location Code Sequence (0040,4027) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledHumanPerformerCode": { + "title": "Scheduled Human Performer Code", + "description": "Item of Human Performer Code Sequence (0040,4009) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledHumanPerformerName": { + "title": "Scheduled Human Performer Name", + "description": "Value of Human Performer's Name (0040,4037) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {PerformingPhysicianName}", + "type": "string" + }, + "dcmUPSScheduledHumanPerformerOrganization": { + "title": "Scheduled Human Performer Organization", + "description": "Value of Human Performer's Organization (0040,4036) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {ResponsibleOrganization}", + "type": "string" + }, + "dcmAdmissionID": { + "title": "Admission Number", + "description": "Value of Admission ID (0038,0010) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {AdmissionID}", + "type": "string" + }, + "dicomIssuerOfAdmissionID": { + "title": "Issuer of Admission ID", + "description": "Value of Local Namespace Entity ID (0040,0031), Universal Entity ID (0040,0032) and Universal Entity ID Type (0040,0033) of the Item of the Issuer of Admission ID Sequence (0038,0014) in created UPS. Format: ['&''&']", + "type": "string" + }, + "dcmUPSIncludeStudyInstanceUID": { + "title": "Include Study Instance UID", + "description": "Indicates if Study Instance UID (0020,000D) of the received object shall be included in the created UPS", + "type": "boolean", + "default": false + }, + "dcmUPSIncludeReferencedRequest": { + "title": "Include Referenced Request", + "description": "Indicates if the Study Instance UID (0020,000D) of the received object and the specified Accession Number (0008,0050), Requested Procedure ID (0040,1001) and Requesting Service (0032,1033) shall be included in the item of the Referenced Request Sequence (0040,A370) in the created UPS. Otherwise an empty Referenced Request Sequence (0040,A370) is included.", + "type": "boolean", + "default": false + }, + "dcmAccessionNumber": { + "title": "Accession Number", + "description": "Value of Accession Number (0008,0050) in Item of Referenced Request Sequence (0040,A370) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {AccessionNumber}", + "type": "string" + }, + "dicomIssuerOfAccessionNumber": { + "title": "Issuer of Accession Number", + "description": "Value of Local Namespace Entity ID (0040,0031), Universal Entity ID (0040,0032) and Universal Entity ID Type (0040,0033) in Item of Issuer of Accession Number Sequence (0008,0051) in Item of Referenced Request Sequence (0040,A370) in created UPS. Format: ['&''&']", + "type": "string" + }, + "dcmRequestedProcedureID": { + "title": "Requested Procedure ID", + "description": "Value of Requested Procedure ID (0040,1001) in Item of Referenced Request Sequence (0040,A370) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {StudyID}", + "type": "string" + }, + "dcmRequestedProcedureDescription": { + "title": "Requested Procedure Description", + "description": "Value of Requested Procedure Description (0032,1060) in Item of Referenced Request Sequence (0040,A370) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {StudyDescription}", + "type": "string" + }, + "dcmRequestingPhysician": { + "title": "Requesting Physician", + "description": "Value of Requesting Physician (0032,1032) in Item of Referenced Request Sequence (0040,A370) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {PerformingPhysicianName}", + "type": "string" + }, + "dcmRequestingService": { + "title": "Requesting Service", + "description": "Value of Requesting Service (0032,1033) in Item of Referenced Request Sequence (0040,A370) in created UPS. {attributeID} will be replaced by the value of that attribute in the received dataset. Example: {StudyDescription}", + "type": "string" + }, + "dcmURI": { + "title": "XSL Stylesheet URI", + "description": "Specifies URI of the XSL style sheet to include additional attributes in created UPS.", + "type": "string" + }, + "dcmNoKeywords": { + "title": "No Attribute Keyword", + "description": "Indicates if attribute keywords shall be omitted in DICOM XML passed to XSLT.", + "type": "boolean", + "default": false + } + } +} diff --git a/src/main/webapp/assets/schema/es/upsOnUPSCompleted.schema.json b/src/main/webapp/assets/schema/es/upsOnUPSCompleted.schema.json new file mode 100644 index 00000000..7ded6a0a --- /dev/null +++ b/src/main/webapp/assets/schema/es/upsOnUPSCompleted.schema.json @@ -0,0 +1,202 @@ +{ + "title": "UPS on UPS Completed", + "description": "Create Workitem in unified Worklist on previous UPS Completed", + "type": "object", + "required": [ + "dcmUPSOnUPSCompletedID", + "dcmUPSLabel", + "dcmUPSPriority", + "dcmUPSInputReadinessState", + "dcmUPSIncludeStudyInstanceUID", + "dcmUPSIncludeInputInformation", + "dcmUPSIncludePatient", + "dcmUPSIncludeReferencedRequest", + "dcmNoKeywords" + ], + "properties": { + "dcmUPSOnUPSCompletedID": { + "title": "UPS on UPS Completed Rule ID", + "description": "ID of UPS on UPS Completed Rule", + "type": "string" + }, + "dcmProperty": { + "title": "Condition", + "description": "Conditions in format {key}[!]={value}. Refer applicability, format and some examples.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dcmRequiresOtherUPSCompleted": { + "title": "Requires other UPS completed", + "description": "Specifies Query Parameters for other UPS referring the same request (= Study Instance UID), which must be already be completed for creating this UPS. Format: {attributeID}={value}[&...]", + "type": "array", + "items" : { + "type": "string" + } + }, + "dcmUPSLabel": { + "title": "Procedure Step Label", + "description": "Value of Procedure Step Label (0074,1204) in created UPS. {attributeID} will be replaced by the value of that attribute in the previous UPS dataset. Example: {StudyDescription}", + "type": "string" + }, + "dcmUPSWorklistLabel": { + "title": "Worklist Label", + "description": "Value of Worklist Label (0074,1202) in created UPS. {attributeID} will be replaced by the value of that attribute in the previous UPS dataset. Example: {StudyDescription}", + "type": "string" + }, + "dcmUPSPriority": { + "title": "Priority", + "description": "Value of Scheduled Procedure Step Priority (0074,1200) in created UPS. Enumerated Values: HIGH, MEDIUM, LOW. If absent, MEDIUM will be applied.", + "type": "string", + "default": "MEDIUM", + "enum": [ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "dcmUPSInputReadinessState": { + "title": "Input Readiness State", + "description": "Value of Input Readiness State (0040,4041) in created UPS", + "type": "string", + "default": "READY", + "enum": [ + "INCOMPLETE", + "UNAVAILABLE", + "READY" + ] + }, + "dcmUPSStartDateTimeDelay": { + "title": "Scheduled Procedure Step Start DateTime Delay", + "description": "Delay of Scheduled Procedure Step Start DateTime (0040,4005) in created UPS from receive time in format PnDTnHnMn.nS. No delay if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSCompletionDateTimeDelay": { + "title": "Expected Completion DateTime Delay", + "description": "Delay of Expected Completion DateTime (0040,4011) in created UPS from receive time in format PnDTnHnMn.nS. If absent, no Expected Completion Date and Time will be set.", + "type": "string", + "format": "dcmDuration" + }, + "dcmUPSInstanceUIDBasedOnName": { + "title": "UPS Instance UID based on name", + "description": "Value to generate name based SOP Instance UID (0008,0018) in created UPS. If absent, a random generated SOP Instance UID (0008,0018) will be used.", + "type": "string" + }, + "dcmUPSIncludeInputInformation": { + "title": "Include Input Information", + "description": "Indicates if the Input Information Sequence (0040,4021) or/and the Output Information Sequence (0040,4033) in the Unified Procedure Step Performed Procedure Sequence (0074,1216) of the previous UPS is included in Input Information Sequence (0040,4021) of the in created UPS.", + "type": "string", + "default": "COPY_OUTPUT", + "enum": [ + "NO", + "COPY_INPUT", + "COPY_OUTPUT" + ] + }, + "dcmUPSIncludePatient": { + "title": "UPS Include Patient", + "description": "Indicates if patient attributes are copied from the previous UPS.", + "type": "boolean", + "default": true + }, + "dcmDestinationAE": { + "title": "Destination AE", + "description": "Title of a DICOM Application Entity to which Instances will be stored.", + "type": "string", + "format": "dcmAETitle" + }, + "dcmEntity": { + "title": "Scope of Accumulation", + "description": "Scope of Accumulation", + "type": "string", + "enum": [ + "Study", + "Series", + "MPPS" + ] + }, + "dcmUPSScheduledWorkitemCode": { + "title": "Scheduled Workitem Code", + "description": "Item of Scheduled Workitem Code Sequence (0040,4018) in created UPS in format (CV, CSD, \"CM\").", + "type": "string" + }, + "dcmUPSScheduledStationNameCode": { + "title": "Scheduled Station Name Code", + "description": "Item of Scheduled Station Name Code Sequence (0040,4025) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledStationClassCode": { + "title": "Scheduled Station Class Code", + "description": "Item of Scheduled Station Class Code Sequence (0040,4026) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledStationLocationCode": { + "title": "Scheduled Station Geographic Location Code", + "description": "Item of Scheduled Station Geographic Location Code Sequence (0040,4027) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledHumanPerformerCode": { + "title": "Scheduled Human Performer Code", + "description": "Item of Human Performer Code Sequence (0040,4009) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS in format (CV, CSD, \"CM\").", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSScheduledHumanPerformerName": { + "title": "Scheduled Human Performer Name", + "description": "Value of Human Performer's Name (0040,4037) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS. {attributeID} will be replaced by the value of that attribute in the previous UPS dataset. Example: {PerformingPhysicianName}", + "type": "string" + }, + "dcmUPSScheduledHumanPerformerOrganization": { + "title": "Scheduled Human Performer Organization", + "description": "Value of Human Performer's Organization (0040,4036) in Item of Scheduled Human Performers Sequence (0040,4034) in created UPS. {attributeID} will be replaced by the value of that attribute in the previous UPS dataset. Example: {ResponsibleOrganization}", + "type": "string" + }, + "dcmAdmissionID": { + "title": "Admission Number", + "description": "Value of Admission ID (0038,0010) in created UPS. {attributeID} will be replaced by the value of that attribute in the previous UPS dataset. Example: {AdmissionID}", + "type": "string" + }, + "dicomIssuerOfAdmissionID": { + "title": "Issuer of Admission ID", + "description": "Value of Local Namespace Entity ID (0040,0031), Universal Entity ID (0040,0032) and Universal Entity ID Type (0040,0033) of the Item of the Issuer of Admission ID Sequence (0038,0014) in created UPS. Format: ['&''&']", + "type": "string" + }, + "dcmUPSIncludeStudyInstanceUID": { + "title": "Include Study Instance UID", + "description": "Indicates if Study Instance UID (0020,000D) of the previous UPS object shall be included in the created UPS", + "type": "boolean", + "default": false + }, + "dcmUPSIncludeReferencedRequest": { + "title": "Include Referenced Request", + "description": "Indicates if the Referenced Request Sequence (0040,A370) of the previous UPS is included in the created UPS. Otherwise an empty Referenced Request Sequence (0040,A370) is included.", + "type": "boolean", + "default": false + }, + "dcmURI": { + "title": "XSL Stylesheet URI", + "description": "Specifies URI of the XSL style sheet to include additional attributes in created UPS.", + "type": "string" + }, + "dcmNoKeywords": { + "title": "No Attribute Keyword", + "description": "Indicates if attribute keywords shall be omitted in DICOM XML passed to XSLT.", + "type": "boolean", + "default": false + } + } +} diff --git a/src/main/webapp/assets/schema/es/upsProcessingRule.schema.json b/src/main/webapp/assets/schema/es/upsProcessingRule.schema.json new file mode 100644 index 00000000..0f7a6b99 --- /dev/null +++ b/src/main/webapp/assets/schema/es/upsProcessingRule.schema.json @@ -0,0 +1,166 @@ +{ + "title": "UPS Processing Rule", + "description": "Process matching Workitems in unified Worklist", + "type": "object", + "required": [ + "dcmUPSProcessingRuleID", + "dcmUPSInputReadinessState", + "dcmURI", + "dicomAETitle", + "dcmUPSPerformedWorkitemCode", + "dcmUPSPerformedStationNameCode", + "dcmRetryDelay", + "dcmRetryDelayMultiplier", + "dcmMaxRetries", + "dcmMaxThreads" + ], + "properties": { + "dcmUPSProcessingRuleID": { + "title": "UPS Processing Rule ID", + "description": "ID of UPS Processing Rule", + "type": "string" + }, + "dicomAETitle": { + "title": "Application Entity (AE) title", + "description": "Application Entity (AE) title", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dcmURI": { + "title": "UPS Processor URI", + "description": "Identifies UPS Processor for processing matching Workitems", + "type": "string" + }, + "dcmProperty": { + "title": "Processing Property", + "description": "UPS Processor dependent property in format =", + "type": "array", + "items": { "type": "string" } + }, + "dcmSchedule": { + "title": "Processing Schedule", + "description": "Delay processing to specified time periods. If no Processing Schedule is specified, process Workitems at their Scheduled Procedure Step Start Date Time (0040,4005). Format: 'hour=[0-23] dayOfWeek=[0-6]' (0=Sunday)", + "type": "array", + "items": { "type": "string" }, + "format": "dcmSchedule" + }, + "dcmMaxThreads": { + "title": "Maximum Number of Threads", + "description": "Maximal number of threads used for processing of matching Workitems.", + "type": "integer", + "minimum": 1, + "default": 1 + }, + "dcmUPSInputReadinessState": { + "title": "Input Readiness State", + "description": "Process Workitems with matching Input Readiness State (0040,4041).", + "type": "string", + "default": "READY", + "enum": [ + "INCOMPLETE", + "UNAVAILABLE", + "READY" + ] + }, + "dcmUPSPriority": { + "title": "Priority", + "description": "Process Workitems with matching Scheduled Procedure Step Priority (0074,1200). If absent, process Workitems of any priority, but order the processing according their priority.", + "type": "string", + "enum": [ + "HIGH", + "MEDIUM", + "LOW" + ] + }, + "dcmUPSLabel": { + "title": "Procedure Step Label", + "description": "Process Workitems with matching Procedure Step Label (0074,1204). If absent, process Workitems with any Procedure Step Label.", + "type": "string" + }, + "dcmUPSWorklistLabel": { + "title": "Worklist Label", + "description": "Process Workitems with matching Worklist Label (0074,1202). If absent, process Workitems with any Worklist Label.", + "type": "string" + }, + "dcmUPSScheduledWorkitemCode": { + "title": "Scheduled Workitem Code", + "description": "Process Workitems with matching Code in Scheduled Workitem Code Sequence (0040,4018) in format (CV, CSD, \"CM\"). If absent, process Workitems with any Scheduled Workitem Code.", + "type": "string" + }, + "dcmUPSScheduledStationNameCode": { + "title": "Scheduled Station Name Code", + "description": "Process Workitems with matching Code in Scheduled Station Name Code Sequence (0040,4025) in format (CV, CSD, \"CM\"). If absent, process Workitems with any Scheduled Station Name Code.", + "type": "string" + }, + "dcmUPSScheduledStationClassCode": { + "title": "Scheduled Station Class Code", + "description": "Process Workitems with matching Code in Scheduled Station Name Class Sequence (0040,4026) in format (CV, CSD, \"CM\"). If absent, process Workitems with any Scheduled Station Class Code.", + "type": "string" + }, + "dcmUPSScheduledStationLocationCode": { + "title": "Scheduled Station Geographic Location Code", + "description": "Process Workitems with matching Code in Scheduled Station Geographic Location Class Sequence (0040,4027) in format (CV, CSD, \"CM\"). If absent, process Workitems with any Scheduled Station Geographic Location Code.", + "type": "string" + }, + "dcmUPSPerformedWorkitemCode": { + "title": "Performed Workitem Code", + "description": "Item of Performed Workitem Code Sequence (0040,4019) in processed UPS in format (CV, CSD, \"CM\").", + "type": "string", + "default": "(NO_WORKITEM_CODE, 99DCM4CHEE, \"Workitem Code\")" + }, + "dcmUPSPerformedStationNameCode": { + "title": "Performed Station Name Code", + "description": "Item of Performed Station Name Code Sequence (0040,4028) in processed UPS in format (CV, CSD, \"CM\").", + "type": "string", + "default": "(NO_STATION_NAME, 99DCM4CHEE, \"No Station Name specified\")" + }, + "dcmUPSIgnoreDiscontinuationReasonCode": { + "title": "Ignore Discontinuation Reason Code", + "description": "Specifies Discontinuation Reason Code in format (CV, CSD, \"CM\") to ignore and change UPS State to COMPLETED - instead of CANCELED.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSRescheduleDiscontinuationReasonCode": { + "title": "Reschedule Discontinuation Reason Code", + "description": "Specifies Discontinuation Reason Code in format (CV, CSD, \"CM\") to reschedule the canceled UPS. If absent, UPS canceled with any Discontinuation Reason Code will be rescheduled according specified Maximum Number of Rescheduling.", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmUPSTemplateID": { + "title": "Create UPS on Cancel", + "description": "Specifies UPS Template Workitem Instance UID for creating an UPS if the processing failed and retry is not scheduled any more. If absent, no UPS will be created on failures.", + "type": "string" + }, + "dcmMaxRetries": { + "title": "Maximum Number of Rescheduling", + "description": "Maximal number a Workitem which processing failed is rescheduled.", + "type": "integer", + "minimum": 0, + "default": 0 + }, + "dcmRetryDelay": { + "title": "Reschedule Delay", + "description": "Delay to reschedule a Workitem which processing failed in ISO-8601 duration format PnDTnHnMn.nS.", + "type": "string", + "default": "PT1M", + "format": "dcmDuration" + }, + "dcmMaxRetryDelay": { + "title": "Maximum Reschedule Delay", + "description": "Maximal Delay to reschedule a Workitem which processing failed in ISO-8601 duration format PnDTnHnMn.nS. Infinite if absent.", + "type": "string", + "format": "dcmDuration" + }, + "dcmRetryDelayMultiplier": { + "title": "Reschedule Delay Multiplier", + "description": "Multiplier in % that will take effect on top of Reschedule Delay with Maximum Reschedule Delay to be taken into account.", + "type": "integer", + "minimum": 100, + "default": 100 + } + } +} diff --git a/src/main/webapp/assets/schema/es/webApplication.schema.json b/src/main/webapp/assets/schema/es/webApplication.schema.json new file mode 100644 index 00000000..5bbc860e --- /dev/null +++ b/src/main/webapp/assets/schema/es/webApplication.schema.json @@ -0,0 +1,105 @@ +{ + "title": "Web Application", + "description": "Web Application information", + "type": "object", + "required": [ + "dcmWebAppName", + "dcmWebServicePath", + "dcmWebServiceClass" + ], + "properties": { + "dcmWebAppName": { + "title": "Web Application name", + "description": "Name of the Web Application", + "type": "string", + "use": [ + "$.dicomNetworkAE[*].dcmNetworkAE.dcmArchiveNetworkAE.dcmFallbackWadoURIWebAppName", + "$.dcmDevice.dcmArchiveDevice.dcmFallbackWadoURIWebAppName" + ] + }, + "dicomNetworkConnectionReference": { + "title": "Web Application Network Connection", + "description": "Network Connection(s) on which the services of the Web application are available", + "type": "array", + "items": { + "type": "string" + } + }, + "dicomDescription": { + "title": "Web Application Description", + "description": "Unconstrained text description of the Web Application", + "type": "string" + }, + "dcmWebServicePath": { + "title": "Web Service Path", + "description": "HTTP Path of the services of the Web application", + "type": "string" + }, + "dcmWebServiceClass": { + "title": "Web Service Class", + "description": "Web Service Classes provided by the Web application", + "type": "array", + "items": { + "type": "string", + "enum": [ + "QIDO_RS", + "STOW_RS", + "WADO_RS", + "WADO_URI", + "UPS_RS", + "MWL_RS", + "MPPS_RS", + "QIDO_COUNT", + "DCM4CHEE_ARC", + "DCM4CHEE_ARC_AET", + "DCM4CHEE_ARC_AET_DIFF", + "PAM", + "REJECT", + "MOVE", + "MOVE_MATCHING", + "UPS_MATCHING", + "ELASTICSEARCH", + "XDS_RS", + "AGFA_BLOB", + "J4C_ROUTER", + "FHIR", + "WORKFLOW_MANAGER" + ] + } + }, + "dcmKeycloakClientID": { + "title": "Keycloak Client ID", + "description": "Keycloak Client ID for the Web application", + "type": "string", + "format": "dcmKeycloakClient" + }, + "dicomAETitle": { + "title": "AE Title", + "description": "AE title of Network AE associated with this Web Application", + "type": "string", + "format": "dcmArchiveAETitle" + }, + "dicomApplicationCluster": { + "title": "Application Cluster", + "description": "Locally defined names for a subset of related applications", + "type": "array", + "items": { + "type": "string" + } + }, + "dcmProperty": { + "title": "Web Application Property", + "description": "Web application property in format {name}={value}. Refer Web Application Properties configuration examples based on use cases.", + "type": "array", + "items": { + "type": "string" + }, + "format": "dcmProperty" + }, + "dicomInstalled": { + "title": "installed", + "description": "True if the Web Application is installed on network. If not present, information about the installed status of the Web Application is inherited from the device", + "type": "boolean" + } + } +} diff --git a/src/main/webapp/assets/schema/es/workflowManagerConfig.schema.json b/src/main/webapp/assets/schema/es/workflowManagerConfig.schema.json new file mode 100644 index 00000000..8604423b --- /dev/null +++ b/src/main/webapp/assets/schema/es/workflowManagerConfig.schema.json @@ -0,0 +1,34 @@ +{ + "title": "Workflow Manager Configuration", + "description": "Workflow Manager Configuration", + "type": "object", + "required": [ + "workflowManagerScriptsDirectory" + ], + "properties": { + "workflowManagerScriptsDirectory": { + "title": "Scripts Directory", + "description": "Base Directory for Groovy Scripts", + "type": "string" + }, + "workflowManagerWorkflowConfiguration":{ + "title": "Workflow Configurations", + "description": "Workflow Configurations", + "titleKey":"{workflowManagerWorkflowConfiguration}", + "type": "array", + "items" : { + "$ref": "workflowManagerWorkflowConfiguration.schema.json" + } + }, + "workflowManagerDcm4cheeConfiguration":{ + "title": "DCM4CHEE Configurations", + "description": "DCM4CHEE Configurations", + "titleKey":"{workflowManagerDcm4cheeConfiguration}", + "type": "array", + "items" : { + "$ref": "workflowManagerDcm4cheeConfiguration.schema.json" + } + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/workflowManagerDcm4cheeConfiguration.schema.json b/src/main/webapp/assets/schema/es/workflowManagerDcm4cheeConfiguration.schema.json new file mode 100644 index 00000000..2cdf24d6 --- /dev/null +++ b/src/main/webapp/assets/schema/es/workflowManagerDcm4cheeConfiguration.schema.json @@ -0,0 +1,45 @@ +{ + "title": "DCM4CHEE Configuration", + "description": "DCM4CHEE Configuration", + "type": "object", + "required": [ + "workflowManagerDcm4cheeConfiguration", + "workflowManagerDcm4cheeConfigurationDcm4cheeAET", + "workflowManagerDcm4cheeConfigurationDcm4cheeURL", + "workflowManagerDcm4cheeConfigurationKeycloakURL", + "workflowManagerDcm4cheeConfigurationKeycloakClient", + "workflowManagerDcm4cheeConfigurationKeycloakSecret" + ], + "properties": { + "workflowManagerDcm4cheeConfiguration": { + "title": "DCM4CHEE Configuration Name", + "description": "DCM4CHEE Configuration Name for referencing in Workflow Steps", + "type": "string" + }, + "workflowManagerDcm4cheeConfigurationDcm4cheeAET": { + "title": "DCM4CHEE AET", + "description": "DCM4CHEE AET for Workflow Transactions - this AET is used to instruct DCM4CHEE to perform the necessary Tasks (c-find,c-move,...)", + "type": "string" + }, + "workflowManagerDcm4cheeConfigurationDcm4cheeURL": { + "title": "DCM4CHEE URL", + "description": "DCM4CHEE URL for Workflow Transactions (e.g. https://dcm4chee.server:8443/dcm4chee-arc)", + "type": "string" + }, + "workflowManagerDcm4cheeConfigurationKeycloakURL": { + "title": "Keycloak URL", + "description": "Keycloak URL for Authentication (e.g. https://keycloak.server:8843/realms/dcm4che/protocol/openid-connect/token)", + "type": "string" + }, + "workflowManagerDcm4cheeConfigurationKeycloakClient": { + "title": "Keycloak Client", + "description": "Keyclock Client for Authentication", + "type": "string" + }, + "workflowManagerDcm4cheeConfigurationKeycloakSecret": { + "title": "Keycloak Secret", + "description": "Keycloak Secret for Authentication", + "type": "string" + } + } +} \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/workflowManagerWorkflowConfiguration.schema.json b/src/main/webapp/assets/schema/es/workflowManagerWorkflowConfiguration.schema.json new file mode 100644 index 00000000..a2a68f43 --- /dev/null +++ b/src/main/webapp/assets/schema/es/workflowManagerWorkflowConfiguration.schema.json @@ -0,0 +1,132 @@ +{ + "title": "Workflow Configuration", + "description": "Workflow Configuration", + "type": "object", + "required": [ + "workflowManagerWorkflowConfiguration", + "workflowManagerWorkflowConfigurationDisplayName", + "workflowManagerWorkflowConfigurationSourceURL", + "workflowManagerWorkflowConfigurationWorkflowInputSourceType", + "workflowManagerWorkflowConfigurationWorkerThreads" + ], + "properties": { + "workflowManagerWorkflowConfiguration": { + "title": "Workflow Configuration Name (internal)", + "description": "Workflow Configuration Name (internal)", + "type": "string" + }, + "workflowManagerWorkflowConfigurationDisplayName": { + "title": "Workflow Configuration Name (UI)", + "description": "Workflow Configuration Name (UI)", + "type": "string" + }, + "workflowManagerWorkflowConfigurationSourceURL": { + "title": "Source URL", + "description": "Listening Source URL (e.g. ORM: orm-route1://0.0.0.0:4713?audit=false, ORU: oru-route1://0.0.0.0:4711?audit=false, IAN: dicomDevice:dicom?sopClasses=1.2.840.10008.5.1.4.33,REST: rest:dummy)", + "type": "string" + }, + "workflowManagerWorkflowConfigurationWorkflowInputSourceType": { + "title": "Input Source Type", + "description": "Input Source Type", + "default": "ORU", + "type": "string", + "enum": [ + "ORU", + "ORM", + "REST", + "IAN" + ] + }, + "workflowManagerWorkflowConfigurationWorkerThreads": { + "title": "Worker Threads", + "description": "Number of Worker Threads that will work on queued Workflow Orders", + "type": "integer", + "default": 2, + "minimum": 1 + }, + "workflowManagerWorkflowConfigurationNextVerificationDelay": { + "title": "Next Verification Delay", + "description": "Number of Minutes that should be added to Next Verificaton Date to synchronize the Workflow Step Status", + "type": "integer", + "default": 1, + "minimum": 1 + }, + "workflowManagerWorkflowConfigurationQueryProperties": { + "title": "Query Properties", + "description": "Query Properties that are allowed to search through the Admin UI and are accepted by the REST API in the form Parameter=UI Display Name (f.e. PatientID=Patient ID)", + "type": "array", + "items" : { + "type": "string" + } + }, + "workflowManagerWorkflowConfigurationSubWorkflow": { + "title": "Sub Workflow", + "description": "Indicates a Sub Workflow of another Workflow", + "type": "boolean", + "default": false + }, + "workflowManagerWorkflowConfigurationPurgingDelayCanceledTasks": { + "title": "Purging Delay Canceled Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which canceled tasks are purged. If absent, there is no deletion for that particular workflow.", + "type": "string", + "format": "dcmDuration" + }, + "workflowManagerWorkflowConfigurationPurgingDelayCompletedTasks": { + "title": "Purging Delay Completed Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which completed tasks are purged. If absent, there is no deletion for that particular workflow.", + "type": "string", + "format": "dcmDuration" + }, + "workflowManagerWorkflowConfigurationPurgingDelayFailedTasks": { + "title": "Purging Delay Failed Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which failed tasks are purged. If absent, there is no deletion for that particular workflow.", + "type": "string", + "format": "dcmDuration" + }, + "workflowManagerWorkflowConfigurationPurgingDelayWarningTasks": { + "title": "Purging Delay Warning Tasks", + "description": "Delay in ISO-8601 duration format PnDTnHnMnS after which warning tasks are purged. If absent, there is no deletion for that particular workflow.", + "type": "string", + "format": "dcmDuration" + }, + "workflowManagerWorkflowConfigurationHL7ConfigurationReceivingApplication": { + "title": "HL7 Configuration Receiving Application", + "description": "HL7 Configuration Receiving Application", + "type": "string" + }, + "workflowManagerWorkflowConfigurationHL7ConfigurationReceivingFacility": { + "title": "HL7 Configuration Receiving Facility", + "description": "HL7 Configuration Receiving Facility", + "type": "string" + }, + "workflowManagerWorkflowConfigurationHL7ConfigurationSendingApplication": { + "title": "HL7 Configuration Sending Application", + "description": "HL7 Configuration Sending Application", + "type": "string" + }, + "workflowManagerWorkflowConfigurationHL7ConfigurationSendingFacility": { + "title": "HL7 Configuration Sending Facility", + "description": "HL7 Configuration Sending Facility", + "type": "string" + }, + "workflowManagerWorkflowConfigurationHL7ConfigurationURIPrefix": { + "title": "HL7 Configuration URI Prefix", + "description": "URI Prefix to setup the HL7 Listener (e.g orm-route1)", + "type": "string" + }, + "workflowManagerWorkflowConfigurationCoercionAttributesScript": { + "title": "REST Coercion Attributes Script", + "description": "Script for Workflow Data Coercion REST Service", + "type": "string" + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfiguration":{ + "title": "Workflow Step Configurations", + "description": "Workflow Step Configurations", + "titleKey":"{workflowManagerWorkflowConfigurationWorkflowStepConfiguration}", + "type": "array", + "items" : { + "$ref": "workflowManagerWorkflowConfigurationWorkflowStepConfiguration.schema.json" + } + } + } +} diff --git a/src/main/webapp/assets/schema/es/workflowManagerWorkflowConfigurationWorkflowStepConfiguration.schema.json b/src/main/webapp/assets/schema/es/workflowManagerWorkflowConfigurationWorkflowStepConfiguration.schema.json new file mode 100644 index 00000000..079b0ea1 --- /dev/null +++ b/src/main/webapp/assets/schema/es/workflowManagerWorkflowConfigurationWorkflowStepConfiguration.schema.json @@ -0,0 +1,100 @@ +{ + "title": "Workflow Step Configuration", + "description": "Workflow Step Configuration", + "type": "object", + "required": [ + "workflowManagerWorkflowConfigurationWorkflowStepConfiguration", + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationDisplayName", + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationInputDataType", + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationOutputDataType", + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationProcessor", + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationCompletionVerificationDelay", + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationStepNumber" + ], + "properties": { + "workflowManagerWorkflowConfigurationWorkflowStepConfiguration": { + "title": "Workflow Step Configuration Name (internal)", + "description": "Workflow Step Configuration Name (internal)", + "type": "string" + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationDisplayName": { + "title": "Workflow Step Configuration Name (UI)", + "description": "Workflow Step Configuration Name (UI)", + "type": "string" + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationProcessor": { + "title": "Processor", + "description": "Processor that will be executed for this Workflow Step", + "default": "GroovyScriptStepProcessor", + "type": "string", + "enum": [ + "GroovyScriptWorkflowStepProcessor", + "RoutingWorkflowStepProcessor", + "UPSCreationWorkflowStepProcessor", + "UPSFindWorkflowStepProcessor", + "UPSUpdateWorkflowStepProcessor", + "UPSStatusWorkflowStepProcessor", + "UPSChangeStateWorkflowStepProcessor", + "SplitterWorkflowStepProcessor", + "ExportTaskWorkflowStepProcessor", + "QIDOWorkflowStepProcessor", + "MWLWorkflowStepProcessor", + "CFindWorkflowStepProcessor", + "WADOWorkflowStepProcessor", + "SwitchWorkflowStepProcessor", + "STOWWorkflowStepProcessor" + ] + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationInputDataType": { + "title": "Input Data Type", + "description": "Data Type that will be input into the Workflow step", + "default": "HL7_V2", + "type": "string", + "enum": [ + "DICOM", + "DICOM_JSON", + "HL7_V2", + "FHIR", + "JSON", + "RAW", + "STRING" + ] + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationOutputDataType": { + "title": "Output Data Type", + "description": "Data Type that will be output from the Workflow step", + "default": "HL7_V2", + "type": "string", + "enum": [ + "DICOM", + "DICOM_JSON", + "HL7_V2", + "FHIR", + "JSON", + "RAW", + "STRING" + ] + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationConfiguration": { + "title": "Configuration", + "description": "Key=Value Configuration for this workflow step", + "type": "array", + "items": { + "type": "string" + } + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationCompletionVerificationDelay": { + "title": "Completion Verification Delay", + "description": "Wait Time in seconds between checking the Completion of a Workflow Step", + "type": "integer", + "default": 10, + "minimum": 0 + }, + "workflowManagerWorkflowConfigurationWorkflowStepConfigurationStepNumber": { + "title": "Step number", + "description": "Step Number to identify order", + "type": "integer", + "default": 0 + } + } +} diff --git a/src/main/webapp/assets/schema/es/xdsAdministratorConfig.schema.json b/src/main/webapp/assets/schema/es/xdsAdministratorConfig.schema.json new file mode 100644 index 00000000..2014a3a4 --- /dev/null +++ b/src/main/webapp/assets/schema/es/xdsAdministratorConfig.schema.json @@ -0,0 +1,248 @@ +{ + "title": "XDS Administrator Configuration Name", + "description": "XDS Administrator Configuration Name", + "type": "object", + "required": [ + "xdsAdConfigName", + "xdsAdDisplayName", + "xdsAdIti18URL", + "xdsAdIti51URL", + "xdsAdIti57URL", + "xdsAdIti62URL", + "xdsAdNamespaceID", + "xdsAdRootOID", + "xdsAdSamlEnabled", + "xdsAdSourceOID", + "xdsAdUniversalID", + "xdsAdUniversalIDType" + ], + "properties": { + "xdsAdConfigName": { + "title": "XDS Administrator Configuration Name", + "description": "XDS Administrator Configuration Name", + "type": "string" + }, + "xdsAdDisplayName": { + "title": "Display name of Affinity Domain", + "description": "Display name of Affinity Domain", + "type": "string" + }, + "xdsAdIti18URL": { + "title": "ITI-18 URL", + "description": "ITI-18 URL - f.e xds-iti18://server/registry/query?secure=true", + "type": "string" + }, + "xdsAdIti51URL": { + "title": "ITI-51 URL", + "description": "ITI-51 URL - f.e xds-iti51://server/registry/query?secure=true", + "type": "string" + }, + "xdsAdIti57URL": { + "title": "ITI-57 URL", + "description": "ITI-57 URL - f.e xds-iti57://server/registry/register?secure=true", + "type": "string" + }, + "xdsAdIti62URL": { + "title": "ITI-62 URL", + "description": "ITI-62 URL - f.e. rmd-iti62://server/registry/remove?secure=true", + "type": "string" + }, + "xdsAdNamespaceID": { + "title": "Namespace ID", + "description": "Namespace ID - f.e. HOSP", + "type": "string" + }, + "xdsAdRootOID": { + "title": "Root OID", + "description": "Root OID - f.e. 1.2.3.4", + "type": "string" + }, + "xdsAdSamlAudienceURIs": { + "title": "SAML Audience URIs", + "description": "SAML Audience URIs - f.e. uris", + "type": "array", + "items" : { + "type": "string" + } + }, + "xdsAdSamlAttributes": { + "title": "SAML Attributes", + "description": "SAML Attributes - f.e. urn:oasis:names:tc:xacml:1.0:subject:subject-id=J4care-VNA", + "type": "array", + "items" : { + "type": "string" + } + }, + "xdsAdSamlAuthenticationMethod": { + "title": "SAML Authentication Method", + "description": "SAML Authentication Method - f.e. X509", + "type": "string" + }, + "xdsAdSamlCertificate": { + "title": "SAML Certificate", + "description": "SAML Certificate - Path to Certificate File", + "type": "string" + }, + "xdsAdSamlEnabled": { + "title": "SAML Enabled", + "description": "SAML Enabled", + "type": "boolean", + "default": false + }, + "xdsAdSamlIssuer": { + "title": "SAML Issuer", + "description": "SAML Issuer - f.e Issuer", + "type": "string" + }, + "xdsAdSamlNameID": { + "title": "SAML Name ID", + "description": "SAML Name ID - f.e. nameID", + "type": "string" + }, + "xdsAdSamlNameQualifier": { + "title": "SAML Name Qualifier", + "description": "SAML Name Qualifier - f.e. nameQualifier", + "type": "string" + }, + "xdsAdSamlPrivateKey": { + "title": "SAML Private Key", + "description": "SAML Private Key - Path to Private Key", + "type": "string" + }, + "xdsAdSamlPurposeOfUseCode": { + "title": "SAML Purpose of Use Code", + "description": "SAML Purpose of Use Code - f.e 1^Clinical care provision to an individual subject of care^1.0.14265.1^ISO 14265 Classification of Purposes for processing personal health information", + "type": "string" + }, + "xdsAdSamlRoleCode": { + "title": "SAML Role Code", + "description": "SAML Role Code - f.e. 01.000^Arts^2.16.840.1.113883.2.4.15.111^roleCodeNLZorgverlenertype", + "type": "string" + }, + "xdsAdSourceOID": { + "title": "Source OID", + "description": "Source OID - f.e. 1.2.3.4", + "type": "string" + }, + "xdsAdSslKeystore": { + "title": "SSL Keystore", + "description": "SSL Keystore - Path to SSL Keystore - leave empty if no SSL Context should be setuped", + "type": "string" + }, + "xdsAdSslKeystorePassword": { + "title": "SSL Keystore Password", + "description": "SSL Keystore Password", + "type": "string" + }, + "xdsAdSslTruststore": { + "title": "SSL Truststore", + "description": "SSL Truststore - Path to Truststore", + "type": "string" + }, + "xdsAdSslTruststorePassword": { + "title": "SSL Truststore Password", + "description": "SSL Truststore Password", + "type": "string" + }, + "xdsAdUniversalID": { + "title": "Universal ID", + "description": "Universal ID - f.e 2.16.840.1.113883.2.4.6.3", + "type": "string" + }, + "xdsAdUniversalIDType": { + "title": "Universal ID Type", + "description": "Universal ID Type - f.e ISO", + "type": "string" + }, + "xdsAdFpAet": { + "title": "Fix Patients - AET", + "description": "Fix Patients - AET", + "type": "string" + }, + "xdsAdFpAssigningAuthority": { + "title": "Fix Patients - Assigning Authority", + "description": "Fix Patients - Assigning Authority", + "type": "string" + }, + "xdsAdFpDcm4cheeURL": { + "title": "Fix Patients - DCM4CHEE URL", + "description": "Fix Patients - DCM4CHEE URL", + "type": "string" + }, + "xdsAdFpDomainsReturnedAssigningAuthority": { + "title": "Fix Patients - Domains Returned Assigning Authority", + "description": "Fix Patients - Domains Returned Assigning Authority", + "type": "string" + }, + "xdsAdFpDomainsReturnedUniversalID": { + "title": "Fix Patients - Domains Returned Universal ID", + "description": "Fix Patients - Domains Returned Universal ID", + "type": "string" + }, + "xdsAdFpFixPatientsExporterID": { + "title": "Fix Patients - Fix Patients ExporterID", + "description": "Fix Patients - Fix Patients ExporterID", + "type": "string" + }, + "xdsAdFpKeycloakURL": { + "title": "Fix Patients - Keycloak URL", + "description": "Fix Patients - Keycloak URL", + "type": "string" + }, + "xdsAdFpPixURL": { + "title": "Fix Patients - PIX URL", + "description":"PIX URL to query in the form pix-iti9://hostname:port", + "type": "string" + }, + "xdsAdFpReceivingApplication": { + "title": "Fix Patients - Receiving Application", + "description": "Fix Patients - Receiving Application", + "type": "string" + }, + "xdsAdFpReceivingFacility": { + "title": "Fix Patients - Receiving Facility", + "description": "Fix Patients - Receiving Facility", + "type": "string" + }, + "xdsAdFpSecret": { + "title": "Fix Patients - Secret", + "description": "Fix Patients - Secret", + "type": "string" + }, + "xdsAdFpSendingApplication": { + "title": "Fix Patients - Sending Application", + "description": "Fix Patients - Sending Application", + "type": "string" + }, + "xdsAdFpSendingFacility": { + "title": "Fix Patients - Sending Facility", + "description": "Fix Patients - Sending Facility", + "type": "string" + }, + "xdsAdFpUniversalID": { + "title": "Fix Patients - Universal ID", + "description": "Fix Patients - Universal ID", + "type": "string" + }, + "xdsAdRepository":{ + "title": "XDS Repositories", + "description": "XDS Repositories for this Affinity Domain", + "titleKey":"{xdsAdRepositoryName}", + "type": "array", + "items" : { + "$ref": "xdsRepository.schema.json" + } + } + , + "xdsAdTemplate":{ + "title": "XDS Templates", + "description": "XDS Templates for Metadata", + "titleKey":"{xdsAdTemplateName}", + "type": "array", + "items" : { + "$ref": "xdsTemplate.schema.json" + } + } + } +} + \ No newline at end of file diff --git a/src/main/webapp/assets/schema/es/xdsRepository.schema.json b/src/main/webapp/assets/schema/es/xdsRepository.schema.json new file mode 100644 index 00000000..b9aeca7d --- /dev/null +++ b/src/main/webapp/assets/schema/es/xdsRepository.schema.json @@ -0,0 +1,53 @@ +{ + "title": "XDS Repository", + "description": "XDS Repository", + "type": "object", + "required": [ + "xdsAdRepositoryName", + "xdsAdRepositoryDisplayName", + "xdsAdIti41URL", + "xdsAdIti43URL", + "xdsAdRepositoryOID", + "xdsAdIti86URL", + "xdsAdIti86Enabled" + ], + "properties": { + "xdsAdRepositoryName": { + "title": "XDS Repository Name", + "description": "XDS Repository Name", + "type": "string" + }, + "xdsAdRepositoryDisplayName": { + "title": "Repository Display Name", + "description": "Repository Display Name", + "type": "string" + }, + "xdsAdIti41URL": { + "title": "ITI-41 URL", + "description": "ITI-41 URL - f.e. xds-iti41://server/repository/provide?sslContextParameters=#xxx - xxx must be replaced with AD name", + "type": "string" + }, + "xdsAdIti43URL": { + "title": "ITI-43 URL", + "description": "ITI-43 URL- f.e. xds-iti43://server/repository/retrieve?sslContextParameters=#xxx - xxx must be replaced with AD name", + "type": "string" + }, + "xdsAdIti86URL": { + "title": "ITI-86 URL", + "description": "ITI-86 URL - f.e. rmd-iti86://server/repository/delete?sslContextParameters=#xxx - xxx must be replaced with AD name", + "type": "string", + "default": "rmd-iti86://disabled2" + }, + "xdsAdIti86Enabled": { + "title": "ITI-86 Enabled", + "description": "ITI-86 Enabled", + "type": "boolean", + "default": false + }, + "xdsAdRepositoryOID": { + "title": "Repository OID", + "description": "Repository OID - fe. 1.2.3.4", + "type": "string" + } + } +} diff --git a/src/main/webapp/assets/schema/es/xdsTemplate.schema.json b/src/main/webapp/assets/schema/es/xdsTemplate.schema.json new file mode 100644 index 00000000..2dc5a824 --- /dev/null +++ b/src/main/webapp/assets/schema/es/xdsTemplate.schema.json @@ -0,0 +1,75 @@ +{ + "title": "XDS Template", + "description": "XDS Template", + "type": "object", + "required": [ + "xdsAdTemplateName", + "xdsAdTemplateDisplayName", + "xdsAdTemplateClassCode", + "xdsAdTemplateConfidentialityCode", + "xdsAdTemplateContentTypeCode", + "xdsAdTemplateDescription", + "xdsAdTemplateHealthCareFacilityTypeCode", + "xdsAdTemplateLanguageCode", + "xdsAdTemplatePracticeSettingCode", + "xdsAdTemplateTypeCode", + "xdsAdTemplateFormatCode" + ], + "properties": { + "xdsAdTemplateName": { + "title": "Template Name", + "description": "Template Name", + "type": "string" + }, + "xdsAdTemplateDisplayName": { + "title": "Template Display Name", + "description": "Template Display Name", + "type": "string" + }, + "xdsAdTemplateClassCode": { + "title": "Class Code", + "description": "Class Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"57016-8\", \"displayName\": \"Privacy Policy Acknowledgement\",\"schemeName\": \"2.16.840.1.113883.6.1\"}", + "type": "string" + }, + "xdsAdTemplateConfidentialityCode": { + "title": "Confidentiality Code", + "description": "Confidentiality Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"N\", \"displayName\": \"Normal\",\"schemeName\": \"2.16.840.1.113883.5.25\"}", + "type": "string" + }, + "xdsAdTemplateContentTypeCode": { + "title": "Content Type Code", + "description": "Content Type Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"34746-8\", \"displayName\": \"Nursing Evaluation and Management Note\",\"schemeName\": \"2.16.840.1.113883.6.1\"}", + "type": "string" + }, + "xdsAdTemplateDescription": { + "title": "Description", + "description": "Description", + "type": "string" + }, + "xdsAdTemplateFormatCode": { + "title": "Format Code", + "description": "Format Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"urn:ihe:pcc:xphr:2007\", \"displayName\": \"Exchange of Personal Health Records\",\"schemeName\": \"1.3.6.1.4.1.19376.1.2.3\"}", + "type": "string" + }, + "xdsAdTemplateHealthCareFacilityTypeCode": { + "title": "Health Care Facility Type Code", + "description": "Health Care Facility Type Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"HOS\", \"displayName\": \"Hospital\",\"schemeName\": \"2.16.840.1.113883.5.10588\"}", + "type": "string" + }, + "xdsAdTemplateLanguageCode": { + "title": "Language Code", + "description": "Language Code (f.e. en-US)", + "type": "string" + }, + "xdsAdTemplatePracticeSettingCode": { + "title": "Practice Setting Code", + "description": "Practice Setting Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"45899008\", \"displayName\": \"Free-standing laboratory facility\",\"schemeName\": \"2.16.840.1.113883.6.96\"}", + "type": "string" + }, + "xdsAdTemplateTypeCode": { + "title": "Type Code", + "description": "Type Code in JSON format { \"code\" :\"code\", \"displayName\": \"Display Name\", \"schemeName\": \"Schema\"} - f.e. { \"code\" :\"9611000146101\", \"displayName\": \"Video and audio (record artifact)\",\"schemeName\": \"2.16.840.1.113883.6.96\"}", + "type": "string" + } + } +}